PageSourceSearch

https://xoigac.top/lich-thi-dau

html xoigac.top collected 2026-10-10 02:21:42 UTC 312,186 bytes, 6,057 lines download raw bytes

1<!DOCTYPE html>
2<html lang="vi">
3<head>
4    <meta charset="utf-8" />
5    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6    <!-- ★ 防止浏览器缓存HTML页面 -->
7    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
8    <meta http-equiv="Pragma" content="no-cache" />
9    <meta http-equiv="Expires" content="0" />
10    <meta name="google-site-verification" content="1iqVdpLZF462X9pySkl_MEWQfvSqA1h7-TSK6gFJaGQ" />
11    
12    <!-- Favicon (统一品牌图标) -->
13    <link rel="apple-touch-icon" sizes="180x180" href="/images/pwa/apple-touch-icon.png?v=1791598902" />
14    <link rel="apple-touch-icon" sizes="120x120" href="/images/pwa/apple-touch-icon-120x120.png?v=1791598902" />
15    <link rel="apple-touch-icon" sizes="152x152" href="/images/pwa/apple-touch-icon-152x152.png?v=1791598902" />
16    <link rel="apple-touch-icon" sizes="167x167" href="/images/pwa/apple-touch-icon-167x167.png?v=1791598902" />
17    <link rel="apple-touch-icon" sizes="180x180" href="/images/pwa/apple-touch-icon-180x180.png?v=1791598902" />
18    <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon/favicon-32x32.png?v=1791598902" />
19    <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon/favicon-16x16.png?v=1791598902" />
20    
21    <!-- PWA Manifest - 固定使用越南语 -->
22    <link rel="manifest" href="/images/favicon/site-vi.webmanifest" />
23    
24    <!-- 主要ICO格式 - 包含多尺寸 -->
25    <link rel="icon" type="image/x-icon" href="/images/favicon/favicon.ico?v=1791598902" />
26    <link rel="shortcut icon" href="/images/favicon/favicon.ico?v=1791598902" />
27    
28    <!-- PWA Meta Tags -->
29    <meta name="application-name" content="XOIGAC.TV" />
30    <meta name="apple-mobile-web-app-title" content="XOIGAC.TV" />
31    <meta name="apple-mobile-web-app-capable" content="yes" />
32    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
33    <meta name="mobile-web-app-capable" content="yes" />
34    <meta name="theme-color" content="#309e58" />
35    <meta name="msapplication-TileColor" content="#309e58" />
36    <meta name="msapplication-config" content="/browserconfig.xml" />
37    
38    <!-- SEO: 标题 -->
39    <title>L&#x1ECB;ch thi &#x111;&#x1EA5;u b&#xF3;ng &#x111;&#xE1; - L&#x1ECB;ch ph&#xE1;t s&#xF3;ng tr&#x1EF1;c ti&#x1EBF;p h&#xF4;m nay | Xoigac TV</title>
40    
41    <!-- SEO: 基本元标签 -->
42        <meta name="description" content="L&#x1ECB;ch thi &#x111;&#x1EA5;u b&#xF3;ng &#x111;&#xE1; &#x111;&#x1EA7;y &#x111;&#x1EE7; c&#xE1;c gi&#x1EA3;i Ngo&#x1EA1;i h&#x1EA1;ng Anh, La Liga, Champions League, V-League. C&#x1EAD;p nh&#x1EAD;t l&#x1ECB;ch ph&#xE1;t s&#xF3;ng tr&#x1EF1;c ti&#x1EBF;p, &#x111;&#x1ED9;i h&#xEC;nh ra s&#xE2;n v&#xE0; nh&#x1EAD;n &#x111;&#x1ECB;nh tr&#x1B0;&#x1EDB;c tr&#x1EAD;n t&#x1EA1;i Xoigac TV." />
43        <meta name="keywords" content="l&#x1ECB;ch thi &#x111;&#x1EA5;u, l&#x1ECB;ch b&#xF3;ng &#x111;&#xE1;, l&#x1ECB;ch tr&#x1EF1;c ti&#x1EBF;p" />
44    
45    <!-- SEO: Robots -->
46    <meta name="robots" content="index, follow" />
47    
48    <!-- SEO: Canonical URL -->
49    <link rel="canonical" href="https://xoigac.top/lich-thi-dau" id="canonicalUrl" />
50    
51    <!-- SEO: Open Graph -->
52    <meta property="og:type" content="website" />
53    <meta property="og:title" content="L&#x1ECB;ch thi &#x111;&#x1EA5;u b&#xF3;ng &#x111;&#xE1; - L&#x1ECB;ch ph&#xE1;t s&#xF3;ng tr&#x1EF1;c ti&#x1EBF;p h&#xF4;m nay | Xoigac TV" />
54    <meta property="og:description" content="L&#x1ECB;ch thi &#x111;&#x1EA5;u b&#xF3;ng &#x111;&#xE1; &#x111;&#x1EA7;y &#x111;&#x1EE7; c&#xE1;c gi&#x1EA3;i Ngo&#x1EA1;i h&#x1EA1;ng Anh, La Liga, Champions League, V-League. C&#x1EAD;p nh&#x1EAD;t l&#x1ECB;ch ph&#xE1;t s&#xF3;ng tr&#x1EF1;c ti&#x1EBF;p, &#x111;&#x1ED9;i h&#xEC;nh ra s&#xE2;n v&#xE0; nh&#x1EAD;n &#x111;&#x1ECB;nh tr&#x1B0;&#x1EDB;c tr&#x1EAD;n t&#x1EA1;i Xoigac TV." />
55    <meta property="og:url" content="https://xoigac.top/lich-thi-dau" id="ogUrl" />
56    <meta property="og:image" content="https://xoigac.top/images/og-default.jpg" id="ogImage" />
57    <meta property="og:site_name" content="XOIGAC" />
58    <meta property="og:locale" content="vi_VN" />
59    
60    <!-- SEO: Twitter Card -->
61    <meta name="twitter:card" content="summary_large_image" />
62    <meta name="twitter:title" content="L&#x1ECB;ch thi &#x111;&#x1EA5;u b&#xF3;ng &#x111;&#xE1; - L&#x1ECB;ch ph&#xE1;t s&#xF3;ng tr&#x1EF1;c ti&#x1EBF;p h&#xF4;m nay | Xoigac TV" />
63    <meta name="twitter:description" content="L&#x1ECB;ch thi &#x111;&#x1EA5;u b&#xF3;ng &#x111;&#xE1; &#x111;&#x1EA7;y &#x111;&#x1EE7; c&#xE1;c gi&#x1EA3;i Ngo&#x1EA1;i h&#x1EA1;ng Anh, La Liga, Champions League, V-League. C&#x1EAD;p nh&#x1EAD;t l&#x1ECB;ch ph&#xE1;t s&#xF3;ng tr&#x1EF1;c ti&#x1EBF;p, &#x111;&#x1ED9;i h&#xEC;nh ra s&#xE2;n v&#xE0; nh&#x1EAD;n &#x111;&#x1ECB;nh tr&#x1B0;&#x1EDB;c tr&#x1EAD;n t&#x1EA1;i Xoigac TV." />
64    <meta name="twitter:image" content="https://xoigac.top/images/og-default.jpg" id="twitterImage" />
65    
66    <!-- SEO: 越南语页面标注 -->
67    <link rel="alternate" hreflang="vi" href="https://xoigac.top/lich-thi-dau" id="hreflangVi" />
68    
69    <!-- SEO: 结构化数据 (JSON-LD) -->
70        
70<script type="application/ld+json" id="structuredData">
71        {
72            "@context": "https://schema.org",
73            "@type": "WebSite",
74            "name": "XOIGAC",
75            "url": "https://xoigac.top"
76        }
77        </script>
77
78    
79    <!-- 预加载关键资源 -->
80    <!-- ★ 添加 crossorigin 属性以支持第三方Cookie的SameSite策略 -->
81    <link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin>
82    <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
83    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
84    <link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
85    <link rel="preconnect" href="https://player.live-video.net" crossorigin>
86    <link rel="dns-prefetch" href="https://media.api-sports.io">
87    <link rel="dns-prefetch" href="https://player.live-video.net">
88    
89    <!-- 预加载关键 CSS -->
90    <!-- ★ 所有第三方资源都添加 crossorigin 属性 -->
91    <!-- 预加载关键字体文件 - 本地字体 -->
92    <link rel="preload" href="/fonts/fa-solid-900.woff2" as="font" type="font/woff2" crossorigin>
93    <link rel="preload" href="/fonts/fa-regular-400.woff2" as="font" type="font/woff2" crossorigin>
94    <link rel="preload" href="/fonts/fa-brands-400.woff2" as="font" type="font/woff2" crossorigin>
95    
96    <!-- CSS 文件 - 直接加载关键CSS,避免preload延迟 -->
97    <link id="bootstrap-css" href="/lib/bootstrap/5.3.2/bootstrap.min.css?v=MBffSnbbXwHCuZtgPYiwMQbfE7z-GOZ7fBPCNB06Z98" rel="stylesheet" onerror="this.onerror=null;this.href='https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css';">
98    
99        <!-- 生产环境:使用打包文件(4个CSS合并为1个)-->
100        <link href="/dist/css/critical.bundle.css?v=XWbFOGVWnVX6Tnz6ky1zKDOPGpmCQnhsl55yeMheUfs" rel="stylesheet">
101    
102    <!-- Google Fonts - 优化加载:只加载2个字重,异步加载 -->
103    <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
104    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
105    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet" media="print" onload="this.media='all'" crossorigin>
106    <noscript><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet" crossorigin></noscript>
107    
108    <!-- 验证码脚本 - 仅未登录用户加载 -->
109        <meta name="captcha-enabled" content="false" />
110    
111    <!-- 非关键 CSS 使用异步加载 -->
112        <!-- 生产环境:使用打包文件(3个CSS合并为1个)-->
113        <link rel="preload" href="/dist/css/secondary.bundle.css?v=vkHyf3YjhiKhZnM2tUU5WSPJxcjBs_0wPPkWhNiZK0I" as="style" onload="this.onload=null;this.rel='stylesheet'">
114        <noscript><link href="/dist/css/secondary.bundle.css?v=vkHyf3YjhiKhZnM2tUU5WSPJxcjBs_0wPPkWhNiZK0I" rel="stylesheet" /></noscript>
115    <link href="/dist/css/streamer-follow.css?v=ZAQYBpWCFr8V9ttpEYE9xOwd8DhRemjzaB03PbKbm2M" rel="stylesheet">
116    <link href="/css/match-list.css?v=GeEuEA-6-18coW8mGwJWMXhZZwWa-z0T70LLP7DN2B8" rel="stylesheet">
117    <link href="/css/custom-select.css?v=zLL0ZkTEHUXx7DsnfbR23K816oiaK7d-ktskvIXEY8w" rel="stylesheet">
118    <!-- 保存当前语言和环境供 JS 使用 -->
119    
119<script>
120        window.__currentLang = 'vi';
121        window.__isDevelopment = 'false';
122        window.__matchRoutePrefix = '/truc-tiep';
123        window.__leagueRoutePrefix = '/giai-dau';
124        window.__teamRoutePrefix = '/doi-bong';
125        window.currentUserName = null;
126        (function () {
127            function isDirectoryCenterPath(pathname) {
128                var path = (pathname || '').replace(/\/+$/, '') || '/';
129                var known = ['/giai-dau', '/doi-bong', '/leagues', '/teams', window.__leagueRoutePrefix, window.__teamRoutePrefix];
130                for (var i = 0; i < known.length; i++) {
131                    var item = (known[i] || '').replace(/\/+$/, '');
132                    if (item && path === item) return true;
133                }
134                return false;
135            }
136            function isMatchDetailPath(pathname) {
137                return /-id\d+(?:\/|$)/i.test(pathname)
138                    || pathname.indexOf('/live/beauty/') === 0
139                    || pathname.indexOf('/live/football/') === 0
140                    || pathname.indexOf('/Match/Details') === 0
141                    || isDirectoryCenterPath(pathname);
142            }
143            function resetMatchDetailScroll() {
144                if (!isMatchDetailPath(location.pathname)) return;
145                window.scrollTo(0, 0);
146            }
147            resetMatchDetailScroll();
148            window.addEventListener('pageshow', resetMatchDetailScroll);
149        })();
150    </script>
150
151    
151<script src="/dist/js/share-utils.js?v=seUNJSOqxgP-1Bne1jM_9IfNGt5lEbiqu6Fc4jHd96s"></script>
151
152    
153    <!-- 内联关键CSS以避免渲染阻塞 -->
154    <style>
155    /* 页面加载遮罩层 - 防止抖动 */
156    .page-loader {
157        position: fixed;
158     style>
159    /   t加载遮罩层 - 防止抖动 */op: 0;
160        left: 0;
161        width: 100%;
162        height: 100%;
163        background: #060a10;
164        z-index: 99999;
165        display: flex;
166        align-items: center;
167        justify-content: center;
168        flex-direction: column;
169        gap: 1.5rem;
170        transition: opacity 0.3s ease, visibility 0.3s ease;
171    }
172    .page-loader.fade-out {
173        opacity: 0;
174        visibility: hidden;
175        pointer-events: none;
176    }
177    .page-loader.hidden {
178        display: none !important;
179        visibility: hidden !important;
180        pointer-events: none !important;
181        opacity: 0 !important;
182    }
183    
184    /* 聊天遮罩层:仅在隐藏时禁用点击,显示时允许点击以关闭弹窗 */
185    .chat-modal-overlay.d-none {
186        display: none !important;
187        visibility: hidden !important;
188        pointer-events: none !important;
189    }
190    /* 确保 Bootstrap 模态框不被任何自定义遮罩层阻挡 */
191    .modal.show {
192        z-index: 11000 !important;
193    }
194    .modal-backdrop.show {
195        z-index: 10990 !important;
196    }
197    .page-loader-spinner {
198        position: relative;
199        width: 60px;
200        height: 60px;
201    }
202    .page-loader-spinner::before,
203    .page-loader-spinner::after {
204        content: '';
205        position: absolute;
206        border-radius: 50%;
207    }
208    .page-loader-spinner::before {
209        width: 100%;
210        height: 100%;
211        background: conic-gradient(from 0deg, transparent, #309e58, transparent 70%);
212        animation: loader-spin 1s linear infinite;
213    }
214    .page-loader-spinner::after {
215        top: 6px;
216        left: 6px;
217        right: 6px;
218        bottom: 6px;
219        background: #060a10;
220    }
221    .page-loader-icon {
222        position: absolute;
223        top: 50%;
224        left: 50%;
225        transform: translate(-50%, -50%);
226        z-index: 1;
227        font-size: 1.25rem;
228        color: #309e58;
229        animation: loader-pulse 1.5s ease-in-out infinite;
230    }
231    .page-loader-text {
232        color: #64748b;
233        font-size: 0.875rem;
234        font-weight: 500;
235        letter-spacing: 0.5px;
236    }
237    @keyframes loader-spin {
238        to { transform: rotate(360deg); }
239    }
240    @keyframes loader-pulse {
241        0%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
242        50% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.9); }
243    }
244    
245    /* 基础布局样式 - 防止布局抖动 */
246    body { 
247        margin: 0; 
248        padding: 0; 
249        background: #060a10; 
250        color: #fff; 
251        font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
252    }
253    </style>
254    
255    <!-- CSS加载完成检测和fallback -->
256    
256<script>
257    (function() {
258        // 确保CSS加载完成
259        function loadCSS(href, onload) {
260           var link = document.createElement('link');
261            link.rel = 'stylesheet';
262            link.href = href;
263            if (onload) link.onload = onload;
264            document.head.appendChild(link);
265        }
266        
267        // 检测preload是否成功,如果失败则fallback
268        setTimeout(function() {
269            var preloadLinks = document.querySelectorAll('link[rel="preload"][as="style"]');
270            preloadLinks.forEach(function(link) {
271                if (!link.sheet || link.sheet.cssRules.length === 0) {
272                    // preload失败,直接加载CSS
273                    loadCSS(link.href);
274                }
275            });
276        }, 1000);
277    })();
278    </script>
278
279    
280
281    
282    
283    
284</head>
285<body class="dark-theme  " data-enable-console-log="false" data-retry-text="Th&#x1EED; l&#x1EA1;i" data-report-text="B&#xE1;o l&#x1ED7;i" data-playback-failed-text="L&#x1ED7;i ph&#xE1;t" data-unsupported-text="Tr&#xEC;nh duy&#x1EC7;t c&#x1EE7;a b&#x1EA1;n kh&#xF4;ng h&#x1ED7; tr&#x1EE3; tr&#xEC;nh ph&#xE1;t n&#xE0;y" data-loading-text="&#x110;ang t&#x1EA3;i t&#xE0;i nguy&#xEA;n, vui l&#xF2;ng &#x111;&#x1EE3;i v&#xE0;i gi&#xE2;y..." data-loading-hint-text="N&#x1EBF;u video kh&#xF4;ng ph&#xE1;t &#x111;&#x1B0;&#x1EE3;c ho&#x1EB7;c b&#x1ECB; gi&#x1EAD;t, h&#xE3;y th&#x1EED; t&#x1EA3;i l&#x1EA1;i" data-stream-starting-text="&#x110;ang kh&#x1EDF;i &#x111;&#x1ED9;ng tr&#x1EF1;c ti&#x1EBF;p, vui l&#xF2;ng &#x111;&#x1EE3;i" data-connecting-stream-text="&#x110;ang k&#x1EBF;t n&#x1ED1;i ngu&#x1ED3;n tr&#x1EF1;c ti&#x1EBF;p..." data-stream-timeout-text="Ch&#x1B0;a b&#x1EAF;t &#x111;&#x1EA7;u tr&#x1EF1;c ti&#x1EBF;p" data-not-live-text="Ch&#x1B0;a b&#x1EAF;t &#x111;&#x1EA7;u tr&#x1EF1;c ti&#x1EBF;p" data-wait-text="">
286    
287    <!-- 页面内容立即可见 - 移除CSS等待逻辑 -->
288    
288<script>
289    // 页面内容立即可见,不等待任何资源
290    document.body.style.visibility = 'visible';
291    document.body.classList.add('css-loaded');
292    </script>
292
293    <!-- 控制台日志配置 - 同步执行,必须早于 core.bundle.js,否则打包脚本的启动日志已经打出 -->
294    
294<script src="/dist/js/console-config.js"></script>
294
295    
296    <!-- 页面加载动画 -->
297    <div class="page-loader" id="pageLoader" style="display: none;">
298        <div class="page-loader-spinner">
299            <i class="fas fa-futbol page-loader-icon"></i>
300        </div>
301        <div class="page-loader-text">XOIGAC.TV</div>
302    </div>
303    
304    <!-- 顶部导航栏 -->
305    <nav class="navbar navbar-expand-lg navbar-dark fixed-top" id="siteNavbar">
306        <!-- 移动端 PWA 安装横幅 (navbar内部顶部) -->
307        <div id="pwa-top-banner" class="pwa-top-banner d-none">
308            <button class="pwa-top-banner-close" onclick="closePwaTopBanner()" aria-label="关闭">
309                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
310            </button>
311            <img src="/images/pwa/apple-touch-icon.png?v=20260923" alt="App" class="pwa-top-banner-icon">
312            <div class="pwa-top-banner-text">
313                <strong>&#x1EE8;ng D&#x1EE5;ng Xoigac.tv</strong>
314                <span>Xem b&#xF3;ng &#x111;&#xE1; tr&#x1EF1;c ti&#x1EBF;p m&#x1ECD;i l&#xFA;c, m&#x1ECD;i n&#x1A1;i.</span>
315            </div>
316            <button class="pwa-top-banner-install" onclick="installPwaFromBanner()">C&#xE0;i &#x110;&#x1EB7;t Ngay</button>
317        </div>
318
319        <div class="navbar-container search-collapsed">
320            <!-- 左侧:Logo -->
321            <a class="navbar-brand d-flex align-items-center" href="/">
322                <img src="/images/logo-full.webp" alt="XOIGAC" class="brand-logo-full" width="889" height="240" onerror="if(!this.dataset.fallback){this.src='/images/logo-full.png';this.dataset.fallback='true';}">
323            </a>
324            
325            <!-- H5: 用户操作区放到菜单图标左侧 -->
326            <div class="mobile-user-actions d-lg-none">
327                <!-- Push 通知按钮 (移动端) -->
328                <button class="btn btn-icon" id="mobile-push-subscribe-btn" data-i18n-title="push.enableNotifications" title="B&#x1EAD;t th&#xF4;ng b&#xE1;o &#x111;&#x1EA9;y" aria-label="B&#x1EAD;t th&#xF4;ng b&#xE1;o &#x111;&#x1EA9;y" style="display: none;">
329                    <i class="fas fa-bell"></i>
330                </button>
331                <button class="btn btn-icon" data-i18n-title="common.favorites" title="Y&#xEA;u th&#xED;ch" aria-label="Y&#xEA;u th&#xED;ch" data-auth="false" onclick="handleNavbarFavoriteClick(this)">
332                    <i class="fas fa-star"></i>
333                </button>
334                
335                <!-- 移动端语言切换按钮 (收藏右侧,只显示图标) -->
336                <div class="dropdown">
337                    <button class="btn btn-icon dropdown-toggle" type="button" data-bs-toggle="dropdown" data-i18n-title="common.changeLanguage" title="&#x110;&#x1ED5;i ng&#xF4;n ng&#x1EEF;" aria-label="&#x110;&#x1ED5;i ng&#xF4;n ng&#x1EEF;">
338                        <i class="fas fa-globe"></i>
339                    </button>
340                    <ul class="dropdown-menu dropdown-menu-end">
341                        <li><a class="dropdown-item" href="/set-lang?lang=vi&amp;returnUrl=%2Flich-thi-dau" rel="nofollow" onclick="event.preventDefault(); changeLanguage('vi')"><span class="me-2">🇻🇳</span>Tiếng Việt (VI)</a></li>
342                        <li><a class="dropdown-item" href="/set-lang?lang=en&amp;returnUrl=%2Flich-thi-dau" rel="nofollow" onclick="event.preventDefault(); changeLanguage('en')"><span class="me-2">🇺🇸</span>English (EN)</a></li>
343                        <li><a class="dropdown-item" href="/set-lang?lang=zh&amp;returnUrl=%2Flich-thi-dau" rel="nofollow" onclick="event.preventDefault(); changeLanguage('zh')"><span class="me-2">🇨🇳</span>中文 (ZH)</a></li>
344                    </ul>
345                </div>
346                
347                    <a href="javascript:void(0)" onclick="window.AuthModal?.open('login')" class="btn btn-icon" title="登录" aria-label="登录">
348                        <i class="fas fa-user"></i>
349                    </a>
350            </div>
351
352            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Menu">
353                <span class="navbar-toggler-icon"></span>
354            </button>
355
356            <div class="collapse navbar-collapse" id="navbarNav">
357                <!-- 移动端搜索框 -->
358                <div class="mobile-search-box d-lg-none mb-3 mt-2">
359                    <input type="text" 
360                           id="mobileSearchInput"
361                           name="mobileSearchInput"
362                           class="mobile-search-input" 
363                           placeholder="T&#xEC;m ki&#x1EBF;m &#x111;&#x1ED9;i b&#xF3;ng, gi&#x1EA3;i &#x111;&#x1EA5;u..."
364                           autocomplete="off" />
365                    <button type="button" class="btn btn-search-icon" id="mobileSearchButton" title="T&#xEC;m ki&#x1EBF;m &#x111;&#x1ED9;i b&#xF3;ng, gi&#x1EA3;i &#x111;&#x1EA5;u..." aria-label="T&#xEC;m ki&#x1EBF;m &#x111;&#x1ED9;i b&#xF3;ng, gi&#x1EA3;i &#x111;&#x1EA5;u...">
366                        <i class="fas fa-search"></i>
367                    </button>
368                </div>
369                <ul class="navbar-nav me-auto">
370                    <li class="nav-item">
371                        <a class="nav-link nav-link-icon " href="/">
372                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
373                            <span>Trang ch&#x1EE7;</span>
374                        </a>
375                    </li>
376                    <li class="nav-item">
377                        <a class="nav-link nav-link-icon " href="/truc-tiep">
378                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="2"></circle><path d="M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14"></path></svg>
379                            <span>Tr&#x1EF1;c ti&#x1EBF;p</span>
380                        </a>
381                    </li>
382                    <li class="nav-item">
383                        <a class="nav-link nav-link-icon " href="/hom-nay">
384                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
385                            <span>H&#xF4;m nay</span>
386                        </a>
387                    </li>
388                    <li class="nav-item">
389                        <a class="nav-link nav-link-icon " href="/lich-thi-dau">
390                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
391                            <span>L&#x1ECB;ch thi &#x111;&#x1EA5;u</span>
392                        </a>
393                    </li>
394                    <li class="nav-item">
395                        <a class="nav-link nav-link-icon " href="/tin-tuc-bong-da">
396                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2"></path><path d="M18 14h-8"></path><path d="M15 18h-5"></path><path d="M10 6h8v4h-8V6Z"></path></svg>
397                            <span>Tin T&#x1EE9;c</span>
398                        </a>
399                    </li>
400                    <li class="nav-item">
401                        <a class="nav-link nav-link-icon " href="/nhan-dinh-bong-da">
402                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="20" x2="18" y2="10"></line><line x1="12" y1="20" x2="12" y2="4"></line><line x1="6" y1="20" x2="6" y2="14"></line></svg>
403                            <span>Nh&#x1EAD;n &#x110;&#x1ECB;nh</span>
404                        </a>
405                    </li>
406                </ul>
407                
408                <!-- PC端搜索框(居右,在主内容容器内) -->
409                <div class="search-box d-none d-lg-flex" id="desktopSearchBox">
410                    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg>
411                    <input type="text" placeholder="T&#xEC;m ki&#x1EBF;m &#x111;&#x1ED9;i b&#xF3;ng, gi&#x1EA3;i &#x111;&#x1EA5;u..." />
412                </div>
413                
414                <!-- 搜索弹出框 -->
415                <div class="search-popup" id="searchPopup">
416                    <div class="search-popup-content">
417                        <div class="search-input-wrapper">
418                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg>
419                            <input type="text" placeholder="T&#xEC;m ki&#x1EBF;m &#x111;&#x1ED9;i b&#xF3;ng, gi&#x1EA3;i &#x111;&#x1EA5;u..." id="popupSearchInput" />
420                            <button class="btn btn-icon search-close-btn" id="searchCloseBtn" aria-label="&#x110;&#xF3;ng">
421                                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
422                            </button>
423                        </div>
424                    </div>
425                </div>
426                
427                <!-- PC端:用户操作区(移入导航栏容器内部) -->
428                <div class="user-actions d-none d-lg-flex ms-auto">
429                    <!-- Push 通知按钮 (桌面端) -->
430                    <button class="btn btn-icon" id="push-subscribe-btn" data-i18n-title="push.enableNotifications" title="B&#x1EAD;t th&#xF4;ng b&#xE1;o &#x111;&#x1EA9;y" aria-label="B&#x1EAD;t th&#xF4;ng b&#xE1;o &#x111;&#x1EA9;y" style="display: none;">
431                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"></path><path d="M13.73 21a2 2 0 0 1-3.46 0"></path></svg>
432                    </button>
433                    <button class="btn btn-icon" data-i18n-title="common.favorites" title="Y&#xEA;u th&#xED;ch" aria-label="Y&#xEA;u th&#xED;ch" data-auth="false" onclick="handleNavbarFavoriteClick(this)">
434                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon></svg>
435                    </button>
436
437                    <!-- PC端搜索图标按钮 -->
438                    <button class="btn btn-icon search-icon-btn" id="searchIconBtn" type="button" title="T&#xEC;m ki&#x1EBF;m &#x111;&#x1ED9;i b&#xF3;ng, gi&#x1EA3;i &#x111;&#x1EA5;u..." aria-label="T&#xEC;m ki&#x1EBF;m &#x111;&#x1ED9;i b&#xF3;ng, gi&#x1EA3;i &#x111;&#x1EA5;u...">
439                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg>
440                    </button>
441                    
442                    <!-- PC端语言切换按钮 -->
443                    <div class="dropdown">
444                        <button class="btn btn-icon lang-switch-btn" type="button" data-bs-toggle="dropdown" data-i18n-title="common.changeLanguage" title="&#x110;&#x1ED5;i ng&#xF4;n ng&#x1EEF;" aria-label="&#x110;&#x1ED5;i ng&#xF4;n ng&#x1EEF;">
445                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="me-1"><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
446                            <span>VI</span>
447                        </button>
448                        <ul class="dropdown-menu dropdown-menu-end">
449                            <li><a class="dropdown-item" href="/set-lang?lang=vi&amp;returnUrl=%2Flich-thi-dau" rel="nofollow" onclick="event.preventDefault(); changeLanguage('vi')"><span class="me-2">🇻🇳</span>Tiếng Việt (VI)</a></li>
450                            <li><a class="dropdown-item" href="/set-lang?lang=en&amp;returnUrl=%2Flich-thi-dau" rel="nofollow" onclick="event.preventDefault(); changeLanguage('en')"><span class="me-2">🇺🇸</span>English (EN)</a></li>
451                            <li><a class="dropdown-item" href="/set-lang?lang=zh&amp;returnUrl=%2Flich-thi-dau" rel="nofollow" onclick="event.preventDefault(); changeLanguage('zh')"><span class="me-2">🇨🇳</span>中文 (ZH)</a></li>
452                        </ul>
453                    </div>
454                    
455                        <a href="javascript:void(0)" onclick="window.AuthModal?.open('login')" class="btn btn-primary btn-sm ms-2">
456                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="me-1"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
457                            <span>&#x110;&#x103;ng nh&#x1EAD;p</span>
458                        </a>
459                </div>
460
461                </div>
462            </div>
463    </nav>
464    <div class="mobile-menu-overlay" id="mobileMenuOverlay" aria-hidden="true"></div>
465    
466    <!-- 主内容区 -->
467    <input name="__RequestVerificationToken" type="hidden" value="CfDJ8IwpNTNw2w9OptYg9zhENLTk37n47dYR1CoJbuys_hkzAx2xwb1qC_bgSQR-HaR9z2otAOxwJp4MzYOR-xDFWvviMRBAj-u17hoMjT3gxD5XT2oLPPnIr4R2DvrfeoVUjXaq6BoRt5omke17sFbCNhY" />
468    <div id="articleGridSkeletonTemplate" hidden>
469        <div class="ags" aria-hidden="true">
470    <div class="ags-banners">
471        <div class="ags-banner ags-shimmer"></div>
472        <div class="ags-banner ags-shimmer"></div>
473        <div class="ags-banner ags-shimmer"></div>
474    </div>
475
476    <div class="ags-body">
477    <div class="ags-page-title ags-shimmer"></div>
478
479    <section class="ags-hero">
480        <div class="ags-hero-media ags-shimmer"></div>
481        <div class="ags-hero-body">
482            <div class="ags-line ags-line-title ags-shimmer"></div>
483            <div class="ags-line ags-line-title ags-line-short ags-shimmer"></div>
484            <div class="ags-line ags-shimmer"></div>
485            <div class="ags-line ags-line-mid ags-shimmer"></div>
486            <div class="ags-actions">
487                <div class="ags-btn ags-shimmer"></div>
488                <div class="ags-btn ags-shimmer"></div>
489            </div>
490        </div>
491    </section>
492
493    <div class="ags-latest">
494        <div class="ags-line ags-line-heading ags-shimmer"></div>
495        <div class="ags-search ags-shimmer"></div>
496    </div>
497
498    <div class="ags-grid">
499            <div class="ags-card">
500                <div class="ags-card-image ags-shimmer"></div>
501                <div class="ags-card-body">
502                    <div class="ags-line ags-shimmer"></div>
503                    <div class="ags-line ags-line-mid ags-shimmer"></div>
504                    <div class="ags-card-footer">
505                        <div class="ags-author">
506                            <div class="ags-avatar ags-shimmer"></div>
507                            <div class="ags-line ags-line-meta ags-shimmer"></div>
508                        </div>
509                        <div class="ags-line ags-line-date ags-shimmer"></div>
510                    </div>
511                </div>
512            </div>
513            <div class="ags-card">
514                <div class="ags-card-image ags-shimmer"></div>
515                <div class="ags-card-body">
516                    <div class="ags-line ags-shimmer"></div>
517                    <div class="ags-line ags-line-mid ags-shimmer"></div>
518                    <div class="ags-card-footer">
519                        <div class="ags-author">
520                            <div class="ags-avatar ags-shimmer"></div>
521                            <div class="ags-line ags-line-meta ags-shimmer"></div>
522                        </div>
523                        <div class="ags-line ags-line-date ags-shimmer"></div>
524                    </div>
525                </div>
526            </div>
527            <div class="ags-card">
528                <div class="ags-card-image ags-shimmer"></div>
529                <div class="ags-card-body">
530                    <div class="ags-line ags-shimmer"></div>
531                    <div class="ags-line ags-line-mid ags-shimmer"></div>
532                    <div class="ags-card-footer">
533                        <div class="ags-author">
534                            <div class="ags-avatar ags-shimmer"></div>
535                            <div class="ags-line ags-line-meta ags-shimmer"></div>
536                        </div>
537                        <div class="ags-line ags-line-date ags-shimmer"></div>
538                    </div>
539                </div>
540            </div>
541            <div class="ags-card">
542                <div class="ags-card-image ags-shimmer"></div>
543                <div class="ags-card-body">
544                    <div class="ags-line ags-shimmer"></div>
545                    <div class="ags-line ags-line-mid ags-shimmer"></div>
546                    <div class="ags-card-footer">
547                        <div class="ags-author">
548                            <div class="ags-avatar ags-shimmer"></div>
549                            <div class="ags-line ags-line-meta ags-shimmer"></div>
550                        </div>
551                        <div class="ags-line ags-line-date ags-shimmer"></div>
552                    </div>
553                </div>
554            </div>
555            <div class="ags-card">
556                <div class="ags-card-image ags-shimmer"></div>
557                <div class="ags-card-body">
558                    <div class="ags-line ags-shimmer"></div>
559                    <div class="ags-line ags-line-mid ags-shimmer"></div>
560                    <div class="ags-card-footer">
561                        <div class="ags-author">
562                            <div class="ags-avatar ags-shimmer"></div>
563                            <div class="ags-line ags-line-meta ags-shimmer"></div>
564                        </div>
565                        <div class="ags-line ags-line-date ags-shimmer"></div>
566                    </div>
567                </div>
568            </div>
569            <div class="ags-card">
570                <div class="ags-card-image ags-shimmer"></div>
571                <div class="ags-card-body">
572                    <div class="ags-line ags-shimmer"></div>
573                    <div class="ags-line ags-line-mid ags-shimmer"></div>
574                    <div class="ags-card-footer">
575                        <div class="ags-author">
576                            <div class="ags-avatar ags-shimmer"></div>
577                            <div class="ags-line ags-line-meta ags-shimmer"></div>
578                        </div>
579                        <div class="ags-line ags-line-date ags-shimmer"></div>
580                    </div>
581                </div>
582            </div>
583            <div class="ags-card">
584                <div class="ags-card-image ags-shimmer"></div>
585                <div class="ags-card-body">
586                    <div class="ags-line ags-shimmer"></div>
587                    <div class="ags-line ags-line-mid ags-shimmer"></div>
588                    <div class="ags-card-footer">
589                        <div class="ags-author">
590                            <div class="ags-avatar ags-shimmer"></div>
591                            <div class="ags-line ags-line-meta ags-shimmer"></div>
592                        </div>
593                        <div class="ags-line ags-line-date ags-shimmer"></div>
594                    </div>
595                </div>
596            </div>
597            <div class="ags-card">
598                <div class="ags-card-image ags-shimmer"></div>
599                <div class="ags-card-body">
600                    <div class="ags-line ags-shimmer"></div>
601                    <div class="ags-line ags-line-mid ags-shimmer"></div>
602                    <div class="ags-card-footer">
603                        <div class="ags-author">
604                            <div class="ags-avatar ags-shimmer"></div>
605                            <div class="ags-line ags-line-meta ags-shimmer"></div>
606                        </div>
607                        <div class="ags-line ags-line-date ags-shimmer"></div>
608                    </div>
609                </div>
610            </div>
611            <div class="ags-card">
612                <div class="ags-card-image ags-shimmer"></div>
613                <div class="ags-card-body">
614                    <div class="ags-line ags-shimmer"></div>
615                    <div class="ags-line ags-line-mid ags-shimmer"></div>
616                    <div class="ags-card-footer">
617                        <div class="ags-author">
618                            <div class="ags-avatar ags-shimmer"></div>
619                            <div class="ags-line ags-line-meta ags-shimmer"></div>
620                        </div>
621                        <div class="ags-line ags-line-date ags-shimmer"></div>
622                    </div>
623                </div>
624            </div>
625            <div class="ags-card">
626                <div class="ags-card-image ags-shimmer"></div>
627                <div class="ags-card-body">
628                    <div class="ags-line ags-shimmer"></div>
629                    <div class="ags-line ags-line-mid ags-shimmer"></div>
630                    <div class="ags-card-footer">
631                        <div class="ags-author">
632                            <div class="ags-avatar ags-shimmer"></div>
633                            <div class="ags-line ags-line-meta ags-shimmer"></div>
634                        </div>
635                        <div class="ags-line ags-line-date ags-shimmer"></div>
636                    </div>
637                </div>
638            </div>
639            <div class="ags-card">
640                <div class="ags-card-image ags-shimmer"></div>
641                <div class="ags-card-body">
642                    <div class="ags-line ags-shimmer"></div>
643                    <div class="ags-line ags-line-mid ags-shimmer"></div>
644                    <div class="ags-card-footer">
645                        <div class="ags-author">
646                            <div class="ags-avatar ags-shimmer"></div>
647                            <div class="ags-line ags-line-meta ags-shimmer"></div>
648                        </div>
649                        <div class="ags-line ags-line-date ags-shimmer"></div>
650                    </div>
651                </div>
652            </div>
653            <div class="ags-card">
654                <div class="ags-card-image ags-shimmer"></div>
655                <div class="ags-card-body">
656                    <div class="ags-line ags-shimmer"></div>
657                    <div class="ags-line ags-line-mid ags-shimmer"></div>
658                    <div class="ags-card-footer">
659                        <div class="ags-author">
660                            <div class="ags-avatar ags-shimmer"></div>
661                            <div class="ags-line ags-line-meta ags-shimmer"></div>
662                        </div>
663                        <div class="ags-line ags-line-date ags-shimmer"></div>
664                    </div>
665                </div>
666            </div>
667            <div class="ags-card">
668                <div class="ags-card-image ags-shimmer"></div>
669                <div class="ags-card-body">
670                    <div class="ags-line ags-shimmer"></div>
671                    <div class="ags-line ags-line-mid ags-shimmer"></div>
672                    <div class="ags-card-footer">
673                        <div class="ags-author">
674                            <div class="ags-avatar ags-shimmer"></div>
675                            <div class="ags-line ags-line-meta ags-shimmer"></div>
676                        </div>
677                        <div class="ags-line ags-line-date ags-shimmer"></div>
678                    </div>
679                </div>
680            </div>
681            <div class="ags-card">
682                <div class="ags-card-image ags-shimmer"></div>
683                <div class="ags-card-body">
684                    <div class="ags-line ags-shimmer"></div>
685                    <div class="ags-line ags-line-mid ags-shimmer"></div>
686                    <div class="ags-card-footer">
687                        <div class="ags-author">
688                            <div class="ags-avatar ags-shimmer"></div>
689                            <div class="ags-line ags-line-meta ags-shimmer"></div>
690                        </div>
691                        <div class="ags-line ags-line-date ags-shimmer"></div>
692                    </div>
693                </div>
694            </div>
695            <div class="ags-card">
696                <div class="ags-card-image ags-shimmer"></div>
697                <div class="ags-card-body">
698                    <div class="ags-line ags-shimmer"></div>
699                    <div class="ags-line ags-line-mid ags-shimmer"></div>
700                    <div class="ags-card-footer">
701                        <div class="ags-author">
702                            <div class="ags-avatar ags-shimmer"></div>
703                            <div class="ags-line ags-line-meta ags-shimmer"></div>
704                        </div>
705                        <div class="ags-line ags-line-date ags-shimmer"></div>
706                    </div>
707                </div>
708            </div>
709            <div class="ags-card">
710                <div class="ags-card-image ags-shimmer"></div>
711                <div class="ags-card-body">
712                    <div class="ags-line ags-shimmer"></div>
713                    <div class="ags-line ags-line-mid ags-shimmer"></div>
714                    <div class="ags-card-footer">
715                        <div class="ags-author">
716                            <div class="ags-avatar ags-shimmer"></div>
717                            <div class="ags-line ags-line-meta ags-shimmer"></div>
718                        </div>
719                        <div class="ags-line ags-line-date ags-shimmer"></div>
720                    </div>
721                </div>
722            </div>
723            <div class="ags-card">
724                <div class="ags-card-image ags-shimmer"></div>
725                <div class="ags-card-body">
726                    <div class="ags-line ags-shimmer"></div>
727                    <div class="ags-line ags-line-mid ags-shimmer"></div>
728                    <div class="ags-card-footer">
729                        <div class="ags-author">
730                            <div class="ags-avatar ags-shimmer"></div>
731                            <div class="ags-line ags-line-meta ags-shimmer"></div>
732                        </div>
733                        <div class="ags-line ags-line-date ags-shimmer"></div>
734                    </div>
735                </div>
736            </div>
737            <div class="ags-card">
738                <div class="ags-card-image ags-shimmer"></div>
739                <div class="ags-card-body">
740                    <div class="ags-line ags-shimmer"></div>
741                    <div class="ags-line ags-line-mid ags-shimmer"></div>
742                    <div class="ags-card-footer">
743                        <div class="ags-author">
744                            <div class="ags-avatar ags-shimmer"></div>
745                            <div class="ags-line ags-line-meta ags-shimmer"></div>
746                        </div>
747                        <div class="ags-line ags-line-date ags-shimmer"></div>
748                    </div>
749                </div>
750            </div>
751            <div class="ags-card">
752                <div class="ags-card-image ags-shimmer"></div>
753                <div class="ags-card-body">
754                    <div class="ags-line ags-shimmer"></div>
755                    <div class="ags-line ags-line-mid ags-shimmer"></div>
756                    <div class="ags-card-footer">
757                        <div class="ags-author">
758                            <div class="ags-avatar ags-shimmer"></div>
759                            <div class="ags-line ags-line-meta ags-shimmer"></div>
760                        </div>
761                        <div class="ags-line ags-line-date ags-shimmer"></div>
762                    </div>
763                </div>
764            </div>
765            <div class="ags-card">
766                <div class="ags-card-image ags-shimmer"></div>
767                <div class="ags-card-body">
768                    <div class="ags-line ags-shimmer"></div>
769                    <div class="ags-line ags-line-mid ags-shimmer"></div>
770                    <div class="ags-card-footer">
771                        <div class="ags-author">
772                            <div class="ags-avatar ags-shimmer"></div>
773                            <div class="ags-line ags-line-meta ags-shimmer"></div>
774                        </div>
775                        <div class="ags-line ags-line-date ags-shimmer"></div>
776                    </div>
777                </div>
778            </div>
779    </div>
780    </div>
781</div>
782
783<style>
784    .ags-shimmer {
785        position: relative;
786        overflow: hidden;
787        background: rgba(30, 41, 59, 0.6);
788        border-radius: 12px;
789    }
790
791    .ags-shimmer::after {
792        content: "";
793        position: absolute;
794        inset: 0;
795        background: linear-gradient(90deg, transparent, rgba(148, 163, 184, 0.22), transparent);
796        transform: translateX(-100%);
797        animation: ags-pulse 1.4s ease-in-out infinite;
798    }
799
800    .ags-banners {
801        display: flex;
802        flex-direction: column;
803        gap: 10px;
804        margin: 16px auto;
805        padding: 0 2px;
806    }
807
808    .ags-banner {
809        width: 100%;
810        aspect-ratio: 2872 / 180;
811        border-radius: 12px;
812    }
813
814    .ags-body {
815        max-width: 1500px;
816        margin: 0 auto;
817        padding: 1rem 2rem 0;
818    }
819
820    .ags-page-title {
821        width: min(420px, 55%);
822        height: 2.1rem;
823        margin-bottom: 1.5rem;
824    }
825
826    .ags-hero {
827        display: grid;
828        grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
829        height: 370px;
830        margin-bottom: 32px;
831        border-radius: 16px;
832        overflow: hidden;
833        background: #0c1929;
834    }
835
836    .ags-hero-media {
837        height: 100%;
838        border-radius: 0;
839    }
840
841    .ags-hero-body {
842        display: flex;
843        flex-direction: column;
844        justify-content: center;
845        gap: 12px;
846        padding: 32px;
847    }
848
849    .ags-line {
850        height: 14px;
851        width: 100%;
852    }
853
854    .ags-line-title {
855        height: 22px;
856    }
857
858    .ags-line-short {
859        width: 72%;
860    }
861
862    .ags-line-mid {
863        width: 84%;
864    }
865
866    .ags-line-heading {
867        width: 180px;
868        height: 22px;
869    }
870
871    .ags-actions {
872        display: flex;
873        gap: 12px;
874        margin-top: 8px;
875    }
876
877    .ags-btn {
878        width: 128px;
879        height: 40px;
880        border-radius: 999px;
881    }
882
883    .ags-latest {
884        display: flex;
885        align-items: center;
886        justify-content: space-between;
887        gap: 16px;
888        height: 42px;
889        margin-bottom: 20px;
890    }
891
892    .ags-search {
893        width: 240px;
894        height: 40px;
895        border-radius: 10px;
896    }
897
898    .ags-grid {
899        display: grid;
900        grid-template-columns: repeat(4, minmax(0, 1fr));
901        gap: 1.5rem;
902    }
903
904    .ags-card {
905        border-radius: 20px;
906        overflow: hidden;
907        background: #0c1929;
908        border: 1px solid rgba(14, 165, 233, 0.08);
909        display: flex;
910        flex-direction: column;
911    }
912
913    .ags-card-image {
914        height: 220px;
915        border-radius: 0;
916        flex-shrink: 0;
917    }
918
919    .ags-card-body {
920        display: flex;
921        flex-direction: column;
922        padding: 1.25rem 1.5rem 1.5rem;
923    }
924
925    .ags-card-body > .ags-line:first-child {
926        height: calc(1.1rem * 1.5 * 2);
927        margin-bottom: 0.75rem;
928    }
929
930    .ags-card-body > .ags-line:nth-child(2) {
931        height: calc(0.9rem * 1.6 * 2);
932        margin-bottom: 1rem;
933    }
934
935    .ags-card-footer {
936        display: flex;
937        align-items: center;
938        justify-content: space-between;
939        margin-top: 6px;
940        padding-top: 12px;
941    }
942
943    .ags-author {
944        display: flex;
945        align-items: center;
946        gap: 8px;
947    }
948
949    .ags-avatar {
950        width: 28px;
951        height: 28px;
952        border-radius: 50%;
953        flex-shrink: 0;
954    }
955
956    .ags-line-meta {
957        width: 72px;
958        height: 12px;
959    }
960
961    .ags-line-date {
962        width: 52px;
963        height: 12px;
964    }
965
966    @media (min-width: 1920px) {
967        .ags-body { padding-left: 4rem; padding-right: 4rem; }
968    }
969
970    @media (min-width: 2560px) {
971        .ags-body { padding-left: 6rem; padding-right: 6rem; }
972    }
973
974    @media (max-width: 1400px) {
975        .ags-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
976    }
977
978    @media (max-width: 1200px) {
979        .ags-hero { height: 335px; }
980    }
981
982    @media (max-width: 992px) {
983        .ags-hero { height: 290px; }
984        .ags-body { padding-left: 0.5rem; padding-right: 0.5rem; }
985    }
986
987    @media (max-width: 768px) {
988        .ags-banners {
989            gap: 4px;
990            margin: 10px 0 0;
991            padding: 0;
992        }
993        .ags-banner {
994            aspect-ratio: 440 / 50;
995            border-radius: 10px;
996        }
997        .ags-hero { display: none; }
998        .ags-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
999        .ags-card-image { height: 180px; }
1000        .ags-latest { flex-wrap: wrap; align-items: stretch; height: 86px; row-gap: 12px; }
1001        .ags-search { width: 100%; height: 38px; }
1002    }
1003
1004    @media (max-width: 576px) {
1005        .ags-grid { grid-template-columns: 1fr; }
1006    }
1007
1008    @keyframes ags-pulse {
1009        0% { transform: translateX(-100%); }
1010        100% { transform: translateX(100%); }
1011    }
1012
1013    @media (prefers-reduced-motion: reduce) {
1014        .ags-shimmer::after { animation: none; }
1015    }
1016</style>
1017
1018    </div>
1019    <main id="main-content" class="main-content">
1020        
1021<style>
1022    .match-list-page.container-fluid {
1023        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', 'Roboto', sans-serif;
1024        -webkit-font-smoothing: antialiased;
1025        max-width: 1200px;
1026        margin: 0 auto;
1027    }
1028
1029    /* ===== SVG 图标基础 ===== */
1030    .icon {
1031        width: 1em; height: 1em;
1032        display: inline-block;
1033        vertical-align: -0.125em;
1034        fill: currentColor;
1035        stroke: currentColor;
1036        flex-shrink: 0;
1037    }
1038    .icon-empty {
1039        width: 2.5rem; height: 2.5rem;
1040    }
1041
1042    /* ===== 筛选栏 ===== */
1043    .filter-bar {
1044        padding: 12px 16px;
1045        position: sticky;
1046        top: 0;
1047        z-index: 100;
1048        background: var(--bg-body, #0d1117);
1049    }
1050    .filter-bar-row {
1051        display: flex;
1052        align-items: center;
1053        justify-content: space-between;
1054        gap: 12px;
1055    }
1056    .filter-tabs-row {
1057        display: flex;
1058        gap: 8px;
1059        overflow-x: auto;
1060        scrollbar-width: none;
1061        flex: 1;
1062        min-width: 0;
1063    }
1064    .filter-tabs-row::-webkit-scrollbar { display: none; }
1065    .filter-pill {
1066        display: inline-flex;
1067        align-items: center;
1068        gap: 6px;
1069        padding: 7px 16px;
1070        border-radius: 20px;
1071        font-size: 0.8125rem;
1072        font-weight: 600;
1073        text-decoration: none;
1074        white-space: nowrap;
1075        transition: all 0.2s;
1076        background: rgba(255,255,255,0.06);
1077        color: rgba(255,255,255,0.7);
1078        border: 1px solid rgba(255,255,255,0.08);
1079    }
1080    .filter-pill:hover {
1081        background: rgba(255,255,255,0.1);
1082        color: #fff;
1083    }
1084    .filter-pill.active {
1085        background: #22c55e;
1086        color: #fff;
1087        border-color: #22c55e;
1088    }
1089    .filter-pill .live-indicator-dot {
1090        width: 10px; height: 10px;
1091        background: #22c55e;
1092        border-radius: 50%;
1093        animation: livePulse 1.5s infinite;
1094        box-shadow: 0 0 6px rgba(34, 197, 94, 0.6);
1095    }
1096    .filter-pill.active .live-indicator-dot {
1097        background: #fff;
1098        box-shadow: 0 0 6px rgba(255, 255, 255, 0.6);
1099    }
1100    .pill-count {
1101        background: rgba(255,255,255,0.2);
1102        padding: 1px 7px;
1103        border-radius: 10px;
1104        font-size: 0.6875rem;
1105    }
1106
1107    /* ===== 联赛区块 ===== */
1108    .lg-section {
1109        border-bottom: 1px solid rgba(255,255,255,0.06);
1110    }
1111    .lg-header {
1112        display: flex;
1113        align-items: center;
1114        justify-content: space-between;
1115        padding: 10px 16px;
1116        background: rgba(255,255,255,0.03);
1117        border-bottom: 1px solid rgba(255,255,255,0.06);
1118    }
1119    .lg-header-left {
1120        display: flex;
1121        align-items: center;
1122        gap: 8px;
1123        min-width: 0;
1124    }
1125    .lg-fav-btn {
1126        background: none;
1127        border: none;
1128        color: rgba(255,255,255,0.3);
1129        padding: 4px;
1130        cursor: pointer;
1131        flex-shrink: 0;
1132    }
1133    .lg-fav-btn .icon { width: 14px; height: 14px; }
1134    .lg-fav-btn:hover { color: #fbbf24; }
1135    .lg-country-name {
1136        font-size: 0.8125rem;
1137        font-weight: 600;
1138        color: rgba(255,255,255,0.9);
1139        text-transform: uppercase;
1140        letter-spacing: 0.02em;
1141        white-space: nowrap;
1142    }
1143    .lg-logo {
1144        width: 20px; height: 20px;
1145        object-fit: contain;
1146        flex-shrink: 0;
1147    }
1148    .lg-name {
1149        font-size: 0.8125rem;
1150        font-weight: 600;
1151        color: rgba(255,255,255,0.9);
1152        white-space: nowrap;
1153        overflow: hidden;
1154        text-overflow: ellipsis;
1155    }
1156    .lg-header-right {
1157        display: flex;
1158        align-items: center;
1159        gap: 12px;
1160        flex-shrink: 0;
1161    }
1162    .lg-collapse-btn {
1163        background: none;
1164        border: none;
1165        color: rgba(255,255,255,0.4);
1166        padding: 4px 6px;
1167        cursor: pointer;
1168        transition: transform 0.2s;
1169    }
1170    .lg-collapse-btn .icon { width: 14px; height: 14px; }
1171    .lg-collapse-btn:hover { color: rgba(255,255,255,0.7); }
1172
1173    /* ===== 比赛行(双行布局) ===== */
1174    .mx-row {
1175        display: flex;
1176        align-items: center;
1177        padding: 8px 16px;
1178        border-bottom: 1px solid rgba(255,255,255,0.04);
1179        gap: 12px;
1180        transition: background 0.15s;
1181    }
1182    .mx-row:last-child { border-bottom: none; }
1183    .mx-row:hover { background: rgba(255,255,255,0.03); }
1184    .mx-row.is-live {
1185        background: rgba(34, 197, 94, 0.04);
1186    }
1187    .mx-row.is-live:hover {
1188        background: rgba(34, 197, 94, 0.07);
1189    }
1190    .mx-row.is-finished { opacity: 0.65; }
1191    .mx-row.is-finished:hover { opacity: 1; }
1192
1193    /* 左侧:收藏+状态 */
1194    .mx-left {
1195        display: flex;
1196        align-items: center;
1197        gap: 8px;
1198        flex-shrink: 0;
1199        width: 100px;
1200    }
1201    .mx-fav-btn {
1202        background: none;
1203        border: none;
1204        color: rgba(255,255,255,0.25);
1205        padding: 4px;
1206        cursor: pointer;
1207        flex-shrink: 0;
1208    }
1209    .mx-fav-btn .icon { width: 16px; height: 16px; }
1210    .mx-fav-btn:hover, .mx-fav-btn.active { color: #fbbf24; }
1211    .mx-status {
1212        display: flex;
1213        flex-direction: column;
1214        align-items: center;
1215        gap: 2px;
1216        min-width: 50px;
1217    }
1218    .mx-status-badge {
1219        font-size: 0.6875rem;
1220        font-weight: 700;
1221        padding: 2px 6px;
1222        border-radius: 4px;
1223        text-transform: uppercase;
1224        letter-spacing: 0.03em;
1225    }
1226    .mx-status-badge.live {
1227        background: rgba(239, 68, 68, 0.15);
1228        color: #ef4444;
1229        animation: liveGlow 2s infinite;
1230    }
1231    .mx-status-badge.finished { background: rgba(107,114,128,0.15); color: #9ca3af; }
1232    .mx-status-badge.ht { background: rgba(251,191,36,0.15); color: #f59e0b; }
1233    .mx-status-badge.postponed, .mx-status-badge.suspended, .mx-status-badge.interrupted {
1234        background: rgba(239,68,68,0.1); color: #ef4444;
1235    }
1236    .mx-status-badge.aet, .mx-status-badge.pen {
1237        background: rgba(139,92,246,0.15); color: #8b5cf6;
1238    }
1239    .mx-minute {
1240        color: #ef4444;
1241        font-size: 0.8125rem;
1242        font-weight: 700;
1243        font-variant-numeric: tabular-nums;
1244    }
1245    .mx-minute .minute-tick {
1246        display: inline-block;
1247        animation: minuteTickJitter 1s infinite;
1248    }
1249    .mx-time {
1250        font-size: 0.8125rem;
1251        font-weight: 600;
1252        color: rgba(255,255,255,0.85);
1253        font-variant-numeric: tabular-nums;
1254    }
1255    .mx-date {
1256        font-size: 0.6875rem;
1257        color: rgba(255,255,255,0.45);
1258    }
1259
1260    /* 中间:球队双行 */
1261    .mx-center {
1262        flex: 1;
1263        min-width: 0;
1264        display: flex;
1265        flex-direction: column;
1266        gap: 4px;
1267        color: inherit;
1268    }
1269    .mx-teams-link {
1270        display: flex;
1271        flex-direction: column;
1272        gap: 4px;
1273        text-decoration: none;
1274        color: inherit;
1275    }
1276    .mx-teams-link:hover { color: inherit; }
1277    .mx-team-row {
1278        display: flex;
1279        align-items: center;
1280        gap: 10px;
1281    }
1282    .mx-team-logo {
1283        width: 22px; height: 22px;
1284        object-fit: contain;
1285        flex-shrink: 0;
1286        border-radius: 2px;
1287    }
1288    .mx-team-name {
1289        flex: 1;
1290        font-size: 0.8125rem;
1291        font-weight: 500;
1292        color: rgba(255,255,255,0.9);
1293        white-space: nowrap;
1294        overflow: hidden;
1295        text-overflow: ellipsis;
1296    }
1297    .mx-score {
1298        font-size: 0.9375rem;
1299        font-weight: 700;
1300        min-width: 22px;
1301        text-align: center;
1302        color: rgba(255,255,255,0.9);
1303        font-variant-numeric: tabular-nums;
1304    }
1305    .mx-score.live {
1306        color: #ef4444;
1307    }
1308
1309    /* 右侧:主播标签 + 功能按钮 */
1310    .mx-right {
1311        display: flex;
1312        align-items: center;
1313        justify-content: flex-end;
1314        gap: 8px;
1315        flex-shrink: 0;
1316        max-width: 48%;
1317    }
1318    .mx-streamers {
1319        display: flex;
1320        flex-wrap: wrap;
1321        justify-content: flex-end;
1322        align-items: center;
1323        gap: 4px;
1324        max-width: 220px;
1325    }
1326    .mx-action-btn {
1327        display: inline-flex;
1328        align-items: center;
1329        gap: 4px;
1330        padding: 4px 10px;
1331        border-radius: 4px;
1332        font-size: 0.6875rem;
1333        font-weight: 600;
1334        text-decoration: none;
1335        text-transform: uppercase;
1336        letter-spacing: 0.03em;
1337        transition: all 0.15s;
1338        white-space: nowrap;
1339    }
1340    .preview-btn {
1341        background: rgba(255,255,255,0.08);
1342        color: rgba(255,255,255,0.7);
1343        border: 1px solid rgba(255,255,255,0.12);
1344    }
1345    .preview-btn:hover {
1346        background: rgba(255,255,255,0.14);
1347        color: #fff;
1348    }
1349    .live-btn {
1350        background: rgba(34, 197, 94, 0.15);
1351        color: #22c55e;
1352        border: 1px solid rgba(34, 197, 94, 0.3);
1353    }
1354    .live-btn .icon { width: 12px; height: 12px; }
1355    .live-btn:hover {
1356        background: rgba(34, 197, 94, 0.25);
1357        color: #4ade80;
1358    }
1359
1360    .schedule-sport-section {
1361        margin-top: 8px;
1362    }
1363    .schedule-category-dropdown {
1364        flex-shrink: 0;
1365    }
1366    .schedule-category-select {
1367        appearance: none;
1368        -webkit-appearance: none;
1369        min-width: 132px;
1370        max-width: 168px;
1371        padding: 7px 32px 7px 14px;
1372        border-radius: 20px;
1373        border: 1px solid rgba(255,255,255,0.12);
1374        background: rgba(255,255,255,0.08) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 12px center;
1375        color: rgba(255,255,255,0.92);
1376        font-size: 0.8125rem;
1377        font-weight: 600;
1378        cursor: pointer;
1379        transition: background 0.15s ease, border-color 0.15s ease;
1380    }
1381    button.schedule-category-select {
1382        display: inline-flex;
1383        align-items: center;
1384        font-family: inherit;
1385        line-height: 1.2;
1386        text-align: left;
1387    }
1388    .schedule-category-select:hover,
1389    .schedule-category-select:focus,
1390    .schedule-category-select:focus-visible {
1391        background-color: rgba(255,255,255,0.12);
1392        border-color: rgba(34, 197, 94, 0.45);
1393        outline: none;
1394    }
1395    .visually-hidden {
1396        position: absolute;
1397        width: 1px;
1398        height: 1px;
1399        padding: 0;
1400        margin: -1px;
1401        overflow: hidden;
1402        clip: rect(0, 0, 0, 0);
1403        white-space: nowrap;
1404        border: 0;
1405    }
1406    .schedule-sport-title-inline {
1407        padding-top: 0;
1408    }
1409    .beauty-schedule-list {
1410        display: flex;
1411        flex-direction: column;
1412        gap: 0;
1413        border-top: 1px solid rgba(255,255,255,0.06);
1414    }
1415    .beauty-schedule-row {
1416        display: flex;
1417        align-items: center;
1418        gap: 12px;
1419        padding: 10px 16px;
1420        border-bottom: 1px solid rgba(255,255,255,0.04);
1421    }
1422    .beauty-schedule-row.is-live {
1423        background: rgba(34, 197, 94, 0.04);
1424    }
1425    .beauty-schedule-main {
1426        flex: 1;
1427        min-width: 0;
1428        display: flex;
1429        align-items: center;
1430        gap: 12px;
1431        text-decoration: none;
1432        color: inherit;
1433    }
1434    .beauty-schedule-avatar-wrap { flex-shrink: 0; }
1435    .beauty-schedule-avatar {
1436        width: 40px;
1437        height: 40px;
1438        border-radius: 50%;
1439        object-fit: cover;
1440    }
1441    .beauty-schedule-avatar-fallback {
1442        display: flex;
1443        align-items: center;
1444        justify-content: center;
1445        background: rgba(34, 197, 94, 0.2);
1446        color: #86efac;
1447        font-weight: 700;
1448    }
1449    .beauty-schedule-title {
1450        font-size: 0.875rem;
1451        font-weight: 600;
1452        color: rgba(255,255,255,0.92);
1453    }
1454    .beauty-schedule-streamer {
1455        font-size: 0.75rem;
1456        color: #86efac;
1457        margin-top: 2px;
1458    }
1459    .beauty-schedule-category {
1460        font-size: 0.6875rem;
1461        color: rgba(255,255,255,0.45);
1462        margin-top: 2px;
1463    }
1464    .beauty-schedule-meta {
1465        display: flex;
1466        flex-direction: column;
1467        align-items: flex-end;
1468        gap: 4px;
1469        flex-shrink: 0;
1470    }
1471    .beauty-schedule-time {
1472        font-size: 0.75rem;
1473        color: rgba(255,255,255,0.65);
1474    }
1475    .beauty-schedule-live-badge {
1476        font-size: 0.625rem;
1477        font-weight: 700;
1478        color: #ef4444;
1479    }
1480    .beauty-schedule-actions {
1481        display: flex;
1482        gap: 6px;
1483        flex-shrink: 0;
1484    }
1485    .schedule-sport-title {
1486        font-size: 1rem;
1487        font-weight: 700;
1488        color: rgba(255,255,255,0.92);
1489        padding: 12px 16px 8px;
1490        margin: 0;
1491        border-bottom: 1px solid rgba(255,255,255,0.06);
1492    }
1493    .schedule-sport-empty {
1494        padding: 24px 16px;
1495        color: rgba(255,255,255,0.55);
1496        font-size: 0.875rem;
1497        text-align: center;
1498    }
1499    .mx-streamer-badge {
1500        display: inline-flex;
1501        align-items: center;
1502        padding: 2px 8px;
1503        border-radius: 999px;
1504        font-size: 0.625rem;
1505        font-weight: 700;
1506        letter-spacing: 0.02em;
1507        color: #86efac;
1508        background: rgba(34, 197, 94, 0.12);
1509        border: 1px solid rgba(34, 197, 94, 0.22);
1510        white-space: nowrap;
1511        text-decoration: none;
1512        transition: background 0.15s, border-color 0.15s, color 0.15s;
1513    }
1514    a.mx-streamer-badge:hover {
1515        color: #bbf7d0;
1516        background: rgba(34, 197, 94, 0.22);
1517        border-color: rgba(34, 197, 94, 0.45);
1518    }
1519    .mx-streamer-badge-static {
1520        cursor: default;
1521    }
1522    .mx-streamer-badge.mx-streamer-badge-live {
1523        color: #A78BFA;
1524        background: linear-gradient(135deg, rgba(167, 139, 250, 0.18) 0%, rgba(139, 92, 246, 0.12) 100%);
1525        border-color: rgba(167, 139, 250, 0.45);
1526    }
1527    a.mx-streamer-badge.mx-streamer-badge-live:hover {
1528        color: #C4B5FD;
1529        background: linear-gradient(135deg, rgba(167, 139, 250, 0.18) 0%, rgba(139, 92, 246, 0.12) 100%);
1530        border-color: rgba(167, 139, 250, 0.45);
1531    }
1532
1533    /* Live page only: stacked 100px action column */
1534    .mx-right.action-column {
1535        display: flex;
1536        flex-direction: column;
1537        align-items: flex-end;
1538        justify-content: center;
1539        gap: 4px;
1540        width: 100px;
1541        max-width: 100px;
1542        flex-shrink: 0;
1543    }
1544    .mx-right.action-column .live-btn,
1545    .mx-right.action-column .preview-btn,
1546    .mx-right.action-column .mx-streamer-pill,
1547    .mx-right.action-column .mx-streamer-toggle {
1548        width: 100%;
1549        max-width: 100px;
1550        justify-content: center;
1551        box-sizing: border-box;
1552    }
1553    .mx-right.action-column .mx-streamer-pill {
1554        gap: 4px;
1555        min-width: 0;
1556        padding: 3px 6px 6px;
1557    }
1558    .mx-right.action-column .mx-streamer-name {
1559        overflow: hidden;
1560        text-overflow: ellipsis;
1561        white-space: nowrap;
1562        min-width: 0;
1563        max-width: 100%;
1564    }
1565    .mx-right.action-column .icon-mic,
1566    .mx-right.action-column .icon-caret {
1567        width: 11px;
1568        height: 11px;
1569        flex-shrink: 0;
1570        position: relative;
1571        top: 1px;
1572    }
1573    .mx-streamer-dropdown {
1574        position: relative;
1575        width: 100%;
1576        z-index: 2;
1577    }
1578    .mx-streamer-toggle {
1579        display: inline-flex;
1580        align-items: center;
1581        justify-content: center;
1582        gap: 4px;
1583        padding: 3px 8px 6px;
1584        border-radius: 999px;
1585        border: 1px solid rgba(34, 197, 94, 0.22);
1586        background: rgba(15, 23, 42, 0.55);
1587        color: #86efac;
1588        cursor: pointer;
1589        line-height: 1;
1590    }
1591    .mx-streamer-toggle:hover,
1592    .mx-streamer-toggle[aria-expanded="true"] {
1593        background: rgba(34, 197, 94, 0.18);
1594        border-color: rgba(34, 197, 94, 0.45);
1595        color: #bbf7d0;
1596    }
1597    .mx-streamer-toggle.mx-streamer-toggle-live {
1598        background: linear-gradient(135deg, rgba(167, 139, 250, 0.18) 0%, rgba(139, 92, 246, 0.12) 100%);
1599        border: 1px solid rgba(167, 139, 250, 0.45);
1600        color: #A78BFA;
1601        animation: streamBadgePulse 2s ease-in-out infinite;
1602    }
1603    .mx-streamer-toggle.mx-streamer-toggle-live:hover,
1604    .mx-streamer-toggle.mx-streamer-toggle-live[aria-expanded="true"] {
1605        background: linear-gradient(135deg, rgba(167, 139, 250, 0.18) 0%, rgba(139, 92, 246, 0.12) 100%);
1606        border-color: rgba(167, 139, 250, 0.45);
1607        color: #C4B5FD;
1608    }
1609    .mx-streamer-menu {
1610        min-width: 168px;
1611        max-height: 192px;
1612        overflow-y: auto;
1613        padding: 6px 0;
1614        background: #0f172a;
1615        border: 1px solid rgba(255,255,255,0.12);
1616        z-index: 20;
1617    }
1618    .mx-streamer-menu-item {
1619        display: flex;
1620        align-items: center;
1621        gap: 6px;
1622        font-size: 0.75rem;
1623        color: #86efac;
1624        white-space: nowrap;
1625    }
1626    .mx-streamer-menu-item:hover,
1627    .mx-streamer-menu-item:focus {
1628        background: rgba(34, 197, 94, 0.12);
1629        color: #bbf7d0;
1630    }
1631    .mx-streamer-menu-item .icon-mic {
1632        width: 12px;
1633        height: 12px;
1634        flex-shrink: 0;
1635    }
1636    .mx-row:has(.mx-streamer-dropdown .dropdown-menu.show) {
1637        z-index: 6;
1638        position: relative;
1639    }
1640    .mx-streamer-menu.mx-streamer-menu-live .mx-streamer-menu-item
1641    {
1642        color: #A78BFA;
1643    }
1644    .mx-streamer-menu.mx-streamer-menu-live .mx-streamer-menu-item:hover,
1645    .mx-streamer-menu.mx-streamer-menu-live .mx-streamer-menu-item:focus {
1646        background: rgba(167, 139, 250, 0.12);
1647        color: #C4B5FD;
1648    }
1649
1650    /* ===== 分页 ===== */
1651    .pagination { gap: 4px; }
1652    .pagination .page-link {
1653        border-radius: 8px;
1654        padding: 8px 14px;
1655        font-weight: 500;
1656        font-size: 0.875rem;
1657    }
1658    .pagination .page-link .icon { width: 14px; height: 14px; }
1659    .pagination .page-item.active .page-link {
1660        background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
1661        border-color: transparent;
1662    }
1663
1664    /* ===== 动画 ===== */
1665    @keyframes livePulse {
1666        0%, 100% { opacity: 1; }
1667        50% { opacity: 0.4; }
1668    }
1669    @keyframes liveGlow {
1670        0%, 100% { box-shadow: 0 0 0 rgba(239,68,68,0); }
1671        50% { box-shadow: 0 0 8px rgba(239,68,68,0.3); }
1672    }
1673    @keyframes minuteTickJitter {
1674        0% { transform: translate(0,0) rotate(0deg); }
1675        8% { transform: translate(0.5px,-0.5px) rotate(-10deg); }
1676        16% { transform: translate(-0.5px,0.5px) rotate(10deg); }
1677        24% { transform: translate(0,0) rotate(0deg); }
1678        100% { transform: translate(0,0) rotate(0deg); }
1679    }
1680
1681    .filter-bar-tools {
1682        display: flex;
1683        align-items: center;
1684        justify-content: flex-end;
1685        gap: 8px;
1686        flex-shrink: 0;
1687        margin-left: auto;
1688    }
1689    .match-list-search {
1690        position: relative;
1691        display: flex;
1692        align-items: center;
1693        width: 220px;
1694        height: 36px;
1695        padding: 0 10px 0 34px;
1696        border-radius: 20px;
1697        border: 1px solid rgba(255,255,255,0.12);
1698        background: rgba(255,255,255,0.06);
1699        transition: border-color 0.15s ease, background 0.15s ease;
1700    }
1701    .match-list-search:focus-within {
1702        border-color: rgba(34, 197, 94, 0.45);
1703        background: rgba(255,255,255,0.1);
1704    }
1705    .match-list-search-icon {
1706        position: absolute;
1707        left: 12px;
1708        width: 14px;
1709        height: 14px;
1710        color: rgba(255,255,255,0.45);
1711        pointer-events: none;
1712    }
1713    .match-list-search-input {
1714        width: 100%;
1715        min-width: 0;
1716        border: 0;
1717        outline: none;
1718        background: transparent;
1719        color: rgba(255,255,255,0.92);
1720        font-size: 0.8125rem;
1721        font-weight: 500;
1722        padding: 0;
1723    }
1724    .match-list-search-input::placeholder {
1725        color: rgba(255,255,255,0.4);
1726        font-weight: 500;
1727    }
1728    .match-list-search-input::-webkit-search-cancel-button {
1729        display: none;
1730    }
1731    .match-list-search-clear {
1732        flex-shrink: 0;
1733        width: 18px;
1734        height: 18px;
1735        margin-left: 6px;
1736        border: 0;
1737        border-radius: 50%;
1738        background: rgba(255,255,255,0.12);
1739        color: rgba(255,255,255,0.75);
1740        font-size: 14px;
1741        line-height: 1;
1742        cursor: pointer;
1743        padding: 0;
1744    }
1745    .match-list-search-clear:hover {
1746        background: rgba(255,255,255,0.22);
1747        color: #fff;
1748    }
1749    .is-search-hidden {
1750        display: none !important;
1751    }
1752    .lg-section.is-search-open .lg-matches {
1753        display: block !important;
1754    }
1755
1756    /* ===== 响应式 ===== */
1757    @media (max-width: 768px) {
1758        .filter-bar-row {
1759            flex-wrap: wrap;
1760            gap: 10px;
1761        }
1762        .filter-bar-tools {
1763            width: 100%;
1764            margin-left: 0;
1765        }
1766        .match-list-search {
1767            flex: 1;
1768            width: auto;
1769            min-width: 0;
1770        }
1771        .filter-bar-tools .schedule-category-dropdown {
1772            width: auto;
1773            flex: 0 0 auto;
1774        }
1775        .filter-bar-tools .schedule-category-select,
1776        .filter-bar-tools .custom-select {
1777            width: auto;
1778            max-width: 148px;
1779        }
1780        .mx-left { width: 80px; gap: 6px; }
1781        .mx-team-name { font-size: 0.75rem; }
1782        .mx-team-logo { width: 18px; height: 18px; }
1783        .mx-score { font-size: 0.8125rem; min-width: 18px; }
1784        .mx-right { gap: 4px; max-width: 55%; }
1785        .mx-right.action-column {
1786            width: 100px;
1787            max-width: 100px;
1788        }
1789        .mx-streamers { max-width: 140px; }
1790        .mx-action-btn { padding: 3px 8px; font-size: 0.625rem; }
1791        .lg-header { padding: 8px 12px; }
1792        .mx-row { padding: 7px 12px; gap: 8px; }
1793    }
1794    @media (max-width: 480px) {
1795        .mx-left { width: 65px; }
1796        .mx-fav-btn { display: none; }
1797        .mx-right.action-column {
1798            width: 70px !important;
1799            max-width: 70px !important;
1800        }
1801        .mx-right .preview-btn { display: none; }
1802        .mx-team-name { font-size: 0.75rem; }
1803        .mx-action-btn { padding: 3px 6px; font-size: 0.5625rem; }
1804        .filter-pill { padding: 6px 12px; font-size: 0.75rem; }
1805    }
1806</style>
1807
1808<!-- SVG 图标集 -->
1809<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
1810    
1811    <!-- 星星(空心) -->
1812    <symbol id="icon-star" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1813        <polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/>
1814    </symbol>
1815    
1816    <!-- 星星(实心) -->
1817    <symbol id="icon-star-filled" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="1">
1818        <polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/>
1819    </symbol>
1820    
1821    <!-- 向上箭头 -->
1822    <symbol id="icon-chevron-up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
1823        <polyline points="18 15 12 9 6 15"/>
1824    </symbol>
1825    
1826    <!-- 向下箭头 -->
1827    <symbol id="icon-chevron-down" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
1828        <polyline points="6 9 12 15 18 9"/>
1829    </symbol>
1830    
1831    <!-- 直播/信号塔 -->
1832    <symbol id="icon-live" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1833        <path d="M4.9 19.1C1 15.2 1 8.8 4.9 4.9"/>
1834        <path d="M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.4"/>
1835        <path d="M16.2 7.8c2.3 2.3 2.3 6.1 0 8.4"/>
1836        <path d="M19.1 4.9C23 8.8 23 15.1 19.1 19"/>
1837        <circle cx="12" cy="12" r="2" fill="currentColor"/>
1838    </symbol>
1839    
1840    <!-- 左箭头 -->
1841    <symbol id="icon-chevron-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
1842        <polyline points="15 18 9 12 15 6"/>
1843    </symbol>
1844    
1845    <!-- 右箭头 -->
1846    <symbol id="icon-chevron-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
1847        <polyline points="9 6 15 12 9 18"/>
1848    </symbol>
1849    
1850    <!-- 双左箭头 -->
1851    <symbol id="icon-chevrons-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
1852        <polyline points="11 17 6 12 11 7"/>
1853        <polyline points="18 17 13 12 18 7"/>
1854    </symbol>
1855    
1856    <!-- 双右箭头 -->
1857    <symbol id="icon-chevrons-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
1858        <polyline points="13 7 18 12 13 17"/>
1859        <polyline points="6 7 11 12 6 17"/>
1860    </symbol>
1861    
1862    <!-- 日历 -->
1863    <symbol id="icon-calendar" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1864        <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>
1865        <line x1="16" y1="2" x2="16" y2="6"/>
1866        <line x1="8" y1="2" x2="8" y2="6"/>
1867        <line x1="3" y1="10" x2="21" y2="10"/>
1868    </symbol>
1869    
1870    <!-- 旗帜(已结束) -->
1871    <symbol id="icon-flag" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1872        <path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"/>
1873        <line x1="4" y1="22" x2="4" y2="15"/>
1874    </symbol>
1875    
1876    <!-- 麦克风(主播) -->
1877    <symbol id="icon-mic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1878        <path d="M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z"/>
1879        <path d="M19 10v2a7 7 0 0 1-14 0v-2"/>
1880        <line x1="12" y1="19" x2="12" y2="22"/>
1881    </symbol>
1882
1883    <!-- 足球 -->
1884    <symbol id="icon-football" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
1885        <circle cx="12" cy="12" r="10"/>
1886        <path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/>
1887        <path d="M2 12h20"/>
1888    </symbol>
1889
1890</svg>
1891
1892
1893<!-- 加载全局导航数据 -->
1894
1895
1896<!-- 广告横幅 -->
1897<link href="/dist/css/focus-player.css?v=8kMhyq8KMJMyrfcinjq5xdhp9uBDP4aFyjUEaXMk8UQ" rel="stylesheet" />
1898<div class="focus-ad-banner-wrapper">
1899    
1900        <div class="ad-banner-device ad-banner-device-pc">
1901                <div class="ad-carousel" id="adCarouselPc">
1902                    <div class="ad-carousel-track">
1903                            <a href="https://bit.ly/3TPFQxj" class="ad-carousel-slide active" target="_blank" rel="noopener nofollow noreferrer">
1904                                <img src="/uploads/ads/2026-08/8778dac6e7a7434291d7eb1b52965a8d.png" class="ad-banner-img-custom" alt="B&#x1EA3;o hi&#x1EC3;m th&#x1EBF; thao" loading="eager" style="display:block;width:100%;height:150px;object-fit:contain;object-position:center;" />
1905                            </a>
1906                            <a href="https://bit.ly/3TPFQxj" class="ad-carousel-slide" target="_blank" rel="noopener nofollow noreferrer">
1907                                <img src="/uploads/ads/2026-08/0afad7c6bb37449f8d568b59db387452.png" class="ad-banner-img-custom" alt="N&#x1EA1;p &#x111;&#x1EA7;u th&#x1EC3; thao" loading="lazy" style="display:block;width:100%;height:150px;object-fit:contain;object-position:center;" />
1908                            </a>
1909                    </div>
1910                        <div class="ad-carousel-dots">
1911                                <span class="ad-carousel-dot active" data-index="0"></span>
1912                                <span class="ad-carousel-dot" data-index="1"></span>
1913                        </div>
1914                </div>
1915        </div>
1916        <div class="ad-banner-device ad-banner-device-mobile">
1917                <div class="ad-list">
1918                        <a href="https://bit.ly/3TPFQxj" target="_blank" rel="noopener nofollow noreferrer">
1919                            <img src="/uploads/ads/2026-08/3015ed4fbcff4ccaa05224f7c6a97710.png" class="" alt="B&#x1EA3;o hi&#x1EC3;m th&#x1EBF; thao" loading="lazy" style="display:block;width:100%;height:auto;margin:0 auto;" />
1920                        </a>
1921                        <a href="https://bit.ly/3TPFQxj" target="_blank" rel="noopener nofollow noreferrer">
1922                            <img src="/uploads/ads/2026-08/fda23f718c5946fabb7c778e856a86df.png" class="" alt="N&#x1EA1;p &#x111;&#x1EA7;u th&#x1EC3; thao" loading="lazy" style="display:block;width:100%;height:auto;margin:0 auto;" />
1923                        </a>
1924                </div>
1925        </div>
1926
1927</div>
1928    
1928<script src="/dist/js/ad-carousel.js?v=UooZGezoZ-VJM9pPGfC1kQ5RVhrkGqFeEJUDb3-SKcc" defer></script>
1928
1929
1930
1931<div class="container-fluid match-list-page">
1932    <h1 class="seo-page-h1 seo-page-h1--list">L&#x1ECB;ch thi &#x111;&#x1EA5;u s&#x1EAF;p t&#x1EDB;i</h1>
1933    <!-- 筛选标签栏 -->
1934    <div class="filter-bar">
1935        <div class="filter-bar-row">
1936            <div class="filter-tabs-row">
1937                <a href="/truc-tiep" class="filter-pill ">
1938                    <span class="live-indicator-dot"></span>
1939                    &#x110;ang di&#x1EC5;n ra
1940                </a>
1941                <a href="/hom-nay" class="filter-pill ">
1942                    Tr&#x1EAD;n h&#xF4;m nay
1943                </a>
1944                <a href="/lich-thi-dau" class="filter-pill active">
1945                    S&#x1EAF;p di&#x1EC5;n ra
1946                </a>
1947            </div>
1948            <div class="filter-bar-tools">
1949                <div class="match-list-search">
1950                    <label class="visually-hidden" for="matchListSearch">T&#xEC;m ki&#x1EBF;m</label>
1951                    <svg class="match-list-search-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
1952                        <circle cx="11" cy="11" r="7"></circle>
1953                        <path d="m20 20-3.5-3.5"></path>
1954                    </svg>
1955                    <input id="matchListSearch" class="match-list-search-input" type="search" placeholder="T&#xEC;m ki&#x1EBF;m &#x111;&#x1ED9;i b&#xF3;ng ho&#x1EB7;c gi&#x1EA3;i &#x111;&#x1EA5;u..." autocomplete="off" enterkeyhint="search">
1956                    <button type="button" class="match-list-search-clear" id="matchListSearchClear" hidden aria-label="X&#xF3;a">&times;</button>
1957                </div>
1958                <div class="schedule-category-dropdown">
1959                    <label class="visually-hidden" for="scheduleCategorySelect">L&#x1ECB;ch thi &#x111;&#x1EA5;u b&#xF3;ng &#x111;&#xE1;</label>
1960                    <select id="scheduleCategorySelect" class="schedule-category-select js-custom-select" data-menu-align="end" onchange="window.location.href=this.value">
1961                        <option value="/lich-thi-dau" selected="selected">L&#x1ECB;ch thi &#x111;&#x1EA5;u b&#xF3;ng &#x111;&#xE1;</option>
1962                        <option value="/lich-thi-dau?category=basketball">L&#x1ECB;ch thi &#x111;&#x1EA5;u b&#xF3;ng r&#x1ED5;</option>
1963                        <option value="/lich-thi-dau?category=beauty">Ph&#xE1;t s&#xF3;ng gi&#x1EA3;i tr&#xED;</option>
1964                    </select>
1965                </div>
1966            </div>
1967        </div>
1968    </div>
1969
1970    <div id="matchListSearchEmpty" class="schedule-sport-empty" hidden>Kh&#xF4;ng t&#xEC;m th&#x1EA5;y k&#x1EBF;t qu&#x1EA3;</div>
1971
1972
1973
1974        <div class="lg-section" data-search="Liga II Romania">
1975            <div class="lg-header">
1976                <div class="lg-header-left">
1977                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
1978                        <svg class="icon"><use href="#icon-star"/></svg>
1979                    </button>
1980                        <span class="lg-country-name">Romania:</span>
1981                    <img src="/images/football/leagues/284.webp"
1982                         alt="Liga II" class="lg-logo" loading="lazy"
1983                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
1984                    <span class="lg-name">Liga II</span>
1985                </div>
1986                <div class="lg-header-right">
1987                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
1988                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
1989                    </button>
1990                </div>
1991            </div>
1992
1993            <div class="lg-matches">
1994                    <div class="mx-row  " data-search="Liga II Romania Cetatea Suceava Dumbr&#x103;vi&#x163;a">
1995                        <div class="mx-left">
1996                            <button type="button" class="mx-fav-btn favorite-btn"
1997                                    data-match-id="336757"
1998                                    data-auth="false"
1999                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336757, this);"
2000                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2001                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2002                            </button>
2003                            <div class="mx-status">
2004                                        <span class="mx-date">10/10</span>
2005                                    <span class="mx-time">15:00</span>
2006                            </div>
2007                        </div>
2008
2009                        <div class="mx-center">
2010                            <a href="/cetatea-suceava-vs-dumbravita-id336757" class="mx-teams-link">
2011                                <div class="mx-team-row">
2012                                    <img src="/images/football/teams/26674.webp"
2013                                         alt="Cetatea Suceava" class="mx-team-logo" loading="lazy"
2014                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2015                                    <span class="mx-team-name">Cetatea Suceava</span>
2016                                    <span class="mx-score ">
2017                                    </span>
2018                                </div>
2019                                <div class="mx-team-row">
2020                                    <img src="/images/football/teams/7469.webp"
2021                                         alt="Dumbr&#x103;vi&#x163;a" class="mx-team-logo" loading="lazy"
2022                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2023                                    <span class="mx-team-name">Dumbr&#x103;vi&#x163;a</span>
2024                                    <span class="mx-score ">
2025                                    </span>
2026                                </div>
2027                            </a>
2028                        </div>
2029
2030                        <div class="mx-right ">
2031                                <a href="/cetatea-suceava-vs-dumbravita-id336757" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2032                        </div>
2033                    </div>
2034                    <div class="mx-row  " data-search="Liga II Romania Chindia Targoviste Concordia">
2035                        <div class="mx-left">
2036                            <button type="button" class="mx-fav-btn favorite-btn"
2037                                    data-match-id="336758"
2038                                    data-auth="false"
2039                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336758, this);"
2040                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2041                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2042                            </button>
2043                            <div class="mx-status">
2044                                        <span class="mx-date">10/10</span>
2045                                    <span class="mx-time">15:00</span>
2046                            </div>
2047                        </div>
2048
2049                        <div class="mx-center">
2050                            <a href="/chindia-targoviste-vs-concordia-id336758" class="mx-teams-link">
2051                                <div class="mx-team-row">
2052                                    <img src="/images/football/teams/2586.webp"
2053                                         alt="Chindia Targoviste" class="mx-team-logo" loading="lazy"
2054                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2055                                    <span class="mx-team-name">Chindia Targoviste</span>
2056                                    <span class="mx-score ">
2057                                    </span>
2058                                </div>
2059                                <div class="mx-team-row">
2060                                    <img src="/images/football/teams/2580.webp"
2061                                         alt="Concordia" class="mx-team-logo" loading="lazy"
2062                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2063                                    <span class="mx-team-name">Concordia</span>
2064                                    <span class="mx-score ">
2065                                    </span>
2066                                </div>
2067                            </a>
2068                        </div>
2069
2070                        <div class="mx-right ">
2071                                <a href="/chindia-targoviste-vs-concordia-id336758" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2072                        </div>
2073                    </div>
2074                    <div class="mx-row  " data-search="Liga II Romania Gloria Bistri&#x163;a CSM Ramnicu Valcea">
2075                        <div class="mx-left">
2076                            <button type="button" class="mx-fav-btn favorite-btn"
2077                                    data-match-id="336761"
2078                                    data-auth="false"
2079                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336761, this);"
2080                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2081                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2082                            </button>
2083                            <div class="mx-status">
2084                                        <span class="mx-date">10/10</span>
2085                                    <span class="mx-time">15:00</span>
2086                            </div>
2087                        </div>
2088
2089                        <div class="mx-center">
2090                            <a href="/gloria-bistrita-vs-csm-ramnicu-valcea-id336761" class="mx-teams-link">
2091                                <div class="mx-team-row">
2092                                    <img src="/images/football/teams/22824.webp"
2093                                         alt="Gloria Bistri&#x163;a" class="mx-team-logo" loading="lazy"
2094                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2095                                    <span class="mx-team-name">Gloria Bistri&#x163;a</span>
2096                                    <span class="mx-score ">
2097                                    </span>
2098                                </div>
2099                                <div class="mx-team-row">
2100                                    <img src="/images/football/teams/2616.webp"
2101                                         alt="CSM Ramnicu Valcea" class="mx-team-logo" loading="lazy"
2102                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2103                                    <span class="mx-team-name">CSM Ramnicu Valcea</span>
2104                                    <span class="mx-score ">
2105                                    </span>
2106                                </div>
2107                            </a>
2108                        </div>
2109
2110                        <div class="mx-right ">
2111                                <a href="/gloria-bistrita-vs-csm-ramnicu-valcea-id336761" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2112                        </div>
2113                    </div>
2114                    <div class="mx-row  " data-search="Liga II Romania Metaloglobus Pope&#x219;ti-Leordeni">
2115                        <div class="mx-left">
2116                            <button type="button" class="mx-fav-btn favorite-btn"
2117                                    data-match-id="336762"
2118                                    data-auth="false"
2119                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336762, this);"
2120                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2121                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2122                            </button>
2123                            <div class="mx-status">
2124                                        <span class="mx-date">10/10</span>
2125                                    <span class="mx-time">15:00</span>
2126                            </div>
2127                        </div>
2128
2129                        <div class="mx-center">
2130                            <a href="/metaloglobus-vs-popesti-leordeni-id336762" class="mx-teams-link">
2131                                <div class="mx-team-row">
2132                                    <img src="/images/football/teams/2604.webp"
2133                                         alt="Metaloglobus" class="mx-team-logo" loading="lazy"
2134                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2135                                    <span class="mx-team-name">Metaloglobus</span>
2136                                    <span class="mx-score ">
2137                                    </span>
2138                                </div>
2139                                <div class="mx-team-row">
2140                                    <img src="/images/football/teams/6891.webp"
2141                                         alt="Pope&#x219;ti-Leordeni" class="mx-team-logo" loading="lazy"
2142                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2143                                    <span class="mx-team-name">Pope&#x219;ti-Leordeni</span>
2144                                    <span class="mx-score ">
2145                                    </span>
2146                                </div>
2147                            </a>
2148                        </div>
2149
2150                        <div class="mx-right ">
2151                                <a href="/metaloglobus-vs-popesti-leordeni-id336762" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2152                        </div>
2153                    </div>
2154                    <div class="mx-row  " data-search="Liga II Romania Metalul Buz&#x103;u ASA Targu Mures">
2155                        <div class="mx-left">
2156                            <button type="button" class="mx-fav-btn favorite-btn"
2157                                    data-match-id="336763"
2158                                    data-auth="false"
2159                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336763, this);"
2160                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2161                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2162                            </button>
2163                            <div class="mx-status">
2164                                        <span class="mx-date">10/10</span>
2165                                    <span class="mx-time">15:00</span>
2166                            </div>
2167                        </div>
2168
2169                        <div class="mx-center">
2170                            <a href="/metalul-buzau-vs-asa-targu-mures-id336763" class="mx-teams-link">
2171                                <div class="mx-team-row">
2172                                    <img src="/images/football/teams/6875.webp"
2173                                         alt="Metalul Buz&#x103;u" class="mx-team-logo" loading="lazy"
2174                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2175                                    <span class="mx-team-name">Metalul Buz&#x103;u</span>
2176                                    <span class="mx-score ">
2177                                    </span>
2178                                </div>
2179                                <div class="mx-team-row">
2180                                    <img src="/images/football/teams/2590.webp"
2181                                         alt="ASA Targu Mures" class="mx-team-logo" loading="lazy"
2182                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2183                                    <span class="mx-team-name">ASA Targu Mures</span>
2184                                    <span class="mx-score ">
2185                                    </span>
2186                                </div>
2187                            </a>
2188                        </div>
2189
2190                        <div class="mx-right ">
2191                                <a href="/metalul-buzau-vs-asa-targu-mures-id336763" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2192                        </div>
2193                    </div>
2194                    <div class="mx-row  " data-search="Liga II Romania Viitorul &#x15E;elimb&#x103;r Unirea Slobozia">
2195                        <div class="mx-left">
2196                            <button type="button" class="mx-fav-btn favorite-btn"
2197                                    data-match-id="336765"
2198                                    data-auth="false"
2199                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336765, this);"
2200                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2201                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2202                            </button>
2203                            <div class="mx-status">
2204                                        <span class="mx-date">10/10</span>
2205                                    <span class="mx-time">15:00</span>
2206                            </div>
2207                        </div>
2208
2209                        <div class="mx-center">
2210                            <a href="/viitorul-selimbar-vs-unirea-slobozia-id336765" class="mx-teams-link">
2211                                <div class="mx-team-row">
2212                                    <img src="/images/football/teams/6927.webp"
2213                                         alt="Viitorul &#x15E;elimb&#x103;r" class="mx-team-logo" loading="lazy"
2214                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2215                                    <span class="mx-team-name">Viitorul &#x15E;elimb&#x103;r</span>
2216                                    <span class="mx-score ">
2217                                    </span>
2218                                </div>
2219                                <div class="mx-team-row">
2220                                    <img src="/images/football/teams/6916.webp"
2221                                         alt="Unirea Slobozia" class="mx-team-logo" loading="lazy"
2222                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2223                                    <span class="mx-team-name">Unirea Slobozia</span>
2224                                    <span class="mx-score ">
2225                                    </span>
2226                                </div>
2227                            </a>
2228                        </div>
2229
2230                        <div class="mx-right ">
2231                                <a href="/viitorul-selimbar-vs-unirea-slobozia-id336765" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2232                        </div>
2233                    </div>
2234                    <div class="mx-row  " data-search="Liga II Romania CS Dinamo Bucure&#x219;ti CSM Satu Mare">
2235                        <div class="mx-left">
2236                            <button type="button" class="mx-fav-btn favorite-btn"
2237                                    data-match-id="336768"
2238                                    data-auth="false"
2239                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336768, this);"
2240                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2241                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2242                            </button>
2243                            <div class="mx-status">
2244                                        <span class="mx-date">10/10</span>
2245                                    <span class="mx-time">15:00</span>
2246                            </div>
2247                        </div>
2248
2249                        <div class="mx-center">
2250                            <a href="/cs-dinamo-bucuresti-vs-csm-satu-mare-id336768" class="mx-teams-link">
2251                                <div class="mx-team-row">
2252                                    <img src="/images/football/teams/19170.webp"
2253                                         alt="CS Dinamo Bucure&#x219;ti" class="mx-team-logo" loading="lazy"
2254                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2255                                    <span class="mx-team-name">CS Dinamo Bucure&#x219;ti</span>
2256                                    <span class="mx-score ">
2257                                    </span>
2258                                </div>
2259                                <div class="mx-team-row">
2260                                    <img src="/images/football/teams/16279.webp"
2261                                         alt="CSM Satu Mare" class="mx-team-logo" loading="lazy"
2262                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2263                                    <span class="mx-team-name">CSM Satu Mare</span>
2264                                    <span class="mx-score ">
2265                                    </span>
2266                                </div>
2267                            </a>
2268                        </div>
2269
2270                        <div class="mx-right ">
2271                                <a href="/cs-dinamo-bucuresti-vs-csm-satu-mare-id336768" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2272                        </div>
2273                    </div>
2274            </div>
2275        </div>
2276        <div class="lg-section" data-search="J2 League Japan">
2277            <div class="lg-header">
2278                <div class="lg-header-left">
2279                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
2280                        <svg class="icon"><use href="#icon-star"/></svg>
2281                    </button>
2282                        <span class="lg-country-name">Japan:</span>
2283                    <img src="/images/football/leagues/99.webp"
2284                         alt="J2 League" class="lg-logo" loading="lazy"
2285                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
2286                    <span class="lg-name">J2 League</span>
2287                </div>
2288                <div class="lg-header-right">
2289                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
2290                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
2291                    </button>
2292                </div>
2293            </div>
2294
2295            <div class="lg-matches">
2296                    <div class="mx-row  " data-search="J2 League Japan Yokohama FC Oita Trinita">
2297                        <div class="mx-left">
2298                            <button type="button" class="mx-fav-btn favorite-btn"
2299                                    data-match-id="336745"
2300                                    data-auth="false"
2301                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336745, this);"
2302                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2303                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2304                            </button>
2305                            <div class="mx-status">
2306                                        <span class="mx-date">10/10</span>
2307                                    <span class="mx-time">12:00</span>
2308                            </div>
2309                        </div>
2310
2311                        <div class="mx-center">
2312                            <a href="/yokohama-fc-vs-oita-trinita-id336745" class="mx-teams-link">
2313                                <div class="mx-team-row">
2314                                    <img src="/images/football/teams/307.webp"
2315                                         alt="Yokohama FC" class="mx-team-logo" loading="lazy"
2316                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2317                                    <span class="mx-team-name">Yokohama FC</span>
2318                                    <span class="mx-score ">
2319                                    </span>
2320                                </div>
2321                                <div class="mx-team-row">
2322                                    <img src="/images/football/teams/298.webp"
2323                                         alt="Oita Trinita" class="mx-team-logo" loading="lazy"
2324                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2325                                    <span class="mx-team-name">Oita Trinita</span>
2326                                    <span class="mx-score ">
2327                                    </span>
2328                                </div>
2329                            </a>
2330                        </div>
2331
2332                        <div class="mx-right ">
2333                                <a href="/yokohama-fc-vs-oita-trinita-id336745" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2334                        </div>
2335                    </div>
2336                    <div class="mx-row  " data-search="J2 League Japan Tokushima Vortis Imabari">
2337                        <div class="mx-left">
2338                            <button type="button" class="mx-fav-btn favorite-btn"
2339                                    data-match-id="336746"
2340                                    data-auth="false"
2341                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336746, this);"
2342                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2343                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2344                            </button>
2345                            <div class="mx-status">
2346                                        <span class="mx-date">10/10</span>
2347                                    <span class="mx-time">12:00</span>
2348                            </div>
2349                        </div>
2350
2351                        <div class="mx-center">
2352                            <a href="/tokushima-vortis-vs-imabari-id336746" class="mx-teams-link">
2353                                <div class="mx-team-row">
2354                                    <img src="/images/football/teams/299.webp"
2355                                         alt="Tokushima Vortis" class="mx-team-logo" loading="lazy"
2356                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2357                                    <span class="mx-team-name">Tokushima Vortis</span>
2358                                    <span class="mx-score ">
2359                                    </span>
2360                                </div>
2361                                <div class="mx-team-row">
2362                                    <img src="/images/football/teams/10075.webp"
2363                                         alt="Imabari" class="mx-team-logo" loading="lazy"
2364                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2365                                    <span class="mx-team-name">Imabari</span>
2366                                    <span class="mx-score ">
2367                                    </span>
2368                                </div>
2369                            </a>
2370                        </div>
2371
2372                        <div class="mx-right ">
2373                                <a href="/tokushima-vortis-vs-imabari-id336746" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2374                        </div>
2375                    </div>
2376                    <div class="mx-row  " data-search="J2 League Japan Omiya Ardija Vanraure Hachinohe">
2377                        <div class="mx-left">
2378                            <button type="button" class="mx-fav-btn favorite-btn"
2379                                    data-match-id="336747"
2380                                    data-auth="false"
2381                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336747, this);"
2382                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2383                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2384                            </button>
2385                            <div class="mx-status">
2386                                        <span class="mx-date">10/10</span>
2387                                    <span class="mx-time">12:00</span>
2388                            </div>
2389                        </div>
2390
2391                        <div class="mx-center">
2392                            <a href="/omiya-ardija-vs-vanraure-hachinohe-id336747" class="mx-teams-link">
2393                                <div class="mx-team-row">
2394                                    <img src="/images/football/teams/313.webp"
2395                                         alt="Omiya Ardija" class="mx-team-logo" loading="lazy"
2396                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2397                                    <span class="mx-team-name">Omiya Ardija</span>
2398                                    <span class="mx-score ">
2399                                    </span>
2400                                </div>
2401                                <div class="mx-team-row">
2402                                    <img src="/images/football/teams/4326.webp"
2403                                         alt="Vanraure Hachinohe" class="mx-team-logo" loading="lazy"
2404                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2405                                    <span class="mx-team-name">Vanraure Hachinohe</span>
2406                                    <span class="mx-score ">
2407                                    </span>
2408                                </div>
2409                            </a>
2410                        </div>
2411
2412                        <div class="mx-right ">
2413                                <a href="/omiya-ardija-vs-vanraure-hachinohe-id336747" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2414                        </div>
2415                    </div>
2416                    <div class="mx-row  " data-search="J2 League Japan Sagan Tosu Fujieda MYFC">
2417                        <div class="mx-left">
2418                            <button type="button" class="mx-fav-btn favorite-btn"
2419                                    data-match-id="336748"
2420                                    data-auth="false"
2421                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336748, this);"
2422                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2423                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2424                            </button>
2425                            <div class="mx-status">
2426                                        <span class="mx-date">10/10</span>
2427                                    <span class="mx-time">12:00</span>
2428                            </div>
2429                        </div>
2430
2431                        <div class="mx-center">
2432                            <a href="/sagan-tosu-vs-fujieda-myfc-id336748" class="mx-teams-link">
2433                                <div class="mx-team-row">
2434                                    <img src="/images/football/teams/295.webp"
2435                                         alt="Sagan Tosu" class="mx-team-logo" loading="lazy"
2436                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2437                                    <span class="mx-team-name">Sagan Tosu</span>
2438                                    <span class="mx-score ">
2439                                    </span>
2440                                </div>
2441                                <div class="mx-team-row">
2442                                    <img src="/images/football/teams/4317.webp"
2443                                         alt="Fujieda MYFC" class="mx-team-logo" loading="lazy"
2444                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2445                                    <span class="mx-team-name">Fujieda MYFC</span>
2446                                    <span class="mx-score ">
2447                                    </span>
2448                                </div>
2449                            </a>
2450                        </div>
2451
2452                        <div class="mx-right ">
2453                                <a href="/sagan-tosu-vs-fujieda-myfc-id336748" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2454                        </div>
2455                    </div>
2456                    <div class="mx-row  " data-search="J2 League Japan Ventforet Kofu Tochigi City">
2457                        <div class="mx-left">
2458                            <button type="button" class="mx-fav-btn favorite-btn"
2459                                    data-match-id="336752"
2460                                    data-auth="false"
2461                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336752, this);"
2462                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2463                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2464                            </button>
2465                            <div class="mx-status">
2466                                        <span class="mx-date">10/10</span>
2467                                    <span class="mx-time">14:00</span>
2468                            </div>
2469                        </div>
2470
2471                        <div class="mx-center">
2472                            <a href="/ventforet-kofu-vs-tochigi-city-id336752" class="mx-teams-link">
2473                                <div class="mx-team-row">
2474                                    <img src="/images/football/teams/308.webp"
2475                                         alt="Ventforet Kofu" class="mx-team-logo" loading="lazy"
2476                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2477                                    <span class="mx-team-name">Ventforet Kofu</span>
2478                                    <span class="mx-score ">
2479                                    </span>
2480                                </div>
2481                                <div class="mx-team-row">
2482                                    <img src="/images/football/teams/7145.webp"
2483                                         alt="Tochigi City" class="mx-team-logo" loading="lazy"
2484                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2485                                    <span class="mx-team-name">Tochigi City</span>
2486                                    <span class="mx-score ">
2487                                    </span>
2488                                </div>
2489                            </a>
2490                        </div>
2491
2492                        <div class="mx-right ">
2493                                <a href="/ventforet-kofu-vs-tochigi-city-id336752" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2494                        </div>
2495                    </div>
2496            </div>
2497        </div>
2498        <div class="lg-section" data-search="K League 2 South-Korea">
2499            <div class="lg-header">
2500                <div class="lg-header-left">
2501                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
2502                        <svg class="icon"><use href="#icon-star"/></svg>
2503                    </button>
2504                        <span class="lg-country-name">South-Korea:</span>
2505                    <img src="/images/football/leagues/293.webp"
2506                         alt="K League 2" class="lg-logo" loading="lazy"
2507                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
2508                    <span class="lg-name">K League 2</span>
2509                </div>
2510                <div class="lg-header-right">
2511                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
2512                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
2513                    </button>
2514                </div>
2515            </div>
2516
2517            <div class="lg-matches">
2518                    <div class="mx-row  " data-search="K League 2 South-Korea Jeonnam Dragons Yongin City">
2519                        <div class="mx-left">
2520                            <button type="button" class="mx-fav-btn favorite-btn"
2521                                    data-match-id="336735"
2522                                    data-auth="false"
2523                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336735, this);"
2524                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2525                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2526                            </button>
2527                            <div class="mx-status">
2528                                        <span class="mx-date">10/10</span>
2529                                    <span class="mx-time">12:00</span>
2530                            </div>
2531                        </div>
2532
2533                        <div class="mx-center">
2534                            <a href="/jeonnam-dragons-vs-yongin-city-id336735" class="mx-teams-link">
2535                                <div class="mx-team-row">
2536                                    <img src="/images/football/teams/2760.webp"
2537                                         alt="Jeonnam Dragons" class="mx-team-logo" loading="lazy"
2538                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2539                                    <span class="mx-team-name">Jeonnam Dragons</span>
2540                                    <span class="mx-score ">
2541                                    </span>
2542                                </div>
2543                                <div class="mx-team-row">
2544                                    <img src="/images/football/teams/9171.webp"
2545                                         alt="Yongin City" class="mx-team-logo" loading="lazy"
2546                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2547                                    <span class="mx-team-name">Yongin City</span>
2548                                    <span class="mx-score ">
2549                                    </span>
2550                                </div>
2551                            </a>
2552                        </div>
2553
2554                        <div class="mx-right ">
2555                                <a href="/jeonnam-dragons-vs-yongin-city-id336735" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2556                        </div>
2557                    </div>
2558                    <div class="mx-row  " data-search="K League 2 South-Korea Paju Citizen Busan I Park">
2559                        <div class="mx-left">
2560                            <button type="button" class="mx-fav-btn favorite-btn"
2561                                    data-match-id="336736"
2562                                    data-auth="false"
2563                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336736, this);"
2564                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2565                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2566                            </button>
2567                            <div class="mx-status">
2568                                        <span class="mx-date">10/10</span>
2569                                    <span class="mx-time">12:00</span>
2570                            </div>
2571                        </div>
2572
2573                        <div class="mx-center">
2574                            <a href="/paju-citizen-vs-busan-i-park-id336736" class="mx-teams-link">
2575                                <div class="mx-team-row">
2576                                    <img src="/images/football/teams/7098.webp"
2577                                         alt="Paju Citizen" class="mx-team-logo" loading="lazy"
2578                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2579                                    <span class="mx-team-name">Paju Citizen</span>
2580                                    <span class="mx-score ">
2581                                    </span>
2582                                </div>
2583                                <div class="mx-team-row">
2584                                    <img src="/images/football/teams/2752.webp"
2585                                         alt="Busan I Park" class="mx-team-logo" loading="lazy"
2586                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2587                                    <span class="mx-team-name">Busan I Park</span>
2588                                    <span class="mx-score ">
2589                                    </span>
2590                                </div>
2591                            </a>
2592                        </div>
2593
2594                        <div class="mx-right ">
2595                                <a href="/paju-citizen-vs-busan-i-park-id336736" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2596                        </div>
2597                    </div>
2598                    <div class="mx-row  " data-search="K League 2 South-Korea Cheonan City Gyeongnam FC">
2599                        <div class="mx-left">
2600                            <button type="button" class="mx-fav-btn favorite-btn"
2601                                    data-match-id="336754"
2602                                    data-auth="false"
2603                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336754, this);"
2604                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2605                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2606                            </button>
2607                            <div class="mx-status">
2608                                        <span class="mx-date">10/10</span>
2609                                    <span class="mx-time">14:30</span>
2610                            </div>
2611                        </div>
2612
2613                        <div class="mx-center">
2614                            <a href="/cheonan-city-vs-gyeongnam-fc-id336754" class="mx-teams-link">
2615                                <div class="mx-team-row">
2616                                    <img src="/images/football/teams/7060.webp"
2617                                         alt="Cheonan City" class="mx-team-logo" loading="lazy"
2618                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2619                                    <span class="mx-team-name">Cheonan City</span>
2620                                    <span class="mx-score ">
2621                                    </span>
2622                                </div>
2623                                <div class="mx-team-row">
2624                                    <img src="/images/football/teams/2751.webp"
2625                                         alt="Gyeongnam FC" class="mx-team-logo" loading="lazy"
2626                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2627                                    <span class="mx-team-name">Gyeongnam FC</span>
2628                                    <span class="mx-score ">
2629                                    </span>
2630                                </div>
2631                            </a>
2632                        </div>
2633
2634                        <div class="mx-right ">
2635                                <a href="/cheonan-city-vs-gyeongnam-fc-id336754" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2636                        </div>
2637                    </div>
2638                    <div class="mx-row  " data-search="K League 2 South-Korea Gimhae City Asan Mugunghwa">
2639                        <div class="mx-left">
2640                            <button type="button" class="mx-fav-btn favorite-btn"
2641                                    data-match-id="336755"
2642                                    data-auth="false"
2643                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336755, this);"
2644                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2645                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2646                            </button>
2647                            <div class="mx-status">
2648                                        <span class="mx-date">10/10</span>
2649                                    <span class="mx-time">14:30</span>
2650                            </div>
2651                        </div>
2652
2653                        <div class="mx-center">
2654                            <a href="/gimhae-city-vs-asan-mugunghwa-id336755" class="mx-teams-link">
2655                                <div class="mx-team-row">
2656                                    <img src="/images/football/teams/7076.webp"
2657                                         alt="Gimhae City" class="mx-team-logo" loading="lazy"
2658                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2659                                    <span class="mx-team-name">Gimhae City</span>
2660                                    <span class="mx-score ">
2661                                    </span>
2662                                </div>
2663                                <div class="mx-team-row">
2664                                    <img src="/images/football/teams/2753.webp"
2665                                         alt="Asan Mugunghwa" class="mx-team-logo" loading="lazy"
2666                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2667                                    <span class="mx-team-name">Asan Mugunghwa</span>
2668                                    <span class="mx-score ">
2669                                    </span>
2670                                </div>
2671                            </a>
2672                        </div>
2673
2674                        <div class="mx-right ">
2675                                <a href="/gimhae-city-vs-asan-mugunghwa-id336755" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2676                        </div>
2677                    </div>
2678            </div>
2679        </div>
2680        <div class="lg-section" data-search="J3 League Japan">
2681            <div class="lg-header">
2682                <div class="lg-header-left">
2683                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
2684                        <svg class="icon"><use href="#icon-star"/></svg>
2685                    </button>
2686                        <span class="lg-country-name">Japan:</span>
2687                    <img src="/images/football/leagues/100.webp"
2688                         alt="J3 League" class="lg-logo" loading="lazy"
2689                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
2690                    <span class="lg-name">J3 League</span>
2691                </div>
2692                <div class="lg-header-right">
2693                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
2694                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
2695                    </button>
2696                </div>
2697            </div>
2698
2699            <div class="lg-matches">
2700                    <div class="mx-row  " data-search="J3 League Japan Kochi United Parceiro Nagano">
2701                        <div class="mx-left">
2702                            <button type="button" class="mx-fav-btn favorite-btn"
2703                                    data-match-id="336739"
2704                                    data-auth="false"
2705                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336739, this);"
2706                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2707                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2708                            </button>
2709                            <div class="mx-status">
2710                                        <span class="mx-date">10/10</span>
2711                                    <span class="mx-time">12:00</span>
2712                            </div>
2713                        </div>
2714
2715                        <div class="mx-center">
2716                            <a href="/kochi-united-vs-parceiro-nagano-id336739" class="mx-teams-link">
2717                                <div class="mx-team-row">
2718                                    <img src="/images/football/teams/7129.webp"
2719                                         alt="Kochi United" class="mx-team-logo" loading="lazy"
2720                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2721                                    <span class="mx-team-name">Kochi United</span>
2722                                    <span class="mx-score ">
2723                                    </span>
2724                                </div>
2725                                <div class="mx-team-row">
2726                                    <img src="/images/football/teams/4323.webp"
2727                                         alt="Parceiro Nagano" class="mx-team-logo" loading="lazy"
2728                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2729                                    <span class="mx-team-name">Parceiro Nagano</span>
2730                                    <span class="mx-score ">
2731                                    </span>
2732                                </div>
2733                            </a>
2734                        </div>
2735
2736                        <div class="mx-right ">
2737                                <a href="/kochi-united-vs-parceiro-nagano-id336739" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2738                        </div>
2739                    </div>
2740                    <div class="mx-row  " data-search="J3 League Japan Thespakusatsu Gunma FC Ryukyu">
2741                        <div class="mx-left">
2742                            <button type="button" class="mx-fav-btn favorite-btn"
2743                                    data-match-id="336740"
2744                                    data-auth="false"
2745                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336740, this);"
2746                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2747                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2748                            </button>
2749                            <div class="mx-status">
2750                                        <span class="mx-date">10/10</span>
2751                                    <span class="mx-time">12:00</span>
2752                            </div>
2753                        </div>
2754
2755                        <div class="mx-center">
2756                            <a href="/thespakusatsu-gunma-vs-fc-ryukyu-id336740" class="mx-teams-link">
2757                                <div class="mx-team-row">
2758                                    <img src="/images/football/teams/756.webp"
2759                                         alt="Thespakusatsu Gunma" class="mx-team-logo" loading="lazy"
2760                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2761                                    <span class="mx-team-name">Thespakusatsu Gunma</span>
2762                                    <span class="mx-score ">
2763                                    </span>
2764                                </div>
2765                                <div class="mx-team-row">
2766                                    <img src="/images/football/teams/2235.webp"
2767                                         alt="FC Ryukyu" class="mx-team-logo" loading="lazy"
2768                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2769                                    <span class="mx-team-name">FC Ryukyu</span>
2770                                    <span class="mx-score ">
2771                                    </span>
2772                                </div>
2773                            </a>
2774                        </div>
2775
2776                        <div class="mx-right ">
2777                                <a href="/thespakusatsu-gunma-vs-fc-ryukyu-id336740" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2778                        </div>
2779                    </div>
2780                    <div class="mx-row  " data-search="J3 League Japan Nara Club Kitakyushu">
2781                        <div class="mx-left">
2782                            <button type="button" class="mx-fav-btn favorite-btn"
2783                                    data-match-id="336741"
2784                                    data-auth="false"
2785                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336741, this);"
2786                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2787                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2788                            </button>
2789                            <div class="mx-status">
2790                                        <span class="mx-date">10/10</span>
2791                                    <span class="mx-time">12:00</span>
2792                            </div>
2793                        </div>
2794
2795                        <div class="mx-center">
2796                            <a href="/nara-club-vs-kitakyushu-id336741" class="mx-teams-link">
2797                                <div class="mx-team-row">
2798                                    <img src="/images/football/teams/7135.webp"
2799                                         alt="Nara Club" class="mx-team-logo" loading="lazy"
2800                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2801                                    <span class="mx-team-name">Nara Club</span>
2802                                    <span class="mx-score ">
2803                                    </span>
2804                                </div>
2805                                <div class="mx-team-row">
2806                                    <img src="/images/football/teams/805.webp"
2807                                         alt="Kitakyushu" class="mx-team-logo" loading="lazy"
2808                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2809                                    <span class="mx-team-name">Kitakyushu</span>
2810                                    <span class="mx-score ">
2811                                    </span>
2812                                </div>
2813                            </a>
2814                        </div>
2815
2816                        <div class="mx-right ">
2817                                <a href="/nara-club-vs-kitakyushu-id336741" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2818                        </div>
2819                    </div>
2820                    <div class="mx-row  " data-search="J3 League Japan Fukushima United Biwako Shiga">
2821                        <div class="mx-left">
2822                            <button type="button" class="mx-fav-btn favorite-btn"
2823                                    data-match-id="336751"
2824                                    data-auth="false"
2825                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336751, this);"
2826                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2827                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2828                            </button>
2829                            <div class="mx-status">
2830                                        <span class="mx-date">10/10</span>
2831                                    <span class="mx-time">14:00</span>
2832                            </div>
2833                        </div>
2834
2835                        <div class="mx-center">
2836                            <a href="/fukushima-united-vs-biwako-shiga-id336751" class="mx-teams-link">
2837                                <div class="mx-team-row">
2838                                    <img src="/images/football/teams/4318.webp"
2839                                         alt="Fukushima United" class="mx-team-logo" loading="lazy"
2840                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2841                                    <span class="mx-team-name">Fukushima United</span>
2842                                    <span class="mx-score ">
2843                                    </span>
2844                                </div>
2845                                <div class="mx-team-row">
2846                                    <img src="/images/football/teams/7117.webp"
2847                                         alt="Biwako Shiga" class="mx-team-logo" loading="lazy"
2848                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2849                                    <span class="mx-team-name">Biwako Shiga</span>
2850                                    <span class="mx-score ">
2851                                    </span>
2852                                </div>
2853                            </a>
2854                        </div>
2855
2856                        <div class="mx-right ">
2857                                <a href="/fukushima-united-vs-biwako-shiga-id336751" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2858                        </div>
2859                    </div>
2860            </div>
2861        </div>
2862        <div class="lg-section" data-search="Diski Challenge South-Africa">
2863            <div class="lg-header">
2864                <div class="lg-header-left">
2865                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
2866                        <svg class="icon"><use href="#icon-star"/></svg>
2867                    </button>
2868                        <span class="lg-country-name">South-Africa:</span>
2869                    <img src="/images/football/leagues/734.webp"
2870                         alt="Diski Challenge" class="lg-logo" loading="lazy"
2871                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
2872                    <span class="lg-name">Diski Challenge</span>
2873                </div>
2874                <div class="lg-header-right">
2875                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
2876                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
2877                    </button>
2878                </div>
2879            </div>
2880
2881            <div class="lg-matches">
2882                    <div class="mx-row  " data-search="Diski Challenge South-Africa Golden Arrows U23 Chippa United U23">
2883                        <div class="mx-left">
2884                            <button type="button" class="mx-fav-btn favorite-btn"
2885                                    data-match-id="336770"
2886                                    data-auth="false"
2887                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336770, this);"
2888                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2889                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2890                            </button>
2891                            <div class="mx-status">
2892                                        <span class="mx-date">10/10</span>
2893                                    <span class="mx-time">15:00</span>
2894                            </div>
2895                        </div>
2896
2897                        <div class="mx-center">
2898                            <a href="/golden-arrows-u23-vs-chippa-united-u23-id336770" class="mx-teams-link">
2899                                <div class="mx-team-row">
2900                                    <img src="/images/football/teams/15991.webp"
2901                                         alt="Golden Arrows U23" class="mx-team-logo" loading="lazy"
2902                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2903                                    <span class="mx-team-name">Golden Arrows U23</span>
2904                                    <span class="mx-score ">
2905                                    </span>
2906                                </div>
2907                                <div class="mx-team-row">
2908                                    <img src="/images/football/teams/15990.webp"
2909                                         alt="Chippa United U23" class="mx-team-logo" loading="lazy"
2910                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2911                                    <span class="mx-team-name">Chippa United U23</span>
2912                                    <span class="mx-score ">
2913                                    </span>
2914                                </div>
2915                            </a>
2916                        </div>
2917
2918                        <div class="mx-right ">
2919                                <a href="/golden-arrows-u23-vs-chippa-united-u23-id336770" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2920                        </div>
2921                    </div>
2922                    <div class="mx-row  " data-search="Diski Challenge South-Africa Richards Bay U23 Kaizer Chiefs U23">
2923                        <div class="mx-left">
2924                            <button type="button" class="mx-fav-btn favorite-btn"
2925                                    data-match-id="336771"
2926                                    data-auth="false"
2927                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336771, this);"
2928                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2929                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2930                            </button>
2931                            <div class="mx-status">
2932                                        <span class="mx-date">10/10</span>
2933                                    <span class="mx-time">15:00</span>
2934                            </div>
2935                        </div>
2936
2937                        <div class="mx-center">
2938                            <a href="/richards-bay-u23-vs-kaizer-chiefs-u23-id336771" class="mx-teams-link">
2939                                <div class="mx-team-row">
2940                                    <img src="/images/football/teams/20296.webp"
2941                                         alt="Richards Bay U23" class="mx-team-logo" loading="lazy"
2942                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2943                                    <span class="mx-team-name">Richards Bay U23</span>
2944                                    <span class="mx-score ">
2945                                    </span>
2946                                </div>
2947                                <div class="mx-team-row">
2948                                    <img src="/images/football/teams/15992.webp"
2949                                         alt="Kaizer Chiefs U23" class="mx-team-logo" loading="lazy"
2950                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2951                                    <span class="mx-team-name">Kaizer Chiefs U23</span>
2952                                    <span class="mx-score ">
2953                                    </span>
2954                                </div>
2955                            </a>
2956                        </div>
2957
2958                        <div class="mx-right ">
2959                                <a href="/richards-bay-u23-vs-kaizer-chiefs-u23-id336771" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
2960                        </div>
2961                    </div>
2962                    <div class="mx-row  " data-search="Diski Challenge South-Africa Siwelele U23 Orlando Pirates U23">
2963                        <div class="mx-left">
2964                            <button type="button" class="mx-fav-btn favorite-btn"
2965                                    data-match-id="336772"
2966                                    data-auth="false"
2967                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336772, this);"
2968                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
2969                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
2970                            </button>
2971                            <div class="mx-status">
2972                                        <span class="mx-date">10/10</span>
2973                                    <span class="mx-time">15:00</span>
2974                            </div>
2975                        </div>
2976
2977                        <div class="mx-center">
2978                            <a href="/siwelele-u23-vs-orlando-pirates-u23-id336772" class="mx-teams-link">
2979                                <div class="mx-team-row">
2980                                    <img src="/images/football/teams/26576.webp"
2981                                         alt="Siwelele U23" class="mx-team-logo" loading="lazy"
2982                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2983                                    <span class="mx-team-name">Siwelele U23</span>
2984                                    <span class="mx-score ">
2985                                    </span>
2986                                </div>
2987                                <div class="mx-team-row">
2988                                    <img src="/images/football/teams/15995.webp"
2989                                         alt="Orlando Pirates U23" class="mx-team-logo" loading="lazy"
2990                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
2991                                    <span class="mx-team-name">Orlando Pirates U23</span>
2992                                    <span class="mx-score ">
2993                                    </span>
2994                                </div>
2995                            </a>
2996                        </div>
2997
2998                        <div class="mx-right ">
2999                                <a href="/siwelele-u23-vs-orlando-pirates-u23-id336772" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3000                        </div>
3001                    </div>
3002                    <div class="mx-row  " data-search="Diski Challenge South-Africa TS Galaxy U23 AmaZulu U23">
3003                        <div class="mx-left">
3004                            <button type="button" class="mx-fav-btn favorite-btn"
3005                                    data-match-id="336773"
3006                                    data-auth="false"
3007                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336773, this);"
3008                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3009                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3010                            </button>
3011                            <div class="mx-status">
3012                                        <span class="mx-date">10/10</span>
3013                                    <span class="mx-time">15:00</span>
3014                            </div>
3015                        </div>
3016
3017                        <div class="mx-center">
3018                            <a href="/ts-galaxy-u23-vs-amazulu-u23-id336773" class="mx-teams-link">
3019                                <div class="mx-team-row">
3020                                    <img src="/images/football/teams/15999.webp"
3021                                         alt="TS Galaxy U23" class="mx-team-logo" loading="lazy"
3022                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3023                                    <span class="mx-team-name">TS Galaxy U23</span>
3024                                    <span class="mx-score ">
3025                                    </span>
3026                                </div>
3027                                <div class="mx-team-row">
3028                                    <img src="/images/football/teams/15985.webp"
3029                                         alt="AmaZulu U23" class="mx-team-logo" loading="lazy"
3030                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3031                                    <span class="mx-team-name">AmaZulu U23</span>
3032                                    <span class="mx-score ">
3033                                    </span>
3034                                </div>
3035                            </a>
3036                        </div>
3037
3038                        <div class="mx-right ">
3039                                <a href="/ts-galaxy-u23-vs-amazulu-u23-id336773" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3040                        </div>
3041                    </div>
3042            </div>
3043        </div>
3044        <div class="lg-section" data-search="K4 League South-Korea">
3045            <div class="lg-header">
3046                <div class="lg-header-left">
3047                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
3048                        <svg class="icon"><use href="#icon-star"/></svg>
3049                    </button>
3050                        <span class="lg-country-name">South-Korea:</span>
3051                    <img src="https://media.api-sports.io/football/leagues/1234.png"
3052                         alt="K4 League" class="lg-logo" loading="lazy"
3053                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
3054                    <span class="lg-name">K4 League</span>
3055                </div>
3056                <div class="lg-header-right">
3057                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
3058                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
3059                    </button>
3060                </div>
3061            </div>
3062
3063            <div class="lg-matches">
3064                    <div class="mx-row  " data-search="K4 League South-Korea Jungnang Chorus Mustang Haman">
3065                        <div class="mx-left">
3066                            <button type="button" class="mx-fav-btn favorite-btn"
3067                                    data-match-id="336733"
3068                                    data-auth="false"
3069                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336733, this);"
3070                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3071                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3072                            </button>
3073                            <div class="mx-status">
3074                                        <span class="mx-date">10/10</span>
3075                                    <span class="mx-time">11:00</span>
3076                            </div>
3077                        </div>
3078
3079                        <div class="mx-center">
3080                            <a href="/jungnang-chorus-mustang-vs-haman-id336733" class="mx-teams-link">
3081                                <div class="mx-team-row">
3082                                    <img src="/images/football/teams/7092.webp"
3083                                         alt="Jungnang Chorus Mustang" class="mx-team-logo" loading="lazy"
3084                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3085                                    <span class="mx-team-name">Jungnang Chorus Mustang</span>
3086                                    <span class="mx-score ">
3087                                    </span>
3088                                </div>
3089                                <div class="mx-team-row">
3090                                    <img src="https://media.api-sports.io/football/teams/27859.png"
3091                                         alt="Haman" class="mx-team-logo" loading="lazy"
3092                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3093                                    <span class="mx-team-name">Haman</span>
3094                                    <span class="mx-score ">
3095                                    </span>
3096                                </div>
3097                            </a>
3098                        </div>
3099
3100                        <div class="mx-right ">
3101                                <a href="/jungnang-chorus-mustang-vs-haman-id336733" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3102                        </div>
3103                    </div>
3104                    <div class="mx-row  " data-search="K4 League South-Korea Geumsan Insam Namyangju">
3105                        <div class="mx-left">
3106                            <button type="button" class="mx-fav-btn favorite-btn"
3107                                    data-match-id="336743"
3108                                    data-auth="false"
3109                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336743, this);"
3110                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3111                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3112                            </button>
3113                            <div class="mx-status">
3114                                        <span class="mx-date">10/10</span>
3115                                    <span class="mx-time">12:00</span>
3116                            </div>
3117                        </div>
3118
3119                        <div class="mx-center">
3120                            <a href="/geumsan-insam-vs-namyangju-id336743" class="mx-teams-link">
3121                                <div class="mx-team-row">
3122                                    <img src="https://media.api-sports.io/football/teams/27858.png"
3123                                         alt="Geumsan Insam" class="mx-team-logo" loading="lazy"
3124                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3125                                    <span class="mx-team-name">Geumsan Insam</span>
3126                                    <span class="mx-score ">
3127                                    </span>
3128                                </div>
3129                                <div class="mx-team-row">
3130                                    <img src="/images/football/teams/23089.webp"
3131                                         alt="Namyangju" class="mx-team-logo" loading="lazy"
3132                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3133                                    <span class="mx-team-name">Namyangju</span>
3134                                    <span class="mx-score ">
3135                                    </span>
3136                                </div>
3137                            </a>
3138                        </div>
3139
3140                        <div class="mx-right ">
3141                                <a href="/geumsan-insam-vs-namyangju-id336743" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3142                        </div>
3143                    </div>
3144                    <div class="mx-row  " data-search="K4 League South-Korea Sejong SA Gijang United">
3145                        <div class="mx-left">
3146                            <button type="button" class="mx-fav-btn favorite-btn"
3147                                    data-match-id="336744"
3148                                    data-auth="false"
3149                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336744, this);"
3150                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3151                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3152                            </button>
3153                            <div class="mx-status">
3154                                        <span class="mx-date">10/10</span>
3155                                    <span class="mx-time">12:00</span>
3156                            </div>
3157                        </div>
3158
3159                        <div class="mx-center">
3160                            <a href="/sejong-sa-vs-gijang-united-id336744" class="mx-teams-link">
3161                                <div class="mx-team-row">
3162                                    <img src="/images/football/teams/25720.webp"
3163                                         alt="Sejong SA" class="mx-team-logo" loading="lazy"
3164                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3165                                    <span class="mx-team-name">Sejong SA</span>
3166                                    <span class="mx-score ">
3167                                    </span>
3168                                </div>
3169                                <div class="mx-team-row">
3170                                    <img src="/images/football/teams/25719.webp"
3171                                         alt="Gijang United" class="mx-team-logo" loading="lazy"
3172                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3173                                    <span class="mx-team-name">Gijang United</span>
3174                                    <span class="mx-score ">
3175                                    </span>
3176                                </div>
3177                            </a>
3178                        </div>
3179
3180                        <div class="mx-right ">
3181                                <a href="/sejong-sa-vs-gijang-united-id336744" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3182                        </div>
3183                    </div>
3184            </div>
3185        </div>
3186        <div class="lg-section" data-search="K3 League South-Korea">
3187            <div class="lg-header">
3188                <div class="lg-header-left">
3189                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
3190                        <svg class="icon"><use href="#icon-star"/></svg>
3191                    </button>
3192                        <span class="lg-country-name">South-Korea:</span>
3193                    <img src="/images/football/leagues/295.webp"
3194                         alt="K3 League" class="lg-logo" loading="lazy"
3195                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
3196                    <span class="lg-name">K3 League</span>
3197                </div>
3198                <div class="lg-header-right">
3199                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
3200                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
3201                    </button>
3202                </div>
3203            </div>
3204
3205            <div class="lg-matches">
3206                    <div class="mx-row  " data-search="K3 League South-Korea Changwon City Pocheon">
3207                        <div class="mx-left">
3208                            <button type="button" class="mx-fav-btn favorite-btn"
3209                                    data-match-id="336737"
3210                                    data-auth="false"
3211                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336737, this);"
3212                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3213                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3214                            </button>
3215                            <div class="mx-status">
3216                                        <span class="mx-date">10/10</span>
3217                                    <span class="mx-time">12:00</span>
3218                            </div>
3219                        </div>
3220
3221                        <div class="mx-center">
3222                            <a href="/changwon-city-vs-pocheon-id336737" class="mx-teams-link">
3223                                <div class="mx-team-row">
3224                                    <img src="/images/football/teams/7059.webp"
3225                                         alt="Changwon City" class="mx-team-logo" loading="lazy"
3226                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3227                                    <span class="mx-team-name">Changwon City</span>
3228                                    <span class="mx-score ">
3229                                    </span>
3230                                </div>
3231                                <div class="mx-team-row">
3232                                    <img src="/images/football/teams/7099.webp"
3233                                         alt="Pocheon" class="mx-team-logo" loading="lazy"
3234                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3235                                    <span class="mx-team-name">Pocheon</span>
3236                                    <span class="mx-score ">
3237                                    </span>
3238                                </div>
3239                            </a>
3240                        </div>
3241
3242                        <div class="mx-right ">
3243                                <a href="/changwon-city-vs-pocheon-id336737" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3244                        </div>
3245                    </div>
3246                    <div class="mx-row  " data-search="K3 League South-Korea Chuncheon Jeonbuk Motors II">
3247                        <div class="mx-left">
3248                            <button type="button" class="mx-fav-btn favorite-btn"
3249                                    data-match-id="336738"
3250                                    data-auth="false"
3251                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336738, this);"
3252                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3253                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3254                            </button>
3255                            <div class="mx-status">
3256                                        <span class="mx-date">10/10</span>
3257                                    <span class="mx-time">12:00</span>
3258                            </div>
3259                        </div>
3260
3261                        <div class="mx-center">
3262                            <a href="/chuncheon-vs-jeonbuk-motors-ii-id336738" class="mx-teams-link">
3263                                <div class="mx-team-row">
3264                                    <img src="/images/football/teams/7064.webp"
3265                                         alt="Chuncheon" class="mx-team-logo" loading="lazy"
3266                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3267                                    <span class="mx-team-name">Chuncheon</span>
3268                                    <span class="mx-score ">
3269                                    </span>
3270                                </div>
3271                                <div class="mx-team-row">
3272                                    <img src="/images/football/teams/25717.webp"
3273                                         alt="Jeonbuk Motors II" class="mx-team-logo" loading="lazy"
3274                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3275                                    <span class="mx-team-name">Jeonbuk Motors II</span>
3276                                    <span class="mx-score ">
3277                                    </span>
3278                                </div>
3279                            </a>
3280                        </div>
3281
3282                        <div class="mx-right ">
3283                                <a href="/chuncheon-vs-jeonbuk-motors-ii-id336738" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3284                        </div>
3285                    </div>
3286                    <div class="mx-row  " data-search="K3 League South-Korea Busan Transportation Yeoju Sejong">
3287                        <div class="mx-left">
3288                            <button type="button" class="mx-fav-btn favorite-btn"
3289                                    data-match-id="338555"
3290                                    data-auth="false"
3291                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(338555, this);"
3292                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3293                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3294                            </button>
3295                            <div class="mx-status">
3296                                        <span class="mx-date">10/10</span>
3297                                    <span class="mx-time">12:00</span>
3298                            </div>
3299                        </div>
3300
3301                        <div class="mx-center">
3302                            <a href="/busan-transportation-vs-yeoju-sejong-id338555" class="mx-teams-link">
3303                                <div class="mx-team-row">
3304                                    <img src="/images/football/teams/7056.webp"
3305                                         alt="Busan Transportation" class="mx-team-logo" loading="lazy"
3306                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3307                                    <span class="mx-team-name">Busan Transportation</span>
3308                                    <span class="mx-score ">
3309                                    </span>
3310                                </div>
3311                                <div class="mx-team-row">
3312                                    <img src="/images/football/teams/7112.webp"
3313                                         alt="Yeoju Sejong" class="mx-team-logo" loading="lazy"
3314                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3315                                    <span class="mx-team-name">Yeoju Sejong</span>
3316                                    <span class="mx-score ">
3317                                    </span>
3318                                </div>
3319                            </a>
3320                        </div>
3321
3322                        <div class="mx-right ">
3323                                <a href="/busan-transportation-vs-yeoju-sejong-id338555" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3324                        </div>
3325                    </div>
3326            </div>
3327        </div>
3328        <div class="lg-section" data-search="J1 League Japan">
3329            <div class="lg-header">
3330                <div class="lg-header-left">
3331                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
3332                        <svg class="icon"><use href="#icon-star"/></svg>
3333                    </button>
3334                        <span class="lg-country-name">Japan:</span>
3335                    <img src="/images/football/leagues/98.webp"
3336                         alt="J1 League" class="lg-logo" loading="lazy"
3337                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
3338                    <span class="lg-name">J1 League</span>
3339                </div>
3340                <div class="lg-header-right">
3341                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
3342                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
3343                    </button>
3344                </div>
3345            </div>
3346
3347            <div class="lg-matches">
3348                    <div class="mx-row  " data-search="J1 League Japan Cerezo Osaka Yokohama F. Marinos Phan Pepsi Black Panther">
3349                        <div class="mx-left">
3350                            <button type="button" class="mx-fav-btn favorite-btn"
3351                                    data-match-id="336742"
3352                                    data-auth="false"
3353                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336742, this);"
3354                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3355                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3356                            </button>
3357                            <div class="mx-status">
3358                                        <span class="mx-date">10/10</span>
3359                                    <span class="mx-time">12:00</span>
3360                            </div>
3361                        </div>
3362
3363                        <div class="mx-center">
3364                            <a href="/cerezo-osaka-vs-yokohama-f-marinos-id336742/phan-pepsi" class="mx-teams-link">
3365                                <div class="mx-team-row">
3366                                    <img src="/images/football/teams/291.webp"
3367                                         alt="Cerezo Osaka" class="mx-team-logo" loading="lazy"
3368                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3369                                    <span class="mx-team-name">Cerezo Osaka</span>
3370                                    <span class="mx-score ">
3371                                    </span>
3372                                </div>
3373                                <div class="mx-team-row">
3374                                    <img src="/images/football/teams/296.webp"
3375                                         alt="Yokohama F. Marinos" class="mx-team-logo" loading="lazy"
3376                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3377                                    <span class="mx-team-name">Yokohama F. Marinos</span>
3378                                    <span class="mx-score ">
3379                                    </span>
3380                                </div>
3381                            </a>
3382                        </div>
3383
3384                        <div class="mx-right ">
3385                                <div class="mx-streamers">
3386                                            <a href="/streamer/12/phan-pepsi"
3387                                               title="Streamer"
3388                                               class="mx-streamer-badge ">
3389                                                BLV PHAN PEPSI
3390                                            </a>
3391                                            <a href="/streamer/86/black-panther"
3392                                               title="Streamer"
3393                                               class="mx-streamer-badge ">
3394                                                BLV BLACK PANTHER
3395                                            </a>
3396                                </div>
3397                                <a href="/cerezo-osaka-vs-yokohama-f-marinos-id336742/phan-pepsi" class="mx-action-btn live-btn">
3398                                    <svg class="icon"><use href="#icon-live"/></svg> LIVE
3399                                </a>
3400                                <a href="/cerezo-osaka-vs-yokohama-f-marinos-id336742/phan-pepsi" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3401                        </div>
3402                    </div>
3403                    <div class="mx-row  " data-search="J1 League Japan Avispa Fukuoka Fagiano Okayama">
3404                        <div class="mx-left">
3405                            <button type="button" class="mx-fav-btn favorite-btn"
3406                                    data-match-id="336749"
3407                                    data-auth="false"
3408                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336749, this);"
3409                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3410                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3411                            </button>
3412                            <div class="mx-status">
3413                                        <span class="mx-date">10/10</span>
3414                                    <span class="mx-time">13:00</span>
3415                            </div>
3416                        </div>
3417
3418                        <div class="mx-center">
3419                            <a href="/avispa-fukuoka-vs-fagiano-okayama-id336749" class="mx-teams-link">
3420                                <div class="mx-team-row">
3421                                    <img src="/images/football/teams/316.webp"
3422                                         alt="Avispa Fukuoka" class="mx-team-logo" loading="lazy"
3423                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3424                                    <span class="mx-team-name">Avispa Fukuoka</span>
3425                                    <span class="mx-score ">
3426                                    </span>
3427                                </div>
3428                                <div class="mx-team-row">
3429                                    <img src="/images/football/teams/310.webp"
3430                                         alt="Fagiano Okayama" class="mx-team-logo" loading="lazy"
3431                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3432                                    <span class="mx-team-name">Fagiano Okayama</span>
3433                                    <span class="mx-score ">
3434                                    </span>
3435                                </div>
3436                            </a>
3437                        </div>
3438
3439                        <div class="mx-right ">
3440                                <a href="/avispa-fukuoka-vs-fagiano-okayama-id336749" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3441                        </div>
3442                    </div>
3443                    <div class="mx-row  " data-search="J1 League Japan FC Tokyo Urawa Groot">
3444                        <div class="mx-left">
3445                            <button type="button" class="mx-fav-btn favorite-btn"
3446                                    data-match-id="336750"
3447                                    data-auth="false"
3448                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336750, this);"
3449                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3450                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3451                            </button>
3452                            <div class="mx-status">
3453                                        <span class="mx-date">10/10</span>
3454                                    <span class="mx-time">13:00</span>
3455                            </div>
3456                        </div>
3457
3458                        <div class="mx-center">
3459                            <a href="/fc-tokyo-vs-urawa-id336750/groot" class="mx-teams-link">
3460                                <div class="mx-team-row">
3461                                    <img src="/images/football/teams/292.webp"
3462                                         alt="FC Tokyo" class="mx-team-logo" loading="lazy"
3463                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3464                                    <span class="mx-team-name">FC Tokyo</span>
3465                                    <span class="mx-score ">
3466                                    </span>
3467                                </div>
3468                                <div class="mx-team-row">
3469                                    <img src="/images/football/teams/287.webp"
3470                                         alt="Urawa" class="mx-team-logo" loading="lazy"
3471                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3472                                    <span class="mx-team-name">Urawa</span>
3473                                    <span class="mx-score ">
3474                                    </span>
3475                                </div>
3476                            </a>
3477                        </div>
3478
3479                        <div class="mx-right ">
3480                                <div class="mx-streamers">
3481                                            <a href="/streamer/94/groot"
3482                                               title="Streamer"
3483                                               class="mx-streamer-badge ">
3484                                                BLV GROOT
3485                                            </a>
3486                                </div>
3487                                <a href="/fc-tokyo-vs-urawa-id336750/groot" class="mx-action-btn live-btn">
3488                                    <svg class="icon"><use href="#icon-live"/></svg> LIVE
3489                                </a>
3490                                <a href="/fc-tokyo-vs-urawa-id336750/groot" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3491                        </div>
3492                    </div>
3493            </div>
3494        </div>
3495        <div class="lg-section" data-search="4. liga - Divizie B Czech-Republic">
3496            <div class="lg-header">
3497                <div class="lg-header-left">
3498                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
3499                        <svg class="icon"><use href="#icon-star"/></svg>
3500                    </button>
3501                        <span class="lg-country-name">Czech-Republic:</span>
3502                    <img src="/images/football/leagues/351.webp"
3503                         alt="4. liga - Divizie B" class="lg-logo" loading="lazy"
3504                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
3505                    <span class="lg-name">4. liga - Divizie B</span>
3506                </div>
3507                <div class="lg-header-right">
3508                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
3509                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
3510                    </button>
3511                </div>
3512            </div>
3513
3514            <div class="lg-matches">
3515                    <div class="mx-row  " data-search="4. liga - Divizie B Czech-Republic Ban&#xED;k Sokolov Sokol Hostou&#x148;">
3516                        <div class="mx-left">
3517                            <button type="button" class="mx-fav-btn favorite-btn"
3518                                    data-match-id="336775"
3519                                    data-auth="false"
3520                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336775, this);"
3521                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3522                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3523                            </button>
3524                            <div class="mx-status">
3525                                        <span class="mx-date">10/10</span>
3526                                    <span class="mx-time">15:15</span>
3527                            </div>
3528                        </div>
3529
3530                        <div class="mx-center">
3531                            <a href="/banik-sokolov-vs-sokol-hostoun-id336775" class="mx-teams-link">
3532                                <div class="mx-team-row">
3533                                    <img src="/images/football/teams/3721.webp"
3534                                         alt="Ban&#xED;k Sokolov" class="mx-team-logo" loading="lazy"
3535                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3536                                    <span class="mx-team-name">Ban&#xED;k Sokolov</span>
3537                                    <span class="mx-score ">
3538                                    </span>
3539                                </div>
3540                                <div class="mx-team-row">
3541                                    <img src="/images/football/teams/7350.webp"
3542                                         alt="Sokol Hostou&#x148;" class="mx-team-logo" loading="lazy"
3543                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3544                                    <span class="mx-team-name">Sokol Hostou&#x148;</span>
3545                                    <span class="mx-score ">
3546                                    </span>
3547                                </div>
3548                            </a>
3549                        </div>
3550
3551                        <div class="mx-right ">
3552                                <a href="/banik-sokolov-vs-sokol-hostoun-id336775" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3553                        </div>
3554                    </div>
3555                    <div class="mx-row  " data-search="4. liga - Divizie B Czech-Republic &#x160;t&#x11B;t&#xED; Karlovy Vary">
3556                        <div class="mx-left">
3557                            <button type="button" class="mx-fav-btn favorite-btn"
3558                                    data-match-id="336776"
3559                                    data-auth="false"
3560                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336776, this);"
3561                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3562                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3563                            </button>
3564                            <div class="mx-status">
3565                                        <span class="mx-date">10/10</span>
3566                                    <span class="mx-time">15:15</span>
3567                            </div>
3568                        </div>
3569
3570                        <div class="mx-center">
3571                            <a href="/steti-vs-karlovy-vary-id336776" class="mx-teams-link">
3572                                <div class="mx-team-row">
3573                                    <img src="/images/football/teams/7386.webp"
3574                                         alt="&#x160;t&#x11B;t&#xED;" class="mx-team-logo" loading="lazy"
3575                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3576                                    <span class="mx-team-name">&#x160;t&#x11B;t&#xED;</span>
3577                                    <span class="mx-score ">
3578                                    </span>
3579                                </div>
3580                                <div class="mx-team-row">
3581                                    <img src="/images/football/teams/7306.webp"
3582                                         alt="Karlovy Vary" class="mx-team-logo" loading="lazy"
3583                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3584                                    <span class="mx-team-name">Karlovy Vary</span>
3585                                    <span class="mx-score ">
3586                                    </span>
3587                                </div>
3588                            </a>
3589                        </div>
3590
3591                        <div class="mx-right ">
3592                                <a href="/steti-vs-karlovy-vary-id336776" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3593                        </div>
3594                    </div>
3595                    <div class="mx-row  " data-search="4. liga - Divizie B Czech-Republic Slavoj Vy&#x161;ehrad &#xDA;jezd Praha 4">
3596                        <div class="mx-left">
3597                            <button type="button" class="mx-fav-btn favorite-btn"
3598                                    data-match-id="336777"
3599                                    data-auth="false"
3600                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336777, this);"
3601                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3602                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3603                            </button>
3604                            <div class="mx-status">
3605                                        <span class="mx-date">10/10</span>
3606                                    <span class="mx-time">15:15</span>
3607                            </div>
3608                        </div>
3609
3610                        <div class="mx-center">
3611                            <a href="/slavoj-vysehrad-vs-ujezd-praha-4-id336777" class="mx-teams-link">
3612                                <div class="mx-team-row">
3613                                    <img src="https://media.api-sports.io/football/teams/4258.png"
3614                                         alt="Slavoj Vy&#x161;ehrad" class="mx-team-logo" loading="lazy"
3615                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3616                                    <span class="mx-team-name">Slavoj Vy&#x161;ehrad</span>
3617                                    <span class="mx-score ">
3618                                    </span>
3619                                </div>
3620                                <div class="mx-team-row">
3621                                    <img src="/images/football/teams/19439.webp"
3622                                         alt="&#xDA;jezd Praha 4" class="mx-team-logo" loading="lazy"
3623                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3624                                    <span class="mx-team-name">&#xDA;jezd Praha 4</span>
3625                                    <span class="mx-score ">
3626                                    </span>
3627                                </div>
3628                            </a>
3629                        </div>
3630
3631                        <div class="mx-right ">
3632                                <a href="/slavoj-vysehrad-vs-ujezd-praha-4-id336777" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3633                        </div>
3634                    </div>
3635            </div>
3636        </div>
3637        <div class="lg-section" data-search="K League 1 South-Korea">
3638            <div class="lg-header">
3639                <div class="lg-header-left">
3640                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
3641                        <svg class="icon"><use href="#icon-star"/></svg>
3642                    </button>
3643                        <span class="lg-country-name">South-Korea:</span>
3644                    <img src="/images/football/leagues/292.webp"
3645                         alt="K League 1" class="lg-logo" loading="lazy"
3646                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
3647                    <span class="lg-name">K League 1</span>
3648                </div>
3649                <div class="lg-header-right">
3650                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
3651                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
3652                    </button>
3653                </div>
3654            </div>
3655
3656            <div class="lg-matches">
3657                    <div class="mx-row  " data-search="K League 1 South-Korea FC Seoul Jeju United FC Iron Man">
3658                        <div class="mx-left">
3659                            <button type="button" class="mx-fav-btn favorite-btn"
3660                                    data-match-id="336734"
3661                                    data-auth="false"
3662                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336734, this);"
3663                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3664                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3665                            </button>
3666                            <div class="mx-status">
3667                                        <span class="mx-date">10/10</span>
3668                                    <span class="mx-time">12:00</span>
3669                            </div>
3670                        </div>
3671
3672                        <div class="mx-center">
3673                            <a href="/fc-seoul-vs-jeju-united-fc-id336734/iron-man-2" class="mx-teams-link">
3674                                <div class="mx-team-row">
3675                                    <img src="/images/football/teams/2766.webp"
3676                                         alt="FC Seoul" class="mx-team-logo" loading="lazy"
3677                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3678                                    <span class="mx-team-name">FC Seoul</span>
3679                                    <span class="mx-score ">
3680                                    </span>
3681                                </div>
3682                                <div class="mx-team-row">
3683                                    <img src="/images/football/teams/2761.webp"
3684                                         alt="Jeju United FC" class="mx-team-logo" loading="lazy"
3685                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3686                                    <span class="mx-team-name">Jeju United FC</span>
3687                                    <span class="mx-score ">
3688                                    </span>
3689                                </div>
3690                            </a>
3691                        </div>
3692
3693                        <div class="mx-right ">
3694                                <div class="mx-streamers">
3695                                            <a href="/streamer/81/iron-man"
3696                                               title="Streamer"
3697                                               class="mx-streamer-badge ">
3698                                                BLV IRON MAN
3699                                            </a>
3700                                </div>
3701                                <a href="/fc-seoul-vs-jeju-united-fc-id336734/iron-man-2" class="mx-action-btn live-btn">
3702                                    <svg class="icon"><use href="#icon-live"/></svg> LIVE
3703                                </a>
3704                                <a href="/fc-seoul-vs-jeju-united-fc-id336734/iron-man-2" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3705                        </div>
3706                    </div>
3707                    <div class="mx-row  " data-search="K League 1 South-Korea Gimcheon Sangmu FC FC Anyang Black Panther">
3708                        <div class="mx-left">
3709                            <button type="button" class="mx-fav-btn favorite-btn"
3710                                    data-match-id="336753"
3711                                    data-auth="false"
3712                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336753, this);"
3713                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3714                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3715                            </button>
3716                            <div class="mx-status">
3717                                        <span class="mx-date">10/10</span>
3718                                    <span class="mx-time">14:30</span>
3719                            </div>
3720                        </div>
3721
3722                        <div class="mx-center">
3723                            <a href="/gimcheon-sangmu-fc-vs-fc-anyang-id336753/black-panther" class="mx-teams-link">
3724                                <div class="mx-team-row">
3725                                    <img src="/images/football/teams/2768.webp"
3726                                         alt="Gimcheon Sangmu FC" class="mx-team-logo" loading="lazy"
3727                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3728                                    <span class="mx-team-name">Gimcheon Sangmu FC</span>
3729                                    <span class="mx-score ">
3730                                    </span>
3731                                </div>
3732                                <div class="mx-team-row">
3733                                    <img src="/images/football/teams/2748.webp"
3734                                         alt="FC Anyang" class="mx-team-logo" loading="lazy"
3735                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3736                                    <span class="mx-team-name">FC Anyang</span>
3737                                    <span class="mx-score ">
3738                                    </span>
3739                                </div>
3740                            </a>
3741                        </div>
3742
3743                        <div class="mx-right ">
3744                                <div class="mx-streamers">
3745                                            <a href="/streamer/86/black-panther"
3746                                               title="Streamer"
3747                                               class="mx-streamer-badge ">
3748                                                BLV BLACK PANTHER
3749                                            </a>
3750                                </div>
3751                                <a href="/gimcheon-sangmu-fc-vs-fc-anyang-id336753/black-panther" class="mx-action-btn live-btn">
3752                                    <svg class="icon"><use href="#icon-live"/></svg> LIVE
3753                                </a>
3754                                <a href="/gimcheon-sangmu-fc-vs-fc-anyang-id336753/black-panther" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3755                        </div>
3756                    </div>
3757            </div>
3758        </div>
3759        <div class="lg-section" data-search="Premier League Mongolia">
3760            <div class="lg-header">
3761                <div class="lg-header-left">
3762                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
3763                        <svg class="icon"><use href="#icon-star"/></svg>
3764                    </button>
3765                        <span class="lg-country-name">Mongolia:</span>
3766                    <img src="/images/football/leagues/764.webp"
3767                         alt="Premier League" class="lg-logo" loading="lazy"
3768                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
3769                    <span class="lg-name">Premier League</span>
3770                </div>
3771                <div class="lg-header-right">
3772                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
3773                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
3774                    </button>
3775                </div>
3776            </div>
3777
3778            <div class="lg-matches">
3779                    <div class="mx-row  " data-search="Premier League Mongolia Khovd Amtat FC">
3780                        <div class="mx-left">
3781                            <button type="button" class="mx-fav-btn favorite-btn"
3782                                    data-match-id="336769"
3783                                    data-auth="false"
3784                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336769, this);"
3785                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3786                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3787                            </button>
3788                            <div class="mx-status">
3789                                        <span class="mx-date">10/10</span>
3790                                    <span class="mx-time">12:00</span>
3791                            </div>
3792                        </div>
3793
3794                        <div class="mx-center">
3795                            <a href="/khovd-vs-amtat-fc-id336769" class="mx-teams-link">
3796                                <div class="mx-team-row">
3797                                    <img src="/images/football/teams/18104.webp"
3798                                         alt="Khovd" class="mx-team-logo" loading="lazy"
3799                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3800                                    <span class="mx-team-name">Khovd</span>
3801                                    <span class="mx-score ">
3802                                    </span>
3803                                </div>
3804                                <div class="mx-team-row">
3805                                    <img src="https://media.api-sports.io/football/teams/28430.png"
3806                                         alt="Amtat FC" class="mx-team-logo" loading="lazy"
3807                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3808                                    <span class="mx-team-name">Amtat FC</span>
3809                                    <span class="mx-score ">
3810                                    </span>
3811                                </div>
3812                            </a>
3813                        </div>
3814
3815                        <div class="mx-right ">
3816                                <a href="/khovd-vs-amtat-fc-id336769" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3817                        </div>
3818                    </div>
3819                    <div class="mx-row  " data-search="Premier League Mongolia Khovd Western Hunters">
3820                        <div class="mx-left">
3821                            <button type="button" class="mx-fav-btn favorite-btn"
3822                                    data-match-id="336905"
3823                                    data-auth="false"
3824                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336905, this);"
3825                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3826                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3827                            </button>
3828                            <div class="mx-status">
3829                                        <span class="mx-date">10/10</span>
3830                                    <span class="mx-time">15:00</span>
3831                            </div>
3832                        </div>
3833
3834                        <div class="mx-center">
3835                            <a href="/khovd-western-vs-hunters-id336905" class="mx-teams-link">
3836                                <div class="mx-team-row">
3837                                    <img src="/images/football/teams/26669.webp"
3838                                         alt="Khovd Western" class="mx-team-logo" loading="lazy"
3839                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3840                                    <span class="mx-team-name">Khovd Western</span>
3841                                    <span class="mx-score ">
3842                                    </span>
3843                                </div>
3844                                <div class="mx-team-row">
3845                                    <img src="/images/football/teams/24722.webp"
3846                                         alt="Hunters" class="mx-team-logo" loading="lazy"
3847                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3848                                    <span class="mx-team-name">Hunters</span>
3849                                    <span class="mx-score ">
3850                                    </span>
3851                                </div>
3852                            </a>
3853                        </div>
3854
3855                        <div class="mx-right ">
3856                                <a href="/khovd-western-vs-hunters-id336905" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3857                        </div>
3858                    </div>
3859            </div>
3860        </div>
3861        <div class="lg-section" data-search="Premier League Hong-Kong">
3862            <div class="lg-header">
3863                <div class="lg-header-left">
3864                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
3865                        <svg class="icon"><use href="#icon-star"/></svg>
3866                    </button>
3867                        <span class="lg-country-name">Hong-Kong:</span>
3868                    <img src="/images/football/leagues/380.webp"
3869                         alt="Premier League" class="lg-logo" loading="lazy"
3870                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
3871                    <span class="lg-name">Premier League</span>
3872                </div>
3873                <div class="lg-header-right">
3874                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
3875                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
3876                    </button>
3877                </div>
3878            </div>
3879
3880            <div class="lg-matches">
3881                    <div class="mx-row  " data-search="Premier League Hong-Kong Kitchee Hong Kong FC">
3882                        <div class="mx-left">
3883                            <button type="button" class="mx-fav-btn favorite-btn"
3884                                    data-match-id="336766"
3885                                    data-auth="false"
3886                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336766, this);"
3887                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3888                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3889                            </button>
3890                            <div class="mx-status">
3891                                        <span class="mx-date">10/10</span>
3892                                    <span class="mx-time">15:00</span>
3893                            </div>
3894                        </div>
3895
3896                        <div class="mx-center">
3897                            <a href="/kitchee-vs-hong-kong-fc-id336766" class="mx-teams-link">
3898                                <div class="mx-team-row">
3899                                    <img src="/images/football/teams/4453.webp"
3900                                         alt="Kitchee" class="mx-team-logo" loading="lazy"
3901                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3902                                    <span class="mx-team-name">Kitchee</span>
3903                                    <span class="mx-score ">
3904                                    </span>
3905                                </div>
3906                                <div class="mx-team-row">
3907                                    <img src="/images/football/teams/4462.webp"
3908                                         alt="Hong Kong FC" class="mx-team-logo" loading="lazy"
3909                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3910                                    <span class="mx-team-name">Hong Kong FC</span>
3911                                    <span class="mx-score ">
3912                                    </span>
3913                                </div>
3914                            </a>
3915                        </div>
3916
3917                        <div class="mx-right ">
3918                                <a href="/kitchee-vs-hong-kong-fc-id336766" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3919                        </div>
3920                    </div>
3921                    <div class="mx-row  " data-search="Premier League Hong-Kong Wofoo Tai Po Kowloon City">
3922                        <div class="mx-left">
3923                            <button type="button" class="mx-fav-btn favorite-btn"
3924                                    data-match-id="336767"
3925                                    data-auth="false"
3926                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336767, this);"
3927                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3928                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3929                            </button>
3930                            <div class="mx-status">
3931                                        <span class="mx-date">10/10</span>
3932                                    <span class="mx-time">15:00</span>
3933                            </div>
3934                        </div>
3935
3936                        <div class="mx-center">
3937                            <a href="/wofoo-tai-po-vs-kowloon-city-id336767" class="mx-teams-link">
3938                                <div class="mx-team-row">
3939                                    <img src="/images/football/teams/4457.webp"
3940                                         alt="Wofoo Tai Po" class="mx-team-logo" loading="lazy"
3941                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3942                                    <span class="mx-team-name">Wofoo Tai Po</span>
3943                                    <span class="mx-score ">
3944                                    </span>
3945                                </div>
3946                                <div class="mx-team-row">
3947                                    <img src="/images/football/teams/20392.webp"
3948                                         alt="Kowloon City" class="mx-team-logo" loading="lazy"
3949                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
3950                                    <span class="mx-team-name">Kowloon City</span>
3951                                    <span class="mx-score ">
3952                                    </span>
3953                                </div>
3954                            </a>
3955                        </div>
3956
3957                        <div class="mx-right ">
3958                                <a href="/wofoo-tai-po-vs-kowloon-city-id336767" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
3959                        </div>
3960                    </div>
3961            </div>
3962        </div>
3963        <div class="lg-section" data-search="4. liga - Divizie C Czech-Republic">
3964            <div class="lg-header">
3965                <div class="lg-header-left">
3966                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
3967                        <svg class="icon"><use href="#icon-star"/></svg>
3968                    </button>
3969                        <span class="lg-country-name">Czech-Republic:</span>
3970                    <img src="/images/football/leagues/352.webp"
3971                         alt="4. liga - Divizie C" class="lg-logo" loading="lazy"
3972                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
3973                    <span class="lg-name">4. liga - Divizie C</span>
3974                </div>
3975                <div class="lg-header-right">
3976                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
3977                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
3978                    </button>
3979                </div>
3980            </div>
3981
3982            <div class="lg-matches">
3983                    <div class="mx-row  " data-search="4. liga - Divizie C Czech-Republic Slavia Hradec Kr&#xE1;lov&#xE9; Spartak Police n/Metuj&#xED;">
3984                        <div class="mx-left">
3985                            <button type="button" class="mx-fav-btn favorite-btn"
3986                                    data-match-id="336778"
3987                                    data-auth="false"
3988                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336778, this);"
3989                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
3990                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
3991                            </button>
3992                            <div class="mx-status">
3993                                        <span class="mx-date">10/10</span>
3994                                    <span class="mx-time">15:15</span>
3995                            </div>
3996                        </div>
3997
3998                        <div class="mx-center">
3999                            <a href="/slavia-hradec-kralove-vs-spartak-police-nmetuji-id336778" class="mx-teams-link">
4000                                <div class="mx-team-row">
4001                                    <img src="/images/football/teams/21648.webp"
4002                                         alt="Slavia Hradec Kr&#xE1;lov&#xE9;" class="mx-team-logo" loading="lazy"
4003                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4004                                    <span class="mx-team-name">Slavia Hradec Kr&#xE1;lov&#xE9;</span>
4005                                    <span class="mx-score ">
4006                                    </span>
4007                                </div>
4008                                <div class="mx-team-row">
4009                                    <img src="/images/football/teams/24193.webp"
4010                                         alt="Spartak Police n/Metuj&#xED;" class="mx-team-logo" loading="lazy"
4011                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4012                                    <span class="mx-team-name">Spartak Police n/Metuj&#xED;</span>
4013                                    <span class="mx-score ">
4014                                    </span>
4015                                </div>
4016                            </a>
4017                        </div>
4018
4019                        <div class="mx-right ">
4020                                <a href="/slavia-hradec-kralove-vs-spartak-police-nmetuji-id336778" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
4021                        </div>
4022                    </div>
4023                    <div class="mx-row  " data-search="4. liga - Divizie C Czech-Republic Vykan P&#x159;epe&#x159;e">
4024                        <div class="mx-left">
4025                            <button type="button" class="mx-fav-btn favorite-btn"
4026                                    data-match-id="336779"
4027                                    data-auth="false"
4028                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336779, this);"
4029                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
4030                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
4031                            </button>
4032                            <div class="mx-status">
4033                                        <span class="mx-date">10/10</span>
4034                                    <span class="mx-time">15:15</span>
4035                            </div>
4036                        </div>
4037
4038                        <div class="mx-center">
4039                            <a href="/vykan-vs-prepere-id336779" class="mx-teams-link">
4040                                <div class="mx-team-row">
4041                                    <img src="https://media.api-sports.io/football/teams/27889.png"
4042                                         alt="Vykan" class="mx-team-logo" loading="lazy"
4043                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4044                                    <span class="mx-team-name">Vykan</span>
4045                                    <span class="mx-score ">
4046                                    </span>
4047                                </div>
4048                                <div class="mx-team-row">
4049                                    <img src="/images/football/teams/7336.webp"
4050                                         alt="P&#x159;epe&#x159;e" class="mx-team-logo" loading="lazy"
4051                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4052                                    <span class="mx-team-name">P&#x159;epe&#x159;e</span>
4053                                    <span class="mx-score ">
4054                                    </span>
4055                                </div>
4056                            </a>
4057                        </div>
4058
4059                        <div class="mx-right ">
4060                                <a href="/vykan-vs-prepere-id336779" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
4061                        </div>
4062                    </div>
4063            </div>
4064        </div>
4065        <div class="lg-section" data-search="Liga MX Mexico">
4066            <div class="lg-header">
4067                <div class="lg-header-left">
4068                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
4069                        <svg class="icon"><use href="#icon-star"/></svg>
4070                    </button>
4071                        <span class="lg-country-name">Mexico:</span>
4072                    <img src="/images/football/leagues/262.webp"
4073                         alt="Liga MX" class="lg-logo" loading="lazy"
4074                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
4075                    <span class="lg-name">Liga MX</span>
4076                </div>
4077                <div class="lg-header-right">
4078                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
4079                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
4080                    </button>
4081                </div>
4082            </div>
4083
4084            <div class="lg-matches">
4085                    <div class="mx-row  " data-search="Liga MX Mexico Tigres UANL Toluca Iron Man">
4086                        <div class="mx-left">
4087                            <button type="button" class="mx-fav-btn favorite-btn"
4088                                    data-match-id="336731"
4089                                    data-auth="false"
4090                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336731, this);"
4091                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
4092                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
4093                            </button>
4094                            <div class="mx-status">
4095                                        <span class="mx-date">10/10</span>
4096                                    <span class="mx-time">10:00</span>
4097                            </div>
4098                        </div>
4099
4100                        <div class="mx-center">
4101                            <a href="/tigres-uanl-vs-toluca-id336731/iron-man-2" class="mx-teams-link">
4102                                <div class="mx-team-row">
4103                                    <img src="/images/football/teams/2279.webp"
4104                                         alt="Tigres UANL" class="mx-team-logo" loading="lazy"
4105                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4106                                    <span class="mx-team-name">Tigres UANL</span>
4107                                    <span class="mx-score ">
4108                                    </span>
4109                                </div>
4110                                <div class="mx-team-row">
4111                                    <img src="/images/football/teams/2281.webp"
4112                                         alt="Toluca" class="mx-team-logo" loading="lazy"
4113                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4114                                    <span class="mx-team-name">Toluca</span>
4115                                    <span class="mx-score ">
4116                                    </span>
4117                                </div>
4118                            </a>
4119                        </div>
4120
4121                        <div class="mx-right ">
4122                                <div class="mx-streamers">
4123                                            <a href="/streamer/81/iron-man"
4124                                               title="Streamer"
4125                                               class="mx-streamer-badge ">
4126                                                BLV IRON MAN
4127                                            </a>
4128                                </div>
4129                                <a href="/tigres-uanl-vs-toluca-id336731/iron-man-2" class="mx-action-btn live-btn">
4130                                    <svg class="icon"><use href="#icon-live"/></svg> LIVE
4131                                </a>
4132                                <a href="/tigres-uanl-vs-toluca-id336731/iron-man-2" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
4133                        </div>
4134                    </div>
4135            </div>
4136        </div>
4137        <div class="lg-section" data-search="National League - National New-Zealand">
4138            <div class="lg-header">
4139                <div class="lg-header-left">
4140                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
4141                        <svg class="icon"><use href="#icon-star"/></svg>
4142                    </button>
4143                        <span class="lg-country-name">New-Zealand:</span>
4144                    <img src="/images/football/leagues/955.webp"
4145                         alt="National League - National" class="lg-logo" loading="lazy"
4146                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
4147                    <span class="lg-name">National League - National</span>
4148                </div>
4149                <div class="lg-header-right">
4150                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
4151                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
4152                    </button>
4153                </div>
4154            </div>
4155
4156            <div class="lg-matches">
4157                    <div class="mx-row  " data-search="National League - National New-Zealand Ferrymead Bays Miramar">
4158                        <div class="mx-left">
4159                            <button type="button" class="mx-fav-btn favorite-btn"
4160                                    data-match-id="336732"
4161                                    data-auth="false"
4162                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336732, this);"
4163                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
4164                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
4165                            </button>
4166                            <div class="mx-status">
4167                                        <span class="mx-date">10/10</span>
4168                                    <span class="mx-time">10:00</span>
4169                            </div>
4170                        </div>
4171
4172                        <div class="mx-center">
4173                            <a href="/ferrymead-bays-vs-miramar-id336732" class="mx-teams-link">
4174                                <div class="mx-team-row">
4175                                    <img src="/images/football/teams/20662.webp"
4176                                         alt="Ferrymead Bays" class="mx-team-logo" loading="lazy"
4177                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4178                                    <span class="mx-team-name">Ferrymead Bays</span>
4179                                    <span class="mx-score ">
4180                                    </span>
4181                                </div>
4182                                <div class="mx-team-row">
4183                                    <img src="/images/football/teams/2373.webp"
4184                                         alt="Miramar" class="mx-team-logo" loading="lazy"
4185                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4186                                    <span class="mx-team-name">Miramar</span>
4187                                    <span class="mx-score ">
4188                                    </span>
4189                                </div>
4190                            </a>
4191                        </div>
4192
4193                        <div class="mx-right ">
4194                                <a href="/ferrymead-bays-vs-miramar-id336732" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
4195                        </div>
4196                    </div>
4197            </div>
4198        </div>
4199        <div class="lg-section" data-search="First League Russia">
4200            <div class="lg-header">
4201                <div class="lg-header-left">
4202                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
4203                        <svg class="icon"><use href="#icon-star"/></svg>
4204                    </button>
4205                        <span class="lg-country-name">Russia:</span>
4206                    <img src="/images/football/leagues/236.webp"
4207                         alt="First League" class="lg-logo" loading="lazy"
4208                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
4209                    <span class="lg-name">First League</span>
4210                </div>
4211                <div class="lg-header-right">
4212                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
4213                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
4214                    </button>
4215                </div>
4216            </div>
4217
4218            <div class="lg-matches">
4219                    <div class="mx-row  " data-search="First League Russia Ska-khabarovsk KAMAZ">
4220                        <div class="mx-left">
4221                            <button type="button" class="mx-fav-btn favorite-btn"
4222                                    data-match-id="337796"
4223                                    data-auth="false"
4224                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(337796, this);"
4225                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
4226                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
4227                            </button>
4228                            <div class="mx-status">
4229                                        <span class="mx-date">10/10</span>
4230                                    <span class="mx-time">14:00</span>
4231                            </div>
4232                        </div>
4233
4234                        <div class="mx-center">
4235                            <a href="/ska-khabarovsk-vs-kamaz-id337796" class="mx-teams-link">
4236                                <div class="mx-team-row">
4237                                    <img src="/images/football/teams/1087.webp"
4238                                         alt="Ska-khabarovsk" class="mx-team-logo" loading="lazy"
4239                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4240                                    <span class="mx-team-name">Ska-khabarovsk</span>
4241                                    <span class="mx-score ">
4242                                    </span>
4243                                </div>
4244                                <div class="mx-team-row">
4245                                    <img src="/images/football/teams/6801.webp"
4246                                         alt="KAMAZ" class="mx-team-logo" loading="lazy"
4247                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4248                                    <span class="mx-team-name">KAMAZ</span>
4249                                    <span class="mx-score ">
4250                                    </span>
4251                                </div>
4252                            </a>
4253                        </div>
4254
4255                        <div class="mx-right ">
4256                                <a href="/ska-khabarovsk-vs-kamaz-id337796" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
4257                        </div>
4258                    </div>
4259            </div>
4260        </div>
4261        <div class="lg-section" data-search="Premier League Lesotho">
4262            <div class="lg-header">
4263                <div class="lg-header-left">
4264                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
4265                        <svg class="icon"><use href="#icon-star"/></svg>
4266                    </button>
4267                        <span class="lg-country-name">Lesotho:</span>
4268                    <img src="/images/football/leagues/962.webp"
4269                         alt="Premier League" class="lg-logo" loading="lazy"
4270                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
4271                    <span class="lg-name">Premier League</span>
4272                </div>
4273                <div class="lg-header-right">
4274                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
4275                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
4276                    </button>
4277                </div>
4278            </div>
4279
4280            <div class="lg-matches">
4281                    <div class="mx-row  " data-search="Premier League Lesotho Machokha Mzamane">
4282                        <div class="mx-left">
4283                            <button type="button" class="mx-fav-btn favorite-btn"
4284                                    data-match-id="346863"
4285                                    data-auth="false"
4286                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(346863, this);"
4287                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
4288                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
4289                            </button>
4290                            <div class="mx-status">
4291                                        <span class="mx-date">10/10</span>
4292                                    <span class="mx-time">14:30</span>
4293                            </div>
4294                        </div>
4295
4296                        <div class="mx-center">
4297                            <a href="/machokha-vs-mzamane-id346863" class="mx-teams-link">
4298                                <div class="mx-team-row">
4299                                    <img src="/images/football/teams/20984.webp"
4300                                         alt="Machokha" class="mx-team-logo" loading="lazy"
4301                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4302                                    <span class="mx-team-name">Machokha</span>
4303                                    <span class="mx-score ">
4304                                    </span>
4305                                </div>
4306                                <div class="mx-team-row">
4307                                    <img src="https://media.api-sports.io/football/teams/25066.png"
4308                                         alt="Mzamane" class="mx-team-logo" loading="lazy"
4309                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4310                                    <span class="mx-team-name">Mzamane</span>
4311                                    <span class="mx-score ">
4312                                    </span>
4313                                </div>
4314                            </a>
4315                        </div>
4316
4317                        <div class="mx-right ">
4318                                <a href="/machokha-vs-mzamane-id346863" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
4319                        </div>
4320                    </div>
4321            </div>
4322        </div>
4323        <div class="lg-section" data-search="4. liga - Divizie A Czech-Republic">
4324            <div class="lg-header">
4325                <div class="lg-header-left">
4326                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
4327                        <svg class="icon"><use href="#icon-star"/></svg>
4328                    </button>
4329                        <span class="lg-country-name">Czech-Republic:</span>
4330                    <img src="/images/football/leagues/350.webp"
4331                         alt="4. liga - Divizie A" class="lg-logo" loading="lazy"
4332                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
4333                    <span class="lg-name">4. liga - Divizie A</span>
4334                </div>
4335                <div class="lg-header-right">
4336                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
4337                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
4338                    </button>
4339                </div>
4340            </div>
4341
4342            <div class="lg-matches">
4343                    <div class="mx-row  " data-search="4. liga - Divizie A Czech-Republic K&#x159;imice Spartak Sob&#x11B;slav">
4344                        <div class="mx-left">
4345                            <button type="button" class="mx-fav-btn favorite-btn"
4346                                    data-match-id="336774"
4347                                    data-auth="false"
4348                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336774, this);"
4349                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
4350                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
4351                            </button>
4352                            <div class="mx-status">
4353                                        <span class="mx-date">10/10</span>
4354                                    <span class="mx-time">15:15</span>
4355                            </div>
4356                        </div>
4357
4358                        <div class="mx-center">
4359                            <a href="/krimice-vs-spartak-sobeslav-id336774" class="mx-teams-link">
4360                                <div class="mx-team-row">
4361                                    <img src="/images/football/teams/26228.webp"
4362                                         alt="K&#x159;imice" class="mx-team-logo" loading="lazy"
4363                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4364                                    <span class="mx-team-name">K&#x159;imice</span>
4365                                    <span class="mx-score ">
4366                                    </span>
4367                                </div>
4368                                <div class="mx-team-row">
4369                                    <img src="/images/football/teams/7360.webp"
4370                                         alt="Spartak Sob&#x11B;slav" class="mx-team-logo" loading="lazy"
4371                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4372                                    <span class="mx-team-name">Spartak Sob&#x11B;slav</span>
4373                                    <span class="mx-score ">
4374                                    </span>
4375                                </div>
4376                            </a>
4377                        </div>
4378
4379                        <div class="mx-right ">
4380                                <a href="/krimice-vs-spartak-sobeslav-id336774" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
4381                        </div>
4382                    </div>
4383            </div>
4384        </div>
4385        <div class="lg-section" data-search="3. liga - CFL A Czech-Republic">
4386            <div class="lg-header">
4387                <div class="lg-header-left">
4388                    <button type="button" class="lg-fav-btn" aria-label="Pin league">
4389                        <svg class="icon"><use href="#icon-star"/></svg>
4390                    </button>
4391                        <span class="lg-country-name">Czech-Republic:</span>
4392                    <img src="/images/football/leagues/348.webp"
4393                         alt="3. liga - CFL A" class="lg-logo" loading="lazy"
4394                         onerror="if(!this.dataset.fallback){this.src='/images/placeholder-league.svg';this.dataset.fallback='true';}">
4395                    <span class="lg-name">3. liga - CFL A</span>
4396                </div>
4397                <div class="lg-header-right">
4398                    <button type="button" class="lg-collapse-btn" onclick="toggleLeague(this)" aria-label="Toggle">
4399                        <svg class="icon icon-collapse"><use href="#icon-chevron-up"/></svg>
4400                    </button>
4401                </div>
4402            </div>
4403
4404            <div class="lg-matches">
4405                    <div class="mx-row  " data-search="3. liga - CFL A Czech-Republic Aritma Praha Bohemians 1905 II">
4406                        <div class="mx-left">
4407                            <button type="button" class="mx-fav-btn favorite-btn"
4408                                    data-match-id="336780"
4409                                    data-auth="false"
4410                                    onclick="event.preventDefault(); event.stopPropagation(); handleFavoriteClick(336780, this);"
4411                                    aria-label="Th&#xEA;m v&#xE0;o y&#xEA;u th&#xED;ch">
4412                                <svg class="icon icon-fav"><use href="#icon-star"/></svg>
4413                            </button>
4414                            <div class="mx-status">
4415                                        <span class="mx-date">10/10</span>
4416                                    <span class="mx-time">15:15</span>
4417                            </div>
4418                        </div>
4419
4420                        <div class="mx-center">
4421                            <a href="/aritma-praha-vs-bohemians-1905-ii-id336780" class="mx-teams-link">
4422                                <div class="mx-team-row">
4423                                    <img src="/images/football/teams/7269.webp"
4424                                         alt="Aritma Praha" class="mx-team-logo" loading="lazy"
4425                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4426                                    <span class="mx-team-name">Aritma Praha</span>
4427                                    <span class="mx-score ">
4428                                    </span>
4429                                </div>
4430                                <div class="mx-team-row">
4431                                    <img src="/images/football/teams/14473.webp"
4432                                         alt="Bohemians 1905 II" class="mx-team-logo" loading="lazy"
4433                                         onerror="this.onerror=null; this.src='/images/placeholder-team.svg';">
4434                                    <span class="mx-team-name">Bohemians 1905 II</span>
4435                                    <span class="mx-score ">
4436                                    </span>
4437                                </div>
4438                            </a>
4439                        </div>
4440
4441                        <div class="mx-right ">
4442                                <a href="/aritma-praha-vs-bohemians-1905-ii-id336780" class="mx-action-btn preview-btn">Xem tr&#x1B0;&#x1EDB;c</a>
4443                        </div>
4444                    </div>
4445            </div>
4446        </div>
4447                <nav aria-label="&#x110;i&#x1EC1;u h&#x1B0;&#x1EDB;ng trang" class="mt-4 px-3 match-list-paging">
4448                    <ul class="pagination justify-content-center flex-wrap">
4449                        <li class="page-item disabled">
4450                            <a class="page-link" href="/lich-thi-dau"><svg class="icon"><use href="#icon-chevrons-left"/></svg></a>
4451                        </li>
4452                        <li class="page-item disabled">
4453                            <a class="page-link" href="/lich-thi-dau"><svg class="icon"><use href="#icon-chevron-left"/></svg></a>
4454                        </li>
4455                            <li class="page-item active">
4456                                <a class="page-link" href="/lich-thi-dau">1</a>
4457                            </li>
4458                            <li class="page-item ">
4459                                <a class="page-link" href="/lich-thi-dau?page=2">2</a>
4460                            </li>
4461                            <li class="page-item ">
4462                                <a class="page-link" href="/lich-thi-dau?page=3">3</a>
4463                            </li>
4464                            <li class="page-item ">
4465                                <a class="page-link" href="/lich-thi-dau?page=4">4</a>
4466                            </li>
4467                            <li class="page-item ">
4468                                <a class="page-link" href="/lich-thi-dau?page=5">5</a>
4469                            </li>
4470                        <li class="page-item ">
4471                            <a class="page-link" href="/lich-thi-dau?page=2"><svg class="icon"><use href="#icon-chevron-right"/></svg></a>
4472                        </li>
4473                        <li class="page-item ">
4474                            <a class="page-link" href="/lich-thi-dau?page=193"><svg class="icon"><use href="#icon-chevrons-right"/></svg></a>
4475                        </li>
4476                    </ul>
4477                </nav>
4478                <div class="text-center text-muted mt-2 pb-3 match-list-paging">
4479                    <small>Trang 1 / 193 · T&#x1ED5;ng 9607 tr&#x1EAD;n &#x111;&#x1EA5;u</small>
4480                </div>
4481    
4482    <!-- 页面SEO内容 -->
4483    
4484    <section class="page-seo-content mb-4">
4485        <article>
4486        <header>
4487            <div class="intro-box">
4488                <p>Bạn là một tín đồ túc cầu giáo và không muốn bỏ lỡ bất kỳ trận cầu đỉnh cao nào? Việc nắm bắt <a href="/lich-thi-dau" title="Lịch thi đấu bóng đá"><strong>lịch thi đấu bóng đá</strong></a> chính xác là chìa khóa để bạn sắp xếp thời gian và tận hưởng trọn vẹn không khí sôi động trên sân cỏ. Tại <a href="/" title="Xoigac TV"><strong>Xoigac TV</strong></a>, chúng tôi cung cấp hệ thống lịch thi đấu trực tuyến hiện đại, cập nhật từng giây cho tất cả các giải đấu lớn nhỏ trên toàn thế giới.</p>
4489            </div>
4490        </header>
4491
4492        <section>
4493            <h2>1. Lịch thi đấu bóng đá hôm nay và ngày mai có gì hot?</h2>
4494            <p>Để đáp ứng nhu cầu tra cứu nhanh, Xoigac TV tổng hợp lịch trình của những giải đấu được quan tâm nhất hiện nay. Mọi thay đổi về giờ thi đấu, sân vận động hay đội hình dự kiến đều được đội ngũ biên tập viên cập nhật liên tục.</p>
4495            
4496            <h3>Lịch thi đấu Ngoại hạng Anh (Premier League)</h3>
4497            <p>Giải đấu hấp dẫn nhất hành tinh với sự góp mặt của những ông lớn như Man City, Arsenal, Liverpool hay Man Utd. Lịch thi đấu thường diễn ra tập trung vào các ngày thứ 7 và Chủ nhật hàng tuần.</p>
4498
4499            <h3>Lịch thi đấu Cup C1 (Champions League)</h3>
4500            <p>Nơi quy tụ những đội bóng mạnh nhất châu Âu. Các trận đấu thường diễn ra vào rạng sáng thứ 4 và thứ 5 (giờ Việt Nam). Đừng quên đặt báo thức tại Xoigac TV để xem trực tiếp những cuộc đối đầu kịch tính này.</p>
4501        </section>
4502
4503        <section>
4504            <h2>3. Tại sao nên chọn Xoigac TV để xem lịch thi đấu?</h2>
4505            <p>Giữa hàng trăm website thể thao, <strong>Xoigac TV</strong> vẫn là địa chỉ ưu tiên của hàng triệu người hâm mộ nhờ 
4505những ưu điểm vượt trội:</p>
4506            <ul>
4507                <li><strong>Tính chính xác cao:</strong> Thông tin được lấy từ các nguồn uy tín quốc tế, đảm bảo không có sai sót về múi giờ.</li>
4508                <li><strong>Giao diện thông minh:</strong> Thiết kế tối giản, dễ dàng tra cứu theo ngày, theo giải đấu hoặc theo câu lạc bộ yêu thích.</li>
4509                <li><strong>Tích hợp đa năng:</strong> Bên cạnh lịch thi đấu, bạn có thể xem thêm bảng xếp hạng, kết quả bóng đá và nhận định chuyên sâu.</li>
4510            </ul>
4511        </section>
4512
4513        <section>
4514            <h2>4. Hướng dẫn cách tra cứu lịch thi đấu tại Xoigac TV</h2>
4515            <ol>
4516                <li>Truy cập vào trình duyệt và tìm kiếm từ khóa <strong>"Xoigac TV"</strong>.</li>
4517                <li>Tại trang chủ, chọn mục <strong>"Lịch Thi Đấu"</strong> trên thanh menu chính.</li>
4518                <li>Sử dụng bộ lọc (Filter) để chọn ngày hoặc giải đấu cụ thể mà bạn quan tâm.</li>
4519                <li>Nhấn vào trận đấu để xem chi tiết thông tin đối đầu (H2H) và lấy link xem trực tiếp.</li>
4520            </ol>
4521        </section>
4522
4523        <footer>
4524            <p><em>Việc theo dõi <strong>lịch thi đấu bóng đá</strong> thường xuyên giúp bạn không bỏ lỡ những khoảnh khắc lịch sử. Hãy truy cập <a href="https://xoigac.tv" title="Trực tiếp bóng đá Xoigac TV"><strong>Xoigac TV</strong></a> ngay hôm nay!</em></p>
4525        </footer>
4526    </article>
4527    </section>
4528
4529</div>
4530
4531
4532
4533    </main>
4534    
4535    <!-- SPA 加载进度条 -->
4536    <div class="spa-loading-bar" id="spaLoadingBar"></div>
4537
4538    <!-- 底部 -->
4539    <footer class="footer">
4540        <div class="container">
4541            <div class="row">
4542                <div class="col-lg-4 mb-4 mb-lg-0">
4543                    <div class="footer-brand mb-3">
4544                        <img src="/images/logo-full-footer.webp" alt="XOIGAC" class="footer-logo-full" width="593" height="160" onerror="if(!this.dataset.fallback){this.src='/images/logo-full-footer.png';this.dataset.fallback='true';}" loading="lazy">
4545                    </div>
4546                    <p class="text-muted small">N&#x1EC1;n t&#x1EA3;ng xem b&#xF3;ng &#x111;&#xE1; tr&#x1EF1;c ti&#x1EBF;p chuy&#xEA;n nghi&#x1EC7;p, cung c&#x1EA5;p t&#x1EF7; s&#x1ED1;, ph&#xE1;t s&#xF3;ng v&#xE0; tin t&#x1EE9;c m&#x1EDB;i nh&#x1EA5;t t&#x1EEB; c&#xE1;c gi&#x1EA3;i &#x111;&#x1EA5;u h&#xE0;ng &#x111;&#x1EA7;u th&#x1EBF; gi&#x1EDB;i.</p>
4547                    <div class="social-links">
4548                        <a href="https://weibo.com" target="_blank" rel="nofollow noopener" aria-label="Weibo"><i class="fab fa-weibo" aria-hidden="true"></i></a>
4549                        <a href="https://weixin.qq.com" target="_blank" rel="nofollow noopener" aria-label="WeChat"><i class="fab fa-weixin" aria-hidden="true"></i></a>
4550                        <a href="https://twitter.com" target="_blank" rel="nofollow noopener" aria-label="Twitter"><i class="fab fa-twitter" aria-hidden="true"></i></a>
4551                        <a href="https://youtube.com" target="_blank" rel="nofollow noopener" aria-label="YouTube"><i class="fab fa-youtube" aria-hidden="true"></i></a>
4552                    </div>
4553                </div>
4554                <div class="col-6 col-lg-2">
4555                    <h2 class="footer-title">Li&#xEA;n k&#x1EBF;t nhanh</h2>
4556                    <ul class="footer-links">
4557                        <li><a href="/truc-tiep">Tr&#x1EF1;c ti&#x1EBF;p</a></li>
4558                        <li><a href="/hom-nay">H&#xF4;m nay</a></li>
4559                        <li><a href="/lich-thi-dau">L&#x1ECB;ch thi &#x111;&#x1EA5;u</a></li>
4560                        <li><a href="/tin-tuc-bong-da">Tin T&#x1EE9;c</a></li>
4561                        <li><a href="/nhan-dinh-bong-da">Nh&#x1EAD;n &#x110;&#x1ECB;nh</a></li>
4562                        <li><a href="/giai-dau">Trung t&#xE2;m gi&#x1EA3;i &#x111;&#x1EA5;u</a></li>
4563                        <li><a href="/doi-bong">Trung t&#xE2;m c&#xE2;u l&#x1EA1;c b&#x1ED9;</a></li>
4564                            <li><a href="/leaderboard">BXH Streamer</a></li>
4565                    </ul>
4566                </div>
4567                <div class="col-lg-4">
4568                    <h2 class="footer-title">T&#x1EA3;i &#x1EE9;ng d&#x1EE5;ng</h2>
4569                    <p class="text-muted small mb-3">Xem tr&#x1EF1;c ti&#x1EBF;p m&#x1ECD;i l&#xFA;c m&#x1ECD;i n&#x1A1;i. Kh&#xF4;ng b&#x1ECF; l&#x1EE1; b&#x1EA5;t k&#x1EF3; kho&#x1EA3;nh kh&#x1EAF;c n&#xE0;o.</p>
4570                    <div class="app-buttons">
4571                        <a href="https://www.apple.com/app-store/" target="_blank" rel="nofollow noopener" class="app-btn" aria-label="App Store">
4572                            <i class="fab fa-apple" aria-hidden="true"></i>
4573                            <span>App Store</span>
4574                        </a>
4575                        <a href="https://play.google.com/store" target="_blank" rel="nofollow noopener" class="app-btn" aria-label="Google Play">
4576                            <i class="fab fa-android" aria-hidden="true"></i>
4577                            <span>Android</span>
4578                        </a>
4579                    </div>
4580                </div>
4581            </div>
4582            <hr class="border-secondary my-4">
4583            <div class="row align-items-center">
4584                <div class="col-md-6 text-center text-md-start mb-3 mb-md-0">
4585                    <p class="small text-muted mb-2">&copy; 2026 XOIGAC.TV. All rights reserved.</p>
4586                    <!-- DMCA Protection Badge -->
4587                    <div class="dmca-badge">
4588                        <a href="//www.dmca.com/Protection/Status.aspx?ID=d272f162-1a32-4933-9646-fdcb8a1c4dc7&refurl=https%3A%2F%2Fxoigac.top%2F" title="DMCA.com Protection Status" class="dmca-badge-link">
4589                            <img src="/images/dmca_protected_sml_120n.png" alt="DMCA.com Protection Status" width="121" height="24" / loading="lazy">
4590                        </a>
4591                        <!-- Using self-hosted DMCA image to eliminate third-party cookies -->
4592                    </div>
4593                </div>
4594                <div class="col-md-6 text-center text-md-end">
4595                    <ul class="footer-bottom-links">
4596                        <li>
4597                        <a href="/sitemap.xml"
4598                            target="_blank">
4599                            S&#x1A1; &#x111;&#x1ED3; trang
4600                        </a>
4601                        </li>
4602                        <li><a href="/chinh-sach-bao-mat">Ch&#xED;nh s&#xE1;ch b&#x1EA3;o m&#x1EAD;t</a></li>
4603                        <li><a href="/dieu-khoan-su-dung">&#x110;i&#x1EC1;u kho&#x1EA3;n d&#x1ECB;ch v&#x1EE5;</a></li>
4604                        <li><a href="/lien-he">Li&#xEA;n h&#x1EC7;</a></li>
4605                        <li><a href="/gioi-thieu">V&#x1EC1; ch&#xFA;ng t&#xF4;i</a></li>
4606                        <li><a href="/dmca" rel="nofollow">DMCA</a></li>
4607                    </ul>
4608                </div>
4609            </div>
4610        </div>
4611    </footer>
4612
4613    <!-- 聊天室弹窗遮罩 -->
4614    <div class="chat-modal-overlay d-none" id="chatModalOverlay" style="display: none !important;"></div>
4615    
4616    <!-- 聊天室弹窗 -->
4617    <div class="chat-modal d-none" id="chatModal">
4618        <div class="chat-modal-header">
4619            <span class="chat-modal-title"></span>
4620            <div class="chat-modal-actions">
4621                <button class="chat-modal-btn" id="chatModalFullscreen" data-i18n-title="common.fullscreen" title="To&#xE0;n m&#xE0;n h&#xEC;nh">
4622                    <i class="fas fa-expand"></i>
4623                </button>
4624                <button class="chat-modal-btn chat-modal-close-btn" id="chatModalClose" data-i18n-title="common.collapse" title="Thu g&#x1ECD;n">
4625                    <i class="fas fa-chevron-down"></i>
4626                </button>
4627            </div>
4628        </div>
4629        <div class="chat-modal-body" id="chatModalBody">
4630            <!-- 移动端视频播放器区域 -->
4631            <div class="mobile-video-section d-none" id="mobileVideoSection">
4632                <div class="mobile-video-wrapper">
4633                    <video id="mobileVideo" playsinline muted controls crossorigin>
4634                        <!-- 视频源会通过JavaScript动态设置 -->
4635                    </video>
4636                    <!-- 关闭按钮直接放在视频右上角 -->
4637                    <button class="mobile-video-close" id="mobileVideoClose" data-i18n-title="common.closeVideo" title="&#x110;&#xF3;ng video">
4638                        <i class="fas fa-times"></i>
4639                    </button>
4640                </div>
4641            </div>
4642            <!-- 聊天室内容会被复制到这里 -->
4643        </div>
4644    </div>
4645    
4646    <!-- 全局浮动按钮组 -->
4647    <div class="global-fab-container" id="globalFabContainer">
4648        <!-- 推送通知订阅 -->
4649        <button class="global-fab-btn push-fab" id="push-subscribe-btn" data-i18n-title="push.enableNotifications" title="开启推送通知" style="display: none;">
4650            <i class="fas fa-bell"></i>
4651        </button>
4652        <!-- 强制刷新 -->
4653        <button class="global-fab-btn refresh-fab" id="fabRefresh" data-i18n-title="common.refresh" title="L&#xE0;m m&#x1EDB;i">
4654            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>
4655        </button>
4656        <!-- 回到顶部 -->
4657        <button class="global-fab-btn back-to-top-fab" id="fabBackToTop" data-i18n-title="common.backToTop" title="V&#x1EC1; &#x111;&#x1EA7;u trang">
4658            <i class="fas fa-chevron-up"></i>
4659        </button>
4660        <!-- 打开聊天室:只在有聊天室时显示(已暂时禁用) -->
4661    </div>
4662
4663    <!-- 优化的JavaScript加载 - 使用defer和async -->
4664    <!-- 关键的第三方库 - 使用defer -->
4665    <!-- ★ 添加 crossorigin 属性以支持第三方Cookie -->
4666    
4666<script src="/lib/bootstrap/5.3.2/bootstrap.bundle.min.js?v=gvZPYrsDwbwYJLD5yeBfcNujPhRoGOY831wwbIzz3t0" defer onerror="this.onerror=null;this.src='https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js';"></script>
4666
4667    
4667<script src="https://cdnjs.cloudflare.com/ajax/libs/microsoft-signalr/8.0.0/signalr.min.js" defer crossorigin></script>
4667
4668    
4668<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/hls.min.js" defer crossorigin></script>
4668
4669    
4670    <!-- 应用程序JavaScript - IVS 播放器相关脚本必须按顺序同步加载 -->
4671        <!-- 生产环境:使用打包文件 -->
4672        <!-- 验证码管理器 - 必须在 app.bundle.js 之前加载(app.bundle 包含 auth-modal.js) -->
4673        
4673<script src="/dist/js/captcha-manager.js?v=6Cj5aPMUUHrOwMbOlykc3RZYjobhKsvkLc5aNPDmZi0"></script>
4673
4674        <!-- 核心功能包(3个JS合并)- 同步加载 -->
4675        
4675<script src="/dist/js/core.bundle.js?v=icHE5APGMG30g9fEySb-7hZ5vZ3iHbgJVhyUPH3v4Q8"></script>
4675
4676        <!-- 播放器功能包(8个JS合并)- 延迟加载 -->
4677        
4677<script src="/dist/js/player.bundle.js?v=8u5CWjOuanIR8_RT1hwbFVrUcYrqqHSdSl_i6iFuPEQ" defer></script>
4677
4678        <!-- 应用功能包(含 streamer-follow.js / auth-modal.js)- 延迟加载 -->
4679        
4679<script src="/dist/js/app.bundle.js?v=mOWIwnGUFcWjsPNJLvW6NpHaA0wGjgZ4WYEv8xFjIMQ" defer></script>
4679
4680        
4680<script src="/dist/js/streamer-follow.js?v=p3zJpid1v8N4DkO4wwc04njd4zAS2j99EHmdb_HUbMY" defer></script>
4680
4681    
4681<script src="/js/custom-select.js?v=unrE77TQiy-qc-Fun5fVdZBrEj9yh0GaRL5AHtdIOO8" defer></script>
4681
4682    
4683    <!-- 内联配置脚本 - 必须在其他脚本之前执行 -->
4684    
4684<script>
4685    // 禁用 i18n.js 的自动语言切换 UI 创建(使用服务端渲染的按钮)
4686    window.__disableI18nUI = true;
4687    window.streamerFollowI18n = {
4688        follow: 'Theo dõi',
4689        unfollow: 'Bỏ theo dõi',
4690        followed: 'Đã theo dõi',
4691        unfollowed: 'Đã bỏ theo dõi'
4692    };
4693    window.showFollowerCount = true;
4694    </script>
4694
4695    
4696    <!-- 全局浮动按钮逻辑 -->
4697    
4697<script>
4698    (function() {
4699        const fabBackToTop = document.getElementById('fabBackToTop');
4700        const fabRefresh = document.getElementById('fabRefresh');
4701        const fabOpenChat = document.getElementById('fabOpenChat');
4702        const chatRoom = document.querySelector('.chat-room-container');
4703        const fabChatAvatar = document.getElementById('fabChatAvatar');
4704        const chatModal = document.getElementById('chatModal');
4705        const chatModalOverlay = document.getElementById('chatModalOverlay');
4706        const chatModalBody = document.getElementById('chatModalBody');
4707        const chatModalClose = document.getElementById('chatModalClose');
4708        const chatModalFullscreen = document.getElementById('chatModalFullscreen');
4709        const mobileVideoSection = document.getElementById('mobileVideoSection');
4710        const mobileVideo = document.getElementById('mobileVideo');
4711        const mobileVideoClose = document.getElementById('mobileVideoClose');
4712
4713        let isFullscreen = false;
4714        let originalChatParent = null;
4715        let originalChatNextSibling = null;
4716        let isVideoPlaying = false;
4717        let wasVideoCollapsedBeforeModal = true; // 记录打开弹窗前视频是否收起
4718
4719        // 如果有聊天室且有联赛图标,则把联赛图标同步到右下角 FAB
4720        if (chatRoom && fabChatAvatar) {
4721            const leagueImg = chatRoom.querySelector('.chat-icon-wrapper img');
4722            if (leagueImg && leagueImg.src) {
4723                fabChatAvatar.src = leagueImg.src;
4724            }
4725        }
4726
4727        // 回到顶部和刷新按钮:PC 滚动>300px 常显;移动端滑动后显示,5 秒无垂直滚动自动隐藏
4728        let scrollThrottle = null;
4729        const FAB_IDLE_HIDE_MS = 5000;
4730        const FAB_SCROLL_DELTA = 8;
4731        let fabLastScrollTop = 0;
4732        let fabLastScrollActivityAt = 0;
4733        const globalFabContainer = document.getElementById('globalFabContainer');
4734
4735        function isMobileFabViewport() {
4736            return window.matchMedia('(max-width: 768px)').matches;
4737        }
4738
4739        function getScrollTop() {
4740            return window.scrollY || document.documentElement.scrollTop || document.body.scrollTop || 0;
4741        }
4742
4743        function isFabScrollEligible() {
4744            return getScrollTop() > 300;
4745        }
4746
4747        function hideFabScrollButtons() {
4748            if (fabBackToTop) fabBackToTop.classList.remove('visible');
4749            if (fabRefresh) fabRefresh.classList.remove('visible');
4750            if (globalFabContainer) globalFabContainer.classList.add('fab-auto-hidden');
4751            window.updateFabContainerVisibility();
4752        }
4753
4754        function showFabScrollButtons() {
4755            if (fabBackToTop) fabBackToTop.classList.add('visible');
4756            if (fabRefresh) fabRefresh.classList.add('visible');
4757            if (globalFabContainer) globalFabContainer.classList.remove('fab-auto-hidden');
4758            window.updateFabContainerVisibility();
4759        }
4760
4761        function markFabScrollActivity() {
4762            fabLastScrollActivityAt = Date.now();
4763        }
4764
4765        function updateDesktopFabVisibility() {
4766            if (isFabScrollEligible()) {
4767                showFabScrollButtons();
4768            } else {
4769                hideFabScrollButtons();
4770            }
4771        }
4772
4773        function handleFabScroll() {
4774            const scrollTop = getScrollTop();
4775            const delta = Math.abs(scrollTop - fabLastScrollTop);
4776
4777            if (isMobileFabViewport()) {
4778                if (scrollTop <= 300) {
4779                    fabLastScrollTop = scrollTop;
4780                    hideFabScrollButtons();
4781                    return;
4782                }
4783                if (delta >= FAB_SCROLL_DELTA) {
4784                    fabLastScrollTop = scrollTop;
4785                    markFabScrollActivity();
4786                    showFabScrollButtons();
4787                }
4788                return;
4789            }
4790
4791            fabLastScrollTop = scrollTop;
4792            updateDesktopFabVisibility();
4793        }
4794
4795        // Function to update FAB container visibility
4796        window.updateFabContainerVisibility = function() {
4797            const container = document.getElementById('globalFabContainer');
4798            const fabPushBtn = container ? container.querySelector('#push-subscribe-btn') : null;
4799            const hasVisibleButtons = (fabBackToTop && fabBackToTop.classList.contains('visible')) ||
4800                                       (fabRefresh && fabRefresh.classList.contains('visible')) ||
4801                                       (fabPushBtn && fabPushBtn.style.display !== 'none' && fabPushBtn.classList.contains('visible'));
4802            
4803            if (container) {
4804                if (hasVisibleButtons && !container.classList.contains('fab-auto-hidden')) {
4805                    container.style.display = 'flex';
4806                } else {
4807                    container.style.display = 'none';
4808                }
4809            }
4810        };
4811        
4812        window.addEventListener('scroll', function() {
4813            if (scrollThrottle) return;
4814            scrollThrottle = setTimeout(function() {
4815                handleFabScroll();
4816                scrollThrottle = null;
4817            }, 80);
4818        }, { passive: true });
4819
4820        window.addEventListener('resize', function() {
4821            fabLastScrollTop = getScrollTop();
4822            if (isMobileFabViewport()) {
4823                if (!isFabScrollEligible()) {
4824                    hideFabScrollButtons();
4825                }
4826            } else {
4827                if (globalFabContainer) globalFabContainer.classList.remove('fab-auto-hidden');
4828                updateDesktopFabVisibility();
4829            }
4830        }, { passive: true });
4831
4832        // 移动端:定时强制检查,避免 scroll/touch 漏判导致不消失
4833        setInterval(function() {
4834            if (!isMobileFabViewport()) return;
4835            if (!isFabScrollEligible()) {
4836                if (fabBackToTop && fabBackToTop.classList.contains('visible')) {
4837                    hideFabScrollButtons();
4838                }
4839                return;
4840            }
4841            const isVisible = fabBackToTop && fabBackToTop.classList.contains('visible');
4842            if (!isVisible) return;
4843            const idleMs = Date.now() - fabLastScrollActivityAt;
4844            if (idleMs >= FAB_IDLE_HIDE_MS) {
4845                hideFabScrollButtons();
4846            }
4847        }, 400);
4848        
4849        // Initial check
4850        fabLastScrollTop = getScrollTop();
4851        if (isMobileFabViewport()) {
4852            if (isFabScrollEligible()) {
4853                showFabScrollButtons();
4854                markFabScrollActivity();
4855            } else {
4856                hideFabScrollButtons();
4857            }
4858        } else {
4859            updateDesktopFabVisibility();
4860        }
4861
4862        // 回到顶部点击事件(兼容移动端,避免需要点两次的问题)
4863        function scrollToTop(e) {
4864            e.preventDefault();
4865            e.stopPropagation();
4866            window.scrollTo({ top: 0, behavior: 'smooth' });
4867        }
4868
4869        if (fabBackToTop) {
4870            fabBackToTop.addEventListener('click', scrollToTop);
4871            fabBackToTop.addEventListener('touchend', function(e) {
4872                e.preventDefault();
4873                scrollToTop(e);
4874            });
4875        }
4876        
4877        // 强制刷新点击事件
4878        function forceRefresh(e) {
4879            e.preventDefault();
4880            e.stopPropagation();
4881            // 强制刷新:忽略缓存
4882            location.reload(true);
4883        }
4884        
4885        if (fabRefresh) {
4886            fabRefresh.addEventListener('click', forceRefresh);
4887            fabRefresh.addEventListener('touchend', function(e) {
4888                e.preventDefault();
4889                forceRefresh(e);
4890            });
4891        }
4892
4893        // 获取原始视频播放器元素
4894        function getOriginalVideo() {
4895            return document.getElementById('livePlayer');
4896        }
4897
4898        // 设置移动端视频播放器
4899        function setupMobileVideo() {
4900            const isMobile = window.innerWidth <= 767;
4901            if (!isMobile) return;
4902
4903            const originalVideo = getOriginalVideo();
4904            if (!originalVideo || !mobileVideo) return;
4905
4906            // 复制视频源
4907            if (originalVideo.src) {
4908                mobileVideo.src = originalVideo.src;
4909            } else {
4910                const sources = originalVideo.querySelectorAll('source');
4911                mobileVideo.innerHTML = '';
4912                sources.forEach(source => {
4913                    const newSource = source.cloneNode(true);
4914                    mobileVideo.appendChild(newSource);
4915                });
4916            }
4917
4918            // 同步播放状态
4919            if (!originalVideo.paused) {
4920                mobileVideo.currentTime = originalVideo.currentTime;
4921                setTimeout(() => {
4922                    mobileVideo.play().catch(console.error);
4923                }, 100);
4924            }
4925
4926            // 显示移动端视频区域
4927            mobileVideoSection.classList.remove('d-none');
4928            isVideoPlaying = true;
4929
4930            // 禁用移动端视频的全屏功能
4931            mobileVideo.setAttribute('disablePictureInPicture', 'true');
4932            mobileVideo.setAttribute('controlsList', 'nofullscreen');
4933
4934            // 监听全屏事件并阻止
4935            mobileVideo.addEventListener('webkitfullscreenchange', function() {
4936                if (document.webkitFullscreenElement === mobileVideo) {
4937                    document.webkitExitFullscreen();
4938                }
4939            });
4940
4941            mobileVideo.addEventListener('fullscreenchange', function() {
4942                if (document.fullscreenElement === mobileVideo) {
4943                    document.exitFullscreen();
4944                }
4945            });
4946
4947            // 暂停原视频
4948            originalVideo.pause();
4949        }
4950
4951        // 关闭移动端视频播放器
4952        function closeMobileVideo() {
4953            if (!mobileVideo || !mobileVideoSection) return;
4954
4955            // 隐藏视频区域
4956            mobileVideoSection.classList.add('d-none');
4957            mobileVideo.pause();
4958            isVideoPlaying = false;
4959        }
4960
4961        // 显示聊天室不可用提示
4962        function showChatUnavailableHint(message) {
4963            // 创建提示元素
4964            const hint = document.createElement('div');
4965            hint.className = 'chat-unavailable-hint';
4966            hint.innerHTML = `
4967                <div class="chat-hint-content">
4968                    <i class="fas fa-comments-slash"></i>
4969                    <span>${message}</span>
4970                </div>
4971            `;
4972            hint.style.cssText = `
4973                position: fixed; bottom: 100px; right: 24px; z-index: 1000;
4974                background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
4975                color: white; padding: 16px 20px; border-radius: 12px;
4976                box-shadow: 0 8px 32px rgba(0,0,0,0.3);
4977                border: 1px solid rgba(59, 130, 246, 0.3);
4978                font-size: 14px; max-width: 280px;
4979                animation: slideInUp 0.3s ease;
4980                backdrop-filter: blur(10px);
4981            `;
4982            
4983            // 添加CSS动画
4984            if (!document.querySelector('#chatHintStyles')) {
4985                const style = document.createElement('style');
4986                style.id = 'chatHintStyles';
4987                style.textContent = `
4988                    @keyframes slideInUp {
4989                        from { opacity: 0; transform: translateY(20px); }
4990                        to { opacity: 1; transform: translateY(0); }
4991                    }
4992                    .chat-hint-content {
4993                        display: flex; align-items: center; gap: 12px;
4994                    }
4995                    .chat-hint-content i {
4996                        color: #fbbf24; font-size: 18px;
4997                    }
4998                `;
4999                document.head.appendChild(style);
5000            }
5001            
5002            document.body.appendChild(hint);
5003            
5004            // 3秒后自动消失
5005            setTimeout(() => {
5006                hint.style.animation = 'slideOutDown 0.3s ease forwards';
5007                setTimeout(() => hint.remove(), 300);
5008            }, 3000);
5009        }
5010
5011        // 打开聊天室弹窗
5012        function openChatModal(e) {
5013            if (e) {
5014                e.preventDefault();
5015            }
5016            if (!chatRoom) {
5017                alert(window.L?.T ? window.L.T('common.noChatRoom') : '当前页面没有聊天室');
5018                return;
5019            }
5020
5021            const isMobile = window.innerWidth <= 767;
5022
5023            // 记录原始位置
5024            originalChatParent = chatRoom.parentElement;
5025            originalChatNextSibling = chatRoom.nextElementSibling;
5026
5027            // 移动端:始终显示视频播放器+聊天室(不管视频是否正在播放)
5028            if (isMobile) {
5029                const originalVideo = getOriginalVideo();
5030                const livePlayerSection = document.getElementById('livePlayerSection');
5031                if (originalVideo && livePlayerSection) {
5032                    // 记录打开弹窗前视频是否收起
5033                    wasVideoCollapsedBeforeModal = livePlayerSection.classList.contains('collapsed');
5034                    
5035                    // 如果视频还没展开,先展开它
5036                    if (wasVideoCollapsedBeforeModal) {
5037                        livePlayerSection.classList.remove('collapsed');
5038                        // 更新观看直播按钮文字
5039                        const watchBtn = document.querySelector('.btn-live-watch');
5040                        if (watchBtn) {
5041                            watchBtn.innerHTML = '<i class="fas fa-times"></i>收起直播';
5042                        }
5043                    }
5044                    // 准备移动端视频区域
5045                    setupMobileVideo();
5046
5047                    // 从快捷聊天室打开时,自动开始播放移动端视频
5048                    if (mobileVideo) {
5049                        setTimeout(function () {
5050                            mobileVideo.play().catch(function (err) {
5051                                console.warn('自动播放移动端视频失败:', err);
5052                            });
5053                        }, 150);
5054                    }
5055                }
5056            }
5057
5058            // 移动聊天室到弹窗
5059            chatModalBody.appendChild(chatRoom);
5060            chatRoom.classList.add('in-modal');
5061
5062            // 打开弹窗时,默认让消息区域显示在底部,使用平滑滚动更自然
5063            const chatMessages = chatRoom.querySelector('#chatMessages');
5064            if (chatMessages) {
5065                requestAnimationFrame(() => {
5066                    if (typeof chatMessages.scrollTo === 'function') {
5067                        chatMessages.scrollTo({
5068                            top: chatMessages.scrollHeight,
5069                            behavior: 'smooth'
5070                        });
5071                    } else {
5072                        chatMessages.scrollTop = chatMessages.scrollHeight;
5073                    }
5074                });
5075            }
5076
5077            // 显示弹窗
5078            chatModal.classList.remove('d-none');
5079            chatModalOverlay.classList.remove('d-none');
5080            document.body.style.overflow = 'hidden';
5081
5082            // 聚焦输入框
5083            setTimeout(function() {
5084                const input = chatRoom.querySelector('#chatInput');
5085                if (input && !input.readOnly) input.focus();
5086            }, 300);
5087        }
5088
5089        // 关闭聊天室弹窗
5090        function closeChatModal(e) {
5091            if (e) {
5092                e.preventDefault();
5093            }
5094            if (!chatRoom) return;
5095
5096            const isMobile = window.innerWidth <= 767;
5097
5098            // 关闭移动端视频播放器(无论当前是否在播放,都统一收起视频区域)
5099            closeMobileVideo();
5100            
5101            // 移动端:恢复视频播放器原来的状态
5102            if (isMobile && wasVideoCollapsedBeforeModal) {
5103                const livePlayerSection = document.getElementById('livePlayerSection');
5104                const watchBtn = document.querySelector('.btn-live-watch');
5105                if (livePlayerSection) {
5106                    livePlayerSection.classList.add('collapsed');
5107                }
5108                if (watchBtn) {
5109                    watchBtn.innerHTML = '<i class="fas fa-play"></i>观看直播';
5110                }
5111            }
5112
5113            // 恢复聊天室到原位置
5114            if (originalChatParent) {
5115                if (originalChatNextSibling) {
5116                    originalChatParent.insertBefore(chatRoom, originalChatNextSibling);
5117                } else {
5118                    originalChatParent.appendChild(chatRoom);
5119                }
5120            }
5121            chatRoom.classList.remove('in-modal');
5122
5123            // 隐藏弹窗
5124            chatModal.classList.add('d-none');
5125            chatModalOverlay.classList.add('d-none');
5126            chatModal.classList.remove('fullscreen');
5127            document.body.style.overflow = '';
5128            isFullscreen = false;
5129
5130            // 更新全屏按钮图标
5131            chatModalFullscreen.innerHTML = '<i class="fas fa-expand"></i>';
5132            chatModalFullscreen.title = window.L?.T ? window.L.T('common.fullscreen') : '全屏';
5133        }
5134
5135        // 切换全屏
5136        function toggleFullscreen(e) {
5137            if (e) {
5138                e.preventDefault();
5139            }
5140            isFullscreen = !isFullscreen;
5141            if (isFullscreen) {
5142                chatModal.classList.add('fullscreen');
5143                chatModalFullscreen.innerHTML = '<i class="fas fa-compress"></i>';
5144                chatModalFullscreen.title = window.L?.T ? window.L.T('common.exitFullscreen') : '退出全屏';
5145            } else {
5146                chatModal.classList.remove('fullscreen');
5147                chatModalFullscreen.innerHTML = '<i class="fas fa-expand"></i>';
5148                chatModalFullscreen.title = window.L?.T ? window.L.T('common.fullscreen') : '全屏';
5149            }
5150        }
5151
5152        // 检测是否是移动端
5153        const isMobile = window.innerWidth <= 767;
5154
5155        // 绑定事件:只有存在聊天室时才处理 FAB / 弹窗(Beauty 独立观看页使用内嵌聊天,不走弹窗)
5156        const isBeautyWatchPage = document.body.classList.contains('beauty-watch-layout');
5157        if (chatRoom && !isBeautyWatchPage) {
5158            // 桌面端:只要有聊天室就直接显示FAB(仅当元素存在时)
5159            if (!isMobile && fabOpenChat) {
5160                fabOpenChat.classList.add('visible');
5161            }
5162
5163            // 聊天室弹窗事件(兼容移动端触摸)
5164            if (fabOpenChat) {
5165                fabOpenChat.addEventListener('click', openChatModal);
5166                fabOpenChat.addEventListener('touchend', function(e) {
5167                    e.preventDefault();
5168                    openChatModal(e);
5169                });
5170            }
5171
5172            if (chatModalClose) {
5173                chatModalClose.addEventListener('click', closeChatModal);
5174                chatModalClose.addEventListener('touchend', function(e) {
5175                    e.preventDefault();
5176                    closeChatModal(e);
5177                });
5178            }
5179
5180            if (chatModalOverlay) {
5181                chatModalOverlay.addEventListener('click', closeChatModal);
5182            }
5183
5184            if (chatModalFullscreen) {
5185                chatModalFullscreen.addEventListener('click', toggleFullscreen);
5186            }
5187
5188            // 移动端视频关闭按钮:直接关闭整个弹窗,避免出现“只有聊天”的弹窗
5189            if (mobileVideoClose) {
5190                mobileVideoClose.addEventListener('click', function(e) {
5191                    closeChatModal(e);
5192                });
5193            }
5194
5195            // ESC 关闭
5196            document.addEventListener('keydown', function(e) {
5197                if (e.key === 'Escape' && !chatModal.classList.contains('d-none')) {
5198                    closeChatModal();
5199                }
5200            });
5201
5202            // 移动端:只要聊天室连接成功,就显示 FAB
5203            if (isMobile) {
5204                window.addEventListener('chatConnected', function() {
5205                    if (fabOpenChat) {
5206                        fabOpenChat.classList.add('visible');
5207                    }
5208                });
5209            }
5210
5211            // 同步 FAB 的未读气泡(监听页面内的 unread badge)
5212            const pageUnreadBadge = document.getElementById('unreadBadge');
5213            const fabBadge = document.getElementById('fabChatBadge');
5214            if (pageUnreadBadge && fabBadge) {
5215                const observer = new MutationObserver(function() {
5216                    const count = pageUnreadBadge.textContent || '0';
5217                    const isHidden = pageUnreadBadge.classList.contains('d-none');
5218                    if (isHidden || count === '0') {
5219                        fabBadge.classList.add('d-none');
5220                    } else {
5221                        fabBadge.textContent = count;
5222                        fabBadge.classList.remove('d-none');
5223                    }
5224                });
5225                observer.observe(pageUnreadBadge, { attributes: true, childList: true, subtree: true, characterData: true });
5226            }
5227        } else if (chatRoom && isBeautyWatchPage) {
5228            chatRoom.classList.remove('in-modal');
5229        } else {
5230            // 没有聊天室时隐藏 FAB
5231            if (fabOpenChat) {
5232                fabOpenChat.classList.remove('visible');
5233            }
5234        }
5235    })();
5236    </script>
5236
5237    
5238    <!-- 页面加载完成后隐藏 loader -->
5239    
5239<script>
5240    (function() {
5241        var loader = document.getElementById('pageLoader');
5242        if (!loader) return;
5243        
5244        // 页面加载完成后立即隐藏(服务端已渲染正确语言,无需等待 JS 翻译)
5245        function hideLoader() {
5246            // 立即隐藏,不再延迟
5247            loader.style.display = 'none';
5248            loader.classList.add('fade-out', 'hidden');
5249            // 动画结束后移除元素
5250            setTimeout(function() {
5251                if (loader.parentNode) {
5252                    loader.parentNode.removeChild(loader);
5253                }
5254            }, 200);
5255        }
5256        
5257        // DOM 加载完成后立即隐藏
5258        if (document.readyState === 'complete') {
5259            hideLoader();
5260        } else {
5261            window.addEventListener('load', hideLoader);
5262        }
5263        
5264        // 额外保险:确保在 3 秒后一定隐藏加载器
5265        setTimeout(function() {
5266            if (loader && loader.parentNode) {
5267                loader.style.display = 'none';
5268                loader.classList.add('fade-out', 'hidden');
5269                if (loader.parentNode) {
5270                    loader.parentNode.removeChild(loader);
5271                }
5272            }
5273        }, 3000);
5274        
5275        // 确保聊天遮罩层在页面加载时被隐藏
5276        var chatOverlay = document.getElementById('chatModalOverlay');
5277        if (chatOverlay) {
5278            chatOverlay.style.display = 'none';
5279            chatOverlay.classList.add('d-none');
5280        }
5281        
5282        // 确保聊天弹窗在页面加载时被隐藏
5283        var chatModal = document.getElementById('chatModal');
5284        if (chatModal) {
5285            chatModal.style.display = 'none';
5286            chatModal.classList.add('d-none');
5287        }
5288    })();
5289    </script>
5289
5290    
5291    <!-- 语言切换函数 -->
5292    
5292<script>
5293    function changeLanguage(lang) {
5294        // 防止重复点击
5295        if (window.__changingLanguage) return;
5296        window.__changingLanguage = true;
5297        
5298        // 保存语言偏好到 cookie 和 localStorage
5299        document.cookie = 'livescore_lang=' + lang + '; path=/; max-age=31536000';
5300        localStorage.setItem('livescore_lang', lang);
5301
5302        var returnUrl = window.location.pathname + window.location.search + window.location.hash;
5303        window.location.href = '/set-lang?lang=' + encodeURIComponent(lang) + '&returnUrl=' + encodeURIComponent(returnUrl);
5304    }
5305    </script>
5305
5306    
5307    <!-- SPA 路由 - 暂时禁用以优化LCP -->
5308    
5308<script src="/js/spa-router.js?v=dwhRvRTKNW3gDRjkITc68k3snHSqhN2jwIL1Le2mwmw" defer></script>
5308
5309    
5310    <!-- 简单的预约提醒功能 -->
5311    
5311<script>
5312    window.toggleMatchReminder = async (event, btn) => {
5313        try {
5314            // 检查 Service Worker 支持
5315            if (!('serviceWorker' in navigator)) {
5316                showNotification(window.L?.T ? window.L.T('push.notSupported') : '您的浏览器不支持推送通知', 'warning');
5317                return;
5318            }
5319            
5320            // 等待 Service Worker 就绪(增加超时处理)
5321            let registration, subscription;
5322            try {
5323                registration = await Promise.race([
5324                    navigator.serviceWorker.ready,
5325                    new Promise((_, reject) => setTimeout(() => reject(new Error('SW timeout')), 5000))
5326                ]);
5327                subscription = await registration.pushManager.getSubscription();
5328            } catch (swError) {
5329                console.error('[预约提醒] Service Worker 未就绪:', swError);
5330                showNotification(window.L?.T ? window.L.T('push.notReady') : '推送服务未就绪,请稍后重试', 'warning');
5331                return;
5332            }
5333            
5334            if (!subscription) {
5335                const subscribeBtn = document.getElementById('push-subscribe-btn') || document.getElementById('mobile-push-subscribe-btn');
5336                if (subscribeBtn) {
5337                    subscribeBtn.click();
5338                } else {
5339                    showNotification(window.L?.T ? window.L.T('push.pleaseSubscribe') : '请先订阅推送通知', 'warning');
5340                }
5341                return;
5342            }
5343            
5344            const endpoint = subscription.endpoint;
5345        
5346            const res = await fetch(`/api/push/check-subscription?endpoint=${encodeURIComponent(endpoint)}`);
5347            const data = await res.json();
5348            
5349            if (!data.subscribed) {
5350                const subscribeBtn = document.getElementById('push-subscribe-btn') || document.getElementById('mobile-push-subscribe-btn');
5351                if (subscribeBtn) {
5352                    subscribeBtn.click();
5353                } else {
5354                    showNotification(window.L?.T ? window.L.T('push.pleaseSubscribe') : '请先订阅推送通知', 'warning');
5355                }
5356                return;
5357            }
5358            
5359            // 检查按钮当前状态,判断是订阅还是取消
5360            const matchId = btn.dataset.matchId;
5361            const isActive = btn.classList.contains('active');
5362
5363            const isIconOnly = btn.classList.contains('focus-reminder-btn');
5364
5365            btn.disabled = true;
5366            const originalHtml = btn.innerHTML;
5367            const processingText = window.L?.T ? window.L.T('common.processing') : '处理中...';
5368            btn.innerHTML = isIconOnly
5369                ? `<i class="fas fa-spinner fa-spin"></i>`
5370                : `<i class="fas fa-spinner fa-spin"></i> <span>${processingText}</span>`;
5371            
5372            let reminderRes, reminderData;
5373            
5374            if (isActive) {
5375                // 当前是激活状态,执行取消操作
5376                reminderRes = await fetch('/api/match-reminders/unsubscribe', {
5377                    method: 'POST',
5378                    headers: { 
5379                        'Content-Type': 'application/json',
5380                        'Accept-Language': window.__currentLang || 'vi'
5381                    },
5382                    body: JSON.stringify({
5383                        fixtureId: parseInt(matchId),
5384                        pushEndpoint: endpoint
5385                    })
5386                });
5387                
5388                reminderData = await reminderRes.json();
5389                
5390                if (reminderData.success) {
5391                    btn.classList.remove('active');
5392                    btn.innerHTML = isIconOnly
5393                        ? `<i class="fas fa-bell"></i>`
5394                        : `<i class="fas fa-bell"></i> <span>${btn.dataset.textSet || (window.L?.T ? window.L.T('home.setReminder') : '预约提醒')}</span>`;
5395                    showNotification(reminderData.message || (window.L?.T ? window.L.T('home.reminderCanceled') : '已取消预约'), 'success');
5396                } else {
5397                    btn.innerHTML = originalHtml;
5398                    showNotification(reminderData.message || (window.L?.T ? window.L.T('home.cancelFailed') : '取消失败'), 'danger');
5399                }
5400            } else {
5401                // 当前是未激活状态,执行订阅操作
5402                reminderRes = await fetch('/api/match-reminders/sub
5402scribe', {
5403                    method: 'POST',
5404                    headers: { 
5405                        'Content-Type': 'application/json',
5406                        'Accept-Language': window.__currentLang || 'vi'
5407                    },
5408                    body: JSON.stringify({
5409                        fixtureId: parseInt(matchId),
5410                        pushEndpoint: endpoint
5411                    })
5412                });
5413                
5414                reminderData = await reminderRes.json();
5415                
5416                if (reminderData.success) {
5417                    btn.classList.add('active');
5418                    btn.innerHTML = isIconOnly
5419                        ? `<i class="fas fa-bell-slash"></i>`
5420                        : `<i class="fas fa-bell-slash"></i> <span>${btn.dataset.textCancel || (window.L?.T ? window.L.T('home.cancelReminder') : '取消预约')}</span>`;
5421                    showNotification(reminderData.message || (window.L?.T ? window.L.T('home.reminderSet') : '预约成功'), 'success');
5422                } else {
5423                    btn.innerHTML = originalHtml;
5424                    showNotification(reminderData.message || (window.L?.T ? window.L.T('home.reminderFailed') : '预约失败'), 'danger');
5425                }
5426            }
5427            
5428            btn.disabled = false;
5429            
5430        } catch (error) {
5431            console.error('[预约提醒] 操作失败:', error);
5432            // 根据错误类型显示不同的多语言提示
5433            if (error.message && error.message.includes('Notification permission denied')) {
5434                showNotification(window.L?.T ? window.L.T('push.notificationDenied') : '通知权限已被拒绝,请在浏览器设置中允许通知', 'warning');
5435            } else {
5436                showNotification(window.L?.T ? window.L.T('common.operationFailed') : '操作失败,请稍后重试', 'danger');
5437            }
5438        }
5439    };
5440    
5441    
5442    // 初始化预约提醒按钮状态
5443    window.initReminderButtons = async () => {
5444        // console.log('[预约提醒] 开始初始化按钮状态...');
5445        
5446        try {
5447            // 只获取可见的预约提醒按钮
5448            const buttons = document.querySelectorAll('.reminder-btn:not([style*="display: none"]):not([style*="display:none"]), .focus-reminder-btn');
5449            if (buttons.length === 0) {
5450                // console.log('[预约提醒] 没有找到可见的预约提醒按钮');
5451                return;
5452            }
5453            
5454            // 检查推送订阅状态
5455            const registration = await navigator.serviceWorker.ready;
5456            const subscription = await registration.pushManager.getSubscription();
5457            
5458            if (!subscription) {
5459                // console.log('[预约提醒] 用户未订阅推送,设置默认状态');
5460                buttons.forEach(btn => {
5461                    const isIconOnly = btn.classList.contains('focus-reminder-btn');
5462                    btn.classList.remove('active');
5463                    btn.innerHTML = isIconOnly ? `<i class="fas fa-bell"></i>` : `<i class="fas fa-bell"></i> <span>${btn.dataset.textSet || '预约提醒'}</span>`;
5464                });
5465                return;
5466            }
5467            
5468            // 检查后端订阅状态
5469            const endpoint = subscription.endpoint;
5470            const res = await fetch(`/api/push/check-subscription?endpoint=${encodeURIComponent(endpoint)}`);
5471            const data = await res.json();
5472            
5473            if (!data.subscribed) {
5474                // console.log('[预约提醒] 后端未订阅,设置默认状态');
5475                buttons.forEach(btn => {
5476                    const isIconOnly = btn.classList.contains('focus-reminder-btn');
5477                    btn.classList.remove('active');
5478                    btn.innerHTML = isIconOnly ? `<i class="fas fa-bell"></i>` : `<i class="fas fa-bell"></i> <span>${btn.dataset.textSet || '预约提醒'}</span>`;
5479                });
5480                return;
5481            }
5482            
5483            // 获取已预约的比赛列表
5484            // console.log('[预约提醒] 获取已预约列表...');
5485            const listRes = await fetch(`/api/match-reminders/list?pushEndpoint=${encodeURIComponent(endpoint)}`);
5486            const listData = await listRes.json();
5487            
5488            if (listData.success && listData.reminders) {
5489                const subscribedIds = new Set(listData.reminders.map(r => r.fixtureId.toString()));
5490                // console.log('[预约提醒] 已预约比赛ID:', Array.from(subscribedIds));
5491                
5492                buttons.forEach(btn => {
5493                    const matchId = btn.dataset.matchId;
5494                    const isIconOnly = btn.classList.contains('focus-reminder-btn');
5495                    if (subscribedIds.has(matchId)) {
5496                        btn.classList.add('active');
5497                        btn.innerHTML = isIconOnly ? `<i class="fas fa-bell-slash"></i>` : `<i class="fas fa-bell-slash"></i> <span>${btn.dataset.textCancel || '取消预约'}</span>`;
5498                    } else {
5499                        btn.classList.remove('active');
5500                        btn.innerHTML = isIconOnly ? `<i class="fas fa-bell"></i>` : `<i class="fas fa-bell"></i> <span>${btn.dataset.textSet || '预约提醒'}</span>`;
5501                    }
5502                });
5503            }
5504            
5505            // console.log('[预约提醒] 按钮状态初始化完成');
5506            
5507        } catch (error) {
5508            console.error('[预约提醒] 初始化失败:', error);
5509        }
5510    };
5511    
5512    // 防抖函数,避免频繁触发
5513    let initTimeout = null;
5514    const debouncedInit = () => {
5515        if (initTimeout) {
5516            clearTimeout(initTimeout);
5517        }
5518        initTimeout = setTimeout(initReminderButtons, 300);
5519    };
5520    
5521    // 页面加载完成后初始化
5522    if (document.readyState === 'loading') {
5523        document.addEventListener('DOMContentLoaded', debouncedInit);
5524    } else {
5525        debouncedInit();
5526    }
5527    
5528    // 监听语言切换
5529    window.addEventListener('langChange', debouncedInit);
5530    
5531    // 监听 DOM 变化(只监听比赛列表容器)
5532    const matchContainer = document.querySelector('.matches-container') || 
5533                          document.querySelector('.match-list') || 
5534                          document.querySelector('.fixtures-container') ||
5535                          document.querySelector('.today-matches');
5536    
5537    if (matchContainer) {
5538        const observer = new MutationObserver((mutations) => {
5539            // 检查是否有预约提醒按钮被添加或修改
5540            let hasReminderButtons = false;
5541            mutations.forEach(mutation => {
5542                if (mutation.addedNodes) {
5543                    mutation.addedNodes.forEach(node => {
5544                        if (node.nodeType === 1) {
5545                            if (node.classList?.contains('reminder-btn') || 
5546                                node.querySelector?.('.reminder-btn')) {
5547                                hasReminderButtons = true;
5548                            }
5549                        }
5550                    });
5551                }
5552            });
5553            
5554            if (hasReminderButtons) {
5555                debouncedInit();
5556            }
5557        });
5558        
5559        observer.observe(matchContainer, { childList: true, subtree: true });
5560    }
5561    </script>
5561
5562    
5563    <!-- Visitor Tracking Script -->
5564    
5564<script src="/js/tracker.js" defer></script>
5564
5565    
5565<script src="/js/chat-visitor-id.js" defer></script>
5565
5566    
5567    <!-- 时区检测:自动存储浏览器时区到 cookie,供后端使用 -->
5568    
5568<script>
5569    (function() {
5570        const TZ_COOKIE = 'tzOffset';
5571        const tzOffset = -420;
5572        
5573        // 检查 cookie 是否已存在且值相同
5574        const existingCookie = document.cookie.split('; ').find(c => c.startsWith(TZ_COOKIE + '='));
5575        const existingValue = existingCookie ? parseInt(existingCookie.split('=')[1]) : null;
5576        
5577        if (existingValue !== tzOffset) {
5578            // 设置 cookie,有效期 30 天,全站可用
5579            const expires = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toUTCString();
5580            document.cookie = `${TZ_COOKIE}=${tzOffset}; expires=${expires}; path=/; SameSite=Lax`;
5581            
5582            // 如果是首次设置时区且当前页面是"今日"相关页面,刷新以应用正确时区
5583            const isFirstVisit = existingValue === null;
5584            const isTodayPage = window.location.pathname.includes('/football/today') 
5585                             || window.location.pathname.includes('/matches/today')
5586                             || (window.location.pathname === '/' && !window.location.search.includes('tzOffset'));
5587            
5588            if (isFirstVisit && isTodayPage) {
5589                // 首次访问今日页面,刷新以应用时区
5590                window.location.reload();
5591            }
5592        }
5593    })();
5594    </script>
5594
5595    
5596    <!-- PWA Service Worker Registration & Installation Prompt -->
5597    
5597<script>
5598    (function() {
5599        'use strict';
5600        
5601        let deferredPrompt;
5602        
5603        // Service Worker 注册 - 由 sw-auto-update.js 统一管理,这里只处理开发模式
5604        // 生产环境的 SW 注册和更新由 sw-auto-update.js 处理,自动静默更新无需用户确认
5605        if ('serviceWorker' in navigator && window.__isDevelopment === 'true') {
5606            console.log('[PWA] Development mode: Service Worker enabled with caching disabled.');
5607            
5608            // 开发模式下仍然注册 Service Worker(用于推送通知),但禁用缓存
5609            navigator.serviceWorker.register('/sw.js').then(function(registration) {
5610                console.log('[PWA] Service Worker registered in Development mode (no-cache version)');
5611                
5612                // 清除所有现有缓存
5613                if ('caches' in window) {
5614                    caches.keys().then(function(cacheNames) {
5615                        return Promise.all(
5616                            cacheNames.map(function(cacheName) {
5617                                return caches.delete(cacheName);
5618                            })
5619                        );
5620                    }).then(function() {
5621                        console.log('[PWA] All caches cleared in Development mode');
5622                    });
5623                }
5624            }).catch(function(error) {
5625                console.error('[PWA] Service Worker registration failed in Development mode:', error);
5626            });
5627        }
5628        
5629        // PWA 安装提示事件:仅缓存 deferredPrompt 供顶部横幅使用,不再弹出旧版底部安装条
5630        window.addEventListener('beforeinstallprompt', (e) => {
5631            console.log('[PWA] Install prompt captured for top banner');
5632            e.preventDefault();
5633            deferredPrompt = e;
5634        });
5635        
5636        // 更新通知已移除 - 由 sw-auto-update.js 统一处理静默更新
5637        // 无需用户交互,版本变化时自动刷新页面
5638        window.addEventListener('appinstalled', () => {
5639            console.log('[PWA] App installed successfully');
5640            localStorage.setItem('pwa-installed', 'true');
5641            if (typeof closePwaTopBanner === 'function') closePwaTopBanner();
5642        });
5643        
5644        // ==================== 防止浏览器bfcache(往返缓存)====================
5645        // 防止页面进入bfcache,确保用户关闭标签页再打开时会重新加载
5646        // 注意:不在pageshow时强制刷新,避免中断正在进行的直播
5647        
5648        // 方法1:使用 pagehide 事件(现代替代方案,替代已弃用的 unload)
5649        // pagehide 事件在页面隐藏时触发,可以阻止 bfcache
5650        window.addEventListener('pagehide', function(event) {
5651            // 如果页面被放入 bfcache,event.persisted 为 true
5652            // 通过执行一些操作(如发送 beacon)可以阻止 bfcache
5653            if (event.persisted) {
5654                console.log('[Cache] Page entering bfcache');
5655            }
5656        });
5657        
5658        // 方法2:使用Cache-Control头(已在meta标签中设置)
5659        // 方法3:检测bfcache恢复,记录日志但不刷新
5660        window.addEventListener('pageshow', function(event) {
5661            if (event.persisted) {
5662                console.log('[Cache] Page restored from bfcache');
5663                // 不刷新页面,避免中断直播
5664                // 如果确实从bfcache恢复,页面状态应该是完整的
5665                // 可以在这里重新初始化需要的连接(如 SignalR)
5666            }
5667        });
5668        
5669        // 网络状态监控
5670        window.addEventListener('online', () => {
5671            console.log('[PWA] Back online');
5672            // 可以添加重新连接逻辑
5673        });
5674        
5675        window.addEventListener('offline', () => {
5676            console.log('[PWA] Gone offline');
5677            // 可以显示离线提示
5678        });
5679        
5680        // ==================== PWA 顶部安装横幅 (移动端) ====================
5681        function showPwaTopBanner() {
5682            const banner = document.getElementById('pwa-top-banner');
5683            if (!banner) return;
5684            
5685            // 真正已安装(standalone模式)→ 永久不显示
5686            if (window.matchMedia('(display-mode: standalone)').matches || window.navigator.standalone === true) return;
5687            // 已通过安装事件确认安装 → 永久不显示
5688            if (localStorage.getItem('pwa-installed') === 'true') return;
5689            // 非移动端 → 不显示
5690            if (window.innerWidth > 768) return;
5691            
5692            banner.classList.remove('d-none');
5693        }
5694        
5695        window.closePwaTopBanner = function() {
5696            const banner = document.getElementById('pwa-top-banner');
5697            if (banner) {
5698                banner.classList.add('d-none');
5699            }
5700            // 仅本次页面关闭,刷新后重新显示
5701        };
5702        
5703        window.installPwaFromBanner = async function() {
5704            if (deferredPrompt) {
5705                deferredPrompt.prompt();
5706                const { outcome } = await deferredPrompt.userChoice;
5707                if (outcome === 'accepted') {
5708                    localStorage.setItem('pwa-installed', 'true');
5709                }
5710                deferredPrompt = null;
5711                closePwaTopBanner();
5712            } else {
5713                // iOS / browsers without beforeinstallprompt
5714                // Site default Vietnamese; use i18n when ready
5715                const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
5716                const iosFallback = 'Vui lòng nhấn nút Chia sẻ ở trình duyệt ⬆️, rồi chọn «Thêm vào Màn hình chính»';
5717                const androidFallback = 'Vui lòng mở menu trình duyệt, chọn «Thêm vào Màn hình chính» hoặc «Cài đặt ứng dụng»';
5718                const key = isIOS ? 'seo.pwa.installGuideIos' : 'seo.pwa.installGuideAndroid';
5719                const fallback = isIOS ? iosFallback : androidFallback;
5720                let msg = fallback;
5721                if (window.L?.T && window.i18n?.isReady?.()) {
5722                    const translated = window.L.T(key);
5723                    if (translated && translated !== key) msg = translated;
5724                }
5725                alert(msg);
5726            }
5727        };
5728        
5729        // 页面加载后显示横幅
5730        if (document.readyState === 'loading') {
5731            document.addEventListener('DOMContentLoaded', showPwaTopBanner);
5732        } else {
5733            showPwaTopBanner();
5734        }
5735        
5736    })();
5737    
5738    // ==================== PWA 下拉刷新功能 ====================
5739    // Android 原生支持下拉刷新,iOS PWA 需要自定义实现
5740    // 已禁用 - 如需启用请取消注释
5741    /*
5742    (function() {
5743        'use strict';
5744        
5745        // 检测是否为 iOS PWA 模式
5746        const isIOSPWA = (window.navigator.standalone === true) || 
5747                         (window.matchMedia('(display-mode: standalone)').matches && /iPad|iPhone|iPod/.test(navigator.userAgent));
5748        
5749        // 检测是否为移动设备
5750        const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
5751        
5752        // 只在移动设备上启用下拉刷新
5753        if (!isMobile) return;
5754        
5755        let startY = 0;
5756        let currentY = 0;
5757        let pulling = false;
5758        let refreshThreshold = 120; // 触发刷新的阈值(像素)
5759        let maxPull = 160; // 最大下拉距离
5760        let refreshIndicator = null;
5761        
5762        // 创建刷新指示器
5763        function createRefreshIndicator() {
5764            if (refreshIndicator) return;
5765            
5766            refreshIndicator = document.createElement('div');
5767            refreshIndicator.id = 'pwa-refresh-indicator';
5768            const pullText = window.L?.T ? window.L.T('common.pullToRefresh') : '下拉刷新';
5769            refreshIndicator.innerHTML = `
5770                <div class="refresh-spinner">
5771                    <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"></polyline><polyline points="1 20 1 14 7 14"></polyline><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"></path></svg>
5772                </div>
5773                <span class="refresh-text">${window.L?.T ? window.L.T('common.releaseToRefresh') : '松开刷新'}</span>
5774            `;
5775            refreshIndicator.style.cssText = `
5776                position: fixed;
5777                top: 0;
5778                left: 50%;
5779                transform: translateX(-50%) translateY(-100%);
5780                background: transparent;
5781                color: #333;
5782                padding: 12px 24px;
5783                border-radius: 0 0 16px 16px;
5784                display: flex;
5785                align-items: center;
5786                gap: 10px;
5787                font-size: 14px;
5788                font-weight: 500;
5789                z-index: 10002;
5790                transition: transform 0.2s ease;
5791                box-shadow: none;
5792            `;
5793            
5794            // 添加样式
5795            const style = document.createElement('style');
5796            style.textContent = `
5797                #pwa-refresh-indicator .refresh-spinner {
5798                    display: flex;
5799                    align-items: center;
5800                    justify-content: center;
5801                }
5802                #pwa-refresh-indicator .refresh-spinner svg {
5803                    width: 16px;
5804                    height: 16px;
5805                    transition: transform 0.3s ease;
5806                }
5807                #pwa-refresh-indicator .refresh-text {
5808                    color: white !important;
5809                    font-size: 14px;
5810                    font-weight: 500;
5811                }
5812                #pwa-refresh-indicator.refreshing .refresh-spinner svg {
5813                    animation: spin 1s linear infinite;
5814                }
5815                #pwa-refresh-indicator.ready .refresh-spinner svg {
5816                    transform: rotate(180deg);
5817                }
5818                @keyframes spin {
5819                    from { transform: rotate(0deg); }
5820                    to { transform: rotate(360deg); }
5821                }
5822            `;
5823            document.head.appendChild(style);
5824            document.body.appendChild(refreshIndicator);
5825        }
5826        
5827        // 更新指示器位置和状态
5828        function updateIndicator(pullDistance, isReady) {
5829            if (!refreshIndicator) return;
5830            
5831            const progress = Math.min(pullDistance / refreshThreshold, 1);
5832            const translateY = Math.min(pullDistance, maxPull) - 60;
5833            
5834            refreshIndicator.style.transform = `translateX(-50%) translateY(${translateY}px)`;
5835            
5836            if (isReady) {
5837                refreshIndicator.classList.add('ready');
5838                refreshIndicator.classList.remove('refreshing');
5839            } else {
5840                refreshIndicator.classList.remove('ready', 'refreshing');
5841            }
5842        }
5843        
5844        // 开始刷新动画
5845        function startRefresh() {
5846            if (!refreshIndicator) return;
5847            
5848            refreshIndicator.classList.add('refreshing');
5849            refreshIndicator.classList.remove('ready');
5850            refreshIndicator.style.transform = 'translateX(-50%) translateY(10px)';
5851            
5852            // 延迟后刷新页面
5853            setTimeout(() => {
5854                window.location.reload();
5855            }, 500);
5856        }
5857        
5858        // 重置指示器
5859        function resetIndicator() {
5860            if (!refreshIndicator) return;
5861            
5862            refreshIndicator.style.transform = 'translateX(-50%) translateY(-100%)';
5863            refreshIndicator.classList.remove('ready', 'refreshing');
5864        }
5865        
5866        // 触摸开始
5867        function handleTouchStart(e) {
5868            // 只在页面顶部时启用下拉刷新
5869            if (window.scrollY > 5) return;
5870            
5871            // 忽略在输入框、视频播放器等元素上的触摸
5872            const target = e.target;
5873            if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || 
5874                target.tagName === 'VIDEO' || target.closest('.live-player
5874-container') ||
5875                target.closest('.chat-input-container')) {
5876                return;
5877            }
5878            
5879            startY = e.touches[0].pageY;
5880            pulling = true;
5881            createRefreshIndicator();
5882        }
5883        
5884        // 触摸移动
5885        function handleTouchMove(e) {
5886            if (!pulling || window.scrollY > 5) {
5887                pulling = false;
5888                return;
5889            }
5890            
5891            currentY = e.touches[0].pageY;
5892            const pullDistance = currentY - startY;
5893            
5894            // 只处理向下拉动,且拉动距离超过最小阈值
5895            if (pullDistance > 10) {
5896                // iOS 需要阻止默认行为以实现自定义下拉
5897                if (isIOSPWA) {
5898                    e.preventDefault();
5899                }
5900                
5901                const isReady = pullDistance >= refreshThreshold;
5902                updateIndicator(pullDistance, isReady);
5903            }
5904        }
5905        
5906        // 触摸结束
5907        function handleTouchEnd(e) {
5908            if (!pulling) return;
5909            
5910            const pullDistance = currentY - startY;
5911            
5912            if (pullDistance >= refreshThreshold) {
5913                startRefresh();
5914            } else {
5915                resetIndicator();
5916            }
5917            
5918            pulling = false;
5919            startY = 0;
5920            currentY = 0;
5921        }
5922        
5923        // 绑定事件
5924        document.addEventListener('touchstart', handleTouchStart, { passive: true });
5925        document.addEventListener('touchmove', handleTouchMove, { passive: false });
5926        document.addEventListener('touchend', handleTouchEnd, { passive: true });
5927        
5928        console.log('[PWA] Pull-to-refresh enabled', isIOSPWA ? '(iOS PWA mode)' : '');
5929    })();
5930    */
5931    
5932    </script>
5932
5933    
5934    
5935    <!-- 登录/注册弹窗 -->
5936    <meta name="turnstile-sitekey" content="0x4AAAAAACejCwrxG0oAHrtT" style="display:none;" />
5937
5938
5939    
5940    
5941<script>
5942// 联赛折叠/展开
5943function toggleLeague(btn) {
5944    const section = btn.closest('.lg-section');
5945    const matches = section.querySelector('.lg-matches');
5946    const useEl = btn.querySelector('use');
5947    if (matches.style.display === 'none') {
5948        matches.style.display = '';
5949        if (useEl) useEl.setAttribute('href', '#icon-chevron-up');
5950    } else {
5951        matches.style.display = 'none';
5952        if (useEl) useEl.setAttribute('href', '#icon-chevron-down');
5953    }
5954}
5955
5956// 收藏状态初始化。SPA 注入时 DOMContentLoaded 已经触发过,所以已加载则立刻执行。
5957function initMatchListSearch() {
5958    const page = document.querySelector('.match-list-page');
5959    const input = document.getElementById('matchListSearch');
5960    const clearBtn = document.getElementById('matchListSearchClear');
5961    const empty = document.getElementById('matchListSearchEmpty');
5962    if (!page || !input || input.dataset.bound === '1') return;
5963    input.dataset.bound = '1';
5964
5965    function applyFilter() {
5966        const query = input.value.trim().toLowerCase();
5967        if (clearBtn) clearBtn.hidden = query.length === 0;
5968        let visible = 0;
5969
5970        page.querySelectorAll('.mx-row').forEach(function (row) {
5971            const hay = (row.getAttribute('data-search') || '').toLowerCase();
5972            const show = !query || hay.indexOf(query) !== -1;
5973            row.classList.toggle('is-search-hidden', !show);
5974            if (show) visible += 1;
5975        });
5976
5977        page.querySelectorAll('.lg-section').forEach(function (section) {
5978            const any = section.querySelector('.mx-row:not(.is-search-hidden)');
5979            section.classList.toggle('is-search-hidden', !any);
5980            section.classList.toggle('is-search-open', !!query && !!any);
5981        });
5982
5983        page.querySelectorAll('.beauty-schedule-row').forEach(function (row) {
5984            const hay = (row.getAttribute('data-search') || '').toLowerCase();
5985            const show = !query || hay.indexOf(query) !== -1;
5986            row.classList.toggle('is-search-hidden', !show);
5987            if (show) visible += 1;
5988        });
5989
5990        page.querySelectorAll('.schedule-sport-section').forEach(function (section) {
5991            if (!section.querySelector('.beauty-schedule-row')) return;
5992            const any = section.querySelector('.beauty-schedule-row:not(.is-search-hidden)');
5993            section.classList.toggle('is-search-hidden', !any);
5994        });
5995
5996        page.querySelectorAll('.schedule-sport-title-inline').forEach(function (title) {
5997            const anySports = page.querySelector('.lg-section:not(.is-search-hidden)');
5998            title.classList.toggle('is-search-hidden', !!query && !anySports);
5999        });
6000
6001        page.querySelectorAll('.match-list-paging').forEach(function (el) {
6002            el.classList.toggle('is-search-hidden', query.length > 0);
6003        });
6004
6005        if (empty) empty.hidden = !query || visible > 0;
6006    }
6007
6008    input.addEventListener('input', applyFilter);
6009    input.addEventListener('keydown', function (e) {
6010        if (e.key === 'Enter') e.preventDefault();
6011        if (e.key === 'Escape') {
6012            input.value = '';
6013            applyFilter();
6014        }
6015    });
6016    if (clearBtn) {
6017        clearBtn.addEventListener('click', function () {
6018            input.value = '';
6019            applyFilter();
6020            input.focus();
6021        });
6022    }
6023}
6024
6025function initMatchListPage() {
6026    initMatchListSearch();
6027    const isAuth = 'false' === 'true';
6028    if (!isAuth) return;
6029
6030    fetch('/profile/favorites/match-ids')
6031        .then(r => r.json())
6032        .then(data => {
6033            if (!data || !data.success || !Array.isArray(data.ids)) return;
6034            const idSet = new Set(data.ids.map(x => String(x)));
6035            document.querySelectorAll('.favorite-btn[data-match-id]').forEach(btn => {
6036                const matchId = btn.getAttribute('data-match-id');
6037                const isFavorited = idSet.has(String(matchId));
6038                btn.classList.toggle('active', isFavorited);
6039                const useEl = btn.querySelector('use');
6040                if (useEl) {
6041                    useEl.setAttribute('href', isFavorited ? '#icon-star-filled' : '#icon-star');
6042                }
6043            });
6044        })
6045        .catch(() => {});
6046}
6047window.initMatchListPage = initMatchListPage;
6048if (document.readyState === 'loading') {
6049    document.addEventListener('DOMContentLoaded', initMatchListPage);
6050} else {
6051    initMatchListPage();
6052}
6053</script>
6053
6054
6055<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"b6f571285a4f4a64aa211ef540e7e182","r":1,"spa":2}' crossorigin="anonymous"></script>
6055
6056</body>
6057</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.