:root {
            --valorant-red: #FF4655;
            --valorant-dark: #0F1923;
            --valorant-gray: #1F2937;
            --valorant-light: #ECE8E1;
        }
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body {
            font-family: 'Noto Sans SC', sans-serif;
            background: var(--valorant-dark);
            color: var(--valorant-light);
            min-height: 100vh;
            padding: 70px 0 40px;
        }
        .container { max-width: 1500px; margin: 0 auto; padding: 0 20px; }
        .page-header {
            /* 底部 padding 为 0：子分类（sub-tabs）贴着头部底边，下划线与 border-bottom 重合 */
            padding: 60px 20px 0;
            text-align: center;
            background: linear-gradient(135deg, rgba(255, 70, 85, 0.1) 0%, rgba(15, 25, 35, 0) 100%);
            border-bottom: 1px solid rgba(255, 70, 85, 0.1);
            position: relative;
            overflow: hidden;
            margin-bottom: 40px;
        }
        .page-header::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0; bottom: 0;
            background:
                radial-gradient(circle at 20% 50%, rgba(255, 70, 85, 0.1) 0%, transparent 50%),
                radial-gradient(circle at 80% 50%, rgba(255, 70, 85, 0.05) 0%, transparent 50%);
            pointer-events: none;
        }
        .page-header-content { position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; }
        .page-header h1 {
            font-size: 42px; font-weight: 700; margin-bottom: 10px;
            background: linear-gradient(135deg, #fff, var(--valorant-red));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
        .page-header h1 i { margin-right: 8px; }
        .page-header p { color: rgba(236,232,225,0.6); font-size: 16px; }

        /* 头部筛选栏 - 参考 esports.html 同款布局 */
        .hdr-filter {
            display: flex; gap: 15px; flex-wrap: wrap; align-items: center; justify-content: center;
            max-width: 900px; margin: 30px auto 0; padding: 0; background: transparent; border: none;
        }
        .hdr-search-container { flex: 1; min-width: 280px; max-width: 400px; }
        .hdr-search-box {
            display: flex; align-items: center;
            background: rgba(255,255,255,0.05); border: 1px solid rgba(255,70,85,0.3);
            border-radius: 8px; padding: 0 15px; height: 44px; transition: all 0.3s;
        }
        .hdr-search-box:focus-within {
            border-color: #FF4655; background: rgba(255,255,255,0.1);
            box-shadow: 0 0 20px rgba(255,70,85,0.2);
        }
        .hdr-search-box i { color: rgba(236,232,225,0.4); margin-right: 12px; }
        .hdr-search-box .bk-search {
            flex: 1; background: transparent; border: none; color: rgba(236,232,225,0.9);
            font-size: 15px; outline: none; padding: 0; width: auto;
        }
        .hdr-search-box .bk-search::placeholder { color: rgba(236,232,225,0.4); }
        .hdr-search-box .search-btn {
            padding: 0 18px; height: 44px; margin: 0 -15px 0 0;
            background: rgba(255,70,85,0.2); border: 1px solid rgba(255,70,85,0.3);
            border-radius: 0 8px 8px 0; color: #FF4655; font-size: 14px;
            cursor: pointer; transition: all 0.3s; white-space: nowrap; flex-shrink: 0;
        }
        .hdr-search-box .search-btn:hover { background: #FF4655; border-color: #FF4655; color: white; }
        .hdr-select {
            padding: 0 15px; background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,70,85,0.3); border-radius: 8px;
            color: rgba(236,232,225,0.8); font-size: 14px; cursor: pointer;
            min-width: 150px; height: 40px; outline: none; transition: all 0.3s;
            appearance: none; -webkit-appearance: none;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23FF4655' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
            background-repeat: no-repeat; background-position: right 12px center;
        }
        .hdr-select:focus { border-color: #FF4655; background: rgba(255,255,255,0.1); }
        .hdr-select option { background: #1F2937; color: rgba(236,232,225,0.9); }
        /* 刷新按钮：与 esports.html 的 status-tab（全部/进行中/即将开始/已结束）同款样式 */
        .hdr-refresh-btn {
            padding: 12px 20px;
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 8px;
            color: rgba(236, 232, 225, 0.7);
            font-size: 14px;
            cursor: pointer;
            transition: all 0.3s;
            font-family: inherit;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            flex-shrink: 0;
        }
        .hdr-refresh-btn:hover {
            background: rgba(255, 70, 85, 0.1);
            border-color: rgba(255, 70, 85, 0.3);
            color: rgba(236, 232, 225, 0.9);
        }

        .tabs {
            display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin: 22px 0 16px;
        }
        .tab-btn {
            padding: 10px 20px;
            background: rgba(31,41,55,0.8);
            border: 1px solid rgba(255,70,85,0.2);
            border-radius: 8px;
            color: rgba(236,232,225,0.7);
            cursor: pointer;
            font-size: 14px;
            transition: all 0.2s;
            white-space: nowrap;
        }
        /* 移动端：5 个分类一行展示，必要时横向滚动兜底；还不够就保留后 2 字 */
        @media (max-width: 768px) {
            .tabs {
                flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start;
                gap: 6px; margin: 14px 0 12px; padding: 0 4px 4px;
                -webkit-overflow-scrolling: touch;
            }
            .tabs::-webkit-scrollbar { height: 3px; }
            .tabs::-webkit-scrollbar-thumb { background: rgba(255,70,85,0.3); border-radius: 2px; }
            .tab-btn {
                padding: 6px 12px; font-size: 12px; flex-shrink: 0;
            }
        }
        .tab-btn:hover { border-color: rgba(255,70,85,0.5); color: var(--valorant-light); }
        .tab-btn.active {
            background: rgba(255,70,85,0.15);
            border-color: var(--valorant-red);
            color: var(--valorant-red);
            font-weight: 600;
        }
        /* 头部主分类：与 esports.html 的 status-tab 同款样式，与下方子分类视觉上区分 */
        .hdr-tabs { margin: 22px auto 0; gap: 10px; }
        .hdr-tabs .tab-btn {
            padding: 12px 28px;
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 8px;
            color: rgba(236, 232, 225, 0.7);
            font-size: 14px;
            transition: all 0.3s;
        }
        .hdr-tabs .tab-btn:hover {
            background: rgba(255, 70, 85, 0.1);
            border-color: rgba(255, 70, 85, 0.3);
        }
        .hdr-tabs .tab-btn.active {
            background: #FF4655;
            border-color: #FF4655;
            color: #fff;
        }
        /* 子分类（主分类下方、贴着头部底边）：下划线文字页签（区别于主分类的按钮样式）
           padding-bottom 2px 给选中项的 2px 红色下划线留出空间，避免被 .page-header 的 overflow:hidden 裁掉（桌面端） */
        .sub-tabs { gap: 4px; margin: 14px auto -1px; padding-bottom: 2px; }
        .sub-tab-btn {
            padding: 6px 14px;
            background: transparent;
            border: none;
            border-bottom: 2px solid transparent;
            border-radius: 0;
            color: rgba(236,232,225,0.55);
            cursor: pointer;
            font-size: 13px;
            transition: all 0.2s;
            white-space: nowrap;
        }
        .sub-tab-btn:hover { color: var(--valorant-light); }
        .sub-tab-btn.active {
            color: var(--valorant-red);
            border-bottom-color: var(--valorant-red);
            font-weight: 600;
        }
        @media (max-width: 768px) {
            .hdr-tabs .tab-btn { padding: 6px 16px; font-size: 12px; border-radius: 8px; }
            .sub-tab-btn { padding: 5px 10px; font-size: 12px; flex-shrink: 0; }
        }
        .tab-btn .live-dot {
            display: inline-block; width: 8px; height: 8px; border-radius: 50%;
            background: #ef4444; margin-right: 6px; animation: pulse 1.5s infinite;
        }
        @keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }

        /* 返回顶部按钮 */
        #backTopBtn {
            position: fixed; right: 28px; bottom: 28px; z-index: 999;
            width: 44px; height: 44px; border-radius: 50%; border: none; cursor: pointer;
            background: linear-gradient(135deg, #FF4655, #ff6b7a); color: #fff; font-size: 16px;
            box-shadow: 0 4px 15px rgba(255,70,85,0.4);
            opacity: 0; visibility: hidden; transition: all 0.3s;
        }
        #backTopBtn.show { opacity: 1; visibility: visible; }
        #backTopBtn:hover { transform: translateY(-3px); }

        .match-card {
            background: rgba(31,41,55,0.8);
            border: 1px solid rgba(255,70,85,0.15);
            border-radius: 12px;
            padding: 18px 22px;
            margin-bottom: 14px;
            cursor: pointer;
            transition: all 0.2s;
        }
        .match-card:hover { border-color: rgba(255,70,85,0.5); transform: translateY(-2px); }
        .match-card.live { border-left: 3px solid #ef4444; }
        .match-event-line {
            font-size: 12px; color: rgba(236,232,225,0.5); margin-bottom: 12px;
            display: flex; gap: 12px; flex-wrap: wrap;
        }
        .match-teams {
            display: flex; align-items: center; justify-content: space-between; gap: 12px;
        }
        .match-team {
            flex: 1; display: flex; align-items: center; gap: 10px; min-width: 0;
        }
        .match-team.right { flex-direction: row-reverse; text-align: right; }
        .match-team img { width: 36px; height: 36px; object-fit: contain; flex-shrink: 0; }
        .match-team .tname { font-weight: 600; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .match-team .tflag { font-size: 11px; color: rgba(236,232,225,0.4); }
        .match-score {
            font-size: 24px; font-weight: 700; color: var(--valorant-red);
            min-width: 90px; text-align: center; flex-shrink: 0;
        }
        .match-score.vs { color: rgba(236,232,225,0.4); font-size: 16px; }
        .match-score .live-tag { display: block; font-size: 11px; color: #ef4444; font-weight: 600; }
        .match-time-line { font-size: 12px; color: rgba(236,232,225,0.45); margin-top: 10px; text-align: center; }
        .map-progress { font-size: 11px; color: rgba(236,232,225,0.5); margin-top: 2px; }

        .loading, .error, .empty { text-align: center; padding: 40px 20px; min-height: 60vh; display: flex; flex-direction: column; align-items: center; justify-content: center; }
        .loading { padding: 30px 20px; min-height: 60vh; }
        .loading i { font-size: 40px; color: var(--valorant-red); animation: spin 1s linear infinite; }
        @keyframes spin { to { transform: rotate(360deg); } }
        .error i, .empty i { font-size: 40px; color: rgba(255,70,85,0.6); margin-bottom: 12px; }
        .empty i { color: rgba(236,232,225,0.3); }

        /* 详情视图 */
        .back-link {
            display: inline-flex; align-items: center; gap: 8px;
            color: var(--valorant-red); text-decoration: none;
            margin-bottom: 20px; font-size: 14px; cursor: pointer;
        }
        /* 详情视图与顶部导航之间的间距（避免贴太近） */
        .detail-view-spacing { margin-top: 30px; }
        .back-link:hover { text-decoration: underline; }
        #detailView > .back-link { display: none !important; }

        /* ===== 选手详情视图（playerView）===== */
        .player-header {
            display: flex; gap: 24px; align-items: center;
            padding: 28px 24px;
            background: linear-gradient(135deg, rgba(31,41,55,0.85) 0%, rgba(15,25,35,0.95) 100%);
            border: 1px solid rgba(255,70,85,0.25);
            border-radius: 12px;
            margin-bottom: 22px;
        }
        .player-header-avatar {
            width: 96px; height: 96px; flex-shrink: 0;
            border-radius: 50%; overflow: hidden;
            background: rgba(255,255,255,0.06);
            border: 2px solid rgba(255,70,85,0.5);
            display: flex; align-items: center; justify-content: center;
            font-size: 36px; font-weight: 700; color: rgba(236,232,225,0.7);
        }
        .player-header-avatar img { width: 100%; height: 100%; object-fit: cover; }
        .player-header-info { flex: 1; min-width: 0; }
        .player-header-name {
            font-size: 28px; font-weight: 700; color: var(--valorant-light);
            display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
        }
        .player-header-real { font-size: 15px; color: rgba(236,232,225,0.6); margin-top: 4px; }
        .player-header-meta {
            display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px;
            font-size: 13px; color: rgba(236,232,225,0.7);
        }
        .player-header-meta span { display: inline-flex; align-items: center; gap: 5px; }
        .player-header-meta .captain-badge {
            background: rgba(255,215,0,0.15); color: #FFD700;
            padding: 2px 8px; border-radius: 4px; font-weight: 600;
        }
        .player-header-social { display: flex; gap: 8px; margin-top: 12px; }
        .player-header-social a {
            display: inline-flex; align-items: center; justify-content: center;
            width: 32px; height: 32px; border-radius: 50%;
            background: rgba(255,255,255,0.06); color: rgba(236,232,225,0.75);
            text-decoration: none; transition: all 0.2s;
        }
        .player-header-social a:hover { background: var(--valorant-red); color: #fff; }
        .player-section {
            background: rgba(31,41,55,0.7);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 10px;
            padding: 18px 20px;
            margin-bottom: 18px;
        }
        .player-section-title {
            font-size: 16px; font-weight: 700; color: var(--valorant-light);
            margin-bottom: 14px; display: flex; align-items: center; gap: 8px;
        }
        .player-section-title i { color: var(--valorant-red); }
        .player-current-team {
            display: flex; align-items: center; gap: 16px;
            padding: 12px;
            background: rgba(15,25,35,0.5);
            border-radius: 8px;
        }
        .player-current-team img {
            width: 56px; height: 56px; object-fit: contain;
            background: rgba(255,255,255,0.05); border-radius: 6px; padding: 4px;
        }
        .player-current-team-info { flex: 1; }
        .player-current-team-name { font-size: 18px; font-weight: 700; }
        .player-current-team-meta { font-size: 12px; color: rgba(236,232,225,0.55); margin-top: 2px; }
        .player-past-teams { display: flex; flex-direction: column; gap: 8px; }
        .player-past-team {
            display: flex; align-items: center; gap: 12px; padding: 8px 12px;
            background: rgba(15,25,35,0.4); border-radius: 6px; font-size: 14px;
        }
        .player-past-team img { width: 36px; height: 36px; object-fit: contain; border-radius: 4px; }
        .player-past-team .pt-name { flex: 1; font-weight: 600; }
        .player-past-team .pt-dates { color: rgba(236,232,225,0.5); font-size: 12px; }
        .player-events-table { width: 100%; border-collapse: collapse; font-size: 13px; }
        .player-events-table th, .player-events-table td {
            padding: 8px 10px; text-align: left; border-bottom: 1px solid rgba(255,255,255,0.05);
        }
        .player-events-table th { color: rgba(236,232,225,0.6); font-weight: 600; font-size: 12px; }
        .player-events-table tr:hover td { background: rgba(255,70,85,0.06); }
        .player-events-table a { color: rgba(236,232,225,0.85); text-decoration: none; }
        .player-events-table a:hover { color: var(--valorant-red); }
        .player-section-more-btn {
            display: block;
            width: 100%;
            margin-top: 12px;
            padding: 10px 16px;
            background: rgba(15,25,35,0.5);
            border: 1px solid rgba(255,70,85,0.3);
            border-radius: 6px;
            color: rgba(236,232,225,0.85);
            font-size: 13px;
            cursor: pointer;
            transition: all 0.2s;
            text-align: center;
            font-family: inherit;
        }
        .player-section-more-btn:hover {
            background: rgba(255,70,85,0.1);
            border-color: var(--valorant-red);
            color: var(--valorant-red);
        }
        .player-empty { color: rgba(236,232,225,0.4); font-size: 13px; padding: 12px 0; }
        @media (max-width: 640px) {
            .player-header { flex-direction: column; text-align: center; }
            .player-header-name { justify-content: center; font-size: 22px; }
        }

        /* 比赛详情页内返回列表按钮 - 重新设计：渐变 pill 按钮 */
        .dv-back {
            display: inline-flex; align-items: center; gap: 8px;
            padding: 8px 18px 8px 14px;
            background: linear-gradient(135deg, rgba(255,70,85,0.18) 0%, rgba(31,41,55,0.9) 100%);
            border: 1px solid rgba(255,70,85,0.4);
            border-radius: 22px;
            color: var(--valorant-light);
            font-size: 13px; font-weight: 600; line-height: 1;
            cursor: pointer;
            transition: all 0.2s;
            box-shadow: 0 2px 8px rgba(0,0,0,0.2);
            text-decoration: none;
            box-sizing: border-box; height: 36px;
            vertical-align: middle;
        }
        .dv-back:hover {
            background: linear-gradient(135deg, rgba(255,70,85,0.3) 0%, rgba(31,41,55,0.9) 100%);
            border-color: var(--valorant-red);
            color: #fff;
            transform: translateX(-3px);
            box-shadow: 0 4px 14px rgba(255,70,85,0.25);
            text-decoration: none;
        }
        .dv-back i { font-size: 12px; color: var(--valorant-red); }

        /* ===== 比赛快速预览弹窗 ===== */
        .qv-overlay {
            position: fixed; inset: 0; background: rgba(0,0,0,0.7); backdrop-filter: blur(4px);
            z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px;
            opacity: 0; visibility: hidden; transition: all 0.25s;
        }
        .qv-overlay.open { opacity: 1; visibility: visible; }
        .qv-modal {
            position: relative; width: 640px; max-width: 100%; max-height: 85vh; overflow-y: auto;
            background: #131c28; border: 1px solid rgba(255,70,85,0.3); border-radius: 14px;
            padding: 24px; transform: translateY(12px); transition: transform 0.25s;
        }
        .qv-overlay.open .qv-modal { transform: translateY(0); }
        .qv-close {
            position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; border-radius: 50%;
            border: none; background: rgba(255,255,255,0.08); color: rgba(236,232,225,0.7); cursor: pointer;
        }
        .qv-close:hover { background: rgba(255,70,85,0.3); color: #fff; }
        .qv-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
        .qv-team { text-align: center; width: 110px; flex-shrink: 0; }
        .qv-team img { width: 52px; height: 52px; object-fit: contain;
            background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12);
            border-radius: 8px; padding: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
        .qv-tname { font-size: 13px; font-weight: 700; margin-top: 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .qv-mid { text-align: center; flex: 1; min-width: 0; }
        .qv-big-score { font-size: 30px; font-weight: 800; }
        .qv-meta { font-size: 11px; color: rgba(236,232,225,0.55); margin-top: 4px; line-height: 1.35; text-align: center; }
        @media (max-width: 480px) {
            .qv-modal { padding: 16px; }
            .qv-header { gap: 8px; }
            .qv-team { width: 78px; }
            .qv-team img { width: 44px; height: 44px; padding: 3px; }
            .qv-tname { font-size: 12px; }
            .qv-big-score { font-size: 24px; }
            .qv-meta { font-size: 10px; white-space: nowrap; line-height: 1.35; }
        }
        .qv-maps { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
        .qv-map {
            display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
            background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07);
            border-radius: 8px; padding: 8px 14px; background-size: cover; background-position: center;
        }
        .qv-map .qv-side { display: flex; align-items: baseline; gap: 6px; }
        .qv-map .qv-side.right { justify-content: flex-end; }
        .qv-map .qv-side.win .qv-score { color: #34d399; }
        .qv-map .qv-score { font-size: 18px; font-weight: 800; }
        .qv-map .qv-half { font-size: 10px; color: rgba(236,232,225,0.45); }
        .qv-mapname { text-align: center; font-size: 13px; font-weight: 600; color: var(--valorant-red); padding: 0 12px; }
        .qv-mapname .en { display: block; font-size: 10px; color: rgba(236,232,225,0.4); font-weight: 400; }
        .qv-detail-btn {
            display: block; width: 100%; padding: 12px; border: none; border-radius: 8px;
            background: linear-gradient(135deg,#FF4655,#ff6b7a); color: #fff;
            font-size: 15px; font-weight: 700; cursor: pointer; transition: all 0.2s;
        }
        .qv-detail-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(255,70,85,0.4); }

        /* ===== v36 比赛详情页：下载分享图按钮 + 预览弹窗 ===== */
        .dv-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
        .dv-action-btn {
            display: inline-flex; align-items: center; gap: 6px;
            padding: 8px 18px 8px 14px; font-size: 13px; font-weight: 600;
            line-height: 1; box-sizing: border-box;
            background: linear-gradient(135deg, rgba(255,70,85,0.18) 0%, rgba(31,41,55,0.9) 100%);
            border: 1px solid rgba(255,70,85,0.4);
            border-radius: 22px;
            color: var(--valorant-light);
            cursor: pointer; transition: all 0.2s; font-family: inherit;
            height: 36px; text-decoration: none;
            box-shadow: 0 2px 8px rgba(0,0,0,0.2);
        }
        .dv-action-btn:hover {
            background: rgba(255,70,85,0.18); border-color: var(--valorant-red); color: #fff;
            transform: translateY(-1px); box-shadow: 0 3px 10px rgba(255,70,85,0.25);
        }
        .dv-action-btn:disabled,
        .dv-action-btn[aria-disabled="true"] {
            opacity: 0.4; cursor: not-allowed; pointer-events: none;
        }
        .dv-action-btn i { color: var(--valorant-red); font-size: 12px; }
        .dv-action-btn.primary {
            background: linear-gradient(135deg, rgba(255,70,85,0.18) 0%, rgba(31,41,55,0.9) 100%);
            border-color: rgba(255,70,85,0.5);
        }
        .dv-action-btn.primary i { color: var(--valorant-red); }
        /* 分享下拉 */
        .dv-share-dropdown { position: relative; display: inline-block; }
        .dv-share-dropdown .dv-caret { font-size: 9px; opacity: 0.8; transition: transform 0.18s; }
        .dv-share-dropdown.open .dv-caret { transform: rotate(180deg); }
        .dv-share-menu {
            position: absolute; top: calc(100% + 6px); right: 0;
            min-width: 220px;
            background: rgba(15,25,35,0.98);
            border: 1px solid rgba(255,70,85,0.3);
            border-radius: 8px;
            box-shadow: 0 8px 24px rgba(0,0,0,0.5);
            padding: 4px;
            z-index: 50;
            display: flex; flex-direction: column; gap: 2px;
        }
        .dv-share-menu[hidden] { display: none; }
        .dv-share-menu button {
            display: flex; align-items: flex-start; gap: 8px;
            padding: 9px 12px; border: none; background: transparent;
            color: rgba(236,232,225,0.9);
            font-size: 12.5px; font-weight: 500; line-height: 1.35;
            border-radius: 6px; cursor: pointer; text-align: left;
            font-family: inherit; white-space: normal;
            transition: background 0.15s, color 0.15s;
        }
        .dv-share-menu button:hover { background: rgba(255,70,85,0.15); color: #fff; }
        .dv-share-menu button i { color: var(--valorant-red); font-size: 13px; margin-top: 2px; flex-shrink: 0; }
        .dv-share-menu button small { display: block; color: rgba(236,232,225,0.55); font-size: 11px; font-weight: 400; margin-top: 2px; }

        /* 预览弹窗 */
        .share-overlay {
            position: fixed; inset: 0; z-index: 1100;
            background: rgba(0,0,0,0.82); backdrop-filter: blur(6px);
            display: flex; align-items: center; justify-content: center; padding: 20px;
            opacity: 0; visibility: hidden; transition: all 0.25s;
        }
        .share-overlay.open { opacity: 1; visibility: visible; }
        .share-modal {
            position: relative; width: 720px; max-width: 100%; max-height: 90vh;
            background: #131c28; border: 1px solid rgba(255,70,85,0.3);
            border-radius: 14px; padding: 20px 22px;
            display: flex; flex-direction: column; gap: 14px;
            transform: translateY(12px); transition: transform 0.25s;
        }
        .share-overlay.open .share-modal { transform: translateY(0); }
        .share-header { display: flex; align-items: center; justify-content: space-between; }
        .share-title { font-size: 16px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
        .share-title i { color: var(--valorant-red); }
        .share-close {
            width: 32px; height: 32px; border-radius: 50%; border: none;
            background: rgba(255,255,255,0.08); color: rgba(236,232,225,0.7);
            cursor: pointer; font-size: 14px;
        }
        .share-close:hover { background: rgba(255,70,85,0.3); color: #fff; }
        .share-preview {
            flex: 1; min-height: 200px; max-height: 64vh;
            background: var(--valorant-dark); border-radius: 8px; overflow: auto;
            display: flex; align-items: flex-start; justify-content: center;
            border: 1px solid rgba(255,255,255,0.06); padding: 12px;
        }
        .share-preview img { max-width: 100%; height: auto; display: block; box-shadow: 0 4px 20px rgba(0,0,0,0.4); }
        .share-preview .share-loading {
            text-align: center; padding: 60px 20px; color: rgba(236,232,225,0.6);
            display: flex; flex-direction: column; align-items: center; gap: 12px;
        }
        .share-preview .share-loading .duck-loading-img { width: 100px; }
        .share-footer { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
        .share-btn {
            padding: 9px 20px; font-size: 13px; font-weight: 600; border: none;
            border-radius: 8px; cursor: pointer; font-family: inherit;
            display: inline-flex; align-items: center; gap: 6px; transition: all 0.2s;
        }
        .share-btn.primary { background: linear-gradient(135deg,#FF4655,#ff6b7a); color: #fff; }
        .share-btn.primary:hover { transform: translateY(-1px); box-shadow: 0 4px 15px rgba(255,70,85,0.4); }
        .share-btn.ghost { background: rgba(255,255,255,0.06); color: rgba(236,232,225,0.8); }
        .share-btn.ghost:hover { background: rgba(255,255,255,0.1); }
        @media (max-width: 600px) {
            .share-modal { padding: 14px; }
            .share-preview { padding: 8px; max-height: 56vh; }
            .share-btn { padding: 8px 14px; font-size: 12px; }
        }

        .qv-loading { text-align: center; padding: 40px 0; color: rgba(236,232,225,0.6); }
        .qv-loading img { width: 80px; }
        .qv-nomaps { text-align: center; color: rgba(236,232,225,0.4); font-size: 13px; padding: 14px 0; }

        /* ===== v38+: 分享图站点角标（整体居中 + 网址） ===== */
        .share-site-badge {
            position: absolute; top: 14px; right: 18px;
            display: flex; align-items: center; justify-content: center;
            gap: 8px;
            padding: 7px 13px; border-radius: 14px;
            background: rgba(15,25,35,0.92); border: 1px solid rgba(255,70,85,0.3);
            z-index: 5;
        }
        .share-site-badge .share-site-logo { width: 28px; height: 28px; flex-shrink: 0; }
        .share-site-badge .share-site-info {
            display: flex; flex-direction: column;
            align-items: center; justify-content: center;
            line-height: 1.15;
        }
        .share-site-badge .share-site-name {
            font-size: 18px; font-weight: 700; color: rgba(236,232,225,0.95);
            letter-spacing: 0.3px; line-height: 1.2;
        }
        .share-site-badge .share-site-url {
            font-size: 9px; color: #FF4655; font-weight: 600;
            letter-spacing: 0.3px; line-height: 1.2; margin-top: 2px;
            text-decoration: none;
        }

        /* ===== v38: 分享图内地图 BP - action 改 absolute 避免挤压 veto-info ===== */
        /* v51: opacity 0.3 → 0.2 */
        .share-clone .vlr-map-bg-clone {
            opacity: 0.2 !important;
        }
        .share-clone .veto-item { position: relative; padding-right: 60px; }
        .share-clone .veto-action {
            position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
        }
        .share-clone .veto-info { min-width: 0; }
        .share-clone .veto-map {
            font-size: 13px;  /* 略小以适应 25% 卡片宽度 */
        }
        .detail-header {
            background: rgba(31,41,55,0.8);
            border: 1px solid rgba(255,70,85,0.2);
            border-radius: 12px; padding: 16px 24px 18px; margin-bottom: 20px;
            position: relative;
        }
        .detail-title { font-size: 20px; margin-bottom: 8px; }
        .detail-meta { display: flex; gap: 18px; color: rgba(236,232,225,0.6); font-size: 13px; flex-wrap: wrap; }
        .detail-teams { display: flex; align-items: center; justify-content: center; gap: 30px; margin-top: 24px; }
        .detail-team { text-align: center; flex: 1; }
        .detail-team img { width: 64px; height: 64px; object-fit: contain; margin-bottom: 8px;
            background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12);
            border-radius: 10px; padding: 6px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
        .detail-team .tname { font-weight: 600; font-size: 17px; }
        .detail-team .tscore { font-size: 40px; font-weight: 700; margin-top: 6px; }
        .detail-team .tscore.won { color: #10b981; }
        .vs-text { font-size: 22px; color: rgba(236,232,225,0.35); }
        .veto-line {
            margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(255,70,85,0.15);
            font-size: 12px; color: rgba(236,232,225,0.55); line-height: 1.7;
        }
        .veto-line i { color: var(--valorant-red); margin-right: 6px; }

        .map-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
        .map-tab {
            position: relative; display: flex; align-items: center; gap: 10px;
            padding: 6px 14px 6px 6px; border-radius: 8px; cursor: pointer; font-size: 13px;
            background: rgba(15,25,35,0.75); border: 1px solid rgba(255,70,85,0.15);
            color: rgba(236,232,225,0.7); transition: all 0.2s;
        }
        .map-tab:hover { border-color: rgba(255,70,85,0.4); color: var(--valorant-light); }
        .map-tab.active {
            background: rgba(255,70,85,0.15); border-color: var(--valorant-red);
            color: var(--valorant-red); font-weight: 600;
            box-shadow: 0 0 0 1px var(--valorant-red);
        }
        .map-tab.active .tab-score { color: var(--valorant-red); }
        .map-tab img.map-tab-thumb {
            width: 56px; height: 32px; border-radius: 4px; object-fit: cover; flex-shrink: 0;
            background: rgba(255,70,85,0.08);
        }
        .map-tab .tab-score { margin-left: 6px; font-weight: 700; color: var(--valorant-red); }

        .section-box {
            background: rgba(31,41,55,0.8);
            border: 1px solid rgba(255,70,85,0.2);
            border-radius: 12px; padding: 20px; margin-bottom: 20px;
        }
        .section-title {
            font-size: 16px; margin-bottom: 16px; padding-bottom: 10px;
            border-bottom: 1px solid rgba(255,70,85,0.2);
            display: flex; align-items: center; gap: 8px;
        }
        .section-title i { color: var(--valorant-red); }
        .map-summary {
            display: flex; align-items: center; justify-content: center; gap: 24px;
            margin-bottom: 18px; flex-wrap: wrap;
        }
        .map-summary .ms-team { text-align: center; display: flex; flex-direction: column; align-items: center; }
        .map-summary .ms-team img { width: 48px; height: 48px; object-fit: contain; margin-bottom: 6px; border-radius: 8px; background: rgba(255,255,255,0.05); padding: 4px; box-shadow: 0 0 0 2px rgba(255,70,85,0.35), 0 1px 3px rgba(0,0,0,0.3); }
        .map-summary .ms-score { font-size: 30px; font-weight: 700; }
        .map-summary .ms-score.won { color: #10b981; }
        .map-summary .ms-half { font-size: 11px; color: rgba(236,232,225,0.45); margin-top: 2px; }
        .map-summary .ms-name { font-size: 13px; color: rgba(236,232,225,0.6); }
        .map-summary .ms-duration { font-size: 11px; color: rgba(236,232,225,0.4); }

        /* 地图背景卡片（per-map 详情用） */
        .vlr-map-bg-card {
            position: relative; border-radius: 8px; overflow: hidden;
            background-size: cover; background-position: center;
            background-repeat: no-repeat;
            background-color: rgba(15,25,35,0.5);
            border-left: 3px solid var(--valorant-red);
            padding: 16px 20px;
            min-height: 120px;
        }
        .vlr-map-bg-card.winner-team1 { border-left-color: #10b981; }
        .vlr-map-bg-card.winner-team2 { border-left-color: #3b82f6; }
        .vlr-map-bg-card::before {
            content: ''; position: absolute; inset: 0;
            background: linear-gradient(90deg, rgba(15,25,35,0.94) 0%, rgba(15,25,35,0.82) 55%, rgba(15,25,35,0.55) 100%);
        }
        .vlr-map-bg-card > * { position: relative; z-index: 1; }

        .stats-table-wrap { overflow-x: auto; }
        table.stats-table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 760px; }
        .stats-table th {
            text-align: right; padding: 8px 10px; font-weight: 600;
            color: rgba(236,232,225,0.5); font-size: 11px;
            border-bottom: 1px solid rgba(255,70,85,0.2); white-space: nowrap;
        }
        .stats-table th:first-child, .stats-table td:first-child { text-align: left; width: 200px; min-width: 200px; }
        .stats-table td { padding: 8px 10px; text-align: right; border-bottom: 1px solid rgba(255,255,255,0.04); white-space: nowrap; }
        .stats-table tr:hover td { background: rgba(255,70,85,0.05); }
        .stats-table .p-name { font-weight: 600; }
        .stats-table .p-agent { font-size: 11px; color: rgba(236,232,225,0.45); }
        .team-block-title {
            font-size: 13px; font-weight: 600; color: var(--valorant-red);
            margin: 14px 0 6px; display: flex; align-items: center; gap: 8px;
        }
        .pos { color: #10b981; } .neg { color: #ef4444; }

        .econ-table { width: 100%; border-collapse: collapse; font-size: 13px; }
        .econ-table th, .econ-table td { padding: 8px 10px; text-align: center; border-bottom: 1px solid rgba(255,255,255,0.05); }
        .econ-table th { color: rgba(236,232,225,0.5); font-size: 11px; border-bottom: 1px solid rgba(255,70,85,0.2); }
        .econ-table th:first-child, .econ-table td:first-child { text-align: left; }

        /* 回合胜负网格（游戏内配色：绿=防守胜，红=进攻胜） */
        .vlr-block-subtitle {
            display: flex; align-items: center; gap: 8px; margin: 14px 0 6px;
            font-size: 14px; font-weight: 700; color: #ece2e1;
        }
        .vlr-block-subtitle i { color: var(--valorant-red); }
        .rounds-filter { display: flex; gap: 6px; margin-left: auto; }
        .rounds-filter button {
            padding: 4px 12px; font-size: 11px; border-radius: 5px; cursor: pointer;
            background: rgba(15,25,35,0.6); border: 1px solid rgba(255,255,255,0.1);
            color: rgba(236,232,225,0.6); transition: all 0.2s;
        }
        .rounds-filter button.active { border-color: var(--valorant-red); color: var(--valorant-red); background: rgba(255,70,85,0.1); }
        .rounds-grid { display: flex; flex-direction: column; gap: 5px; margin: 12px 0 4px; }
        .round-row { display: flex; align-items: center; gap: 3px; flex-wrap: wrap; }
        .round-row .rr-name {
            width: 110px; flex-shrink: 0; font-size: 12px; font-weight: 600;
            overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
        }
        .r-cell {
            width: 24px; height: 24px; border-radius: 4px; font-size: 10px;
            display: inline-flex; align-items: center; justify-content: center;
            background: rgba(255,255,255,0.05); color: rgba(236,232,225,0.3);
            border: 1px solid transparent; flex-shrink: 0;
        }
        .r-cell.win-ct { background: rgba(16,185,129,0.35); color: #4ade80; border-color: rgba(16,185,129,0.6); font-weight: 700; }
        .r-cell.win-t { background: rgba(239,68,68,0.32); color: #f87171; border-color: rgba(239,68,68,0.6); font-weight: 700; }
        .r-cell.dim { opacity: 0.18; }
        .r-half-sep { width: 6px; flex-shrink: 0; border-left: 1px dashed rgba(236,232,225,0.25); height: 24px; }
        .rounds-legend { font-size: 11px; color: rgba(236,232,225,0.4); margin-top: 6px; display: flex; gap: 14px; flex-wrap: wrap; }
        .rounds-legend i { margin-right: 4px; }
        
        /* 地图 BP 流程卡片 */
        .veto-flow { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 4px; }
        .veto-empty {
            padding: 24px 16px; text-align: center; color: rgba(236,232,225,0.45);
            background: rgba(15,25,35,0.5); border: 1px dashed rgba(255,255,255,0.1);
            border-radius: 8px; font-size: 13px; margin-bottom: 16px;
        }
        .veto-empty i { display: block; font-size: 26px; margin-bottom: 8px; color: rgba(236,232,225,0.25); }
        .veto-item {
            position: relative; display: flex; align-items: center; gap: 12px;
            background: rgba(15,25,35,0.75); border: 1px solid rgba(255,255,255,0.08);
            border-radius: 8px; padding: 8px 12px;
            flex: 0 0 calc(25% - 6px);
            min-width: 0;
        }
        .veto-item.ban { border-left: 3px solid #ef4444; }
        .veto-item.pick { border-left: 3px solid #10b981; }
        .veto-item.remains { border-left: 3px solid #eab308; }
        .veto-thumb {
            width: 86px; height: 50px; border-radius: 4px; object-fit: cover; flex-shrink: 0;
            background: rgba(255,70,85,0.08);
        }
        .veto-info { min-width: 0; flex: 1; }
        .veto-map { font-size: 15px; font-weight: 700; white-space: nowrap; line-height: 1.2; }
        .veto-map .en { font-size: 12px; color: rgba(236,232,225,0.5); font-weight: 400; margin-left: 4px; }
        .veto-team { font-size: 13px; color: var(--valorant-red); font-weight: 700; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: 0.5px; }
        .veto-action { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 4px; flex-shrink: 0; }
        .veto-action.ban { background: rgba(239,68,68,0.18); color: #f87171; border: 1px solid rgba(239,68,68,0.4); }
        .veto-action.pick { background: rgba(16,185,129,0.18); color: #34d399; border: 1px solid rgba(16,185,129,0.4); }
        .veto-action.remains { background: rgba(234,179,8,0.15); color: #facc15; border: 1px solid rgba(234,179,8,0.4); }
        .veto-order {
            position: absolute; top: -7px; left: -7px; width: 18px; height: 18px;
            border-radius: 50%; background: var(--valorant-gray); border: 1px solid rgba(255,255,255,0.2);
            font-size: 10px; display: flex; align-items: center; justify-content: center;
            color: rgba(236,232,225,0.7);
        }
        
        /* 选手特工图标 */
        .p-agent-wrap { display: flex; align-items: center; gap: 10px; }
        .stats-table th.agent-cell, .stats-table td.agent-cell { text-align: left; width: 170px; min-width: 170px; }
        .p-agent-icon {
            width: 34px; height: 34px; border-radius: 6px; flex-shrink: 0;
            background: rgba(255,70,85,0.08); object-fit: cover;
            border: 1px solid rgba(255,255,255,0.08);
        }
        /* Player avatar (VLR roster) - match .p-agent-icon size (34px) */
        .p-player-avatar {
            width: 34px !important; height: 34px !important;
            max-width: 34px !important; max-height: 34px !important;
            min-width: 34px; min-height: 34px;
            aspect-ratio: 1 / 1;
            border-radius: 50% !important;
            object-fit: cover;
            background: rgba(255,255,255,0.04);
            border: 1px solid rgba(255,255,255,0.12);
            flex-shrink: 0;
            display: inline-block;
        }
        /* 无选手头像时的默认头像（站点 logo，完整显示不裁剪） */
        .p-avatar-default { object-fit: contain !important; padding: 4px; background: rgba(255,255,255,0.08) !important; }
        .omen-loading-img { width: 80px; display: block; margin: 0 auto 8px; }
        .duck-loading-img { width: 120px; display: block; margin: 0 auto 10px; }

        /* 赛事比赛页加载骨架屏 */
        .ev-skel { padding: 6px 0 30px; }
        .ev-skel .skel { position: relative; overflow: hidden; background: rgba(255,255,255,0.06); border-radius: 6px; }
        .ev-skel .skel::after {
            content: ''; position: absolute; inset: 0; transform: translateX(-100%);
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent);
            animation: skel-shimmer 1.4s infinite;
        }
        @keyframes skel-shimmer { 100% { transform: translateX(100%); } }
        .skel-hero {
            display: flex; gap: 16px; align-items: center; padding: 18px;
            background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06);
            border-radius: 10px; margin-bottom: 14px;
        }
        .skel-thumb { width: 56px; height: 56px; border-radius: 8px; flex-shrink: 0; }
        .skel-hero-lines { flex: 1; display: flex; flex-direction: column; gap: 10px; }
        .skel-line { height: 14px; }
        .skel-w40 { width: 40%; } .skel-w60 { width: 60%; } .skel-w80 { width: 80%; }
        .skel-tabs { display: flex; gap: 10px; margin-bottom: 14px; }
        .skel-tab { width: 110px; height: 34px; border-radius: 8px; }
        .skel-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
        .skel-card { height: 64px; border-radius: 8px; }
        .skel-tip {
            text-align: center; margin-top: 18px; color: rgba(236,232,225,0.45); font-size: 13px;
            display: flex; align-items: center; justify-content: center; gap: 8px;
        }
        .skel-tip img { width: 36px; }

        .h2h-row {
            display: grid; grid-template-columns: minmax(0,1fr) 110px 56px; align-items: center; gap: 10px;
            padding: 10px 12px; border-radius: 6px; background: rgba(15,25,35,0.6);
            margin-bottom: 8px; font-size: 13px;
        }
        .h2h-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
        .h2h-grid .h2h-row { margin-bottom: 0; }
        .h2h-row a { color: var(--valorant-red); text-decoration: none; font-size: 12px; }
        .h2h-row a:hover { text-decoration: underline; }
        .h2h-score { font-weight: 700; color: var(--valorant-red); }
        .h2h-score.pos { color: #10b981; } .h2h-score.neg { color: #ef4444; }
        .h2h-teams { display: flex; align-items: center; gap: 6px; min-width: 0; }
        .h2h-teams .h2h-vs { color: rgba(236,232,225,0.35); font-size: 11px; }
        .h2h-teams .h2h-winner { color: #ece2e1; font-weight: 700; }

        /* 赛事卡片 */
        .event-card {
            display: flex; gap: 16px; align-items: center;
            background: rgba(31,41,55,0.8); border: 1px solid rgba(255,70,85,0.15);
            border-radius: 12px; padding: 16px 20px; margin-bottom: 14px;
            cursor: pointer; transition: all 0.2s;
        }
        .event-card:hover { border-color: rgba(255,70,85,0.5); transform: translateY(-2px); }
        .event-card img { width: 52px; height: 52px; object-fit: contain; flex-shrink: 0; }
        .event-info { flex: 1; min-width: 0; }
        .event-name { font-weight: 600; font-size: 15px; margin-bottom: 4px; }
        .event-sub { font-size: 12px; color: rgba(236,232,225,0.5); display: flex; gap: 14px; flex-wrap: wrap; }
        .event-status {
            font-size: 11px; padding: 3px 10px; border-radius: 20px; flex-shrink: 0;
            border: 1px solid rgba(236,232,225,0.2); color: rgba(236,232,225,0.6);
        }
        .event-status.ongoing { border-color: #10b981; color: #10b981; }

        .refresh-hint { text-align: center; font-size: 11px; color: rgba(236,232,225,0.3); margin-top: 18px; }

        @media (max-width: 640px) {
            body { padding: 70px 10px 30px; }
            .match-score { min-width: 60px; font-size: 19px; }
            .detail-teams { gap: 14px; }
            .detail-team img { width: 46px; height: 46px; }
            .detail-team .tscore { font-size: 30px; }
        }

        /* ===== 赛事列表：筛选面板 + 按年份分组（参考号角布局，本站配色）===== */
        .ev-filter-panel {
            background: rgba(31,41,55,0.6); border: 1px solid rgba(255,70,85,0.15);
            border-radius: 10px; padding: 10px 18px; margin-bottom: 8px;
        }
        .ev-filter-row { display: flex; align-items: center; gap: 12px; padding: 8px 0; flex-wrap: wrap; }
        .ev-filter-row + .ev-filter-row { border-top: 1px solid rgba(255,255,255,0.05); }
        .ev-filter-label { width: 52px; flex-shrink: 0; font-size: 13px; color: rgba(236,232,225,0.5); }
        .ev-filter-label i { color: var(--valorant-red); margin-right: 6px; }
        .ev-filter-opts { display: flex; gap: 8px; flex-wrap: wrap; }
        .ev-opt {
            padding: 5px 14px; font-size: 12px; border-radius: 6px; cursor: pointer;
            background: rgba(15,25,35,0.6); border: 1px solid rgba(255,255,255,0.08);
            color: rgba(236,232,225,0.65); transition: all 0.2s; font-family: inherit;
        }
        .ev-opt:hover { border-color: rgba(255,70,85,0.4); color: var(--valorant-light); }
        .ev-opt.active {
            background: rgba(255,70,85,0.15); border-color: var(--valorant-red);
            color: var(--valorant-red); font-weight: 600;
        }

        .ev-year-title {
            font-size: 15px; font-weight: 700; margin: 20px 0 10px;
            padding-left: 10px; border-left: 3px solid var(--valorant-red);
        }
        .ev-row {
            display: grid; grid-template-columns: 56px minmax(0,1.4fr) 130px 96px 100px 100px 150px;
            align-items: center; gap: 12px;
            background: linear-gradient(135deg, rgba(255,70,85,0.14) 0%, rgba(31,41,55,0.85) 100%);
            border: 1px solid rgba(255,70,85,0.22);
            border-left: 3px solid rgba(255,70,85,0.6);
            border-radius: 10px; padding: 12px 18px; margin-bottom: 10px; cursor: pointer;
            transition: all 0.2s;
        }
        .ev-row:hover {
            border-color: rgba(255,70,85,0.55);
            transform: translateY(-2px);
            box-shadow: 0 6px 18px rgba(0,0,0,0.35);
            background: linear-gradient(135deg, rgba(255,70,85,0.22) 0%, rgba(31,41,55,0.9) 100%);
        }
        .ev-row img { width: 52px; height: 52px; object-fit: contain; }
        .ev-title {
            font-size: 15px; font-weight: 700; color: rgba(236,232,225,0.95);
            overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
        }
        .ev-col { font-size: 12px; color: rgba(236,232,225,0.6); text-align: center; }
        .ev-col i { color: var(--valorant-red); margin-right: 4px; }
        .ev-status { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 5px; display: inline-block; }
        .ev-status.st-live { color: #34d399; background: rgba(16,185,129,0.12); border: 1px solid rgba(16,185,129,0.4); }
        .ev-status.st-upcoming { color: rgba(236,232,225,0.6); background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); }
        .ev-status.st-completed { color: #f87171; background: rgba(239,68,68,0.1); border: 1px solid rgba(239,68,68,0.3); }
        @media (max-width: 768px) {
            /* flex-wrap 2 行布局：第 1 行 图+标题，第 2 行 日期(左)+状态(中)+操作(右) */
            .ev-row {
                display: flex; flex-wrap: wrap; align-items: center;
                padding: 10px 12px; gap: 6px 10px;
            }
            .ev-row > img { width: 36px; height: 36px; flex-shrink: 0; }
            .ev-title { flex: 1; min-width: 0; font-size: 13px; }
            .ev-row > .ev-col:not(.ev-dates):not(.ev-region):not(.ev-prize) {
                flex-shrink: 0;
                order: 1; /* 状态列紧贴操作按钮 */
            }
            /* 日期：第 2 行左侧，flex:1 占满剩余空间，超长省略 */
            .ev-row > .ev-dates {
                flex: 1; min-width: 0; text-align: left;
                font-size: 11px; white-space: nowrap;
                overflow: hidden; text-overflow: ellipsis;
            }
            /* 操作按钮：第 2 行右侧，固定不收缩，紧跟在状态后 */
            .ev-row > .ev-actions {
                flex-shrink: 0; justify-content: flex-end;
                order: 2;
            }
            .ev-action-btn { padding: 4px 8px; font-size: 10px; }
            /* 只隐藏 region 和 prize，dates 恢复显示 */
            .ev-col.ev-region, .ev-col.ev-prize { display: none; }
        }

        /* 极小屏（<=480px）：日期藏掉，状态+操作整体右靠；状态紧贴回放 */
        @media (max-width: 480px) {
            .ev-row > .ev-dates { display: none; }
            /* 没日期了，状态用 margin-left:auto 把自己和后面 actions 一起推到右边 */
            .ev-row > .ev-col:not(.ev-dates):not(.ev-region):not(.ev-prize) {
                margin-left: auto;
            }
            /* actions 不再 flex:1，否则会把 status 隔开 */
            .ev-row > .ev-actions {
                flex: 0 0 auto;
                justify-content: flex-end;
            }
        }

        /* ===== 对阵图（bracket，赛事详情页树状视图用）===== */
        /* 赛事列表筛选面板搜索框 */
        .bk-search {
            background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12);
            border-radius: 6px; padding: 6px 12px; color: #ece2e1; font-size: 13px;
            width: 260px; max-width: 100%; outline: none;
        }
        .bk-search:focus { border-color: rgba(255,70,85,0.5); }

        /* 赛事介绍卡片（赛制/隶属/地点） */
        .ev-info-card {
            background: rgba(15,25,35,0.85); border: 1px solid rgba(255,255,255,0.08);
            border-left: 3px solid rgba(255,70,85,0.55); border-radius: 10px;
            padding: 12px 16px; margin: -6px 0 18px; font-size: 13px; color: rgba(236,232,225,0.8);
        }
        .ev-info-card .ev-info-series { font-weight: 700; margin-bottom: 4px; }
        .ev-info-card .ev-info-sub { color: rgba(236,232,225,0.65); line-height: 1.6; }
        .ev-info-card .ev-info-sub .en { display: block; font-size: 11px; color: rgba(236,232,225,0.38); margin-top: 2px; }
        .ev-info-card .ev-info-loc { margin-top: 6px; font-size: 12px; color: rgba(236,232,225,0.6); }

        .vlr-event-header {
            background: linear-gradient(135deg, rgba(255,70,85,0.18), rgba(31,41,55,0.9));
            border: 1px solid rgba(255,70,85,0.3); border-radius: 12px;
            padding: 18px 24px; margin-bottom: 20px;
            display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
        }
        .vlr-event-header img { width: 56px; height: 56px; object-fit: contain; }
        .vlr-event-header .ev-name { font-size: 19px; font-weight: 700; }
        .vlr-event-header .ev-name-en { font-size: 12px; font-weight: 400; color: rgba(236,232,225,0.5); margin-top: 3px; letter-spacing: 0.3px; }
        .vlr-event-header .ev-meta { font-size: 12px; color: rgba(236,232,225,0.6); margin-top: 5px; display: flex; gap: 16px; flex-wrap: wrap; }
        .vlr-event-header .ev-meta i { margin-right: 4px; color: var(--valorant-red); }

        .vlr-stage-title {
            font-size: 15px; font-weight: 600; margin: 22px 0 12px;
            padding-left: 10px; border-left: 3px solid var(--valorant-red);
            display: flex; align-items: center; gap: 8px;
        }
        /* 进程树: 子分组 (Upper/Lower) 标题 */
        .vlr-substage-title {
            margin: 12px 0 8px; padding-left: 10px;
            font-size: 12px; font-weight: 700;
            color: rgba(236,232,225,0.75);
            display: flex; align-items: center; gap: 8px;
            border-left: 2px solid rgba(255,70,85,0.45);
        }
        .vlr-substage-title .stage-en { font-size: 10px; color: rgba(236,232,225,0.4); font-weight: 400; margin-left: 4px; }
        .vlr-substage-title i { font-size: 11px; color: rgba(255,70,85,0.7); }
        /* 嵌套 stage 大区域 */
        .vlr-stage-section { margin-bottom: 12px; }
        .vlr-stage-title .stage-en { font-size: 11px; color: rgba(236,232,225,0.4); font-weight: 400; }
        .vlr-loading { text-align: center; padding: 36px 0; color: rgba(236,232,225,0.5); font-size: 13px; }
        .vlr-loading img.omen-loading-img { width: 80px; display: block; margin: 0 auto 8px; }

        .bracket-scroll {
            overflow-x: auto; padding-bottom: 8px; min-width: 0;
            scrollbar-width: thin; scrollbar-color: rgba(255,70,85,0.35) rgba(255,255,255,0.05);
        }
        .bracket-scroll::-webkit-scrollbar { height: 6px; }
        .bracket-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,0.05); border-radius: 3px; }
        .bracket-scroll::-webkit-scrollbar-thumb { background: rgba(255,70,85,0.35); border-radius: 3px; }
        .bracket-scroll::-webkit-scrollbar-thumb:hover { background: rgba(255,70,85,0.6); }
        .bracket-columns { display: flex; gap: 36px; min-width: min-content; padding: 8px 4px; }
        .bracket-col { width: 215px; flex-shrink: 0; display: flex; flex-direction: column; gap: 12px; position: relative; }
        .bracket-col-title {
            text-align: center; font-size: 12px; font-weight: 600; padding: 7px 10px;
            background: rgba(255,70,85,0.12); border: 1px solid rgba(255,70,85,0.25);
            border-radius: 6px; color: rgba(236,232,225,0.85);
        }
        "
.bracket-col-title .en { display: block; font-size: 10px; color: rgba(236,232,225,0.4); font-weight: 400; }
        /* ===== 图标尺寸 (v35m) ===== */
        /* 赛事表 stage section header 图标 30x30 */
        .ev-schedule-section-header > i.fas,
        .ev-schedule-section-header > i.far,
        .ev-schedule-section-header > i.fab { font-size: 30px; width: 30px; min-width: 30px; text-align: center; }
        /* 比赛分类侧栏按钮图标 20x20 */
        .ev-schedule-cat > i.fas,
        .ev-schedule-cat > i.far,
        .ev-schedule-cat > i.fab { font-size: 20px; width: 20px; min-width: 20px; text-align: center; }
        /* 进程树列标题图标 20x20 */
        .bracket-col-title > i.fas,
        .bracket-col-title > i.far,
        .bracket-col-title > i.fab { font-size: 20px; width: 20px; min-width: 20px; text-align: center; }
        .bracket-col .col-matches { display: flex; flex-direction: column; gap: 14px; justify-content: flex-start; flex: 1; }
        /* 列间连接线：vlr.gg 风格肘形线，由 JS layoutBracketTree 测量后绘制 SVG */
        .bracket-columns { position: relative; }
        svg.bracket-wires { position: absolute; left: 0; top: 0; pointer-events: none; z-index: 0; overflow: visible; }
        .bracket-col { z-index: 1; }
        .bracket-match { position: relative; }
        /* 胜者那一行右侧加个小箭头，明确“已续出”方向 */
        .bracket-col:not(.col-qualified) .bracket-match .bm-team.winner::after {
            content: '\f054'; font-family: 'Font Awesome 6 Free'; font-weight: 900;
            position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
            color: #34d399; font-size: 10px; line-height: 1;
        }
        .bracket-col.col-qualified .bracket-col-title {
            background: rgba(255,215,0,0.12); border-color: rgba(255,215,0,0.35); color: rgba(255,215,0,0.95);
        }

        .bracket-match {
            background: rgba(15,25,35,0.85); border: 1px solid rgba(255,255,255,0.08);
            border-left: 3px solid rgba(255,255,255,0.15);
            border-radius: 8px; overflow: hidden; cursor: pointer;
            /* 注意：不能用 transition:all —— 连线布局要靠 margin-top 即时生效，动画会导致测量到旧位置 */
            transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
        }
        .bracket-match:hover { border-color: rgba(255,70,85,0.5); transform: translateY(-2px); }
        .bracket-match.is-live { border-color: #ef4444; border-left-color: #ef4444; box-shadow: 0 0 12px rgba(239,68,68,0.25); }
        .bracket-match.is-upcoming { border-left-color: rgba(234,179,8,0.6); }
        /* 2026-08-31: bracket 卡片内直播/回放小按钮 */
        .bm-stream-wrap { padding: 0 10px 6px; display: flex; justify-content: flex-end; }
        .bm-stream-btn {
            display: inline-flex; align-items: center; gap: 3px;
            padding: 2px 6px; border-radius: 3px; font-size: 10px; font-weight: 600;
            text-decoration: none; color: #fff;
            border: 1px solid transparent;
            transition: all 0.15s;
        }
        .bm-stream-btn.live {
            background: linear-gradient(135deg, #ef4444, #dc2626);
            border-color: rgba(239,68,68,0.6);
            animation: bm-live-pulse 1.6s ease-in-out infinite;
        }
        .bm-stream-btn.live:hover { background: linear-gradient(135deg, #f87171, #ef4444); }
        .bm-stream-btn.vod {
            background: linear-gradient(135deg, rgba(99,102,241,0.9), rgba(79,70,229,0.9));
            border-color: rgba(99,102,241,0.5);
        }
        .bm-stream-btn.vod:hover { background: linear-gradient(135deg, #818cf8, #6366f1); }
        @keyframes bm-live-pulse {
            0%, 100% { box-shadow: 0 0 0 rgba(239,68,68,0); }
            50% { box-shadow: 0 0 8px rgba(239,68,68,0.6); }
        }
        .bracket-match-qualified { background: rgba(255,215,0,0.04); border-color: rgba(255,215,0,0.18); border-style: dashed; cursor: default; min-height: 56px; display: flex; align-items: center; justify-content: center; }
        .bracket-match-qualified:hover { transform: none; }
        .bm-empty { color: rgba(255,215,0,0.6); font-size: 11px; text-align: center; line-height: 1.3; padding: 8px 4px; }
        .bm-empty i { font-size: 18px; display: block; margin-bottom: 4px; }
        .bm-date { font-size: 10px; color: rgba(236,232,225,0.45); padding: 5px 10px 0; display: flex; justify-content: space-between; }
        .bm-date .bm-live { color: #ef4444; font-weight: 700; }
        .bm-date .bm-upcoming { color: #facc15; }
        .bm-team { display: flex; align-items: center; justify-content: space-between; padding: 6px 10px; font-size: 13px; }
        /* 对阵中间的分隔横线，区分上下两支队伍 */
        .bm-team + .bm-team { border-top: 1px solid rgba(255,255,255,0.09); }
        .bm-team .bm-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: flex; align-items: center; min-width: 0; }
        .bm-logo { width: 20px; height: 20px; object-fit: contain; margin-right: 6px; flex-shrink: 0; }
        .bm-team .bm-score { font-weight: 700; margin-left: 8px; }
        .bm-team.winner { background: rgba(16,185,129,0.16); color: #34d399; }
        .bm-team.winner .bm-score { color: #34d399; }
        /* 败者组胜方用游戏里的红色，和胜者组绿色区分 */
        .bracket-match.lower .bm-team.winner { background: rgba(255,70,85,0.16); color: #ff7b86; }
        .bracket-match.lower .bm-team.winner .bm-score { color: #ff7b86; }
        .bm-team.loser { color: rgba(236,232,225,0.4); opacity: 0.65; }
        .bm-team.tbd { color: rgba(236,232,225,0.35); font-style: italic; }

        .vlr-list-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }

        /* ===== 小组赛列表（日期分组，参考 vlr.gg 布局）===== */
        .bl-date-title {
            margin: 18px 0 8px; font-size: 13px; font-weight: 700;
            color: rgba(236,232,225,0.8); padding-left: 10px;
            border-left: 3px solid rgba(255,70,85,0.55);
        }
        .bl-grid {
            display: grid; grid-template-columns: repeat(auto-fill, minmax(430px, 1fr));
            gap: 8px 12px; margin-bottom: 4px;
        }
        .bl-grid .bl-row { margin-bottom: 0; }
        .bl-row {
            display: grid; grid-template-columns: minmax(0,1fr) 86px 120px; gap: 10px;
            align-items: center; margin-bottom: 8px; cursor: pointer;
            background: rgba(15,25,35,0.85); border: 1px solid rgba(255,255,255,0.08);
            border-left: 3px solid rgba(255,255,255,0.15);
            border-radius: 8px; overflow: hidden; transition: all 0.2s;
        }
        .bl-row:hover { border-color: rgba(255,70,85,0.5); }
        .bl-row.is-live { border-color: #ef4444; border-left-color: #ef4444; box-shadow: 0 0 12px rgba(239,68,68,0.2); }
        .bl-row.is-upcoming { border-left-color: rgba(234,179,8,0.6); }
        .bl-teams { display: flex; flex-direction: column; }
        .bl-team { display: flex; align-items: center; gap: 8px; padding: 6px 12px; font-size: 13px; }
        .bl-team img { width: 18px; height: 18px; object-fit: contain; flex-shrink: 0; }
        .bl-team .n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .bl-team .s { margin-left: auto; font-weight: 700; padding-right: 4px; }
        .bl-team.winner { background: rgba(16,185,129,0.16); color: #34d399; }
        .bl-team.loser { color: rgba(236,232,225,0.4); opacity: 0.65; }
        .bl-team.tbd { color: rgba(236,232,225,0.35); font-style: italic; }
        .bl-status { text-align: center; font-size: 11px; color: rgba(236,232,225,0.5); }
        .bl-status .bl-time { display: block; font-weight: 700; color: rgba(236,232,225,0.75); margin-bottom: 1px; }
        .bl-status .bl-live { color: #ef4444; font-weight: 700; }
        .bl-status .bl-upcoming { color: #facc15; }
        .bl-series { font-size: 10px; color: rgba(236,232,225,0.45); text-align: right; padding-right: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        @media (max-width: 768px) {
            .bl-grid { grid-template-columns: 1fr; }
            .bl-row { grid-template-columns: minmax(0,1fr) 70px; }
            .bl-series { display: none; }
        }

        /* ===== 小组赛分组视图（参考 vlr.gg Group Stage：两栏分组 + 积分榜 + 组内赛程）===== */
        .grp-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; margin-bottom: 10px; }
        .grp-col { background: rgba(31,41,55,0.3); border: 1px solid rgba(255,255,255,0.07); border-radius: 10px; padding: 14px; min-width: 0; }
        .grp-name { font-size: 15px; font-weight: 800; margin-bottom: 12px; padding-left: 10px; border-left: 3px solid var(--valorant-red); display: flex; align-items: baseline; gap: 8px; }
        .grp-name .en { font-size: 11px; font-weight: 400; color: rgba(236,232,225,0.4); }
        .grp-table { width: 100%; border-collapse: collapse; font-size: 12px; margin-bottom: 14px; }
        .grp-table th { font-size: 10px; color: rgba(236,232,225,0.45); font-weight: 500; text-align: center; padding: 4px 6px; border-bottom: 1px solid rgba(255,255,255,0.1); }
        .grp-table td { padding: 6px; text-align: center; border-bottom: 1px solid rgba(255,255,255,0.05); color: rgba(236,232,225,0.85); }
        .grp-table th:first-child, .grp-table td:first-child { text-align: left; }
        .grp-table tbody tr:last-child td { border-bottom: none; }
        .grp-table .gt-team { display: flex; align-items: center; gap: 7px; min-width: 0; }
        .grp-table .gt-team img { width: 16px; height: 16px; object-fit: contain; flex-shrink: 0; }
        .grp-table .gt-team span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
        .grp-table .gt-pos { color: #34d399; font-weight: 700; }
        .grp-table .gt-neg { color: #f87171; font-weight: 700; }
        /* 组内对阵：紧凑单行（日期时间 | 队1 比分 队2 | 第N周·BO3）*/
        .gm-row {
            display: grid; grid-template-columns: 72px minmax(0,1fr) 44px minmax(0,1fr) 96px;
            align-items: center; gap: 6px; padding: 4px 8px; margin-bottom: 5px;
            font-size: 12px; background: rgba(15,25,35,0.85);
            border: 1px solid rgba(255,255,255,0.07); border-left: 3px solid rgba(255,255,255,0.15);
            border-radius: 6px; cursor: pointer; transition: border-color 0.2s;
        }
        .gm-row:hover { border-color: rgba(255,70,85,0.5); }
        .gm-row.is-live { border-color: #ef4444; }
        .gm-row.is-upcoming { border-left-color: rgba(234,179,8,0.6); }
        .gm-row:last-child { margin-bottom: 0; }
        .gm-when { font-size: 11px; color: rgba(236,232,225,0.5); line-height: 1.35; white-space: nowrap; }
        .gm-when span { display: block; color: rgba(236,232,225,0.85); font-weight: 600; }
        .gm-t { display: flex; align-items: center; gap: 6px; min-width: 0; padding: 4px 8px; border-radius: 4px; }
        .gm-t.r { justify-content: flex-end; }
        .gm-t img { width: 16px; height: 16px; object-fit: contain; flex-shrink: 0; }
        .gm-t .n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
        .gm-t.win { background: rgba(16,185,129,0.16); }
        .gm-t.win .n { color: #34d399; }
        .gm-t.lose .n { color: rgba(236,232,225,0.45); }
        .gm-t.tbd { color: rgba(236,232,225,0.35); font-style: italic; }
        .gm-score { text-align: center; font-weight: 800; font-size: 13px; white-space: nowrap; }
        .gm-score i { font-style: normal; color: rgba(236,232,225,0.35); margin: 0 3px; font-weight: 400; }
        .gm-meta { font-size: 10px; color: rgba(236,232,225,0.45); text-align: right; white-space: nowrap; }
        .gm-meta .gm-live { color: #ef4444; }
        @media (max-width: 768px) {
            .gm-row { grid-template-columns: 58px minmax(0,1fr) 36px minmax(0,1fr); }
            .gm-meta { display: none; }
        }
        @media (max-width: 1100px) { .grp-wrap { grid-template-columns: 1fr; } }

        /* ===== 赛事详情内的比赛列表（参考 bracket 卡片样式，列表模式）===== */
        .ev-match-list { margin-top: 16px; }
        .ev-date-title {
            margin: 22px 0 10px; font-size: 14px; font-weight: 700;
            color: rgba(236,232,225,0.85); padding: 6px 12px;
            border-left: 3px solid rgba(255,70,85,0.65);
            background: rgba(31,41,55,0.4); border-radius: 0 6px 6px 0;
            display: flex; align-items: center; gap: 12px;
        }
        .ev-date-title .ev-date-meta {
            font-size: 11px; font-weight: 400; color: rgba(236,232,225,0.45);
            margin-left: auto;
        }
        /* 树状分类（bracket 横向列展示）标题 */
        .ev-tree-section { margin-top: 22px; }
        .ev-tree-title {
            font-size: 16px; font-weight: 800; color: var(--valorant-red);
            display: flex; align-items: center; gap: 10px; margin: 0 0 12px;
            padding-bottom: 8px; border-bottom: 1px solid rgba(255,70,85,0.25);
        }
        .ev-tree-title .ev-stage-en { font-size: 12px; font-weight: 400; color: rgba(236,232,225,0.4); letter-spacing: 0.5px; }
        /* 列表模式小节标题 */
        .ev-list-section { margin-top: 26px; }
        .ev-list-title {
            font-size: 16px; font-weight: 800; color: rgba(236,232,225,0.85);
            display: flex; align-items: center; gap: 10px; margin: 0 0 6px;
            padding-left: 10px; border-left: 3px solid rgba(255,70,85,0.55);
        }
        .ev-list-title .ev-list-en { font-size: 12px; font-weight: 400; color: rgba(236,232,225,0.4); letter-spacing: 0.5px; margin-left: auto; }
        /* ===== 赛事详情统一头部 + 视图切换 ===== */
        .ev-hero {
            background: rgba(31,41,55,0.6);
            border: 1px solid rgba(255,70,85,0.15);
            border-radius: 12px;
            padding: 18px 22px;
            margin-bottom: 18px;
        }
        .ev-hero .dv-back { margin-bottom: 14px; }
        .ev-hero .vlr-event-header {
            margin-bottom: 14px;
            background: linear-gradient(135deg, rgba(255,70,85,0.2), rgba(31,41,55,0.9));
            border: 1px solid rgba(255,70,85,0.35);
            padding: 16px 20px;
        }
        .ev-hero .ev-info-card {
            margin-top: 0;
        }
        .ev-view-switch {
            display: flex; gap: 8px; margin-bottom: 16px;
            background: rgba(15,25,35,0.4);
            padding: 5px;
            border-radius: 10px;
            border: 1px solid rgba(255,70,85,0.12);
            width: fit-content;
        }
        .ev-view-btn {
            display: flex; align-items: center; gap: 8px;
            padding: 8px 18px; font-size: 13px; font-weight: 600;
            background: transparent; border: none; border-radius: 7px;
            color: rgba(236,232,225,0.55); cursor: pointer;
            transition: all 0.2s; font-family: inherit;
        }
        .ev-view-btn:hover { color: var(--valorant-light); }
        .ev-view-btn.active {
            background: rgba(255,70,85,0.15);
            color: var(--valorant-red);
            box-shadow: 0 0 0 1px rgba(255,70,85,0.3);
        }
        .ev-view-btn i { font-size: 12px; }
        .ev-view-btn .ev-view-en {
            font-size: 10px; font-weight: 400;
            color: rgba(236,232,225,0.4); letter-spacing: 0.3px;
            padding-left: 6px; border-left: 1px solid rgba(255,255,255,0.1);
        }
        .ev-view-btn.active .ev-view-en { color: rgba(255,70,85,0.6); border-left-color: rgba(255,70,85,0.25); }
        .ev-view-pane { margin-top: 4px; }
        /* ===== 赛事详情 - Week 列布局（小组赛） ===== */
        .ev-week-columns {
            display: flex; gap: 12px;
            overflow-x: auto; padding-bottom: 8px;
        }
        .ev-week-col {
            flex-shrink: 0; width: 280px;
            background: rgba(15,25,35,0.5);
            border: 1px solid rgba(255,70,85,0.15);
            border-radius: 8px; padding: 8px 10px;
        }
        .ev-week-col-title {
            font-size: 14px; font-weight: 700; color: var(--valorant-red);
            padding: 4px 8px 8px;
            border-bottom: 1px solid rgba(255,70,85,0.25);
            margin-bottom: 6px;
            display: flex; align-items: center; justify-content: space-between;
        }
        .ev-week-col-title .en {
            font-size: 10px; font-weight: 400; color: rgba(236,232,225,0.4);
        }
        .ev-week-date {
            font-size: 12px; color: rgba(236,232,225,0.65); font-weight: 600;
            padding: 10px 4px 6px;
        }
        .ev-week-col .elm-row { margin-bottom: 6px; }
        @media (max-width: 768px) {
            .ev-week-col { width: 240px; }
        }
        /* 赛事列表卡面：官方直播 + 比赛回放按钮 */
        .ev-actions {
            display: flex; gap: 6px; align-items: center; justify-content: center;
        }
        .ev-action-btn {
            display: inline-flex; align-items: center; gap: 4px;
            padding: 5px 10px; font-size: 11px; font-weight: 600;
            background: rgba(255,255,255,0.04);
            border: 1px solid rgba(255,255,255,0.12);
            border-radius: 5px; color: rgba(236,232,225,0.7);
            text-decoration: none; cursor: pointer;
            transition: all 0.2s;
        }
        .ev-action-btn:hover {
            color: var(--valorant-light);
            border-color: var(--valorant-red);
            background: rgba(255,70,85,0.1);
            text-decoration: none;
        }
        .ev-action-btn.live { color: #f87171; border-color: rgba(239,68,68,0.35); }
        .ev-action-btn.live:hover { background: rgba(239,68,68,0.15); }
        .ev-action-btn.replay { color: #fbbf24; border-color: rgba(251,191,36,0.35); }
        .ev-action-btn.replay:hover { background: rgba(251,191,36,0.15); }
        .ev-action-btn i { font-size: 10px; }
        /* 阶段大标题：胜者组 / 败者组 */
        .ev-stage-title {
            margin: 26px 0 12px; font-size: 16px; font-weight: 800;
            color: var(--valorant-red); display: flex; align-items: center; gap: 10px;
            padding-bottom: 8px; border-bottom: 1px solid rgba(255,70,85,0.25);
        }
        /* 主赛制阶段大标题 (Group Stage / Play-Ins / Playoffs) */
        .ev-main-stage-title {
            margin: 32px 0 14px; padding: 10px 14px;
            font-size: 18px; font-weight: 800;
            display: flex; align-items: center; gap: 10px;
            background: linear-gradient(90deg, rgba(255,70,85,0.08), rgba(15,25,35,0.4));
            border-radius: 6px;
        }
        .ev-main-stage-title .cn { font-size: 18px; }
        .ev-main-stage-title .en { font-size: 12px; font-weight: 500; color: rgba(236,232,225,0.45); margin-left: auto; letter-spacing: 0.5px; }
        .ev-main-stage-title i { font-size: 16px; }
        .ev-stage-title .ev-stage-en {
            font-size: 12px; font-weight: 400; color: rgba(236,232,225,0.4); letter-spacing: 0.5px;
        }
        /* 比赛列表分类切换栏（全部 / 胜者组 / 败者组 / 小组赛） */
        .ev-list-filter {
            display: flex; flex-wrap: wrap; gap: 8px;
            margin: 0 0 18px; padding: 10px 12px;
            background: rgba(15,25,35,0.55);
            border: 1px solid rgba(255,70,85,0.15);
            border-radius: 10px;
            align-items: center;
        }
        .ev-list-filter-btn {
            display: inline-flex; align-items: center; gap: 6px;
            padding: 6px 14px; font-size: 12px; font-weight: 500;
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,255,255,0.08);
            border-radius: 6px; color: rgba(236,232,225,0.7);
            cursor: pointer; transition: all 0.2s;
        }
        .ev-list-filter-btn:hover { color: #fff; border-color: rgba(255,70,85,0.3); }
        .ev-list-filter-btn.active {
            background: rgba(255,70,85,0.18);
            border-color: rgba(255,70,85,0.45);
            color: var(--valorant-red); font-weight: 600;
        }
        .ev-list-filter-btn i { font-size: 11px; opacity: 0.85; }
        .ev-filter-sep { color: rgba(236,232,225,0.25); font-size: 12px; padding: 0 2px; }
        .ev-list-filter-btn .badge {
            display: inline-block;
            background: rgba(255,255,255,0.08);
            border-radius: 10px; padding: 1px 7px; font-size: 10px;
            font-weight: 600; color: rgba(236,232,225,0.6);
            min-width: 22px; text-align: center;
        }
        .ev-list-filter-btn.active .badge { background: rgba(255,70,85,0.3); color: #fff; }
        .ev-stage-section { /* 每个 stage 一段，可被过滤 */ padding-right: 4px; }
        /* 单个轮次小标题：胜者组首轮 / 胜者组半决赛 等 */
        .ev-round-title {
            margin: 16px 0 10px; font-size: 13px; font-weight: 700;
            color: rgba(236,232,225,0.85); padding: 5px 10px;
            border-left: 3px solid rgba(255,70,85,0.65);
            background: rgba(31,41,55,0.4); border-radius: 0 6px 6px 0;
            display: flex; align-items: center; gap: 10px;
        }
        .ev-round-title .ev-round-en {
            font-size: 10px; font-weight: 400; color: rgba(236,232,225,0.4);
            margin-left: auto; letter-spacing: 0.5px;
        }
        .ev-day-grid {
            display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
            gap: 10px; margin-bottom: 6px;
        }
        .ev-day-grid .elm-row { margin-bottom: 0; }
        .elm-row {
            background: rgba(15,25,35,0.85); border: 1px solid rgba(255,255,255,0.08);
            border-left: 3px solid rgba(255,255,255,0.15);
            border-radius: 8px; overflow: hidden; cursor: pointer; transition: all 0.2s;
            margin-bottom: 8px;
        }
        .elm-row:hover { border-color: rgba(255,70,85,0.5); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
        .elm-row.is-live { border-color: #ef4444; border-left-color: #ef4444; box-shadow: 0 0 12px rgba(239,68,68,0.2); }
        .elm-row.is-upcoming { border-left-color: rgba(234,179,8,0.6); }
        .elm-meta {
            display: flex; align-items: center; gap: 12px;
            padding: 6px 16px; font-size: 12px; color: rgba(236,232,225,0.55);
            background: rgba(255,255,255,0.02);
        }
        .elm-week {
            color: var(--valorant-red); font-weight: 800; font-size: 11px;
            padding: 2px 8px; background: rgba(255,70,85,0.12);
            border: 1px solid rgba(255,70,85,0.3); border-radius: 4px;
            letter-spacing: 0.5px;
        }
        .elm-date { color: rgba(236,232,225,0.7); font-weight: 600; }
        .elm-time { color: rgba(236,232,225,0.45); }
        .elm-spacer { flex: 1; }
        .elm-live { color: #ef4444; font-weight: 700; }
        .elm-upcoming { color: #facc15; }
        .elm-status { color: rgba(236,232,225,0.5); }
        .elm-body { padding: 2px 0; }
        .elm-team {
            display: flex; align-items: center; gap: 10px;
            padding: 9px 18px; font-size: 14px;
        }
        .elm-team + .elm-team { border-top: 1px solid rgba(255,255,255,0.06); }
        .elm-logo { width: 22px; height: 22px; object-fit: contain; flex-shrink: 0; }
        .elm-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
        .elm-score { font-weight: 800; color: var(--valorant-red); font-size: 18px; min-width: 56px; text-align: right; }
        .elm-team.winner { background: rgba(16,185,129,0.16); color: #34d399; }
        .elm-team.winner .elm-score { color: #34d399; }
        .elm-team.loser { color: rgba(236,232,225,0.4); opacity: 0.7; }
        .elm-team.tbd { color: rgba(236,232,225,0.35); font-style: italic; }
        @media (max-width: 640px) {
            .ev-day-grid { grid-template-columns: 1fr; }
            .elm-meta { padding: 5px 12px; font-size: 11px; gap: 8px; }
            .elm-team { padding: 7px 12px; font-size: 13px; }
            .elm-score { font-size: 16px; min-width: 48px; }
            .elm-logo { width: 18px; height: 18px; }
        }

        /* ===== 比赛列表网格（一行多个卡片）===== */
        .match-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(500px, 1fr)); gap: 14px; }
        .match-grid .match-card { margin-bottom: 0; }
        @media (max-width: 640px) {
            .match-grid { grid-template-columns: 1fr; }
        }

        /* ===== 抖音风格：详情页（移动端紧凑布局） ===== */
        /* 顶部返回栏（覆盖默认的 .back-link 样式） */
        .back-link {
            display: inline-flex; align-items: center; gap: 8rpx;
            background: rgba(31, 41, 55, 0.92);
            border: 1px solid rgba(255, 70, 85, 0.35);
            padding: 8px 14px; border-radius: 8px;
            color: #FF4655; font-size: 13px;
            cursor: pointer; margin-bottom: 12px;
            transition: all 0.2s;
        }
        .back-link:hover { background: rgba(255, 70, 85, 0.1); }
        .back-link i { font-size: 14px; }

        @media (max-width: 768px) {
            /* 比赛列表过滤栏 - 移动端紧凑 */
            .ev-list-filter { padding: 8px !important; gap: 6px !important; }
            .ev-list-filter-btn { padding: 5px 10px !important; font-size: 11px !important; }
            .ev-list-filter-btn .badge { padding: 0 5px !important; min-width: 18px !important; font-size: 9px !important; }

            /* 详情页头部 - 紧凑布局 */
            .detail-header {
                padding: 14px !important;
                margin-bottom: 14px !important;
            }
            .detail-title { font-size: 16px !important; margin-bottom: 6px !important; }
            .detail-title i { display: none; }
            .detail-meta { gap: 10px !important; font-size: 11px !important; margin-bottom: 12px !important; }
            .detail-teams { gap: 10px !important; margin-top: 14px !important; }
            .detail-team img { width: 42px !important; height: 42px !important; margin-bottom: 4px !important; }
            .detail-team .tname { font-size: 12px !important; }
            .detail-team .tscore { font-size: 26px !important; margin-top: 2px !important; }
            .vs-text { font-size: 16px !important; }

            /* 地图 tab 横滚 */
            .map-tabs {
                display: flex !important; gap: 6px !important;
                overflow-x: auto !important;
                padding: 2px 0 10px !important;
                flex-wrap: nowrap !important;
                margin-bottom: 12px !important;
            }
            .map-tab {
                flex-shrink: 0 !important; padding: 4px 10px 4px 4px !important;
                font-size: 12px !important; border-radius: 6px !important;
                gap: 6px !important;
            }
            .map-tab img.map-tab-thumb { width: 44px !important; height: 26px !important; }
            .map-tab .tab-score { margin-left: 4px !important; }

            /* 地图 BP 卡片 - 横向滚动 */
            .veto-flow { gap: 6px !important; flex-wrap: wrap !important; }
            .veto-item {
                min-width: 150px !important;
                padding: 5px 8px 5px 6px !important;
                gap: 6px !important;
            }
            .veto-thumb { width: 44px !important; height: 26px !important; }
            .veto-map { font-size: 11px !important; }
            .veto-en { font-size: 10px !important; margin-left: 3px !important; }
            .veto-team { font-size: 10px !important; }
            .veto-action { font-size: 9px !important; padding: 2px 6px !important; }
            .veto-order { width: 16px !important; height: 16px !important; font-size: 9px !important; top: -6px !important; left: -6px !important; }

            /* 地图概览 */
            .map-summary { gap: 12px !important; margin-bottom: 12px !important; flex-wrap: wrap !important; }
            .map-summary .ms-team img { width: 40px !important; height: 40px !important; }
            .map-summary .ms-name { font-size: 12px !important; }
            .map-summary .ms-score { font-size: 28px !important; }
            .map-summary .ms-half { font-size: 10px !important; }
            .map-summary .ms-duration { font-size: 10px !important; }
            .map-summary .ms-name[style*="16px"] { font-size: 13px !important; }

            /* 回合胜负 */
            .rounds-grid { gap: 4px !important; }
            .round-row .rr-name { width: 60px !important; font-size: 11px !important; padding-right: 6px !important; }
            .r-cell { width: 22px !important; height: 22px !important; font-size: 9px !important; margin: 0 1px !important; }
            .r-half-sep { width: 5px !important; height: 22px !important; }
            .rounds-legend { font-size: 10px !important; gap: 10px !important; }
            .rounds-filter button { padding: 3px 8px !important; font-size: 10px !important; }

            /* 选手数据 - 横滚 */
            .stats-table { font-size: 11px !important; min-width: 600px !important; }
            .stats-table th:first-child, .stats-table td:first-child { width: 120px !important; min-width: 120px !important; }
            .stats-table th.agent-cell, .stats-table td.agent-cell { width: 110px !important; min-width: 110px !important; }
            .stats-table th, .stats-table td { padding: 5px 6px !important; }
            .stats-table th { font-size: 10px !important; }
            .stats-table .p-name { font-size: 11px !important; }
            .stats-table .p-agent { font-size: 9px !important; }
            .p-agent-icon { width: 26px !important; height: 26px !important; }
            .p-player-avatar { width: 30px !important; height: 30px !important; max-width: 30px !important; max-height: 30px !important; }
            .team-block-title { font-size: 12px !important; margin: 10px 0 4px !important; }
            .stats-table-wrap { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }

            /* 区块间距 */
            .section-box { padding: 12px !important; margin-bottom: 12px !important; }
            .section-title { font-size: 13px !important; margin-bottom: 8px !important; padding-bottom: 6px !important; }
            .vlr-block-subtitle { font-size: 12px !important; margin: 12px 0 4px !important; }

            /* 比赛卡 - 紧凑 */
            .match-card { padding: 12px !important; margin-bottom: 8px !important; }
            .match-event-line { font-size: 10px !important; margin-bottom: 8px !important; }
            .match-team img { width: 28px !important; height: 28px !important; }
            .match-team .tname { font-size: 12px !important; }
            .match-score { font-size: 16px !important; min-width: 50px !important; }
            .match-time-line { font-size: 10px !important; margin-top: 6px !important; }

            /* 事件卡 */
            .event-card { padding: 12px !important; }
            .ev-title { font-size: 13px !important; }
            .ev-status { padding: 4px 8px !important; font-size: 10px !important; }
            .ev-thumb { width: 60px !important; height: 60px !important; }
            .ev-meta-item { font-size: 10px !important; }

            /* 筛选条 - 紧凑 */
            .ev-filter-panel { padding: 6px 12px !important; margin-bottom: 6px !important; }
            .ev-filter-row { padding: 4px 0 !important; }
            .ev-filter-label { display: none !important; }
            .ev-filter-opts { gap: 4px !important; overflow-x: auto !important; flex-wrap: nowrap !important; }
            .ev-opt { padding: 4px 10px !important; font-size: 11px !important; flex-shrink: 0 !important; }

            /* 容器内边距 */
            body { padding: 60px 0 30px !important; }
            .container { padding: 0 12px !important; }
            .page-header { padding: 30px 12px 0 !important; margin-bottom: 20px !important; }
            .page-header h1 { font-size: 26px !important; margin-bottom: 6px !important; }
            .page-header h1 i { display: none; }
            .page-header p { font-size: 12px !important; }
            .prediction-btn { padding: 7px 18px !important; font-size: 12px !important; margin-top: 10px !important; }

            /* bracket 紧凑 */
            .bracket-columns { gap: 6px !important; }
            .bracket-col { width: 150px !important; }
            .bracket-match { margin-bottom: 6px !important; }
            .bm-team { padding: 4px 8px !important; font-size: 12px !important; }
            .bm-logo { width: 16px !important; height: 16px !important; margin-right: 4px !important; }
            .bracket-col-title { padding: 5px 8px !important; font-size: 11px !important; }
            .col-matches { gap: 8px !important; }
            .vlr-stage-title { font-size: 13px !important; margin: 14px 0 8px !important; }
            .vlr-event-header { padding: 12px !important; margin-bottom: 12px !important; gap: 10px !important; }
            .vlr-event-header img { width: 40px !important; height: 40px !important; }
            .vlr-event-header .ev-name { font-size: 14px !important; }
            .vlr-event-header .ev-meta { font-size: 10px !important; gap: 10px !important; }
        }

        /* === 赛程表 (VLR-style table) === */
        /* 子分类改为顶部横向 tab 栏（与 ev-list-filter 一致风格） */
        .ev-schedule-wrap { display: flex; flex-direction: column; gap: 14px; margin-top: 4px; align-items: stretch; }
        .ev-schedule-sidebar {
            display: flex; flex-wrap: wrap; gap: 8px;
            background: rgba(15,25,35,0.55);
            border: 1px solid rgba(255,70,85,0.15);
            border-radius: 10px; padding: 10px 12px;
            align-items: center;
            /* 桌面端允许换行；移动端不换行（见下方 1024px） */
        }
        .ev-schedule-cat {
            display: inline-flex; align-items: center; gap: 6px;
            padding: 6px 14px; margin-bottom: 0;
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 6px; color: rgba(236,232,225,0.7);
            font-size: 12px; font-weight: 500; cursor: pointer;
            transition: all 0.18s; text-align: left;
            white-space: nowrap;
        }
        .ev-schedule-cat:hover { background: rgba(255,70,85,0.08); color: rgba(236,232,225,0.95); }
        .ev-schedule-cat.active {
            background: rgba(255,70,85,0.18);
            border-color: rgba(255,70,85,0.45);
            color: #ff4655; font-weight: 600;
        }
        .ev-schedule-cat i { width: auto; text-align: center; font-size: 11px; opacity: 0.85; }
        .ev-schedule-cat .badge {
            margin-left: 0; padding: 1px 7px;
            background: rgba(255,255,255,0.08); border-radius: 10px;
            font-size: 10px; font-weight: 600; color: rgba(236,232,225,0.6);
            min-width: 22px; text-align: center;
        }
        .ev-schedule-cat.active .badge { background: rgba(255,70,85,0.3); color: #fff; }

        .ev-schedule-table { flex: 1; min-width: 0; }
        .ev-schedule-table-head {
            display: grid; grid-template-columns: 1.5fr 1fr 1.2fr 0.7fr 1.2fr 0.9fr;
            gap: 12px; padding: 10px 14px;
            background: rgba(15,25,35,0.7); border: 1px solid rgba(255,255,255,0.08);
            border-bottom: none; border-radius: 10px 10px 0 0;
            font-size: 11px; font-weight: 700; color: rgba(236,232,225,0.55);
            text-transform: uppercase; letter-spacing: 0.04em;
        }
        .ev-schedule-table-head i { margin-left: 4px; opacity: 0.5; font-size: 9px; }
        .ev-schedule-table-body {
            background: rgba(15,25,35,0.45);
            border: 1px solid rgba(255,255,255,0.08);
            border-top: none; border-radius: 0 0 10px 10px;
            overflow: hidden;
        }
        .ev-schedule-row {
            display: grid; grid-template-columns: 1.5fr 1fr 1.2fr 0.7fr 1.2fr 0.9fr;
            gap: 12px; padding: 10px 14px;
            border-bottom: 1px solid rgba(255,255,255,0.04);
            transition: background 0.15s; cursor: pointer;
            align-items: center;
        }
        .ev-schedule-row:hover { background: rgba(255,70,85,0.06); }
        .ev-schedule-row:last-child { border-bottom: none; }
        .ev-schedule-row.is-live { background: rgba(239,68,68,0.08); border-left: 3px solid #ef4444; padding-left: 11px; }
        .ev-schedule-row.is-live:hover { background: rgba(239,68,68,0.14); }
        .ev-schedule-row.is-completed { opacity: 0.95; }
        /* v61: 已完成行 - 胜方 cell 绿色背景 + 亮色绿边（参照小程序 cell-team.winner） */
        .ev-schedule-row.is-completed .ev-schedule-cell-team.t1.winner,
        .ev-schedule-row.is-completed .ev-schedule-cell-team.t2.winner {
            background: rgba(16,185,129,0.28);
            border: 1px solid rgba(16,185,129,0.5);
            border-radius: 8px;
            padding: 4px 8px;
            margin-left: -4px; margin-right: -4px;
        }
        .ev-schedule-row.is-completed .ev-schedule-cell-team.t1.winner .esc-name,
        .ev-schedule-row.is-completed .ev-schedule-cell-team.t2.winner .esc-name {
            color: #34d399; font-weight: 700;
        }
        /* v61: 已完成行 - 败方 cell 红色背景 + 亮色红边 */
        .ev-schedule-row.is-completed .ev-schedule-cell-team.t1.loser,
        .ev-schedule-row.is-completed .ev-schedule-cell-team.t2.loser {
            background: rgba(239,68,68,0.18);
            border: 1px solid rgba(239,68,68,0.4);
            border-radius: 8px;
            padding: 4px 8px;
            margin-left: -4px; margin-right: -4px;
            opacity: 0.85;
        }
        .ev-schedule-row.is-completed .ev-schedule-cell-team.t1.loser .esc-name,
        .ev-schedule-row.is-completed .ev-schedule-cell-team.t2.loser .esc-name {
            color: rgba(255,123,134,0.85);
        }

        .ev-schedule-cell-date { font-size: 11px; color: rgba(236,232,225,0.75); line-height: 1.35; }
        .ev-schedule-cell-date .small { display: block; font-size: 10px; color: rgba(236,232,225,0.45); }
        .ev-schedule-cell-round {
            font-size: 12px; color: rgba(236,232,225,0.85); font-weight: 600;
            display: flex; align-items: center; gap: 6px;
        }
        .ev-schedule-cell-round .en { font-size: 10px; color: rgba(236,232,225,0.4); font-weight: 400; }
        .ev-schedule-cell-team {
            display: flex; align-items: center; gap: 8px; min-width: 0;
            /* v232: 未开始 cell 灰白底 */
            background: rgba(255,255,255,0.06);
            border-radius: 8px;
            padding: 4px 8px;
            margin-left: -4px; margin-right: -4px;
        }
        .ev-schedule-cell-team.t1 { justify-content: flex-end; flex-direction: row; }
        .ev-schedule-cell-team .esc-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; max-width: 100%; min-width: 0; }
        .ev-schedule-cell-team img {
            width: 30px; height: 30px; object-fit: contain; flex-shrink: 0;
            border-radius: 4px; background: transparent;
            /* v62: 去掉队伍 logo 的白色边框阴影 */
        }
        .ev-schedule-cell-team.tbd .esc-name { color: rgba(236,232,225,0.3); font-style: italic; }
        .ev-schedule-row.is-completed .ev-schedule-cell-team.t1.tbd,
        .ev-schedule-row.is-completed .ev-schedule-cell-team.t2.tbd {
            opacity: 0.6;
        }
        .ev-schedule-cell-score {
            text-align: center; font-weight: 700; font-size: 13px;
            color: rgba(236,232,225,0.9);
        }
        .ev-schedule-cell-score .bo {
            display: block; font-size: 9px; color: rgba(236,232,225,0.4);
            font-weight: 400; margin-top: 1px;
        }
        .ev-schedule-cell-detail {
            text-align: center;
        }
        .ev-schedule-cell-detail button {
            background: linear-gradient(135deg, rgba(255,70,85,0.95), rgba(220,40,55,0.95));
            border: 1px solid rgba(255,70,85,0.6);
            color: #fff; padding: 5px 12px; border-radius: 5px;
            font-size: 11px; font-weight: 600; cursor: pointer;
            transition: all 0.15s; display: inline-flex; align-items: center; gap: 4px;
            box-shadow: 0 2px 6px rgba(255,70,85,0.25);
        }
        .ev-schedule-cell-detail button:hover {
            background: linear-gradient(135deg, #ff4655, #d62c3b);
            transform: translateY(-1px);
            box-shadow: 0 4px 10px rgba(255,70,85,0.4);
        }
        .ev-schedule-cell-detail button:disabled {
            background: rgba(255,255,255,0.05);
            border-color: rgba(255,255,255,0.1);
            color: rgba(236,232,225,0.3);
            cursor: not-allowed; box-shadow: none;
        }
        .ev-schedule-cell-detail button:disabled:hover { transform: none; }
        /* 2026-08-31: 直播/回放按钮（赛事列表行内） */
        .ev-schedule-stream-btn {
            display: inline-flex; align-items: center; gap: 4px;
            padding: 5px 10px; border-radius: 5px; font-size: 11px; font-weight: 600;
            text-decoration: none; color: #fff; margin-right: 4px;
            transition: all 0.15s; border: 1px solid transparent;
            vertical-align: middle;
        }
        .ev-schedule-stream-btn.live {
            background: linear-gradient(135deg, #ef4444, #dc2626);
            border-color: rgba(239,68,68,0.6);
            box-shadow: 0 2px 6px rgba(239,68,68,0.3);
            animation: ev-schedule-live-pulse 1.6s ease-in-out infinite;
        }
        .ev-schedule-stream-btn.live:hover {
            background: linear-gradient(135deg, #f87171, #ef4444);
            transform: translateY(-1px);
            box-shadow: 0 4px 10px rgba(239,68,68,0.5);
        }
        .ev-schedule-stream-btn.vod {
            background: linear-gradient(135deg, rgba(99,102,241,0.9), rgba(79,70,229,0.9));
            border-color: rgba(99,102,241,0.6);
            box-shadow: 0 2px 6px rgba(99,102,241,0.25);
        }
        .ev-schedule-stream-btn.vod:hover {
            background: linear-gradient(135deg, #818cf8, #6366f1);
            transform: translateY(-1px);
            box-shadow: 0 4px 10px rgba(99,102,241,0.4);
        }
        @keyframes ev-schedule-live-pulse {
            0%, 100% { box-shadow: 0 2px 6px rgba(239,68,68,0.3); }
            50% { box-shadow: 0 2px 12px rgba(239,68,68,0.7); }
        }
        @media (max-width: 900px) {
            /* 移动端：直播/回放按钮与查看详情上下排列，避免挤在一起 */
            .ev-schedule-stream-btn { margin-right: 0; margin-bottom: 4px; }
        }
        .ev-schedule-cell-stage-tag {
            display: inline-block; padding: 1px 6px; border-radius: 3px;
            font-size: 9px; font-weight: 700; text-transform: uppercase;
            background: rgba(255,70,85,0.15); color: #ff4655;
        }
        .ev-schedule-section-header {
            display: flex; align-items: center; gap: 10px; padding: 14px 14px 10px;
            font-size: 14px; font-weight: 800; color: rgba(236,232,225,0.9);
            background: linear-gradient(90deg, rgba(255,70,85,0.12), rgba(15,25,35,0.3));
            border-top: 1px solid rgba(255,70,85,0.25);
            border-bottom: 1px solid rgba(255,70,85,0.15);
            cursor: pointer; user-select: none;
        }
        .ev-schedule-section-header:first-child { border-top: none; }
        .ev-schedule-section-header .count {
            margin-left: auto; font-size: 11px; font-weight: 500;
            color: rgba(236,232,225,0.5);
        }
        .ev-schedule-section-header .toggle { transition: transform 0.2s; }
        .ev-schedule-section-header.collapsed .toggle { transform: rotate(-90deg); }
        .ev-schedule-empty {
            padding: 40px 20px; text-align: center; color: rgba(236,232,225,0.4);
            font-size: 13px;
        }
        @media (max-width: 1024px) {
            .ev-schedule-wrap { flex-direction: column; }
            /* 移动端：子分类不换行，可横向滚动 */
            .ev-schedule-sidebar { width: 100%; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 8px; }
            .ev-schedule-sidebar::-webkit-scrollbar { height: 3px; }
            .ev-schedule-sidebar::-webkit-scrollbar-thumb { background: rgba(255,70,85,0.3); border-radius: 2px; }
            .ev-schedule-cat { flex-shrink: 0; padding: 5px 10px; font-size: 11px; }
            .ev-schedule-cat .badge { padding: 0 5px; min-width: 18px; font-size: 9px; }
            .ev-schedule-table-head, .ev-schedule-row { grid-template-columns: 1.2fr 0.8fr 1fr 0.6fr 1fr 0.7fr; gap: 8px; padding: 8px 10px; font-size: 10px; }
            .ev-schedule-cell-team img { width: 18px; height: 18px; }
        }
        /* 移动端：去掉"查看详情"列（整行已可点击），让队伍名完整展示；同时隐藏英文描述 */
        @media (max-width: 768px) {
            .ev-view-switch { padding: 4px !important; gap: 4px !important; }
            .ev-view-btn { padding: 6px 10px !important; font-size: 12px !important; }
            .ev-view-en { display: none !important; } /* 隐藏 Schedule/Bracket/48场·按stage分组 */
            .ev-schedule-table-head, .ev-schedule-row {
                grid-template-columns: 1fr 0.7fr 1.2fr 0.5fr 1.2fr; /* 5 列，去掉详情列 */
                gap: 6px; padding: 8px;
            }
            .ev-schedule-table-head > div:nth-child(6), /* 隐藏表头"Status / Details" */
            .ev-schedule-cell-detail { display: none !important; }
            .ev-schedule-cell-team .esc-name { font-size: 12px; max-width: none; }
            .ev-schedule-cell-round .en { display: none; } /* Round 也去掉英文 */
        }

.prediction-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(255,70,85,0.4);}

.dy-top-bar {
        position: fixed; top: 0; left: 0; right: 0; z-index: 999;
        height: 48px; display: flex; align-items: center;
        padding: 0 14px; gap: 12px;
        background: rgba(15, 25, 35, 0.85);
        backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
        border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    }
    .dy-back-btn {
        width: 36px; height: 36px; border-radius: 50%;
        background: rgba(255, 255, 255, 0.08);
        border: 1px solid rgba(255, 255, 255, 0.1);
        color: #fff; cursor: pointer;
        display: flex; align-items: center; justify-content: center;
        font-size: 14px;
    }
    .dy-back-btn:active { background: rgba(255, 70, 85, 0.2); }
    .dy-top-title {
        font-size: 16px; font-weight: 600; color: #ECE8E1;
        flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }

/* ===== 分页器（参考 esports.html，统一红色主题） ===== */
.pagination { display: flex; justify-content: center; align-items: center; gap: 8px; margin: 24px 0; padding: 8px; flex-wrap: wrap; }
.page-btn {
    display: flex; align-items: center; justify-content: center;
    min-width: 34px; height: 34px; padding: 0 10px;
    background: rgba(31,41,55,0.8); border: 1px solid rgba(255,70,85,0.25);
    border-radius: 8px; color: rgba(236,232,225,0.8); font-size: 13px;
    cursor: pointer; transition: all 0.2s; font-family: inherit;
}
.page-btn:hover:not(:disabled) { background: rgba(255,70,85,0.25); border-color: #FF4655; color: #fff; }
.page-btn:disabled { opacity: 0.35; cursor: not-allowed; }
.page-btn.active { background: #FF4655; border-color: #FF4655; color: #fff; font-weight: 600; }
.page-numbers { display: flex; gap: 6px; }

/* ===== 统计条 + 日期范围筛选（参考 esports.html filter-stats-box 胶囊盒） ===== */
.sched-stats-box {
    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
    margin: 0 auto 16px; padding: 8px 16px;
    background: rgba(255,70,85,0.06); border: 1px solid rgba(255,70,85,0.15);
    border-radius: 8px; font-size: 13px; color: rgba(236,232,225,0.75);
}
.sched-stats-box .date-filter-container { display: flex; align-items: center; gap: 8px; }
.sched-stats-box .date-filter-label { font-size: 13px; color: rgba(236,232,225,0.6); }
.sched-stats-box .date-input-group { display: flex; align-items: center; gap: 6px; }
.sched-stats-box .date-input {
    height: 30px; min-width: 120px; padding: 0 8px;
    background: rgba(15,25,35,0.8); border: 1px solid rgba(255,70,85,0.25);
    border-radius: 6px; color: #ECE8E1; font-size: 12px; color-scheme: dark;
}
.sched-stats-box .date-separator { color: rgba(236,232,225,0.4); font-size: 12px; }
.sched-stats-box .reset-date-btn {
    height: 30px; padding: 0 10px; font-size: 12px; cursor: pointer;
    background: rgba(255,70,85,0.12); border: 1px solid rgba(255,70,85,0.3);
    border-radius: 6px; color: rgba(236,232,225,0.8);
}
.sched-stats-box .reset-date-btn:hover { background: rgba(255,70,85,0.25); color: #fff; }
.sched-stats-box .stats-text { flex: 1; text-align: right; white-space: nowrap; }
.sched-stats-box .stats-text strong { color: #FF4655; }
.grp-count { font-size: 12px; color: rgba(236,232,225,0.4); font-weight: 400; margin-left: 6px; }
@media (max-width: 640px) {
    .pagination { gap: 4px; }
    .page-btn { min-width: 30px; height: 30px; padding: 0 6px; font-size: 12px; }
    .sched-stats-box .stats-text { text-align: left; }
    .sched-stats-box .date-filter-label { display: none; }
}

/* ===== 卡面/列表视图切换按钮组（参考 esports.html view-switch，红主题） ===== */
.view-switch { display: flex; border: 1px solid rgba(255,70,85,0.3); border-radius: 6px; overflow: hidden; flex-shrink: 0; }
.view-switch-btn {
    display: flex; align-items: center; gap: 5px; height: 30px; padding: 0 12px;
    font-size: 12px; cursor: pointer; background: transparent; border: none;
    color: rgba(236,232,225,0.6); transition: background .15s, color .15s;
}
.view-switch-btn + .view-switch-btn { border-left: 1px solid rgba(255,70,85,0.3); }
.view-switch-btn.active { background: #FF4655; color: #fff; font-weight: 600; }
.view-switch-btn:not(.active):hover { background: rgba(255,70,85,0.12); color: #fff; }

/* ===== 赛事列表 · 卡面视图 ===== */
.ev-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; margin-bottom: 16px; }
.ev-card {
    display: flex; flex-direction: column; gap: 8px; padding: 14px;
    background: linear-gradient(160deg, rgba(15,25,35,0.9), rgba(10,18,28,0.95));
    border: 1px solid rgba(255,70,85,0.18); border-radius: 10px; cursor: pointer;
    transition: transform .15s, border-color .15s, box-shadow .15s;
}
.ev-card:hover { transform: translateY(-2px); border-color: rgba(255,70,85,0.45); box-shadow: 0 6px 18px rgba(0,0,0,0.35); }
.ev-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.ev-card-top img { width: 52px; height: 52px; object-fit: contain; }
.ev-card-title { font-size: 15px; font-weight: 700; color: #ECE8E1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev-card-sub { font-size: 12px; color: rgba(236,232,225,0.4); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev-card-meta { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; color: rgba(236,232,225,0.55); }
.ev-card-meta i { color: #FF4655; margin-right: 4px; }
.ev-card-foot {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    border-top: 1px solid rgba(255,255,255,0.06); padding-top: 8px; font-size: 12px;
}
.ev-card-prize { color: #fbbf24; }

/* ===== 赛程统一卡片 .mc（进行中/未开始/已结束共用，卡面/列表双布局） ===== */
.match-grid:has(> .mc) { grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); }
.mc {
    display: flex; flex-direction: column;
    background: linear-gradient(160deg, rgba(15,25,35,0.9), rgba(10,18,28,0.95));
    border: 1px solid rgba(255,70,85,0.18); border-radius: 10px; overflow: hidden;
    cursor: pointer; transition: transform .15s, border-color .15s, box-shadow .15s;
}
.mc:hover { transform: translateY(-2px); border-color: rgba(255,70,85,0.45); box-shadow: 0 6px 18px rgba(0,0,0,0.35); }
.mc.live { border-color: rgba(255,70,85,0.5); }
.mc-head {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    padding: 8px 12px; background: rgba(255,70,85,0.07);
    border-bottom: 1px solid rgba(255,70,85,0.12); font-size: 12px;
}
.mc-ev { color: rgba(236,232,225,0.7); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-ev i { color: #FF4655; margin-right: 4px; }
.mc-ev-logo { width: 15px; height: 15px; object-fit: contain; vertical-align: -2px; margin-right: 4px; }
.mc-st { flex-shrink: 0; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 4px; }
.mc-st.live { color: #fff; background: #FF4655; animation: mcPulse 1.6s infinite; }
.mc-st.results { color: rgba(236,232,225,0.55); background: rgba(255,255,255,0.07); }
.mc-st.upcoming { color: #7dd3fc; background: rgba(56,189,248,0.12); border: 1px solid rgba(56,189,248,0.3); }
@keyframes mcPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.65; } }
.mc-body { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 16px 14px; flex: 1; }
.mc-team { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 76px; text-align: center; }
.mc-team img { width: 44px; height: 44px; object-fit: contain; }
.mc-team .nm { font-size: 13px; font-weight: 700; color: #ECE8E1; max-width: 92px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-score { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.mc-score .sc { font-size: 22px; font-weight: 800; color: #FF4655; letter-spacing: 1px; white-space: nowrap; }
.mc-score .sc.vs { font-size: 16px; color: rgba(236,232,225,0.45); }
.mc-score .series { font-size: 11px; color: rgba(236,232,225,0.45); max-width: 140px; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-foot {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    padding: 8px 12px; border-top: 1px solid rgba(255,255,255,0.06);
    font-size: 12px; color: rgba(236,232,225,0.55);
}
.mc-foot .mc-time { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-live-tag { color: #FF4655; font-weight: 700; margin-right: 6px; }
.mc-live-info { color: rgba(236,232,225,0.65); }
.mc-go { color: rgba(255,70,85,0.85); font-weight: 600; white-space: nowrap; flex-shrink: 0; }
.mc:hover .mc-go, .ev-card:hover .mc-go { color: #FF4655; }

/* 赛程 · 列表视图：同一 .mc 卡片切换为横向单行布局 */
.match-grid.view-list { grid-template-columns: 1fr !important; gap: 10px; }
.match-grid.view-list .mc { flex-direction: row; align-items: center; gap: 14px; padding: 10px 14px; }
.match-grid.view-list .mc-head { flex: 1.2; min-width: 0; background: none; border: none; padding: 0; }
.match-grid.view-list .mc-body { flex: 2; padding: 0; }
.match-grid.view-list .mc-team { flex-direction: row; width: auto; gap: 6px; }
.match-grid.view-list .mc-team img { width: 26px; height: 26px; }
.match-grid.view-list .mc-score { flex-direction: row; gap: 8px; align-items: baseline; }
.match-grid.view-list .mc-score .sc { font-size: 16px; }
.match-grid.view-list .mc-foot { border: none; padding: 0; flex-shrink: 0; }

@media (max-width: 640px) {
    .view-switch-btn span { display: none; }
    .view-switch-btn { padding: 0 10px; }
    .match-grid:has(> .mc) { grid-template-columns: 1fr; }
    .match-grid.view-list .mc { flex-direction: column; align-items: stretch; gap: 0; padding: 0; }
    .match-grid.view-list .mc-head { padding: 8px 12px; background: rgba(255,70,85,0.07); border-bottom: 1px solid rgba(255,70,85,0.12); }
    .match-grid.view-list .mc-body { padding: 16px 14px; }
    .match-grid.view-list .mc-team { flex-direction: column; width: 76px; gap: 8px; }
    .match-grid.view-list .mc-team img { width: 44px; height: 44px; }
    .match-grid.view-list .mc-score { flex-direction: column; gap: 4px; align-items: center; }
    .match-grid.view-list .mc-score .sc { font-size: 22px; }
    .match-grid.view-list .mc-foot { padding: 8px 12px; border-top: 1px solid rgba(255,255,255,0.06); }
}

/* ===== 20260914d: 赛事列表行配色 / 中英文标题 / 卡面长标题 / 赛程列表对齐 / 深色logo可读性 ===== */

/* 深色底上看不清的黑色 logo：统一垫浅色圆角底 */
.mc-team img, .ev-card-top img, .ev-row > img {
    background: linear-gradient(145deg, rgba(255,255,255,0.96), rgba(226,232,240,0.92));
    border-radius: 8px; padding: 4px; box-sizing: border-box;
}
.match-grid.view-list .mc-team img { padding: 2px; border-radius: 6px; }

/* --- 赛事列表 · 列表视图行配色（状态色左边条 + 彩色信息列） --- */
.ev-row {
    grid-template-columns: 56px minmax(0,1.4fr) 130px 96px 100px 145px 150px;
    background: linear-gradient(135deg, rgba(15,25,35,0.92), rgba(10,18,28,0.96));
    border: 1px solid rgba(255,255,255,0.08);
    border-left: 3px solid rgba(236,232,225,0.25);
}
.ev-row.st-live { border-left-color: #34d399; background: linear-gradient(135deg, rgba(16,185,129,0.12), rgba(10,18,28,0.96)); }
.ev-row.st-upcoming { border-left-color: #38bdf8; background: linear-gradient(135deg, rgba(56,189,248,0.09), rgba(10,18,28,0.96)); }
.ev-row.st-completed { border-left-color: rgba(236,232,225,0.22); }
.ev-row:hover { border-color: rgba(255,70,85,0.55); border-left-color: #FF4655; background: linear-gradient(135deg, rgba(255,70,85,0.14), rgba(10,18,28,0.96)); }
.ev-title-box { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ev-title-box .ev-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ev-title-sub { font-size: 11px; color: rgba(236,232,225,0.4); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev-col.ev-dates { color: rgba(236,232,225,0.8); }
.ev-status.st-upcoming { color: #7dd3fc; background: rgba(56,189,248,0.12); border: 1px solid rgba(56,189,248,0.35); }
.ev-col.ev-region {
    display: inline-block; padding: 3px 8px; border-radius: 5px;
    background: rgba(255,70,85,0.08); border: 1px solid rgba(255,70,85,0.22);
    color: rgba(236,232,225,0.75);
}
.ev-col.ev-prize { color: #fbbf24; }

/* --- 赛事卡面：长标题两行截断 + 固定高度对齐，英文副标题单行省略 --- */
.ev-card-title {
    white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    line-height: 1.35; min-height: 2.7em; overflow: hidden;
}
.ev-card-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* --- 赛程列表视图：grid 固定列，各区上下垂直对齐 --- */
.match-grid.view-list .mc {
    display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 2fr) auto;
    align-items: center; gap: 14px; padding: 10px 14px;
}
.match-grid.view-list .mc-head { background: none; border: none; padding: 0; min-width: 0; }
.match-grid.view-list .mc-head .mc-ev { flex: 1; min-width: 0; }
.match-grid.view-list .mc-body {
    display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center; gap: 10px; padding: 0;
}
.match-grid.view-list .mc-team { flex-direction: row; width: auto; min-width: 0; justify-content: flex-start; }
.match-grid.view-list .mc-team.r { justify-content: flex-end; }
.match-grid.view-list .mc-team .nm { max-width: 110px; }
.match-grid.view-list .mc-score { min-width: 130px; justify-self: center; justify-content: center; text-align: center; }
.match-grid.view-list .mc-score .series { max-width: 150px; }
.match-grid.view-list .mc-foot { border: none; padding: 0; justify-content: flex-end; gap: 12px; }

@media (max-width: 768px) {
    .ev-row .ev-title-box { flex: 1; min-width: 0; }
}

/* ===== 20260914g: 赛程列表视图 — 对阵收紧 / 阶段移到赛事名后 / 手机版 esports 风格 ===== */

/* 阶段描述：默认隐藏（卡面视图仍显示在比分下方），列表视图显示在赛事名后方 */
.mc-ser { display: none; color: rgba(236,232,225,0.45); font-size: 11px; white-space: nowrap; flex-shrink: 0; }
.match-grid.view-list .mc-ser { display: inline; }
.match-grid.view-list .mc-score .series { display: none; }

/* 手机端 LIVE 小徽章（桌面端隐藏，头部已有「进行中」徽章） */
.mc-foot-live {
    display: none; color: #FF4655; font-weight: 700; font-size: 10px;
    border: 1px solid rgba(255,70,85,0.5); padding: 1px 5px; border-radius: 4px;
    animation: mcPulse 1.6s infinite;
}

/* 桌面列表视图：对阵区域收紧居中（队伍面向比分，整簇限宽居中） */
.match-grid.view-list .mc-body { max-width: 520px; margin: 0 auto; width: 100%; }
.match-grid.view-list .mc-team { justify-content: flex-end; }
.match-grid.view-list .mc-team.r { justify-content: flex-start; }

/* 手机版列表视图：esports 风格紧凑行 — 左赛事名(两行) / 中比分+双队纵排 / 右时间，隐藏详情按钮 */
@media (max-width: 640px) {
    .match-grid.view-list .mc {
        display: grid; grid-template-columns: minmax(0, 1fr) auto auto;
        align-items: center; gap: 10px; padding: 8px 10px;
    }
    .match-grid.view-list .mc-head { display: block; background: none; border: none; padding: 0; min-width: 0; }
    .match-grid.view-list .mc-head .mc-ev {
        white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
        overflow: hidden; line-height: 1.35; font-size: 11px;
    }
    .match-grid.view-list .mc-head .mc-st, .match-grid.view-list .mc-ser { display: none; }
    .match-grid.view-list .mc-body {
        display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto;
        column-gap: 8px; row-gap: 4px; padding: 0; margin: 0; max-width: none; align-items: center;
    }
    .match-grid.view-list .mc-score { grid-row: 1 / 3; grid-column: 1; min-width: 0; flex-direction: column; gap: 0; }
    .match-grid.view-list .mc-score .sc { font-size: 14px; }
    .match-grid.view-list .mc-score .series { display: none; }
    .match-grid.view-list .mc-team { grid-column: 2; flex-direction: row; width: auto; gap: 5px; justify-content: flex-start; align-items: center; }
    .match-grid.view-list .mc-team.r { grid-row: 2; }
    .match-grid.view-list .mc-team img { width: 20px; height: 20px; padding: 2px; border-radius: 5px; }
    .match-grid.view-list .mc-team .nm { font-size: 11px; max-width: 56px; }
    .match-grid.view-list .mc-foot { border: none; padding: 0; flex-direction: column; align-items: flex-end; gap: 3px; }
    .match-grid.view-list .mc-go { display: none; }
    .match-grid.view-list .mc-foot .mc-time { font-size: 10px; text-align: right; white-space: normal; }
    .match-grid.view-list .mc-foot-live { display: inline-block; }
}

/* ===== 20260914h: 手机版列表微调 — 时间列限宽换行防溢出，队名缩写放宽 ===== */
@media (max-width: 640px) {
    .match-grid.view-list .mc-foot .mc-time { max-width: 68px; }
    .match-grid.view-list .mc-team .nm { max-width: 64px; }
}

/* ===== 20260914i: 手机版时间列 — 「时间待定」独立成行，列宽放宽 ===== */
@media (max-width: 640px) {
    .match-grid.view-list .mc-foot .mc-time { max-width: 82px; }
    .match-grid.view-list .mc-foot .mc-time .tbd { display: block; }
}

/* ===== 20260914j: 赛程列表视图改 esports 布局 — 左赛事名 / 中对决(logo上名字下+VS) / 右日期+红时间 ===== */

/* 卡面/列表通用：时间拆分的三个 span 基样（卡面视图内联展示，与之前一致） */
.mc-date, .mc-hour, .mc-tbd { white-space: nowrap; }

@media (min-width: 641px) {
    .match-grid.view-list .mc { grid-template-columns: minmax(0, 1fr) auto auto; }
    /* 头部：只留赛事名 + 阶段，状态徽章让位（进行中有红边+LIVE 徽章区分） */
    .match-grid.view-list .mc-head .mc-st { display: none; }
    /* 中部对决簇：紧凑横排，队伍 logo 在上、名字在下 */
    .match-grid.view-list .mc-body { grid-template-columns: auto auto auto; gap: 18px; max-width: none; margin: 0; width: auto; }
    .match-grid.view-list .mc-team { flex-direction: column; justify-content: center; align-items: center; gap: 4px; width: auto; }
    .match-grid.view-list .mc-team.r { justify-content: center; }
    .match-grid.view-list .mc-team img { width: 30px; height: 30px; }
    .match-grid.view-list .mc-team .nm { max-width: 64px; font-size: 12px; text-align: center; }
    .match-grid.view-list .mc-score { min-width: 0; }
    .match-grid.view-list .mc-score .sc { font-size: 16px; }
    /* 右侧：日期(灰)在上、时间(红)在下，右对齐，隐藏详情 */
    .match-grid.view-list .mc-foot { flex-direction: column; align-items: flex-end; gap: 1px; }
    .match-grid.view-list .mc-foot .mc-time {
        display: flex; flex-direction: column; align-items: flex-end; gap: 1px;
        white-space: normal; text-align: right;
    }
    .match-grid.view-list .mc-date { color: rgba(236,232,225,0.5); font-size: 11px; }
    .match-grid.view-list .mc-date i { display: none; }
    .match-grid.view-list .mc-hour { color: #FF4655; font-weight: 700; font-size: 14px; }
    .match-grid.view-list .mc-tbd { color: rgba(236,232,225,0.4); font-size: 10px; }
    .match-grid.view-list .mc-go { display: none; }
}

/* ===== 20260914k: 桌面列表视图 — 双侧药丸长条，logo 固定列垂直对齐，胜绿/败红 ===== */
@media (min-width: 641px) {
    .match-grid.view-list .mc-body {
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        gap: 14px; width: 100%; max-width: 720px; margin: 0 auto;
    }
    .match-grid.view-list .mc-team {
        flex-direction: row-reverse; justify-content: flex-end; align-items: center; gap: 8px;
        background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.07);
        border-radius: 6px; padding: 3px 10px; height: 34px; box-sizing: border-box; min-width: 0;
    }
    .match-grid.view-list .mc-team.r { flex-direction: row; justify-content: flex-start; }
    .match-grid.view-list .mc-team img { width: 22px; height: 22px; padding: 1px; flex-shrink: 0; }
    .match-grid.view-list .mc-team .nm {
        font-size: 13px; font-weight: 700; max-width: none; min-width: 0;
        overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    }
    .match-grid.view-list .mc-team.win { background: rgba(16,185,129,0.18); border-color: rgba(16,185,129,0.4); }
    .match-grid.view-list .mc-team.lose { background: rgba(239,68,68,0.10); border-color: rgba(239,68,68,0.22); }
    .match-grid.view-list .mc-score { min-width: 52px; }
}

/* ===== 20260914m: 队伍 logo 去除白色垫底（药丸/卡片自身底色已足够衬托） ===== */
.mc-team img { background: none; padding: 0; border-radius: 0; }

/* ===== 20260914n: 列表视图修正 — 垂直居中 / 阶段紧跟赛事名左对齐 / 恢复状态徽章 ===== */
@media (min-width: 641px) {
    /* 赛事名不再拉伸，阶段描述紧随其后整体左对齐，消除中间大空隙 */
    .match-grid.view-list .mc-head .mc-ev { flex: none; }
    /* 恢复状态徽章（进行中/未开始/已结束），显示在阶段后 */
    .match-grid.view-list .mc-head .mc-st { display: inline-block; }
    /* logo / VS / 药丸垂直居中对齐 */
    .match-grid.view-list .mc-body { align-items: center; }
    .match-grid.view-list .mc-team { align-items: center; }
    .match-grid.view-list .mc-score { align-self: center; align-items: center; }
}

/* ===== 20260914o: 列表视图头部改为左对齐排列（覆盖卡面的 space-between） ===== */
@media (min-width: 641px) {
    .match-grid.view-list .mc-head { justify-content: flex-start; gap: 10px; }
}

/* ===== 20260914p: 手机版列表 — 队伍移到比分上下方（队1 / 比分 / 队2 纵向居中） ===== */
@media (max-width: 640px) {
    .match-grid.view-list .mc-body { display: flex; flex-direction: column; align-items: center; gap: 2px; }
    .match-grid.view-list .mc-team { order: 1; }
    .match-grid.view-list .mc-score { order: 2; }
    .match-grid.view-list .mc-team.r { order: 3; }
    .match-grid.view-list .mc-score .sc { font-size: 13px; line-height: 1.2; }
}

/* ===== 20260914q: 桌面列表 — 药丸固定宽度，logo/VS 逐行垂直对齐 ===== */
@media (min-width: 641px) {
    .match-grid.view-list .mc-team { width: 140px; flex-shrink: 0; }
}

/* ===== 20260914r: 桌面列表 — 对决区三列全固定宽(140/52/140)，逐行严格对齐 ===== */
@media (min-width: 641px) {
    .match-grid.view-list .mc-body { grid-template-columns: 140px 52px 140px; width: auto; max-width: none; margin: 0; }
    .match-grid.view-list .mc-score { width: 52px; min-width: 0; }
}

/* ===== 20260914s: 手机版列表 — 改回左右布局：固定列(队1 VS 队2)，logo上名字下，列对齐 ===== */
@media (max-width: 640px) {
    .match-grid.view-list .mc { grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; }
    .match-grid.view-list .mc-body { display: grid; grid-template-columns: 52px 22px 52px; gap: 6px; align-items: center; padding: 0; }
    .match-grid.view-list .mc-team { flex-direction: column; justify-content: center; align-items: center; width: 52px; gap: 3px; }
    .match-grid.view-list .mc-team.r { grid-row: auto; }
    .match-grid.view-list .mc-team img { width: 22px; height: 22px; }
    .match-grid.view-list .mc-team .nm { font-size: 10px; max-width: 52px; text-align: center; }
    .match-grid.view-list .mc-score { grid-row: auto; grid-column: auto; width: 22px; min-width: 0; }
    .match-grid.view-list .mc-score .sc { font-size: 13px; }
}

/* ===== 20260914t: 桌面列表 — 左队药丸内容靠右打包（row-reverse 下 flex-start 才是右缘），logo 列对齐 ===== */
@media (min-width: 641px) {
    .match-grid.view-list .mc-team { justify-content: flex-start; }
}

/* ===== 20260914u: 手机版列表 — 清除旧版 grid 显式定位，队1/VS/队2 同行三列 ===== */
@media (max-width: 640px) {
    .match-grid.view-list .mc-team, .match-grid.view-list .mc-team.r, .match-grid.view-list .mc-score {
        grid-column: auto; grid-row: auto;
    }
}

/* ===== 20260914v: 赛程卡片按状态上主题色（与赛事列表一致：进行中绿/未开始蓝/已结束灰） ===== */
.mc.live {
    background: linear-gradient(160deg, rgba(16,185,129,0.12), rgba(10,18,28,0.95));
    border-color: rgba(16,185,129,0.45);
}
.mc.upcoming {
    background: linear-gradient(160deg, rgba(56,189,248,0.10), rgba(10,18,28,0.95));
    border-color: rgba(56,189,248,0.28);
}
.mc.results {
    background: linear-gradient(160deg, rgba(236,232,225,0.05), rgba(10,18,28,0.95));
    border-color: rgba(236,232,225,0.14);
}
.mc.live:hover { border-color: rgba(16,185,129,0.7); }
.mc.upcoming:hover { border-color: rgba(56,189,248,0.55); }
.mc.results:hover { border-color: rgba(236,232,225,0.35); }

/* ===== 20260914w: 赛事 logo 去除白色垫底，恢复透明（与卡片主题色一致） ===== */
.ev-card-top img, .ev-row > img { background: none; padding: 0; border-radius: 0; }

/* ===== 20260914x: 主分类页签（赛事列表/赛程/赛程筛查）居中显示 ===== */
.tabs.hdr-tabs { justify-content: center; }

/* ===== 20260914y: 赛事卡面 — 状态主题色（与列表行一致）+ 加大尺寸更大气 ===== */
.ev-card { position: relative; overflow: hidden; padding: 18px; gap: 10px; border-radius: 12px; }
/* 顶部状态色条 */
.ev-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: rgba(236,232,225,0.25); }
.ev-card.st-live { background: linear-gradient(160deg, rgba(16,185,129,0.16), rgba(10,18,28,0.95)); border-color: rgba(16,185,129,0.4); }
.ev-card.st-live::before { background: linear-gradient(90deg, #34d399, rgba(52,211,153,0.2)); }
.ev-card.st-upcoming { background: linear-gradient(160deg, rgba(56,189,248,0.12), rgba(10,18,28,0.95)); border-color: rgba(56,189,248,0.32); }
.ev-card.st-upcoming::before { background: linear-gradient(90deg, #38bdf8, rgba(56,189,248,0.2)); }
.ev-card.st-completed { background: linear-gradient(160deg, rgba(236,232,225,0.05), rgba(10,18,28,0.95)); border-color: rgba(236,232,225,0.15); }
/* 更大气：更大 logo / 标题 / 间距 + 悬停光晕 */
.ev-card-top img { width: 64px; height: 64px; }
.ev-card-title { font-size: 16px; }
.ev-card-sub { font-size: 12px; }
.ev-card-meta { font-size: 12.5px; }
.ev-card-foot { padding-top: 10px; }
.ev-card-prize { font-size: 12.5px; font-weight: 600; }
.ev-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,0,0,0.45); }
.ev-card.st-live:hover { border-color: rgba(16,185,129,0.65); box-shadow: 0 10px 28px rgba(16,185,129,0.15); }
.ev-card.st-upcoming:hover { border-color: rgba(56,189,248,0.55); box-shadow: 0 10px 28px rgba(56,189,248,0.12); }

/* ===== 20260914z: 进行中状态色 绿→红（赛事列表行/卡面/徽章 + 赛程卡片/列表行）；赛程卡面头部不染色 ===== */
.ev-status.st-live { color: #ff8a94; background: rgba(255,70,85,0.14); border: 1px solid rgba(255,70,85,0.45); }
.ev-row.st-live { border-left-color: #FF4655; background: linear-gradient(135deg, rgba(255,70,85,0.12), rgba(10,18,28,0.96)); }
.ev-card.st-live { background: linear-gradient(160deg, rgba(255,70,85,0.14), rgba(10,18,28,0.95)); border-color: rgba(255,70,85,0.4); }
.ev-card.st-live::before { background: linear-gradient(90deg, #FF4655, rgba(255,70,85,0.2)); }
.ev-card.st-live:hover { border-color: rgba(255,70,85,0.65); box-shadow: 0 10px 28px rgba(255,70,85,0.15); }
.mc.live { border-color: rgba(255,70,85,0.45); }
.mc.live:hover { border-color: rgba(255,70,85,0.7); }
/* 卡面视图：卡面头部（赛事名+状态徽章行）保持默认深色，状态色只染对阵区域 */
.match-grid:not(.view-list) .mc.live,
.match-grid:not(.view-list) .mc.upcoming,
.match-grid:not(.view-list) .mc.results {
    background: linear-gradient(160deg, rgba(15,25,35,0.9), rgba(10,18,28,0.95));
}
.match-grid:not(.view-list) .mc.live .mc-body { background: linear-gradient(160deg, rgba(255,70,85,0.10), rgba(255,70,85,0.03)); }
.match-grid:not(.view-list) .mc.upcoming .mc-body { background: linear-gradient(160deg, rgba(56,189,248,0.08), rgba(56,189,248,0.02)); }
.match-grid:not(.view-list) .mc.results .mc-body { background: rgba(236,232,225,0.03); }
/* 列表视图：整行染色，进行中为红色主题 */
.match-grid.view-list .mc.live { background: linear-gradient(90deg, rgba(255,70,85,0.12), rgba(10,18,28,0.96)); }

/* ===== 20260914za: 统计条文字左对齐 + 内联迷你分页（首页/上一页/下一页/尾页） ===== */
.sched-stats-box .stats-text { text-align: left; }
.mini-pager { display: inline-flex; gap: 4px; margin-left: 10px; vertical-align: middle; }
.mini-page-btn {
    min-width: 24px; height: 24px; padding: 0 5px; font-size: 11px; line-height: 1;
    cursor: pointer; background: rgba(255,70,85,0.12); border: 1px solid rgba(255,70,85,0.3);
    border-radius: 5px; color: rgba(236,232,225,0.85);
}
.mini-page-btn:hover:not(:disabled) { background: rgba(255,70,85,0.35); color: #fff; border-color: rgba(255,70,85,0.6); }
.mini-page-btn:disabled { opacity: 0.3; cursor: default; }

/* ===== 20260914zc: 赛事列表加日期筛选；统计条文字+迷你分页居中（赛事列表/赛程通用） ===== */
.sched-stats-box .stats-text { text-align: center; }

/* ===== 20260915zk: 深色卡面；仅卡面视图队伍 logo 垫半透明浅底（列表视图药丸自带底色不垫、赛事 logo 不垫）；已结束胜绿/败红只染 logo 底，不含队名 ===== */
.match-grid:not(.view-list) .mc-team img {
    background: rgba(255,255,255,0.2);
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 8px; padding: 3px; box-sizing: border-box;
}

/* 已结束卡面：胜方绿 / 败方红（只染 logo 底，同列表视图药丸配色，不含队名） */
.match-grid:not(.view-list) .mc-team.win img {
    background: rgba(16,185,129,0.35);
    border-color: rgba(16,185,129,0.55);
}
.match-grid:not(.view-list) .mc-team.lose img {
    background: rgba(239,68,68,0.28);
    border-color: rgba(239,68,68,0.5);
}

/* 卡面视图：去掉中部/底部区域的状态色背景带，卡面整体深色，只保留头部深红色条 */
.match-grid:not(.view-list) .mc.live .mc-body,
.match-grid:not(.view-list) .mc.upcoming .mc-body,
.match-grid:not(.view-list) .mc.results .mc-body { background: none; }

/* ===== 20260915zm: 卡面头部深红条改深色平头（同图片2）；底部栏去除背景只保留数据 ===== */
.match-grid:not(.view-list) .mc-head {
    background: rgba(255,255,255,0.04);
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.match-grid:not(.view-list) .mc-foot { background: transparent; }

/* ===== 20260915zn: 恢复卡面中部/底部的状态色背景（与列表视图状态颜色一致） ===== */
.match-grid:not(.view-list) .mc.live .mc-body { background: linear-gradient(160deg, rgba(255,70,85,0.10), rgba(255,70,85,0.03)); }
.match-grid:not(.view-list) .mc.upcoming .mc-body { background: linear-gradient(160deg, rgba(56,189,248,0.08), rgba(56,189,248,0.02)); }
.match-grid:not(.view-list) .mc.results .mc-body { background: rgba(236,232,225,0.03); }

/* ===== 20260915zo: 卡面状态色延续包含底部栏，底部不再露出深色块 ===== */
.match-grid:not(.view-list) .mc.live .mc-foot { background: linear-gradient(160deg, rgba(255,70,85,0.10), rgba(255,70,85,0.03)); }
.match-grid:not(.view-list) .mc.upcoming .mc-foot { background: linear-gradient(160deg, rgba(56,189,248,0.08), rgba(56,189,248,0.02)); }
.match-grid:not(.view-list) .mc.results .mc-foot { background: rgba(236,232,225,0.03); }
