@charset "utf-8";
/* ═══════════════════════════════════════════════
   TIYU 体育站 · 各子页专属版式
   ───────────────────────────────────────────────
   每个页面一种结构档案：
     /live      Control Room · 大型直播特写 + 紧凑卫星行
     /scores    Newspaper Scoreboard · 按联赛分组的横排赛程表
     /schedule  Timeline Rail · 左侧日期导轨 + 右侧时刻表
     /standings 编辑部数据表
     /experts   编辑部专家专栏
   ═══════════════════════════════════════════════ */

/* ════════════ 01 · 通用（筛选条 / 空状态 / 徽标）════════════ */
.ty-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 0 0 16px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 24px;
}
.ty-filter__chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 3px;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-2);
    font-family: var(--font-number);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.4px;
    text-decoration: none;
    transition:
        color 0.15s ease,
        border-color 0.15s ease,
        background 0.15s ease;
}
.ty-filter__chip:hover {
    color: var(--text-1);
    border-color: var(--border-strong);
}
.ty-filter__chip.is-active {
    color: var(--text-1);
    background: var(--bg-elevated);
    border-color: var(--accent);
}

.ty-empty {
    padding: 64px 20px;
}
.ty-empty__icon {
    font-size: 44px;
    margin-bottom: 14px;
    opacity: 0.5;
    filter: grayscale(0.3);
}
.ty-empty__title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    color: var(--text-1);
    margin-bottom: 6px;
    font-variation-settings: "opsz" 48;
}
.ty-empty__desc {
    color: var(--text-3);
    font-size: 13px;
}
.ty-empty__desc a {
    color: var(--accent);
    border-bottom: 1px solid currentColor;
    padding-bottom: 1px;
}

.ty-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 8px;
    border-radius: 3px;
    font-family: var(--font-number);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.6px;
    vertical-align: 3px;
    margin-left: 10px;
    background: var(--bg-elevated);
    color: var(--text-2);
    border: 1px solid var(--border);
}
/* LIVE 徽章：轮廓风格 + 脉冲小红点，不再大片涂红 */
.ty-badge--live {
    background: transparent;
    color: var(--text-1);
    border-color: var(--border-strong);
}
.ty-badge--live::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--live-red);
    animation: ty-pulse-dot 1.8s ease-in-out infinite;
}

/* ════════════ 02 · 通用 MATCH CARD（首页 live_board 使用）════════════
   用在首页 /  live 即将开赛的 2-3 列简洁卡
*/
/* 门户风：无边框扁平卡 —— 仅靠背景色与 grid gap 分隔 */
.ty-match-card {
    position: relative;
    background: var(--bg-card);
    border: none;
    border-radius: var(--radius-sm);
    padding: 14px 16px 12px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    transition: background 0.18s ease;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}
.ty-match-card:hover {
    background: var(--bg-elevated);
    color: inherit;
}
.ty-match-card:focus-visible {
    outline: 2px solid var(--brand);
    outline-offset: 2px;
}
.ty-match-card--live,
.ty-match-card--soon {
    background: var(--bg-card);
}
.ty-match-card--end {
    opacity: 0.85;
}

/* 顶部条：联赛 + 状态 */
.ty-match-card__top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    min-height: 20px;
    font-size: 11.5px;
    font-family: var(--font-number);
    letter-spacing: 0.4px;
}
.ty-match-card__league {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-2);
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-transform: uppercase;
    font-size: 10.5px;
    letter-spacing: 1px;
}
.ty-match-card__league-icon {
    font-style: normal;
    font-size: 13px;
    opacity: 0.75;
    font-family: var(--font-body);
}
.ty-match-card__round {
    color: var(--text-3);
    text-transform: none;
    letter-spacing: 0.2px;
}

.ty-match-card__status {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 0;
    border-radius: 0;
    font-family: var(--font-number);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    background: transparent;
    color: var(--text-2);
    border: none;
}
.ty-match-card__status--live {
    color: var(--brand);
    border: none;
    background: transparent;
    padding-left: 0;
    gap: 5px;
}
/* 模板自己用 <span class="ty-match-card__pulse"> 渲染了红点，
   不再追加 ::before，避免出现双红点 */
.ty-match-card__status--live::before {
    display: none;
}
.ty-match-card__status--soon {
    color: var(--text-2);
}
.ty-match-card__status--end {
    color: var(--text-3);
}
.ty-match-card__status--warn {
    color: #c6a24a;
}
.ty-match-card__status--tbd {
    color: var(--text-3);
}
.ty-match-card__pulse {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--live-red);
    animation: ty-pulse-dot 1.8s ease-in-out infinite;
}

/* 主体：home | score | away */
.ty-match-card__body {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
}
.ty-match-card__team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.ty-match-card__logo {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--bg-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    border: none;
    overflow: hidden;
}
.ty-match-card__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 3px;
}
.ty-match-card__team-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-1);
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: center;
}

.ty-match-card__score {
    display: inline-flex;
    align-items: baseline;
    gap: 2px;
    font-family: var(--font-number);
    font-weight: 700;
    font-size: 28px;
    line-height: 1;
    color: var(--text-1);
    letter-spacing: 0;
    padding: 0 10px;
    font-variant-numeric: tabular-nums;
}
.ty-match-card__num {
    min-width: 20px;
    text-align: center;
}
/* 直播场比分不再整体染红 —— 左侧 2px 红条已经标识了语义 */
.ty-match-card--live .ty-match-card__num {
    color: var(--text-1);
}
/* 已结束场次：赢家数字 = 胜绿，输家 = 灰淡，平局 = 主色，
   仅对 .ty-match-card--end 生效，避免直播中 0-0 暂时平局被染灰 */
.ty-match-card--end .ty-match-card__num--w { color: var(--win-green); }
.ty-match-card--end .ty-match-card__num--l { color: var(--text-3); }
.ty-match-card--end .ty-match-card__num--d { color: var(--text-1); }
.ty-match-card__dash {
    font-style: normal;
    font-size: 22px;
    color: var(--text-3);
    margin: 0 3px;
    font-weight: 500;
}

.ty-match-card__vs {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 0 12px;
}
.ty-match-card__vs-label {
    font-family: var(--font-number);
    font-size: 11px;
    font-weight: 500;
    color: var(--text-3);
    letter-spacing: 3px;
}
.ty-match-card__vs-time {
    font-family: var(--font-number);
    font-size: 15px;
    font-weight: 700;
    color: var(--text-1);
    letter-spacing: 0.4px;
}
.ty-match-card--soon .ty-match-card__vs-time {
    color: var(--text-1);
}

/* 底部：元信息 + CTA */
.ty-match-card__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
    font-size: 11.5px;
}
.ty-match-card__meta {
    color: var(--text-3);
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-family: var(--font-number);
    letter-spacing: 0.3px;
}
.ty-match-card__cta {
    flex-shrink: 0;
    color: var(--brand);
    font-weight: 700;
    font-size: 13px;
    text-decoration: none;
    transition:
        transform 0.15s ease,
        color 0.15s ease;
}
.ty-match-card__cta:hover {
    color: var(--brand-dark);
    transform: translateX(2px);
}
.ty-match-card__cta--ghost {
    color: var(--brand);
}
.ty-match-card__cta--ghost:hover {
    color: var(--brand-dark);
}
.ty-match-card__cta--dim {
    color: var(--text-3);
    font-weight: 600;
    cursor: default;
}
.ty-match-card__cta--dim:hover {
    transform: none;
    color: var(--text-3);
}

.ty-live-grid,
.ty-scores-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
}

/* ════════════ 03 · /live · Control Room ════════════
   大特写 hero + 紧凑卫星格子
*/

.ty-live-stage {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 20px;
    margin-bottom: 28px;
}
@media (max-width: 960px) {
    .ty-live-stage {
        grid-template-columns: 1fr;
    }
}

/* ── 左：主战场（最 hot 的一场直播） ── */
.ty-feature {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 300px;
    padding: 20px 24px;
    background: var(--bg-card);
    border: none;
    border-radius: var(--radius-sm);
    overflow: hidden;
}
.ty-feature::before {
    display: none;
}
.ty-feature > * {
    position: relative;
}
.ty-feature__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 20px;
    font-family: var(--font-number);
    font-size: 11px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}
.ty-feature__league {
    color: var(--text-2);
}
.ty-feature__league strong {
    color: var(--text-1);
    font-weight: 700;
    letter-spacing: 2px;
}
/* 直播标识：红底白字（门户式 LIVE 标签） */
.ty-feature__live {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 9px 3px 8px;
    background: var(--brand);
    color: #fff;
    border: none;
    border-radius: 2px;
    font-weight: 700;
    letter-spacing: 1.8px;
}
.ty-feature__live::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #fff;
    animation: ty-pulse-dot 1.6s ease-in-out infinite;
}
.ty-feature__tbd {
    color: var(--text-3);
    background: var(--bg-ink);
    border: none;
    padding: 2px 10px;
    border-radius: 2px;
    font-weight: 600;
    letter-spacing: 1.8px;
}

.ty-feature__body {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 20px;
    padding: 18px 0 26px;
}
.ty-feature__team {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    text-align: center;
    min-width: 0;
}
.ty-feature__logo {
    width: 74px;
    height: 74px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 34px;
    background: var(--bg-ink);
    border: none;
    overflow: hidden;
}
.ty-feature__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 6px;
}
.ty-feature__name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(18px, 2.2vw, 26px);
    color: var(--text-1);
    font-variation-settings: "opsz" 72;
    letter-spacing: -0.01em;
    line-height: 1.1;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ty-feature__score {
    display: flex;
    align-items: center;
    gap: 14px;
    font-family: var(--font-number);
    font-size: clamp(44px, 6vw, 72px);
    font-weight: 700;
    line-height: 1;
    color: var(--text-1);
    font-variant-numeric: tabular-nums;
}
.ty-feature__score em {
    font-style: normal;
    color: var(--text-muted);
    font-size: 0.7em;
    font-weight: 500;
}
.ty-feature__vs {
    font-family: var(--font-display);
    font-weight: 500;
    font-style: italic;
    font-size: clamp(28px, 4vw, 48px);
    color: var(--text-3);
    letter-spacing: 0.04em;
}
.ty-feature__time {
    display: block;
    margin-top: 8px;
    font-family: var(--font-number);
    font-size: 14px;
    font-weight: 600;
    color: var(--text-2);
    letter-spacing: 0.4px;
    text-align: center;
}

.ty-feature__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
    font-family: var(--font-number);
    font-size: 11.5px;
    color: var(--text-3);
    letter-spacing: 0.3px;
}
.ty-feature__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    background: var(--accent);
    color: #fff;
    border-radius: 3px;
    font-family: var(--font-number);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.15s ease;
}
.ty-feature__cta:hover {
    background: var(--accent-soft);
}
.ty-feature__cta--dim {
    background: transparent;
    color: var(--text-2);
    padding: 9px 0;
    letter-spacing: 0.4px;
    text-transform: none;
    font-size: 12.5px;
    cursor: default;
}
.ty-feature__cta--dim:hover {
    background: transparent;
}

/* ── 右：卫星列表（扁平行，像 QQ 体育的赛程表） ── */
.ty-satellite {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: var(--bg-card);
    border-radius: var(--radius-sm);
    overflow: hidden;
}
.ty-satellite__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 10px 14px;
    background: var(--bg-ink);
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--text-2);
}

/* ── 卫星行（无边框扁平行，仅用底部分割线） ── */
.ty-row {
    display: grid;
    grid-template-columns: 54px 1fr auto 1fr 28px;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    background: var(--bg-card);
    border: none;
    border-bottom: 1px solid var(--border);
    border-radius: 0;
    transition: background 0.15s ease;
    font-family: var(--font-body);
}
.ty-row:last-child {
    border-bottom: none;
}
.ty-row:hover {
    background: var(--bg-elevated);
}
.ty-row--live {
    background: var(--bg-card);
}
.ty-row--soon .ty-row__time {
    color: var(--text-1);
}
.ty-row--end .ty-row__time {
    color: var(--text-3);
}
.ty-row__time {
    font-family: var(--font-number);
    font-size: 12px;
    font-weight: 700;
    color: var(--text-1);
    letter-spacing: 0.3px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
.ty-row__time small {
    display: block;
    font-weight: 500;
    font-size: 9.5px;
    color: var(--text-3);
    letter-spacing: 1.2px;
    text-transform: uppercase;
    margin-top: 2px;
}
.ty-row__team {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    font-size: 13px;
    color: var(--text-1);
    font-weight: 600;
}
.ty-row__team--home {
    justify-content: flex-end;
    text-align: right;
}
.ty-row__team--away {
    justify-content: flex-start;
}
.ty-row__team-logo {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--bg-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    border: none;
    overflow: hidden;
    flex-shrink: 0;
}
.ty-row__team-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 2px;
}
.ty-row__team-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ty-row__score {
    font-family: var(--font-number);
    font-weight: 700;
    font-size: 17px;
    color: var(--text-1);
    letter-spacing: 0.4px;
    text-align: center;
    font-variant-numeric: tabular-nums;
    min-width: 54px;
}
.ty-row__score em {
    font-style: normal;
    color: var(--text-muted);
    font-weight: 500;
    margin: 0 4px;
}
/* 直播状态不再把比分整体染红 —— 保留左侧 2px 红条即可语义化 */
.ty-row--live .ty-row__score {
    color: var(--text-1);
}
/* LIVE 标签：小脉冲点 + 米白文字，不再是一整条红字 */
.ty-row__live-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--text-1);
    font-weight: 700;
    letter-spacing: 0.8px;
}
.ty-row__live-tag::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--live-red);
    animation: ty-pulse-dot 1.6s ease-in-out infinite;
}
.ty-row__vs {
    font-family: var(--font-display);
    font-style: italic;
    font-weight: 500;
    font-size: 14px;
    color: var(--text-3);
    text-align: center;
    min-width: 54px;
}
.ty-row__arrow {
    justify-self: end;
    color: var(--text-3);
    font-size: 14px;
    opacity: 0;
    transition:
        opacity 0.15s ease,
        transform 0.15s ease;
}
.ty-row:hover .ty-row__arrow {
    opacity: 1;
    transform: translateX(2px);
    color: var(--accent);
}
@media (max-width: 560px) {
    .ty-row {
        grid-template-columns: 46px 1fr auto 1fr;
        gap: 8px;
        padding: 10px 12px;
    }
    .ty-row__team-name {
        font-size: 12px;
    }
    .ty-row__arrow {
        display: none;
    }
}

/* /live 页：满宽即将开赛的紧凑 grid */
.ty-upcoming-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 10px;
}

/* ════════════ 04 · /scores · Newspaper Scoreboard ════════════
   按联赛分组的横向赛况表 —— 像报纸比赛汇总
*/
.ty-scoreboard {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.ty-scoreboard__group {
    background: var(--bg-card);
    border: none;
    border-radius: var(--radius-sm);
    overflow: hidden;
}
.ty-scoreboard__head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    background: var(--bg-ink);
    border-bottom: 1px solid var(--border);
}
.ty-scoreboard__head img {
    width: 28px;
    height: 28px;
    object-fit: contain;
    flex-shrink: 0;
    background: var(--bg-elevated);
    border-radius: 50%;
    padding: 3px;
}
.ty-scoreboard__head-fallback {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    background: var(--bg-elevated);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    line-height: 1;
}
.ty-scoreboard__title {
    flex: 1;
    display: flex;
    align-items: baseline;
    gap: 12px;
    min-width: 0;
}
.ty-scoreboard__name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    color: var(--text-1);
    font-variation-settings: "opsz" 48;
    letter-spacing: -0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ty-scoreboard__round {
    font-family: var(--font-number);
    font-size: 11px;
    color: var(--text-3);
    letter-spacing: 1.2px;
    text-transform: uppercase;
    flex-shrink: 0;
}
.ty-scoreboard__count {
    font-family: var(--font-number);
    font-size: 11px;
    color: var(--text-2);
    letter-spacing: 0.4px;
    flex-shrink: 0;
}

.ty-scoreboard__row {
    display: grid;
    grid-template-columns: 80px 1fr 92px 1fr 100px;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-top: 1px solid var(--border);
    text-decoration: none;
    color: inherit;
    transition: background 0.12s ease;
}
.ty-scoreboard__row:first-child {
    border-top: none;
}
.ty-scoreboard__row:hover {
    background: var(--bg-elevated);
}
/* LIVE 行不再用左侧红条：靠 kick 列里的 LIVE 脉冲点表达状态 */
.ty-scoreboard__row--live {
    background: var(--bg-card);
}

.ty-scoreboard__kick {
    font-family: var(--font-number);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-1);
    letter-spacing: 0.3px;
    font-variant-numeric: tabular-nums;
}
.ty-scoreboard__kick small {
    display: block;
    font-family: var(--font-number);
    font-size: 10px;
    font-weight: 500;
    color: var(--text-3);
    letter-spacing: 1.2px;
    text-transform: uppercase;
    margin-top: 3px;
}
.ty-scoreboard__kick--live {
    color: var(--text-1);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.ty-scoreboard__kick--live::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--live-red);
    animation: ty-pulse-dot 1.6s ease-in-out infinite;
}

.ty-scoreboard__team {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-1);
}
.ty-scoreboard__team--home {
    justify-content: flex-end;
    text-align: right;
}
.ty-scoreboard__team-logo {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--bg-ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    border: none;
    overflow: hidden;
    flex-shrink: 0;
}
.ty-scoreboard__team-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 2px;
}
.ty-scoreboard__team-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}
.ty-scoreboard__team--winner .ty-scoreboard__team-name {
    color: var(--text-1);
    font-weight: 700;
}
.ty-scoreboard__team--loser .ty-scoreboard__team-name {
    color: var(--text-3);
    font-weight: 500;
}

/* 赢家队名前加 ▸ 指示符（国内外体育站通用的对局视觉语言） */
.ty-scoreboard__team--winner.ty-scoreboard__team--home .ty-scoreboard__team-name::after,
.ty-scoreboard__team--winner.ty-scoreboard__team--away .ty-scoreboard__team-name::before {
    color: var(--win-green);
    font-family: var(--font-number);
    font-weight: 800;
    font-size: 12px;
    display: inline-block;
    transform: translateY(-1px);
    margin: 0 4px;
}
.ty-scoreboard__team--winner.ty-scoreboard__team--home .ty-scoreboard__team-name::after {
    content: "◂";
}
.ty-scoreboard__team--winner.ty-scoreboard__team--away .ty-scoreboard__team-name::before {
    content: "▸";
}

/* 比分数字按胜负染色：赢家 = 胜绿、输家 = 灰淡、平局 = 保持主色 */
.ty-scoreboard__num--w { color: var(--win-green); }
.ty-scoreboard__num--l { color: var(--text-3); }
.ty-scoreboard__num--d { color: var(--text-1); }

.ty-scoreboard__score {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-family: var(--font-number);
    font-weight: 700;
    font-size: 22px;
    color: var(--text-1);
    letter-spacing: 0;
    font-variant-numeric: tabular-nums;
}
.ty-scoreboard__score em {
    font-style: normal;
    color: var(--text-muted);
    font-weight: 500;
}
.ty-scoreboard__row--live .ty-scoreboard__score {
    color: var(--text-1);
}
.ty-scoreboard__score-vs {
    font-family: var(--font-display);
    font-style: italic;
    font-weight: 500;
    font-size: 16px;
    color: var(--text-3);
    text-align: center;
}

.ty-scoreboard__meta {
    font-family: var(--font-number);
    font-size: 10.5px;
    color: var(--text-3);
    letter-spacing: 0.8px;
    text-align: right;
    text-transform: uppercase;
}
.ty-scoreboard__meta b {
    display: block;
    font-weight: 700;
    color: var(--text-2);
    font-size: 10px;
    margin-top: 3px;
}

@media (max-width: 820px) {
    .ty-scoreboard__row {
        grid-template-columns: 64px 1fr auto 1fr;
        padding: 14px 14px;
    }
    .ty-scoreboard__meta {
        display: none;
    }
}
@media (max-width: 560px) {
    .ty-scoreboard__row {
        grid-template-columns: 52px 1fr 80px 1fr;
        gap: 8px;
        padding: 12px 12px;
    }
    .ty-scoreboard__team {
        font-size: 12.5px;
        gap: 8px;
    }
    .ty-scoreboard__team-logo {
        width: 22px;
        height: 22px;
    }
    .ty-scoreboard__kick {
        font-size: 11.5px;
    }
    .ty-scoreboard__kick small {
        font-size: 9px;
    }
    .ty-scoreboard__score {
        font-size: 17px;
    }
}

/* ════════════ 05 · /schedule · Timeline Rail ════════════
   左侧固定日期轨 + 右侧 chronological 时间表
*/

.ty-day-nav {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding: 0 0 16px;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    border-bottom: 1px solid var(--border);
    margin-bottom: 28px;
}
.ty-day-nav::-webkit-scrollbar {
    height: 3px;
}
.ty-day-nav::-webkit-scrollbar-thumb {
    background: var(--border-strong);
}
.ty-day-chip {
    flex-shrink: 0;
    min-width: 64px;
    padding: 8px 10px 10px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    text-align: center;
    text-decoration: none;
    transition:
        border-color 0.15s ease,
        color 0.15s ease;
    display: flex;
    flex-direction: column;
    gap: 2px;
    position: relative;
}
.ty-day-chip:hover {
    border-bottom-color: var(--border-strong);
}
.ty-day-chip:hover .ty-day-chip__date {
    color: var(--brand);
}
.ty-day-chip__weekday {
    font-family: var(--font-number);
    font-size: 10.5px;
    font-weight: 600;
    color: var(--text-2);
    letter-spacing: 1.2px;
    text-transform: uppercase;
}
.ty-day-chip__date {
    font-family: var(--font-number);
    font-size: 16px;
    font-weight: 700;
    color: var(--text-1);
    letter-spacing: 0.3px;
}
.ty-day-chip__count {
    font-family: var(--font-number);
    font-size: 10px;
    color: var(--text-3);
    font-weight: 600;
    letter-spacing: 0.5px;
}

.ty-timeline {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.ty-timeline__day {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 28px;
    scroll-margin-top: 80px;
    position: relative;
}
.ty-timeline__day::before {
    content: "";
    position: absolute;
    left: 150px;
    top: 12px;
    bottom: 0;
    width: 1px;
    background: var(--border);
}

/* 左侧 —— 大日期铭牌 */
.ty-timeline__rail {
    position: sticky;
    top: calc(var(--header-h) + 20px);
    align-self: flex-start;
    padding-right: 20px;
    text-align: right;
}
.ty-timeline__weekday {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 28px;
    font-variation-settings: "opsz" 72;
    letter-spacing: -0.015em;
    color: var(--text-1);
    line-height: 1.05;
}
.ty-timeline__date {
    margin-top: 4px;
    font-family: var(--font-number);
    font-size: 12px;
    color: var(--text-2);
    letter-spacing: 1px;
    text-transform: uppercase;
}
.ty-timeline__count {
    margin-top: 12px;
    display: inline-block;
    padding: 3px 10px;
    font-family: var(--font-number);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: none;
    background: var(--bg-ink);
    border: none;
    color: var(--text-2);
    border-radius: 2px;
}

/* 右侧 —— 时刻表 */
.ty-timeline__list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-left: 24px;
    position: relative;
}

.ty-slot {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 14px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
    position: relative;
    text-decoration: none;
    color: inherit;
    transition: padding-left 0.15s ease;
}
.ty-slot:last-child {
    border-bottom: none;
}
.ty-slot:hover {
    padding-left: 6px;
}
.ty-slot::before {
    content: "";
    position: absolute;
    left: -28px;
    top: 50%;
    transform: translateY(-50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--bg-card);
    border: 1.5px solid var(--border-strong);
    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        transform 0.15s ease;
}
.ty-slot:hover::before {
    background: var(--accent);
    border-color: var(--accent);
    transform: translateY(-50%) scale(1.2);
}
.ty-slot--live::before {
    background: var(--live-red);
    border-color: var(--live-red);
}
.ty-slot--live::after {
    content: "";
    position: absolute;
    left: -32px;
    top: 50%;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    transform: translateY(-50%);
    background: color-mix(in srgb, var(--live-red) 28%, transparent);
    /* 该元素已用 transform 定位，用纯 opacity 动画避免 transform 冲突 */
    animation: ty-pulse-fade 1.8s ease-in-out infinite;
    pointer-events: none;
}
@keyframes ty-pulse-fade {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.35; }
}

.ty-slot__time {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    font-family: var(--font-number);
    font-variant-numeric: tabular-nums;
    color: var(--text-1);
}
.ty-slot__time strong {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.3px;
    line-height: 1.1;
}
.ty-slot__time small {
    font-size: 11.5px;
    font-weight: 500;
    color: var(--text-3);
    letter-spacing: 0;
}
.ty-slot__time .ty-slot__live {
    display: inline-block;
    padding: 1px 6px;
    background: var(--live-red);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0.6px;
    border-radius: 2px;
    line-height: 1.4;
}
.ty-slot__time .ty-slot__end {
    display: inline-block;
    padding: 1px 6px;
    background: var(--bg-ink);
    color: var(--text-3);
    font-size: 10.5px;
    font-weight: 700;
    font-style: normal;
    border-radius: 2px;
    line-height: 1.4;
}
.ty-slot--end .ty-slot__time strong {
    color: var(--text-3);
}

/* 赛程 · 按联赛分组 */
.ty-league-block {
    margin-bottom: 14px;
}
.ty-league-block:last-child {
    margin-bottom: 0;
}
.ty-league-block__head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 0 6px;
    margin-bottom: 2px;
    border-bottom: 2px solid var(--border-strong);
}
.ty-league-block__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 14px;
    opacity: 0.85;
}
.ty-league-block__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.ty-league-block__name {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-1);
    letter-spacing: 0.2px;
}
.ty-league-block__count {
    margin-left: auto;
    font-size: 12px;
    color: var(--text-3);
    font-variant-numeric: tabular-nums;
}
.ty-slot__body {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.ty-slot__team {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-1);
}
.ty-slot__team--home {
    justify-content: flex-end;
    text-align: right;
}
.ty-slot__team-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ty-slot__team-logo {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--bg-ink);
    border: none;
    flex-shrink: 0;
    overflow: hidden;
}
.ty-slot__team-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 2px;
}
.ty-slot__score {
    font-family: var(--font-number);
    font-size: 15px;
    font-weight: 700;
    color: var(--text-1);
    letter-spacing: 0.3px;
    min-width: 52px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
.ty-slot__score em {
    font-style: normal;
    color: var(--text-muted);
    margin: 0 3px;
}
.ty-slot__vs {
    font-family: var(--font-display);
    font-style: italic;
    font-weight: 500;
    font-size: 14px;
    color: var(--text-3);
    min-width: 52px;
    text-align: center;
}
.ty-slot--live .ty-slot__score {
    color: var(--text-1);
}

@media (max-width: 820px) {
    .ty-timeline__day {
        grid-template-columns: 100px 1fr;
        gap: 16px;
    }
    .ty-timeline__day::before {
        left: 100px;
    }
    .ty-timeline__rail {
        padding-right: 14px;
    }
    .ty-timeline__weekday {
        font-size: 22px;
    }
}
@media (max-width: 560px) {
    .ty-timeline__day {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .ty-timeline__day::before {
        display: none;
    }
    .ty-timeline__rail {
        position: static;
        text-align: left;
        padding: 0;
        display: flex;
        align-items: baseline;
        gap: 12px;
        padding-bottom: 10px;
        border-bottom: 2px solid var(--accent);
    }
    .ty-timeline__count {
        margin-top: 0;
        margin-left: auto;
    }
    .ty-timeline__list {
        padding-left: 0;
    }
    .ty-slot::before,
    .ty-slot::after {
        display: none;
    }
    .ty-slot {
        grid-template-columns: 56px 1fr;
        gap: 12px;
    }
    .ty-slot__league {
        display: none;
    }
    .ty-slot__team {
        font-size: 12.5px;
    }
}

/* ════════════ 06 · /standings · 编辑部数据表 ════════════ */

.ty-standings {
    background: var(--bg-card);
    border: none;
    border-radius: var(--radius-sm);
    overflow: hidden;
}
.ty-standings__head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px 22px;
    background: var(--bg-ink);
    border-bottom: 1px solid var(--border);
}
.ty-standings__logo {
    width: 40px;
    height: 40px;
    object-fit: contain;
    border-radius: 4px;
    background: var(--bg-card);
    padding: 4px;
    border: none;
}
.ty-standings__name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    color: var(--text-1);
    font-variation-settings: "opsz" 48;
    letter-spacing: -0.01em;
}
.ty-standings__season {
    font-family: var(--font-number);
    font-size: 11px;
    color: var(--text-3);
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-top: 4px;
}

.ty-standings__table-wrap {
    overflow-x: auto;
}
.ty-standings__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    font-family: var(--font-body);
}
.ty-standings__table thead th {
    padding: 10px 8px;
    text-align: center;
    font-family: var(--font-number);
    font-size: 10.5px;
    color: var(--text-3);
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    background: var(--bg-ink);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
}
.ty-standings__table tbody td {
    padding: 12px 8px;
    text-align: center;
    color: var(--text-2);
    border-top: 1px solid var(--border);
    font-variant-numeric: tabular-nums;
}
.ty-standings__table tbody tr:hover {
    background: var(--bg-elevated);
}

.ty-col-rank {
    width: 56px;
}
.ty-standings__table td.ty-col-team,
.ty-standings__table th.ty-col-team {
    text-align: left !important;
    min-width: 180px;
    padding-left: 16px;
}
.ty-col-pts,
.ty-col-gd {
    font-family: var(--font-number);
    font-weight: 700;
}
.ty-col-pts {
    color: var(--text-1) !important;
    font-size: 14px;
}
.ty-col-form {
    width: 140px;
}

.ty-rank-chip {
    display: inline-flex;
    width: 26px;
    height: 26px;
    border-radius: 3px;
    justify-content: center;
    align-items: center;
    font-family: var(--font-number);
    font-weight: 700;
    font-size: 12px;
    background: var(--bg-elevated);
    color: var(--text-2);
}
.ty-standings__row--champion td.ty-col-rank .ty-rank-chip {
    background: var(--gold);
    color: #1a1200;
}
.ty-standings__row--europa td.ty-col-rank .ty-rank-chip {
    background: var(--europa);
    color: #fff;
}
.ty-standings__row--relegation td.ty-col-rank .ty-rank-chip {
    background: color-mix(in srgb, var(--loss-red) 18%, transparent);
    color: var(--loss-red);
}

/* 前 3 名金银铜 —— 用 chip 的小圆角胶囊替代 zone 背景，仅在非欧冠区（欧冠区已是金色）才覆盖 */
.ty-rank-chip--medal {
    background: #ddd;
    color: #fff;
    font-weight: 800;
}
.ty-rank-chip--medal-1 { background: #d4a43a; color: #2a1a00; }
.ty-rank-chip--medal-2 { background: #8c94a3; color: #fff; }
.ty-rank-chip--medal-3 { background: #b97a3f; color: #fff; }

/* 胜/平/负 数字列染色 —— 只染数字本身，不染整列背景，保持报表感 */
.ty-col-win  { color: var(--win-green);  font-weight: 700; font-variant-numeric: tabular-nums; }
.ty-col-loss { color: var(--loss-red);   font-weight: 700; font-variant-numeric: tabular-nums; }
.ty-col-draw { color: var(--text-3);     font-weight: 500; font-variant-numeric: tabular-nums; }

/* 分区颜色只出现在排名 chip 上，行本身不带装饰色条 */

.ty-standings__table td.ty-col-team .ty-team-logo,
.ty-standings__table td.ty-col-team .ty-team-name {
    display: inline-block;
    vertical-align: middle;
}
.ty-team-logo {
    width: 22px;
    height: 22px;
    object-fit: contain;
    background: var(--bg-elevated);
    border-radius: 4px;
    padding: 2px;
    margin-right: 10px;
}
.ty-team-name {
    font-weight: 600;
    color: var(--text-1);
}

.ty-col-gd.is-plus {
    color: var(--win-green) !important;
}
.ty-col-gd.is-minus {
    color: var(--loss-red) !important;
}

.ty-form-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 3px;
    font-family: var(--font-number);
    font-size: 9.5px;
    font-weight: 700;
    color: #fff;
    text-align: center;
    margin: 0 1px;
}
.ty-form-dot--W {
    background: var(--win-green);
}
.ty-form-dot--D {
    background: var(--text-muted);
}
.ty-form-dot--L {
    background: var(--loss-red);
}
.ty-form-empty {
    color: var(--text-3);
    font-family: var(--font-number);
}

.ty-standings__legend {
    display: flex;
    gap: 20px;
    padding: 12px 22px;
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
    font-family: var(--font-number);
    font-size: 11px;
    color: var(--text-3);
    letter-spacing: 0.3px;
}
.ty-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.ty-legend-swatch {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: var(--text-3);
}
.ty-legend-item--champion .ty-legend-swatch {
    background: var(--gold);
}
.ty-legend-item--europa .ty-legend-swatch {
    background: var(--europa);
}
.ty-legend-item--relegation .ty-legend-swatch {
    background: var(--live-red);
}

/* ════════════ 07 · /experts · 编辑部专家专栏 ════════════ */

.ty-experts {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 14px;
}
.ty-expert-card {
    position: relative;
    background: var(--bg-card);
    border: none;
    border-radius: var(--radius-sm);
    padding: 18px;
    transition:
        background 0.15s ease,
        box-shadow 0.15s ease;
    display: flex;
    flex-direction: column;
    gap: 14px;
    overflow: hidden;
}
.ty-expert-card::before {
    display: none;
}
.ty-expert-card:hover {
    background: var(--bg-elevated);
}

.ty-expert-card__head {
    display: grid;
    grid-template-columns: 52px 1fr auto;
    align-items: center;
    gap: 12px;
}
.ty-expert-card__avatar {
    position: relative;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--bg-ink);
    display: flex;
    justify-content: center;
    align-items: center;
    border: none;
}
.ty-expert-card__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ty-expert-card__initial {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--text-2);
    font-variation-settings: "opsz" 48;
}
.ty-expert-card__crown {
    position: absolute;
    top: -4px;
    right: -4px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--gold);
    color: #1a0e00;
    font-size: 11px;
    line-height: 20px;
    text-align: center;
    border: 2px solid var(--bg-card);
}
.ty-expert-card__name {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    color: var(--text-1);
    font-variation-settings: "opsz" 48;
    letter-spacing: -0.005em;
    margin: 0 0 4px;
}
.ty-expert-card__tags {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}
.ty-tag {
    display: inline-block;
    padding: 1px 7px;
    border-radius: 3px;
    font-family: var(--font-number);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.3px;
    background: transparent;
    color: var(--text-2);
    border: 1px solid var(--border);
}
/* "N 连红" 标签：去掉彩色背景，用一个小红点+数字即可表达"连胜"语义 */
.ty-tag--fire {
    color: var(--text-1);
    border-color: var(--border-strong);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.ty-tag--fire::before {
    content: "";
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--live-red);
}

.ty-expert-card__stat {
    text-align: right;
}
.ty-expert-card__pct {
    font-family: var(--font-number);
    font-size: 28px;
    font-weight: 700;
    color: var(--text-1);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.ty-expert-card__pct small {
    font-size: 14px;
    color: var(--text-2);
    font-weight: 600;
    margin-left: 1px;
}
/* 命中率数字统一米白 —— 档位差异只通过顶部细线传达，
   避免 72% / 68% / 64% 一屏三种颜色的视觉噪音 */
.ty-expert-card__pct,
.ty-expert-card--s .ty-expert-card__pct,
.ty-expert-card--a .ty-expert-card__pct,
.ty-expert-card--b .ty-expert-card__pct {
    color: var(--text-1);
}
.ty-expert-card__pct-label {
    font-family: var(--font-number);
    font-size: 10px;
    color: var(--text-3);
    margin-top: 3px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.ty-expert-card__thread {
    display: block;
    padding: 10px 12px;
    background: var(--bg-ink);
    border: none;
    border-left: 2px solid transparent;
    border-radius: 2px;
    text-decoration: none;
    transition:
        background 0.15s ease,
        border-left-color 0.15s ease;
}
.ty-expert-card__thread:hover {
    border-left-color: var(--brand);
    background: var(--bg-base);
}
.ty-expert-card__thread-title {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    color: var(--text-1);
    line-height: 1.4;
    font-variation-settings: "opsz" 48;
    letter-spacing: -0.003em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 6px;
}
.ty-expert-card__thread-meta {
    display: flex;
    gap: 8px;
    align-items: center;
    font-family: var(--font-number);
    font-size: 10.5px;
    color: var(--text-3);
    letter-spacing: 0.3px;
}
.ty-dot {
    width: 2px;
    height: 2px;
    border-radius: 50%;
    background: var(--text-3);
    display: inline-block;
}

.ty-expert-card__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 10px;
    border-top: 1px solid var(--border);
    font-family: var(--font-number);
    font-size: 12px;
    color: var(--text-3);
    letter-spacing: 0.2px;
}

/* 战绩：胜=绿，负=红（中式体育站惯例） */
.ty-record {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.ty-record__win {
    color: var(--win-green);
}
.ty-record__loss {
    color: var(--loss-red);
}
.ty-record__sep {
    color: var(--border-strong);
    font-weight: 400;
}
.ty-record__pct {
    margin-left: 4px;
    padding-left: 8px;
    border-left: 1px solid var(--border);
    color: var(--text-2);
    font-weight: 500;
}
.ty-record__pct strong {
    color: var(--text-1);
    font-weight: 700;
}
.ty-expert-card__followers {
    color: var(--text-3);
}
.ty-expert-card__followers i {
    font-style: normal;
    color: var(--brand);
    font-size: 10px;
    margin-right: 2px;
}

/* 命中率进度条 */
.ty-expert-card__bar {
    position: relative;
    height: 4px;
    background: var(--bg-ink);
    border-radius: 2px;
    overflow: hidden;
    margin: -6px 0 -2px;
}
.ty-expert-card__bar-fill {
    display: block;
    height: 100%;
    background: linear-gradient(
        90deg,
        var(--loss-red) 0%,
        var(--gold) 45%,
        var(--win-green) 100%
    );
    border-radius: 2px;
    transition: width 0.3s ease;
}

/* 榜单排名徽章：取代头像右上角的"顶级专家皇冠"，前 3 名显示排名 */
.ty-expert-card__rank {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 22px;
    height: 22px;
    border-radius: 50%;
    padding: 0 4px;
    box-sizing: border-box;
    background: var(--text-muted);
    color: #fff;
    font-family: var(--font-number);
    font-size: 12px;
    font-weight: 800;
    line-height: 22px;
    text-align: center;
    border: 2px solid var(--bg-card);
    letter-spacing: 0;
}
.ty-expert-card__rank--1 { background: #d4a43a; }
.ty-expert-card__rank--2 { background: #9aa0ae; }
.ty-expert-card__rank--3 { background: #b4753a; }

/* 推荐帖结果徽章 */
.ty-result-badge {
    display: inline-block;
    padding: 0 6px;
    margin-right: 6px;
    height: 16px;
    line-height: 16px;
    border-radius: 2px;
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.6px;
    vertical-align: 1px;
}
.ty-result-badge--win {
    background: var(--win-green-dim);
    color: var(--win-green);
    border: 1px solid var(--win-green);
}
.ty-result-badge--loss {
    background: var(--loss-red-dim);
    color: var(--loss-red);
    border: 1px solid var(--loss-red);
}
.ty-result-badge--pending {
    background: var(--bg-ink);
    color: var(--text-3);
    border: 1px solid var(--border-strong);
}

/* 命中/未中 会影响 hover 左边色条 */
.ty-expert-card__thread--win:hover   { border-left-color: var(--win-green); }
.ty-expert-card__thread--loss:hover  { border-left-color: var(--loss-red); }

/* ════════════ 08 · Leagues Chips ════════════ */

.ty-leagues {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px;
}
.ty-league-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    background: var(--bg-card);
    border: 1px solid var(--border-strong);
    border-radius: 3px;
    text-decoration: none;
    color: var(--text-1);
    font-size: 13px;
    transition:
        color 0.15s ease,
        border-color 0.15s ease,
        background 0.15s ease;
}
.ty-league-chip:hover {
    border-color: var(--brand);
    color: var(--brand);
    background: var(--bg-card);
}
.ty-league-chip img {
    width: 18px;
    height: 18px;
    object-fit: contain;
}
.ty-league-chip__fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 13px;
    line-height: 1;
    opacity: 0.7;
}
.ty-league-chip__name {
    font-weight: 600;
}
.ty-league-chip__year {
    font-family: var(--font-number);
    font-size: 11.5px;
    color: var(--text-3);
    padding-left: 6px;
    border-left: 1px solid var(--border-strong);
    letter-spacing: 0.3px;
}

.ty-league-tabs {
    display: flex;
    gap: 4px;
    overflow-x: auto;
    padding: 2px 0 16px;
    scrollbar-width: thin;
    border-bottom: 1px solid var(--border);
    margin-bottom: 24px;
}
.ty-league-tab {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: transparent;
    border: 1px solid transparent;
    border-bottom: 2px solid transparent;
    color: var(--text-2);
    font-size: 12.5px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.15s ease;
    white-space: nowrap;
    margin-bottom: -1px;
}
.ty-league-tab:hover {
    color: var(--text-1);
}
.ty-league-tab.is-active {
    color: var(--text-1);
    border-bottom-color: var(--accent);
    font-weight: 700;
}
.ty-league-tab img {
    width: 18px;
    height: 18px;
    object-fit: contain;
}
.ty-league-tab__fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 13px;
    line-height: 1;
    opacity: 0.7;
}

/* ════════════ 响应式兜底 ════════════ */
@media (max-width: 768px) {
    .ty-match-card {
        padding: 14px;
    }
    .ty-match-card__score {
        font-size: 24px;
        padding: 0 6px;
    }
    .ty-match-card__logo {
        width: 36px;
        height: 36px;
        font-size: 16px;
    }
    .ty-match-card__team-name {
        font-size: 12px;
    }
    .ty-live-grid,
    .ty-scores-grid,
    .ty-upcoming-grid {
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 10px;
    }
    .ty-experts {
        grid-template-columns: 1fr;
    }
    .ty-standings__name {
        font-size: 16px;
    }
    .ty-standings__table thead th,
    .ty-standings__table tbody td {
        padding: 10px 6px;
        font-size: 12px;
    }
    .ty-col-form {
        display: none;
    }
}
@media (max-width: 560px) {
    /* 积分榜小屏精简：只保留 # | 球队 | 胜 | 平 | 负 | 积分 */
    .ty-standings__table col:nth-child(3),
    .ty-standings__table thead th:nth-child(3),
    .ty-standings__table tbody td:nth-child(3),
    .ty-standings__table thead th:nth-child(7),
    .ty-standings__table tbody td:nth-child(7),
    .ty-standings__table thead th:nth-child(8),
    .ty-standings__table tbody td:nth-child(8),
    .ty-standings__table thead th:nth-child(9),
    .ty-standings__table tbody td:nth-child(9) {
        display: none;
    }
    .ty-standings__table td.ty-col-team,
    .ty-standings__table th.ty-col-team {
        min-width: 0;
        padding-left: 10px;
    }
    .ty-team-logo {
        width: 18px;
        height: 18px;
        margin-right: 6px;
    }
    .ty-team-name {
        font-size: 12.5px;
    }
}

/* ═══════════════ LEGIBILITY BUMP · 体育站阅读性兜底 ═══════════════
   背景：体育场景需要「远距一眼可读」，原来 10~11.5px 过小。
   此段仅作为兜底，后续组件级微调可继续加在上方，不受影响。
   — 正文/卡片类元素最小 13px
   — 元信息/日期/标签 最小 12px
   — 大号数字（比分 / 时间）不改，仍由各组件自行控制
*/
.ty-match-card__top,
.ty-match-card__foot,
.ty-match-card__cta {
    font-size: 13px;
}
.ty-match-card__league {
    font-size: 12px;
    letter-spacing: 0.8px;
}
.ty-match-card__status {
    font-size: 12px;
    letter-spacing: 1px;
}
.ty-match-card__vs-label {
    font-size: 12px;
}
.ty-match-card__meta,
.ty-match-card__team-name {
    font-size: 13px;
}

.ty-filter__chip {
    font-size: 13px;
    padding: 8px 14px;
    letter-spacing: 0.3px;
}

.ty-row,
.ty-row__kick,
.ty-row__team-name,
.ty-row__status {
    font-size: 13px;
}

.ty-scoreboard__team,
.ty-slot__team {
    font-size: 13.5px;
    font-weight: 600;
}
.ty-scoreboard__kick,
.ty-slot__kick,
.ty-scoreboard__meta {
    font-size: 12px;
}

.ty-day-chip__date {
    font-size: 13px;
    font-weight: 700;
}
.ty-day-chip__week {
    font-size: 12px;
}

.ty-timeline__count,
.ty-timeline__meta {
    font-size: 12px;
}

.ty-ticker__item,
.ty-ticker__label {
    font-size: 13px;
}

.ty-feature__kick,
.ty-feature__tbd,
.ty-feature__live {
    font-size: 13px;
}

.ty-expert-card__name,
.ty-expert-card__stats {
    font-size: 13px;
}
.ty-expert-card__thread-title {
    font-size: 13.5px;
}
.ty-expert-card__thread-meta {
    font-size: 12px;
}

.ty-standings__cell,
.ty-standings__row,
.ty-team-name {
    font-size: 13px;
}

/* 徽章类保留小字号但字重提到 700 确保可读 */
.ty-badge {
    font-size: 11.5px;
    font-weight: 700;
}

/* ════════════════════════════════════════════════════════════════
 * 比赛详情页 (/match/<id>)  ARCHETYPE: 「VS 对决卡 + 双栏数据」
 * ════════════════════════════════════════════════════════════════ */
.ty-match-detail { padding: 24px 0 56px; }

.ty-vsboard {
    background: var(--bg-card);
    padding: 18px 22px 24px;
    margin-bottom: 18px;
    box-shadow: 0 1px 0 var(--border);
}
.ty-vsboard__crumbs {
    display: flex;
    gap: 6px;
    align-items: center;
    color: var(--text-3);
    font-size: 12px;
    margin-bottom: 14px;
}
.ty-vsboard__crumbs a {
    color: var(--text-2);
    text-decoration: none;
}
.ty-vsboard__crumbs a:hover { color: var(--brand); }
.ty-vsboard__crumbs-current { color: var(--text-1); font-weight: 600; }

.ty-vsboard__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border);
}
.ty-vsboard__league {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-2);
    font-size: 13px;
}
.ty-vsboard__league img {
    width: 22px;
    height: 22px;
    object-fit: contain;
}
.ty-vsboard__league-fallback {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-elevated);
    border-radius: 50%;
    font-size: 13px;
}
.ty-vsboard__league strong {
    color: var(--text-1);
    font-weight: 700;
}
.ty-vsboard__time {
    display: flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-number);
    color: var(--text-2);
    font-size: 13px;
}
.ty-vsboard__time time { color: var(--text-1); font-weight: 600; }
.ty-vsboard__pill {
    padding: 3px 10px;
    border-radius: 2px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}
.ty-vsboard__pill--live {
    background: var(--brand);
    color: #fff;
    display: inline-flex; align-items: center; gap: 6px;
}
.ty-vsboard__pill--live i {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: #fff;
    animation: ty-pulse-dot 1.6s infinite;
}
.ty-vsboard__pill--end { background: var(--bg-elevated); color: var(--text-2); }
.ty-vsboard__pill--soon { background: var(--bg-elevated); color: var(--text-2); }

.ty-vsboard__body {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 18px;
    padding-top: 22px;
}
.ty-vsboard__team {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
}
.ty-vsboard__team--away { order: 3; }
.ty-vsboard__logo {
    width: 80px; height: 80px;
    background: var(--bg-elevated);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
}
.ty-vsboard__logo img {
    width: 64px; height: 64px;
    object-fit: contain;
}
.ty-vsboard__name {
    font-size: 17px;
    font-weight: 700;
    color: var(--text-1);
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ty-vsboard__hint {
    font-size: 11.5px;
    color: var(--text-3);
    letter-spacing: 0.6px;
}
.ty-vsboard__team.is-winner .ty-vsboard__name { color: var(--win-green); }
.ty-vsboard__team.is-loser  .ty-vsboard__name { color: var(--text-3); font-weight: 600; }

.ty-vsboard__score {
    display: inline-flex;
    align-items: baseline;
    gap: 14px;
    font-family: var(--font-number);
    font-weight: 800;
    line-height: 1;
}
.ty-vsboard__score em {
    font-style: normal;
    font-size: 32px;
    color: var(--text-3);
}
.ty-vsboard__num {
    font-size: 56px;
    color: var(--text-1);
}
.ty-vsboard__num--w { color: var(--win-green); }
.ty-vsboard__num--l { color: var(--text-3); }
.ty-vsboard__num--d { color: var(--text-1); }
.ty-vsboard__period {
    grid-column: 1 / -1;
    text-align: center;
    color: var(--text-3);
    font-size: 12px;
    font-family: var(--font-number);
    margin-top: 4px;
}
.ty-vsboard__vs {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-family: var(--font-number);
}
.ty-vsboard__vs strong {
    font-size: 28px;
    font-weight: 800;
    color: var(--text-2);
    letter-spacing: 1.5px;
}
.ty-vsboard__vs small {
    color: var(--text-3);
    font-size: 12.5px;
}

/* ── 双栏布局 ───────── */
.ty-match-detail__grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
.ty-match-detail__main,
.ty-match-detail__side {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* ── 通用面板 ───────── */
.ty-panel {
    background: var(--bg-card);
    box-shadow: 0 1px 0 var(--border);
}
.ty-panel--compact .ty-panel__head { padding: 10px 16px; }
.ty-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
    gap: 12px;
}
.ty-panel__title {
    font-size: 15px;
    font-weight: 800;
    color: var(--text-1);
    margin: 0;
    padding-left: 10px;
    border-left: 3px solid var(--brand);
}
.ty-panel__sub {
    color: var(--text-3);
    font-size: 12px;
    font-family: var(--font-number);
}
.ty-panel__legend {
    display: flex;
    gap: 14px;
    font-size: 12px;
    color: var(--text-2);
}
.ty-legend-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 6px;
    vertical-align: middle;
}
.ty-legend-dot--home { background: var(--brand); }
.ty-legend-dot--away { background: #4b6cb7; }

/* ── 时间线 ───────── */
.ty-timeline {
    list-style: none;
    margin: 0;
    padding: 8px 0;
    counter-reset: ty-tl;
}
.ty-timeline__item {
    display: grid;
    grid-template-columns: 60px 32px 1fr;
    gap: 10px;
    align-items: start;
    padding: 12px 18px;
    border-bottom: 1px solid var(--border);
}
.ty-timeline__item:last-child { border-bottom: 0; }
.ty-timeline__minute {
    font-family: var(--font-number);
    font-weight: 700;
    color: var(--text-1);
    font-size: 14px;
}
.ty-timeline__icon {
    font-size: 18px;
    line-height: 1;
    text-align: center;
}
.ty-timeline__body { min-width: 0; }
.ty-timeline__label {
    font-weight: 700;
    color: var(--text-1);
    font-size: 13.5px;
}
.ty-timeline__player {
    color: var(--text-2);
    font-size: 12.5px;
    margin-top: 2px;
}
.ty-timeline__detail {
    color: var(--text-3);
    font-size: 12px;
    margin-top: 2px;
}
.ty-timeline__score {
    display: inline-block;
    margin-top: 4px;
    background: var(--brand);
    color: #fff;
    font-family: var(--font-number);
    font-size: 12px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 2px;
}
.ty-timeline__item--home { background: linear-gradient(90deg, color-mix(in srgb, var(--brand) 6%, transparent), transparent 60%); }
.ty-timeline__item--away { background: linear-gradient(270deg, color-mix(in srgb, #4b6cb7 6%, transparent), transparent 60%); }

/* ── 数据对比条 ───────── */
.ty-statbar__list { list-style: none; margin: 0; padding: 6px 0; }
.ty-statbar {
    display: grid;
    grid-template-columns: 60px 1fr 60px;
    gap: 10px;
    align-items: center;
    padding: 10px 18px 14px;
    border-bottom: 1px solid var(--border);
}
.ty-statbar:last-child { border-bottom: 0; }
.ty-statbar__home,
.ty-statbar__away {
    font-family: var(--font-number);
    font-weight: 700;
    color: var(--text-1);
    font-size: 14px;
}
.ty-statbar__home { text-align: left; }
.ty-statbar__away { text-align: right; }
.ty-statbar__label {
    text-align: center;
    color: var(--text-2);
    font-size: 12px;
    font-weight: 600;
}
.ty-statbar__track {
    grid-column: 1 / -1;
    height: 4px;
    background: var(--bg-elevated);
    border-radius: 2px;
    display: flex;
    overflow: hidden;
    margin-top: 6px;
}
.ty-statbar__fill { height: 100%; }
.ty-statbar__fill--home { background: var(--brand); }
.ty-statbar__fill--away { background: #4b6cb7; }

/* ── 阵容 ───────── */
.ty-lineup {
    display: grid;
    grid-template-columns: 1fr 1px 1fr;
    gap: 0;
}
.ty-lineup__divider {
    background: var(--border);
}
.ty-lineup__col { padding: 14px 18px 18px; }
.ty-lineup__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 8px;
}
.ty-lineup__head strong {
    color: var(--text-1);
    font-size: 14px;
    font-weight: 700;
}
.ty-lineup__head span {
    color: var(--brand);
    font-family: var(--font-number);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.5px;
}
.ty-lineup__coach {
    font-size: 12.5px;
    color: var(--text-2);
    margin-bottom: 8px;
}
.ty-lineup__coach b {
    color: var(--text-3);
    font-weight: 600;
    margin-right: 6px;
}
.ty-lineup__squad { list-style: none; margin: 0; padding: 0; }
.ty-lineup__squad-divider {
    display: block;
    margin: 6px 0 4px;
    padding: 4px 0;
    border-top: 1px dashed var(--border);
    color: var(--text-3);
    font-size: 11px;
    letter-spacing: 0.5px;
}
.ty-lineup__player {
    display: grid;
    grid-template-columns: 38px 1fr 36px;
    gap: 8px;
    align-items: center;
    padding: 6px 0;
    font-size: 13px;
    color: var(--text-2);
}
.ty-lineup__player.is-starter {
    color: var(--text-1);
    font-weight: 600;
}
.ty-lineup__player.is-sub {
    opacity: 0.62;
    font-size: 12.5px;
}
.ty-lineup__pos {
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-3);
    letter-spacing: 0.4px;
    background: var(--bg-elevated);
    border-radius: 2px;
    padding: 2px 0;
}
.ty-lineup__player.is-starter .ty-lineup__pos {
    color: var(--brand);
    background: color-mix(in srgb, var(--brand) 10%, transparent);
}
.ty-lineup__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ty-lineup__name sup {
    margin-left: 4px;
    color: var(--brand);
    font-weight: 700;
    font-size: 11px;
}
.ty-lineup__rating {
    text-align: right;
    font-family: var(--font-number);
    font-weight: 700;
    color: var(--text-2);
    font-size: 12px;
}
.ty-lineup__player.is-starter .ty-lineup__rating { color: var(--brand); }

/* ── 历史交锋 ───────── */
.ty-h2h { list-style: none; margin: 0; padding: 4px 0; }
.ty-h2h__row {
    display: grid;
    grid-template-columns: 70px 1fr 64px 1fr;
    gap: 8px;
    align-items: center;
    padding: 10px 16px;
    border-bottom: 1px solid var(--border);
    font-size: 12.5px;
}
.ty-h2h__row:last-child { border-bottom: 0; }
.ty-h2h__date {
    font-family: var(--font-number);
    color: var(--text-3);
    font-size: 11.5px;
}
.ty-h2h__home,
.ty-h2h__away {
    color: var(--text-1);
    display: flex;
    align-items: center;
    gap: 6px;
    overflow: hidden;
    min-width: 0;
}
.ty-h2h__home {
    flex-direction: row-reverse;
    text-align: right;
}
.ty-h2h__home img,
.ty-h2h__away img {
    width: 18px;
    height: 18px;
    object-fit: contain;
    flex-shrink: 0;
}
.ty-h2h__home em,
.ty-h2h__away em {
    font-style: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ty-h2h__score {
    text-align: center;
    font-family: var(--font-number);
    font-weight: 700;
    color: var(--text-1);
}
.ty-h2h__score em {
    font-style: normal;
    color: var(--text-3);
    margin: 0 2px;
}

/* ── 进球时段分布 ───────── */
.ty-goaldist {
    padding: 12px 16px 16px;
    display: grid;
    gap: 14px;
}
.ty-goaldist__team {
    background: var(--bg-elevated);
    border-radius: 6px;
    padding: 12px 14px;
}
.ty-goaldist__head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    font-size: 13px;
}
.ty-goaldist__head img {
    width: 22px;
    height: 22px;
    object-fit: contain;
    border-radius: 3px;
    background: #fff;
}
.ty-goaldist__logo-fb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-mute);
    font-size: 12px;
}
.ty-goaldist__head strong {
    color: var(--text-1);
    font-weight: 700;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ty-goaldist__matches {
    color: var(--text-3);
    font-size: 11px;
    font-family: var(--font-number);
}
.ty-goaldist__legend {
    display: flex;
    gap: 14px;
    margin-bottom: 8px;
    font-size: 11px;
    color: var(--text-3);
}
.ty-goaldist__legend span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.ty-goaldist__dot {
    width: 8px;
    height: 8px;
    border-radius: 2px;
    display: inline-block;
}
.ty-goaldist__dot--for      { background: var(--brand); }
.ty-goaldist__dot--against  { background: color-mix(in srgb, var(--text-3) 70%, transparent); }
.ty-goaldist__rows {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 6px;
}
.ty-goaldist__row {
    display: grid;
    grid-template-columns: 46px 1fr;
    grid-template-rows: auto auto;
    column-gap: 8px;
    row-gap: 3px;
    align-items: center;
}
.ty-goaldist__bucket {
    grid-row: 1 / span 2;
    font-family: var(--font-number);
    font-size: 11px;
    color: var(--text-2);
    text-align: right;
}
.ty-goaldist__bar {
    position: relative;
    height: 12px;
    border-radius: 2px;
    min-width: 18px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 6px;
    color: #fff;
    font-family: var(--font-number);
    font-size: 10.5px;
    line-height: 1;
    transition: width .25s ease;
}
.ty-goaldist__bar em {
    font-style: normal;
}
.ty-goaldist__bar--for      { background: var(--brand); }
.ty-goaldist__bar--against  { background: color-mix(in srgb, var(--text-3) 70%, transparent); }
.ty-goaldist__bar--for em,
.ty-goaldist__bar--against em { color: #fff; }

.ty-empty--inline {
    padding: 30px 18px;
    text-align: center;
}

/* ── 响应式 ───────── */
@media (max-width: 768px) {
    .ty-match-detail__grid { grid-template-columns: 1fr; }
    .ty-vsboard__num { font-size: 44px; }
    .ty-vsboard__logo { width: 64px; height: 64px; }
    .ty-vsboard__logo img { width: 50px; height: 50px; }
    .ty-vsboard__name { font-size: 15px; max-width: 130px; }
    .ty-lineup { grid-template-columns: 1fr; }
    .ty-lineup__divider { display: none; }
    .ty-h2h__row {
        grid-template-columns: 60px 1fr 56px 1fr;
    }
    .ty-h2h__league { display: none; }
}
