.tp-nba,
.tp-ucl {
  --tp-sports-ink: #25292a;
  --tp-sports-muted: #58666c;
  --tp-sports-blue: #03a9f4;
  --tp-sports-link: #0277a9;
  --tp-sports-line: #dce2e5;
  width: 100%; max-width: 1172px; margin: 0 auto 36px;
  color: var(--tp-sports-ink); text-align: left;
  font-family: "Open Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  font-size: 17px; line-height: 1.8; overflow-wrap: anywhere;
}
.tp-nba *,
.tp-nba *::before,
.tp-nba *::after,
.tp-ucl *,
.tp-ucl *::before,
.tp-ucl *::after { box-sizing: border-box; }
.tp-nba h2,
.tp-nba h3,
.tp-nba h4,
.tp-nba p,
.tp-nba figure,
.tp-ucl h2,
.tp-ucl h3,
.tp-ucl h4,
.tp-ucl p,
.tp-ucl figure { margin: 0; }
.tp-nba h2,
.tp-nba h3,
.tp-nba h4,
.tp-ucl h2,
.tp-ucl h3,
.tp-ucl h4 { color: #14252b; font-family: "Montserrat", "Noto Sans SC", "Microsoft YaHei", sans-serif; font-weight: 600; text-transform: none; }
.tp-nba a,
.tp-ucl a { color: var(--tp-sports-link); text-decoration: none; }
.tp-nba a:hover,
.tp-ucl a:hover { text-decoration: underline; }
.tp-nba a:focus-visible,
.tp-nba summary:focus-visible,
.tp-ucl a:focus-visible,
.tp-ucl summary:focus-visible { outline: 3px solid var(--tp-sports-link); outline-offset: 4px; }
.tp-nba .tp-nba-hero,
.tp-ucl .tp-ucl-hero { display: grid; grid-template-columns: 1.08fr 1fr; gap: 36px; align-items: center; padding: 36px; background: #fff; border-top: 4px solid var(--tp-sports-blue); border-radius: 6px; }
.tp-nba .tp-nba-eyebrow,
.tp-ucl .tp-ucl-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; color: var(--tp-sports-muted); font-size: 13px; letter-spacing: .07em; }
.tp-nba .tp-nba-tag,
.tp-ucl .tp-ucl-tag { padding: 2px 9px; background: #eaf7fd; color: #046d96; font-size: 12px; font-weight: 600; letter-spacing: .02em; border-radius: 3px; }
.tp-nba .tp-nba-title,
.tp-ucl .tp-ucl-title { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.35; letter-spacing: -.02em; margin-bottom: 18px; }
.tp-nba .tp-nba-lead,
.tp-ucl .tp-ucl-lead { margin-bottom: 10px; }
.tp-nba .tp-nba-sub,
.tp-ucl .tp-ucl-sub { color: var(--tp-sports-muted); font-size: 15px; }
.tp-nba .tp-nba-button,
.tp-ucl .tp-ucl-button { display: inline-flex; align-items: center; gap: 18px; margin-top: 24px; padding: 11px 20px; background: var(--tp-sports-link); border-radius: 3px; color: #fff; font-size: 15px; font-weight: 600; line-height: 1.5; }
.tp-nba .tp-nba-button:hover,
.tp-ucl .tp-ucl-button:hover { background: #04688f; color: #fff; text-decoration: none; }
.tp-nba .tp-nba-image,
.tp-ucl .tp-ucl-image { display: block; width: 100%; height: auto; aspect-ratio: 611 / 306; object-fit: contain; border-radius: 4px; }
.tp-nba .tp-nba-caption,
.tp-ucl .tp-ucl-caption { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--tp-sports-line); color: var(--tp-sports-muted); font-size: 13px; }
.tp-nba .tp-nba-section-head,
.tp-ucl .tp-ucl-section-head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 20px; margin: 30px 0 14px; }
.tp-nba .tp-nba-section-head h3,
.tp-ucl .tp-ucl-section-head h3 { font-size: 22px; line-height: 1.5; }
.tp-nba .tp-nba-section-head p,
.tp-ucl .tp-ucl-section-head p { color: var(--tp-sports-muted); font-size: 14px; }
.tp-nba .tp-nba-fold,
.tp-ucl .tp-ucl-fold { margin: 0 0 12px; background: #fff; border: 1px solid var(--tp-sports-line); border-radius: 6px; }
.tp-nba .tp-nba-fold > summary,
.tp-ucl .tp-ucl-fold > summary { display: flex; align-items: center; gap: 18px; padding: 21px 24px; cursor: pointer; list-style: none; }
.tp-nba .tp-nba-fold > summary::-webkit-details-marker,
.tp-ucl .tp-ucl-fold > summary::-webkit-details-marker { display: none; }
.tp-nba .tp-nba-fold > summary::marker,
.tp-ucl .tp-ucl-fold > summary::marker { content: ""; }
.tp-nba .tp-nba-fold > summary::after,
.tp-ucl .tp-ucl-fold > summary::after { content: "+"; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: 0 0 28px; margin-left: auto; color: var(--tp-sports-link); background: #eaf7fd; border-radius: 50%; font: 400 23px/1 sans-serif; }
.tp-nba .tp-nba-fold[open] > summary::after,
.tp-ucl .tp-ucl-fold[open] > summary::after { content: "−"; }
.tp-nba .tp-nba-fold > summary:hover,
.tp-ucl .tp-ucl-fold > summary:hover { background: #f8fbfc; border-radius: 6px; }
.tp-nba .tp-nba-year,
.tp-ucl .tp-ucl-year { flex: 0 0 100px; color: var(--tp-sports-link); font: 600 21px/1.4 "Montserrat", sans-serif; font-variant-numeric: tabular-nums; }
.tp-nba .tp-nba-summary-text,
.tp-ucl .tp-ucl-summary-text { display: block; min-width: 0; }
.tp-nba .tp-nba-summary-text strong,
.tp-ucl .tp-ucl-summary-text strong { display: block; color: #14252b; font-size: 18px; font-weight: 600; }
.tp-nba .tp-nba-summary-text small,
.tp-ucl .tp-ucl-summary-text small { display: block; margin-top: 2px; color: var(--tp-sports-muted); font-size: 13px; line-height: 1.6; }
.tp-nba .tp-nba-fold-content,
.tp-ucl .tp-ucl-fold-content { margin: 0 24px; padding: 24px 0; border-top: 1px solid var(--tp-sports-line); }
.tp-nba .tp-nba-note,
.tp-ucl .tp-ucl-note { color: var(--tp-sports-muted); font-size: 13px; line-height: 1.75; }
.tp-nba .tp-nba-schedule-group + .tp-nba-schedule-group,
.tp-ucl .tp-ucl-schedule-group + .tp-ucl-schedule-group { margin-top: 24px; }
.tp-nba .tp-nba-schedule-group h4,
.tp-ucl .tp-ucl-schedule-group h4 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 12px; margin-bottom: 10px; font-size: 18px; line-height: 1.5; }
.tp-nba .tp-nba-en,
.tp-ucl .tp-ucl-en { color: var(--tp-sports-muted); font-family: "Open Sans", sans-serif; font-size: 12px; font-weight: 400; }
.tp-nba .tp-nba-events,
.tp-ucl .tp-ucl-events { margin: 0; padding: 0; list-style: none; }
.tp-nba .tp-nba-event,
.tp-ucl .tp-ucl-event { display: grid; grid-template-columns: 155px minmax(0, 1fr) minmax(140px, .5fr); align-items: start; gap: 12px 20px; margin: 0; padding: 14px 0; border-top: 1px solid #edf0f2; font-size: 15px; }
.tp-nba .tp-nba-date,
.tp-ucl .tp-ucl-date { color: var(--tp-sports-link); font-weight: 600; font-variant-numeric: tabular-nums; }
.tp-nba .tp-nba-event-title,
.tp-ucl .tp-ucl-event-title { display: block; font-weight: 600; }
.tp-nba .tp-nba-event .tp-nba-en,
.tp-ucl .tp-ucl-event .tp-ucl-en { display: block; margin-top: 2px; }
.tp-nba .tp-nba-place,
.tp-ucl .tp-ucl-place { color: var(--tp-sports-muted); font-size: 13px; }
.tp-nba .tp-nba-data-note,
.tp-ucl .tp-ucl-data-note { padding: 0 0 20px; }
.tp-nba .tp-nba-inner,
.tp-ucl .tp-ucl-inner { margin-bottom: 10px; border-radius: 4px; }
.tp-nba .tp-nba-inner > summary,
.tp-ucl .tp-ucl-inner > summary { padding: 15px 18px; }
.tp-nba .tp-nba-inner .tp-nba-summary-text strong,
.tp-ucl .tp-ucl-inner .tp-ucl-summary-text strong { font-size: 16px; }
.tp-nba .tp-nba-inner > .tp-nba-fold-content,
.tp-ucl .tp-ucl-inner > .tp-ucl-fold-content { margin: 0 18px; padding: 16px 0; }
.tp-nba .tp-nba-table-wrap,
.tp-ucl .tp-ucl-table-wrap { overflow-x: auto; }
.tp-nba .tp-nba-table,
.tp-ucl .tp-ucl-table { width: 100%; margin: 0; border-collapse: collapse; border: 0; table-layout: fixed; font-size: 14px; line-height: 1.7; }
.tp-nba .tp-nba-table th,
.tp-nba .tp-nba-table td,
.tp-ucl .tp-ucl-table th,
.tp-ucl .tp-ucl-table td { border: 0; border-bottom: 1px solid #edf0f2; padding: 11px 12px; vertical-align: top; text-align: left; overflow-wrap: anywhere; }
.tp-nba .tp-nba-table thead th,
.tp-ucl .tp-ucl-table thead th { background: #f2f6f8; color: #14252b; font-weight: 600; }
.tp-nba .tp-nba-table tbody th,
.tp-ucl .tp-ucl-table tbody th { font-weight: 400; }
.tp-nba .tp-nba-table td:last-child,
.tp-ucl .tp-ucl-table td:last-child { color: var(--tp-sports-link); font-weight: 600; font-variant-numeric: tabular-nums; }
.tp-nba .tp-nba-table tr:last-child td,
.tp-nba .tp-nba-table tr:last-child th,
.tp-ucl .tp-ucl-table tr:last-child td,
.tp-ucl .tp-ucl-table tr:last-child th { border-bottom: 0; }
.tp-nba .tp-nba-who,
.tp-ucl .tp-ucl-who { display: block; }
.tp-nba .tp-nba-team,
.tp-ucl .tp-ucl-team { display: block; color: var(--tp-sports-muted); font-size: 12px; font-weight: 400; }
.tp-nba .tp-nba-awards,
.tp-ucl .tp-ucl-awards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.tp-nba .tp-nba-award,
.tp-ucl .tp-ucl-award { padding: 18px; border: 1px solid var(--tp-sports-line); border-radius: 4px; }
.tp-nba .tp-nba-award h4,
.tp-ucl .tp-ucl-award h4 { margin-bottom: 10px; font-size: 15px; line-height: 1.6; }
.tp-nba .tp-nba-award h4 span,
.tp-ucl .tp-ucl-award h4 span { color: var(--tp-sports-link); margin-left: 5px; }
.tp-nba .tp-nba-award p,
.tp-ucl .tp-ucl-award p { font-size: 16px; font-weight: 600; }
.tp-nba .tp-nba-finalists,
.tp-ucl .tp-ucl-finalists { margin-top: 12px; color: var(--tp-sports-muted); font-size: 12px; line-height: 1.8; }
.tp-nba .tp-nba-odds,
.tp-ucl .tp-ucl-odds { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 14px 24px; padding: 22px 24px; background: #f6fafc; border-left: 3px solid var(--tp-sports-blue); border-radius: 3px; }
.tp-nba .tp-nba-odds h3,
.tp-ucl .tp-ucl-odds h3 { font-size: 18px; line-height: 1.7; }
.tp-nba .tp-nba-odds p,
.tp-ucl .tp-ucl-odds p { font-size: 14px; color: var(--tp-sports-muted); }
@media (max-width: 900px) {
  .tp-nba .tp-nba-hero,
  .tp-ucl .tp-ucl-hero { gap: 24px; padding: 26px; }
  .tp-nba .tp-nba-event,
  .tp-ucl .tp-ucl-event { grid-template-columns: 135px minmax(0, 1fr); }
  .tp-nba .tp-nba-place,
  .tp-ucl .tp-ucl-place { grid-column: 2; margin-top: -9px; }
}
@media (max-width: 640px) {
  .tp-nba,
  .tp-ucl { font-size: 16px; margin-bottom: 24px; }
  .tp-nba .tp-nba-hero,
  .tp-ucl .tp-ucl-hero { grid-template-columns: 1fr; padding: 22px 18px; gap: 24px; }
  .tp-nba .tp-nba-title,
  .tp-ucl .tp-ucl-title { font-size: 29px; }
  .tp-nba .tp-nba-button,
  .tp-ucl .tp-ucl-button { width: 100%; justify-content: space-between; margin-top: 20px; }
  .tp-nba .tp-nba-section-head,
  .tp-ucl .tp-ucl-section-head { margin-top: 24px; }
  .tp-nba .tp-nba-section-head h3,
  .tp-ucl .tp-ucl-section-head h3 { font-size: 20px; }
  .tp-nba .tp-nba-fold > summary,
  .tp-ucl .tp-ucl-fold > summary { gap: 12px; padding: 17px 16px; flex-wrap: wrap; }
  .tp-nba .tp-nba-year,
  .tp-ucl .tp-ucl-year { flex: 0 0 100%; font-size: 17px; }
  .tp-nba .tp-nba-summary-text,
  .tp-ucl .tp-ucl-summary-text { flex: 1 1 0; }
  .tp-nba .tp-nba-summary-text strong,
  .tp-ucl .tp-ucl-summary-text strong { font-size: 17px; }
  .tp-nba .tp-nba-summary-text small,
  .tp-ucl .tp-ucl-summary-text small { font-size: 12px; }
  .tp-nba .tp-nba-fold-content,
  .tp-ucl .tp-ucl-fold-content { margin: 0 16px; padding: 20px 0; }
  .tp-nba .tp-nba-event,
  .tp-ucl .tp-ucl-event { grid-template-columns: 1fr; gap: 3px; padding: 14px 0; }
  .tp-nba .tp-nba-place,
  .tp-ucl .tp-ucl-place { grid-column: auto; margin-top: 2px; }
  .tp-nba .tp-nba-inner > summary,
  .tp-ucl .tp-ucl-inner > summary { padding: 14px 12px; }
  .tp-nba .tp-nba-inner > .tp-nba-fold-content,
  .tp-ucl .tp-ucl-inner > .tp-ucl-fold-content { margin: 0 8px; }
  .tp-nba .tp-nba-table,
  .tp-ucl .tp-ucl-table { font-size: 12px; }
  .tp-nba .tp-nba-table th,
  .tp-nba .tp-nba-table td,
  .tp-ucl .tp-ucl-table th,
  .tp-ucl .tp-ucl-table td { padding: 10px 6px; }
  .tp-nba .tp-nba-awards,
  .tp-ucl .tp-ucl-awards { grid-template-columns: 1fr; }
  .tp-nba .tp-nba-award,
  .tp-ucl .tp-ucl-award { padding: 15px; }
  .tp-nba .tp-nba-odds,
  .tp-ucl .tp-ucl-odds { grid-template-columns: 1fr; gap: 7px; padding: 18px; }
}
.tp-nba .tp-nba-milestones,
.tp-ucl .tp-ucl-milestones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 14px 0 30px; }
.tp-nba .tp-nba-milestone,
.tp-ucl .tp-ucl-milestone { padding: 18px 22px; background: #fff; border: 1px solid var(--tp-sports-line); border-radius: 4px; }
.tp-nba .tp-nba-milestone span,
.tp-ucl .tp-ucl-milestone span { display: block; color: var(--tp-sports-muted); font-size: 12px; }
.tp-nba .tp-nba-milestone strong,
.tp-ucl .tp-ucl-milestone strong { display: block; margin: 2px 0; color: var(--tp-sports-link); font-size: 24px; line-height: 1.5; font-weight: 600; }
.tp-nba .tp-nba-source,
.tp-ucl .tp-ucl-source { margin-top: 14px; color: var(--tp-sports-muted); font-size: 12px; line-height: 1.8; }
.tp-nba .tp-nba-match-table td:last-child,
.tp-ucl .tp-ucl-match-table td:last-child { color: var(--tp-sports-muted); font-weight: 400; }
.tp-nba .tp-nba-match-table th:first-child,
.tp-ucl .tp-ucl-match-table th:first-child { color: var(--tp-sports-link); font-weight: 600; font-variant-numeric: tabular-nums; }
.tp-nba .tp-nba-clock,
.tp-ucl .tp-ucl-clock { display: block; font-size: 20px; }
.tp-nba .tp-nba-lookahead,
.tp-ucl .tp-ucl-lookahead { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.tp-nba .tp-nba-observation,
.tp-ucl .tp-ucl-observation { padding: 22px; background: #fff; border: 1px solid var(--tp-sports-line); border-radius: 4px; }
.tp-nba .tp-nba-observation h4,
.tp-ucl .tp-ucl-observation h4 { margin-bottom: 10px; font-size: 17px; line-height: 1.6; }
.tp-nba .tp-nba-observation p,
.tp-ucl .tp-ucl-observation p { color: var(--tp-sports-muted); font-size: 14px; line-height: 1.9; }
.tp-nba .tp-nba-footnote,
.tp-ucl .tp-ucl-footnote { margin-top: 22px; padding-top: 16px; border-top: 1px solid #cbd3d8; }
.tp-nba .tp-nba-odds,
.tp-ucl .tp-ucl-odds { margin-top: 18px; }
@media (max-width: 640px) {
  .tp-nba .tp-nba-milestones,
  .tp-ucl .tp-ucl-milestones { grid-template-columns: 1fr; gap: 8px; margin-bottom: 24px; }
  .tp-nba .tp-nba-milestone,
  .tp-ucl .tp-ucl-milestone { padding: 13px 18px; }
  .tp-nba .tp-nba-milestone strong,
  .tp-ucl .tp-ucl-milestone strong { font-size: 22px; }
  .tp-nba .tp-nba-lookahead,
  .tp-ucl .tp-ucl-lookahead { grid-template-columns: 1fr; }
  .tp-nba .tp-nba-clock,
  .tp-ucl .tp-ucl-clock { font-size: 17px; }
}

/* 02. 欧冠专属外观与覆盖规则 */
.tp-ucl .tp-ucl-hero { grid-template-columns: 1.1fr 1fr; }
.tp-ucl .tp-ucl-poster { position: relative; isolation: isolate; overflow: hidden; min-height: 310px; padding: 28px; border-radius: 5px; background: linear-gradient(135deg,#0b173b,#153770); color: #fff; }
.tp-ucl .tp-ucl-poster::before { content: ""; position: absolute; inset: 34px 25px; border: 1px solid rgba(255,255,255,.14); border-radius: 45%; transform: rotate(-18deg); z-index: -1; }
.tp-ucl .tp-ucl-poster::after { content: ""; position: absolute; width: 180px; height: 180px; right: -50px; top: -60px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; z-index: -1; }
.tp-ucl .tp-ucl-poster-label { color: #b2dafa; font-size: 12px; letter-spacing: .12em; }
.tp-ucl .tp-ucl-poster-season { display: block; margin: 18px 0 6px; color: #fff; font: 600 clamp(31px,3.8vw,47px)/1.2 "Montserrat",sans-serif; letter-spacing: -.04em; }
.tp-ucl .tp-ucl-poster-title { color: #fff; font-size: 21px; font-weight: 600; }
.tp-ucl .tp-ucl-poster-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; padding-top: 20px; border-top: 1px solid #557098; }
.tp-ucl .tp-ucl-poster-meta strong { display: block; color: #fff; font-size: 23px; line-height: 1.3; }
.tp-ucl .tp-ucl-poster-meta span { display: block; margin-top: 5px; color: #c3d6eb; font-size: 12px; }
.tp-ucl .tp-ucl-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; margin: 14px 0 26px; color: var(--tp-sports-muted); font-size: 12px; }
.tp-ucl .tp-ucl-routes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.tp-ucl .tp-ucl-route { padding: 20px 22px; background: #fff; border: 1px solid var(--tp-sports-line); border-top: 3px solid var(--tp-sports-blue); border-radius: 4px; }
.tp-ucl .tp-ucl-route:nth-child(2) { border-top-color: #be9347; }
.tp-ucl .tp-ucl-route:nth-child(3) { border-top-color: #8a989e; }
.tp-ucl .tp-ucl-route-rank { display: block; color: var(--tp-sports-link); font-size: 24px; font-weight: 600; line-height: 1.4; }
.tp-ucl .tp-ucl-route h4 { margin: 9px 0 7px; font-size: 17px; line-height: 1.5; }
.tp-ucl .tp-ucl-route p { color: var(--tp-sports-muted); font-size: 13px; line-height: 1.8; }
.tp-ucl .tp-ucl-table td:last-child { color: var(--tp-sports-muted); font-weight: 400; }
.tp-ucl .tp-ucl-match-table td:nth-child(2) a { display: inline; color: #14252b; font-weight: 600; }
.tp-ucl .tp-ucl-match-table tbody th { white-space: nowrap; font-size: 13px; }
.tp-ucl .tp-ucl-clock { color: var(--tp-sports-link); }
.tp-ucl .tp-ucl-match-table .tp-ucl-clock { font-size: 18px; }
.tp-ucl .tp-ucl-summary-text strong { line-height: 1.5; }
.tp-ucl .tp-ucl-calendar tbody th { color: var(--tp-sports-link); font-weight: 600; }
.tp-ucl .tp-ucl-calendar tbody tr:first-child td { color: var(--tp-sports-muted); }
.tp-ucl .tp-ucl-final { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 24px; align-items: center; padding: 24px; background: #f3f8fc; border-radius: 4px; }
.tp-ucl .tp-ucl-final-date { padding-right: 22px; border-right: 1px solid #cddde8; }
.tp-ucl .tp-ucl-final-date span { display: block; color: var(--tp-sports-muted); font-size: 13px; }
.tp-ucl .tp-ucl-final-date strong { display: block; color: var(--tp-sports-link); font: 600 35px/1.5 "Montserrat",sans-serif; }
.tp-ucl .tp-ucl-final h4 { font-size: 21px; margin-bottom: 8px; }
.tp-ucl .tp-ucl-final p { color: var(--tp-sports-muted); font-size: 14px; }
.tp-ucl .tp-ucl-rule-list { margin: 0; padding-left: 1.3em; }
.tp-ucl .tp-ucl-rule-list li { margin: 0 0 10px; font-size: 15px; }
.tp-ucl .tp-ucl-rule-list li:last-child { margin-bottom: 0; }
.tp-ucl .tp-ucl-rule-list strong { color: #14252b; }
.tp-ucl .tp-ucl-year { font-size: 19px; }
@media(max-width:640px) {
  .tp-ucl .tp-ucl-hero { grid-template-columns: 1fr; }
  .tp-ucl .tp-ucl-poster { padding: 24px; min-height: 285px; }
  .tp-ucl .tp-ucl-poster-season { font-size: 36px; }
  .tp-ucl .tp-ucl-routes { grid-template-columns: 1fr; gap: 10px; }
  .tp-ucl .tp-ucl-route { padding: 17px 18px; }
  .tp-ucl .tp-ucl-match-table tbody th { font-size: 10px; }
  .tp-ucl .tp-ucl-match-table .tp-ucl-clock { font-size: 16px; }
  .tp-ucl .tp-ucl-final { grid-template-columns: 1fr; gap: 16px; padding: 20px; }
  .tp-ucl .tp-ucl-final-date { border-right: 0; border-bottom: 1px solid #cddde8; padding: 0 0 12px; }
}

/* 03. 从片段移出的行内样式 */
.tp-nba .tp-sports-table-caption,
.tp-ucl .tp-sports-table-caption { text-align: left; padding-bottom: 12px; }
.tp-nba .tp-sports-mt-12,
.tp-ucl .tp-sports-mt-12 { margin-top: 12px; }
.tp-nba .tp-sports-col-18,
.tp-ucl .tp-sports-col-18 { width: 18%; }
.tp-nba .tp-sports-col-28,
.tp-ucl .tp-sports-col-28 { width: 28%; }
.tp-nba .tp-sports-col-29,
.tp-ucl .tp-sports-col-29 { width: 29%; }
.tp-nba .tp-sports-col-30,
.tp-ucl .tp-sports-col-30 { width: 30%; }
.tp-nba .tp-sports-col-31,
.tp-ucl .tp-sports-col-31 { width: 31%; }
.tp-nba .tp-sports-col-38,
.tp-ucl .tp-sports-col-38 { width: 38%; }
.tp-nba .tp-sports-col-44,
.tp-ucl .tp-sports-col-44 { width: 44%; }
.tp-nba .tp-sports-col-53,
.tp-ucl .tp-sports-col-53 { width: 53%; }
.tp-nba .tp-sports-col-70,
.tp-ucl .tp-sports-col-70 { width: 70%; }

/* 04. 预览页外壳，仅匹配 .tp-sports-preview */
.tp-sports-preview { margin:0;background:#e5e5e5;color:#25292a;font-family:"Open Sans","Noto Sans SC","Microsoft YaHei",sans-serif }
.tp-sports-preview .preview-header { background:#fff;border-bottom:1px solid #ddd }
.tp-sports-preview .preview-header-inner { max-width:1172px;margin:auto;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px }
.tp-sports-preview .preview-header img { display:block;width:100px;height:auto }
.tp-sports-preview .preview-header a { color:#36444b;font-size:14px;text-decoration:none }
.tp-sports-preview .preview-main { max-width:1220px;margin:36px auto;padding:0 24px }
.tp-sports-preview .preview-notice { max-width:1172px;margin:0 auto 18px;color:#58666c;font-size:13px;line-height:1.7 }
.tp-sports-preview .preview-loop { border:1px dashed #8eabb7;border-radius:6px;padding:30px 24px;text-align:center;color:#58666c;font-size:15px;line-height:1.8 }
.tp-sports-preview .preview-loop strong { color:#14252b;font-size:20px;display:block;margin-bottom:6px }
.tp-sports-preview .preview-footer { padding:30px 24px;text-align:center;color:#58666c;font-size:12px }
@media(max-width:640px) {
  .tp-sports-preview .preview-main { margin:20px auto;padding:0 14px }
  .tp-sports-preview .preview-header-inner { padding:16px }
  .tp-sports-preview .preview-header img { width:84px }
}

/* ==========================================================================
   05. 英超专属外观与覆盖规则（追加至 sports-hfcm.css）
   ========================================================================== */
.tp-epl {
  --tp-sports-ink: #25292a;
  --tp-sports-muted: #58666c;
  --tp-sports-blue: #38003c; /* 英超标志性深紫 */
  --tp-sports-link: #6a0b77; /* 紫色系主链接色 */
  --tp-sports-line: #dce2e5;
  width: 100%; max-width: 1172px; margin: 0 auto 36px;
  color: var(--tp-sports-ink); text-align: left;
  font-family: "Open Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  font-size: 17px; line-height: 1.8; overflow-wrap: anywhere;
}
.tp-epl *, .tp-epl *::before, .tp-epl *::after { box-sizing: border-box; }
.tp-epl h2, .tp-epl h3, .tp-epl h4, .tp-epl p, .tp-epl figure { margin: 0; }
.tp-epl h2, .tp-epl h3, .tp-epl h4 { color: #14252b; font-family: "Montserrat", "Noto Sans SC", "Microsoft YaHei", sans-serif; font-weight: 600; text-transform: none; }
.tp-epl a { color: var(--tp-sports-link); text-decoration: none; }
.tp-epl a:hover { text-decoration: underline; }
.tp-epl a:focus-visible, .tp-epl summary:focus-visible { outline: 3px solid var(--tp-sports-link); outline-offset: 4px; }
.tp-epl .tp-epl-hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 36px; align-items: center; padding: 36px; background: #fff; border-top: 4px solid var(--tp-sports-blue); border-radius: 6px; }
.tp-epl .tp-epl-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; color: var(--tp-sports-muted); font-size: 13px; letter-spacing: .07em; }
.tp-epl .tp-epl-tag { padding: 2px 9px; background: #f5ebf7; color: #4b0052; font-size: 12px; font-weight: 600; letter-spacing: .02em; border-radius: 3px; }
.tp-epl .tp-epl-title { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.35; letter-spacing: -.02em; margin-bottom: 18px; }
.tp-epl .tp-epl-lead { margin-bottom: 10px; }
.tp-epl .tp-epl-sub { color: var(--tp-sports-muted); font-size: 15px; }

/* 英超视觉 Poster 卡片 */
.tp-epl .tp-epl-poster { position: relative; isolation: isolate; overflow: hidden; min-height: 310px; padding: 28px; border-radius: 5px; background: linear-gradient(135deg, #230128, #420649); color: #fff; }
.tp-epl .tp-epl-poster::before { content: ""; position: absolute; inset: 34px 25px; border: 1px solid rgba(255,255,255,.14); border-radius: 45%; transform: rotate(-18deg); z-index: -1; }
.tp-epl .tp-epl-poster::after { content: ""; position: absolute; width: 180px; height: 180px; right: -50px; top: -60px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; z-index: -1; }
.tp-epl .tp-epl-poster-label { color: #f2c7fa; font-size: 12px; letter-spacing: .12em; }
.tp-epl .tp-epl-poster-season { display: block; margin: 18px 0 6px; color: #fff; font: 600 clamp(31px,3.8vw,47px)/1.2 "Montserrat",sans-serif; letter-spacing: -.04em; }
.tp-epl .tp-epl-poster-title { color: #fff; font-size: 21px; font-weight: 600; }
.tp-epl .tp-epl-poster-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; padding-top: 20px; border-top: 1px solid #6b3573; }
.tp-epl .tp-epl-poster-meta strong { display: block; color: #fff; font-size: 23px; line-height: 1.3; }
.tp-epl .tp-epl-poster-meta span { display: block; margin-top: 5px; color: #e6c8ec; font-size: 12px; }

.tp-epl .tp-epl-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; margin: 14px 0 26px; color: var(--tp-sports-muted); font-size: 12px; }
.tp-epl .tp-epl-section-head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 20px; margin: 30px 0 14px; }
.tp-epl .tp-epl-section-head h3 { font-size: 22px; line-height: 1.5; }
.tp-epl .tp-epl-section-head p { color: var(--tp-sports-muted); font-size: 14px; }

/* 资格线路卡片 */
.tp-epl .tp-epl-routes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.tp-epl .tp-epl-route { padding: 20px 22px; background: #fff; border: 1px solid var(--tp-sports-line); border-top: 3px solid var(--tp-sports-blue); border-radius: 4px; }
.tp-epl .tp-epl-route:nth-child(2) { border-top-color: #be9347; }
.tp-epl .tp-epl-route:nth-child(3) { border-top-color: #bf2441; }
.tp-epl .tp-epl-route-rank { display: block; color: var(--tp-sports-link); font-size: 24px; font-weight: 600; line-height: 1.4; }
.tp-epl .tp-epl-route h4 { margin: 9px 0 7px; font-size: 17px; line-height: 1.5; }
.tp-epl .tp-epl-route p { color: var(--tp-sports-muted); font-size: 13px; line-height: 1.8; }
.tp-epl .tp-epl-source { margin-top: 14px; color: var(--tp-sports-muted); font-size: 12px; line-height: 1.8; }

/* 折叠手风琴面板 */
.tp-epl .tp-epl-fold { margin: 0 0 12px; background: #fff; border: 1px solid var(--tp-sports-line); border-radius: 6px; }
.tp-epl .tp-epl-fold > summary { display: flex; align-items: center; gap: 18px; padding: 21px 24px; cursor: pointer; list-style: none; }
.tp-epl .tp-epl-fold > summary::-webkit-details-marker { display: none; }
.tp-epl .tp-epl-fold > summary::marker { content: ""; }
.tp-epl .tp-epl-fold > summary::after { content: "+"; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: 0 0 28px; margin-left: auto; color: var(--tp-sports-link); background: #f8eff9; border-radius: 50%; font: 400 23px/1 sans-serif; }
.tp-epl .tp-epl-fold[open] > summary::after { content: "−"; }
.tp-epl .tp-epl-fold > summary:hover { background: #fdfafc; border-radius: 6px; }
.tp-epl .tp-epl-year { flex: 0 0 100px; color: var(--tp-sports-link); font: 600 21px/1.4 "Montserrat", sans-serif; font-variant-numeric: tabular-nums; }
.tp-epl .tp-epl-summary-text { display: block; min-width: 0; }
.tp-epl .tp-epl-summary-text strong { display: block; color: #14252b; font-size: 18px; font-weight: 600; line-height: 1.5; }
.tp-epl .tp-epl-summary-text small { display: block; margin-top: 2px; color: var(--tp-sports-muted); font-size: 13px; line-height: 1.6; }
.tp-epl .tp-epl-fold-content { margin: 0 24px; padding: 24px 0; border-top: 1px solid var(--tp-sports-line); }
.tp-epl .tp-epl-note { color: var(--tp-sports-muted); font-size: 13px; line-height: 1.75; }

/* 表格与对阵列表 */
.tp-epl .tp-epl-table-wrap { overflow-x: auto; }
.tp-epl .tp-epl-table { width: 100%; margin: 0; border-collapse: collapse; border: 0; table-layout: fixed; font-size: 14px; line-height: 1.7; }
.tp-epl .tp-epl-table th, .tp-epl .tp-epl-table td { border: 0; border-bottom: 1px solid #edf0f2; padding: 11px 12px; vertical-align: top; text-align: left; overflow-wrap: anywhere; }
.tp-epl .tp-epl-table thead th { background: #f8f4f9; color: #14252b; font-weight: 600; }
.tp-epl .tp-epl-table tbody th { font-weight: 400; }
.tp-epl .tp-epl-table td:last-child { color: var(--tp-sports-muted); font-weight: 400; }
.tp-epl .tp-epl-match-table td:nth-child(2) a { display: inline; color: #14252b; font-weight: 600; }
.tp-epl .tp-epl-match-table tbody th { white-space: nowrap; font-size: 13px; color: var(--tp-sports-link); font-weight: 600; }
.tp-epl .tp-epl-clock { display: block; font-size: 18px; color: var(--tp-sports-link); font-weight: 600; }
.tp-epl .tp-epl-calendar tbody th { color: var(--tp-sports-link); font-weight: 600; }
.tp-epl .tp-epl-rule-list { margin: 0; padding-left: 1.3em; }
.tp-epl .tp-epl-rule-list li { margin: 0 0 10px; font-size: 15px; }
.tp-epl .tp-epl-rule-list li:last-child { margin-bottom: 0; }
.tp-epl .tp-epl-rule-list strong { color: #14252b; }

/* 分析卡片与赔率盒子 */
.tp-epl .tp-epl-lookahead { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.tp-epl .tp-epl-observation { padding: 22px; background: #fff; border: 1px solid var(--tp-sports-line); border-radius: 4px; }
.tp-epl .tp-epl-observation h4 { margin-bottom: 10px; font-size: 17px; line-height: 1.6; }
.tp-epl .tp-epl-observation p { color: var(--tp-sports-muted); font-size: 14px; line-height: 1.9; }
.tp-epl .tp-epl-odds { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 14px 24px; padding: 22px 24px; background: #faf6fb; border-left: 3px solid var(--tp-sports-blue); border-radius: 3px; margin-top: 18px; }
.tp-epl .tp-epl-odds h3 { font-size: 18px; line-height: 1.7; }
.tp-epl .tp-epl-odds p { font-size: 14px; color: var(--tp-sports-muted); }
.tp-epl .tp-epl-footnote { margin-top: 22px; padding-top: 16px; border-top: 1px solid #cbd3d8; }

/* 响应式断点 */
@media (max-width: 900px) {
  .tp-epl .tp-epl-hero { gap: 24px; padding: 26px; }
}
@media (max-width: 640px) {
  .tp-epl { font-size: 16px; margin-bottom: 24px; }
  .tp-epl .tp-epl-hero { grid-template-columns: 1fr; padding: 22px 18px; gap: 24px; }
  .tp-epl .tp-epl-poster { padding: 24px; min-height: 285px; }
  .tp-epl .tp-epl-poster-season { font-size: 36px; }
  .tp-epl .tp-epl-title { font-size: 29px; }
  .tp-epl .tp-epl-section-head { margin-top: 24px; }
  .tp-epl .tp-epl-section-head h3 { font-size: 20px; }
  .tp-epl .tp-epl-routes { grid-template-columns: 1fr; gap: 10px; }
  .tp-epl .tp-epl-route { padding: 17px 18px; }
  .tp-epl .tp-epl-fold > summary { gap: 12px; padding: 17px 16px; flex-wrap: wrap; }
  .tp-epl .tp-epl-year { flex: 0 0 100%; font-size: 17px; }
  .tp-epl .tp-epl-summary-text { flex: 1 1 0; }
  .tp-epl .tp-epl-summary-text strong { font-size: 17px; }
  .tp-epl .tp-epl-summary-text small { font-size: 12px; }
  .tp-epl .tp-epl-fold-content { margin: 0 16px; padding: 20px 0; }
  .tp-epl .tp-epl-table { font-size: 12px; }
  .tp-epl .tp-epl-table th, .tp-epl .tp-epl-table td { padding: 10px 6px; }
  .tp-epl .tp-epl-match-table tbody th { font-size: 11px; }
  .tp-epl .tp-epl-match-table .tp-epl-clock { font-size: 16px; }
  .tp-epl .tp-epl-lookahead { grid-template-columns: 1fr; }
  .tp-epl .tp-epl-odds { grid-template-columns: 1fr; gap: 7px; padding: 18px; }
}

/* ==========================================================================
   体育综合专栏（Sports Hub）专属竞技风格 CSS
   可直接追加至 sports-hfcm.css 或在后台 CSS 中统一加载
   ========================================================================== */
.tp-sports-hub {
  --sh-bg-deep: #0e1726;
  --sh-bg-card: #152238;
  --sh-bg-card-hover: #1c2d4a;
  --sh-accent-green: #00e676;
  --sh-accent-blue: #00b0ff;
  --sh-accent-gold: #ffab00;
  --sh-text-light: #f4f7fb;
  --sh-text-muted: #8ea1b4;
  --sh-line: rgba(255, 255, 255, 0.1);
  --sh-glow: rgba(0, 230, 118, 0.15);

  width: 100%;
  max-width: 1172px;
  margin: 0 auto 36px;
  color: var(--sh-text-light);
  font-family: "Montserrat", "Open Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  font-size: 16px;
  line-height: 1.75;
  box-sizing: border-box;
}

.tp-sports-hub *,
.tp-sports-hub *::before,
.tp-sports-hub *::after {
  box-sizing: border-box;
}

/* 模块一：竞技仪表盘风格 Hero 布局 */
.tp-sports-hub .tp-sh-hero {
  position: relative;
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 32px;
  align-items: center;
  padding: 38px 40px;
  background: radial-gradient(circle at 85% 15%, #1d3153 0%, var(--sh-bg-deep) 70%);
  border: 1px solid var(--sh-line);
  border-left: 6px solid var(--sh-accent-green);
  border-radius: 8px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.35);
  overflow: hidden;
}

/* 动感倾斜竞技水印 */
.tp-sports-hub .tp-sh-hero::before {
  content: "SPORTS";
  position: absolute;
  right: -25px;
  bottom: -40px;
  font-size: 150px;
  font-weight: 900;
  font-style: italic;
  letter-spacing: -0.05em;
  color: rgba(255, 255, 255, 0.025);
  pointer-events: none;
  line-height: 1;
}

.tp-sports-hub .tp-sh-eyebrow {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
}

.tp-sports-hub .tp-sh-pulse-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  background: rgba(0, 230, 118, 0.12);
  border: 1px solid rgba(0, 230, 118, 0.35);
  border-radius: 20px;
  color: var(--sh-accent-green);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.tp-sports-hub .tp-sh-pulse-dot {
  width: 7px;
  height: 7px;
  background: var(--sh-accent-green);
  border-radius: 50%;
  box-shadow: 0 0 8px var(--sh-accent-green);
  animation: tpPulse 2s infinite;
}

@keyframes tpPulse {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

.tp-sports-hub .tp-sh-eyebrow-text {
  color: var(--sh-text-muted);
  font-size: 13px;
  letter-spacing: 0.04em;
}

.tp-sports-hub .tp-sh-title {
  margin: 0 0 16px;
  color: #fff;
  font-size: clamp(30px, 3.4vw, 42px);
  font-weight: 800;
  font-style: italic;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

.tp-sports-hub .tp-sh-title span {
  color: var(--sh-accent-green);
  font-style: normal;
}

.tp-sports-hub .tp-sh-lead {
  margin: 0 0 12px;
  color: #d8e3ec;
  font-size: 16px;
  line-height: 1.8;
}

.tp-sports-hub .tp-sh-sub {
  margin: 0;
  color: var(--sh-text-muted);
  font-size: 14px;
  line-height: 1.7;
}

/* 竞技联赛看板卡片（Hero 右侧） */
.tp-sports-hub .tp-sh-board {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 22px;
  background: rgba(21, 34, 56, 0.85);
  border: 1px solid var(--sh-line);
  border-radius: 6px;
  backdrop-filter: blur(8px);
}

.tp-sports-hub .tp-sh-board-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--sh-line);
}

.tp-sports-hub .tp-sh-board-head strong {
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.tp-sports-hub .tp-sh-board-head span {
  color: var(--sh-accent-gold);
  font-size: 12px;
  font-weight: 600;
}

.tp-sports-hub .tp-sh-grid-leagues {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.tp-sports-hub .tp-sh-league-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 4px;
  transition: all 0.2s ease;
}

.tp-sports-hub .tp-sh-league-item:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--sh-accent-blue);
  transform: translateY(-2px);
}

.tp-sports-hub .tp-sh-league-name {
  color: #fff;
  font-weight: 700;
  font-size: 14px;
}

.tp-sports-hub .tp-sh-league-type {
  color: var(--sh-text-muted);
  font-size: 11px;
}

/* 竞技数据流条（Meta Ribbon） */
.tp-sports-hub .tp-sh-meta-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin: 18px 0 32px;
  padding: 14px 20px;
  background: #121c2e;
  border: 1px solid var(--sh-line);
  border-radius: 4px;
  font-size: 13px;
  color: var(--sh-text-muted);
}

.tp-sports-hub .tp-sh-meta-bar span strong {
  color: #fff;
  font-weight: 600;
}

.tp-sports-hub .tp-sh-meta-bar a {
  color: var(--sh-accent-green);
  text-decoration: none;
  font-weight: 600;
}

.tp-sports-hub .tp-sh-meta-bar a:hover {
  text-decoration: underline;
}

/* 模块五：战术板风格的盘口解析与数据板块 */
.tp-sports-hub .tp-sh-odds-hub {
  padding: 30px;
  background: #121c2e;
  border: 1px solid var(--sh-line);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

.tp-sports-hub .tp-sh-hub-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-bottom: 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--sh-line);
}

.tp-sports-hub .tp-sh-hub-head h3 {
  margin: 0;
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  font-style: italic;
  letter-spacing: -0.01em;
}

.tp-sports-hub .tp-sh-hub-head p {
  margin: 0;
  color: var(--sh-text-muted);
  font-size: 13px;
}

/* 三列战术盘口卡片 */
.tp-sports-hub .tp-sh-tactics-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.tp-sports-hub .tp-sh-tactic-card {
  padding: 20px;
  background: var(--sh-bg-card);
  border: 1px solid var(--sh-line);
  border-top: 3px solid var(--sh-accent-green);
  border-radius: 4px;
  transition: all 0.25s ease;
}

.tp-sports-hub .tp-sh-tactic-card:nth-child(2) {
  border-top-color: var(--sh-accent-blue);
}

.tp-sports-hub .tp-sh-tactic-card:nth-child(3) {
  border-top-color: var(--sh-accent-gold);
}

.tp-sports-hub .tp-sh-tactic-card:hover {
  background: var(--sh-bg-card-hover);
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

.tp-sports-hub .tp-sh-card-badge {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--sh-accent-green);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.tp-sports-hub .tp-sh-tactic-card:nth-child(2) .tp-sh-card-badge {
  color: var(--sh-accent-blue);
}

.tp-sports-hub .tp-sh-tactic-card:nth-child(3) .tp-sh-card-badge {
  color: var(--sh-accent-gold);
}

.tp-sports-hub .tp-sh-tactic-card h4 {
  margin: 0 0 10px;
  color: #fff;
  font-size: 17px;
  font-weight: 700;
}

.tp-sports-hub .tp-sh-tactic-card p {
  margin: 0;
  color: #b2c3d4;
  font-size: 13.5px;
  line-height: 1.7;
}

/* 底部公告与说明 */
.tp-sports-hub .tp-sh-alert {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background: rgba(0, 176, 255, 0.06);
  border: 1px solid rgba(0, 176, 255, 0.2);
  border-radius: 4px;
}

.tp-sports-hub .tp-sh-alert-icon {
  flex: 0 0 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 176, 255, 0.15);
  border-radius: 50%;
  color: var(--sh-accent-blue);
  font-size: 16px;
  font-weight: 800;
}

.tp-sports-hub .tp-sh-alert-text {
  color: #d1e2f3;
  font-size: 13.5px;
  line-height: 1.6;
}

.tp-sports-hub .tp-sh-footnote {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  color: var(--sh-text-muted);
  font-size: 12px;
  line-height: 1.6;
}

/* 响应式断点适配 */
@media (max-width: 900px) {
  .tp-sports-hub .tp-sh-hero {
    grid-template-columns: 1fr;
    padding: 28px 24px;
    gap: 26px;
  }
  .tp-sports-hub .tp-sh-tactics-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

@media (max-width: 640px) {
  .tp-sports-hub {
    font-size: 15px;
    margin-bottom: 24px;
  }
  .tp-sports-hub .tp-sh-hero {
    padding: 22px 18px;
  }
  .tp-sports-hub .tp-sh-title {
    font-size: 27px;
  }
  .tp-sports-hub .tp-sh-grid-leagues {
    grid-template-columns: 1fr;
  }
  .tp-sports-hub .tp-sh-odds-hub {
    padding: 20px 16px;
  }
  .tp-sports-hub .tp-sh-alert {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}


/* ==========================================================================
   电子竞技核心战术终端（Esports HUD & Cyber Arena）独立 CSS
   设计语言：赛博切角（Chamfered Cuts）、霓虹光效、战术 HUD 仪表与低饱和度暗夜底色
   完全独立，无任何外部依赖
   ========================================================================== */
.tp-esports-arena {
  --ea-bg-void: #080a11;
  --ea-bg-panel: #0e1322;
  --ea-bg-card: #13192c;
  --ea-bg-card-hover: #18223d;
  --ea-cyan: #00f3ff;
  --ea-magenta: #ff0055;
  --ea-lime: #00ffa3;
  --ea-purple: #9d4edd;
  --ea-yellow: #ffe600;
  --ea-text: #f0f4fc;
  --ea-text-muted: #7e8fa6;
  --ea-border: rgba(0, 243, 255, 0.18);
  --ea-border-active: rgba(0, 243, 255, 0.5);

  width: 100%;
  max-width: 1172px;
  margin: 0 auto 36px;
  color: var(--ea-text);
  font-family: "Montserrat", "SF Pro Display", -apple-system, "Segoe UI", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  font-size: 15px;
  line-height: 1.75;
  box-sizing: border-box;
}

.tp-esports-arena *,
.tp-esports-arena *::before,
.tp-esports-arena *::after {
  box-sizing: border-box;
}

/* 模块一：HUD 战术终端 Hero 容器 */
.tp-esports-arena .tp-ea-hero {
  position: relative;
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 36px;
  align-items: center;
  padding: 40px;
  background: 
    linear-gradient(135deg, rgba(0, 243, 255, 0.05) 0%, transparent 40%),
    radial-gradient(circle at 85% 15%, #182442 0%, var(--ea-bg-panel) 65%, var(--ea-bg-void) 100%);
  border: 1px solid var(--ea-border);
  /* 赛博切角几何轮廓 */
  clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 28px 100%, 0 calc(100% - 28px));
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  overflow: hidden;
}

/* 战术网格与水印装饰 */
.tp-esports-arena .tp-ea-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: 
    linear-gradient(to right, rgba(0, 243, 255, 0.025) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0, 243, 255, 0.025) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
}

.tp-esports-arena .tp-ea-hero::after {
  content: "HUD // TACTICAL";
  position: absolute;
  right: 28px;
  bottom: 12px;
  font-family: monospace;
  font-size: 11px;
  letter-spacing: 0.2em;
  color: rgba(0, 243, 255, 0.15);
  pointer-events: none;
}

.tp-esports-arena .tp-ea-eyebrow {
  position: relative;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 18px;
  z-index: 1;
}

.tp-esports-arena .tp-ea-badge-live {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 3px 10px;
  background: rgba(255, 0, 85, 0.12);
  border: 1px solid rgba(255, 0, 85, 0.4);
  border-radius: 2px;
  color: #ff3377;
  font-family: monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.tp-esports-arena .tp-ea-live-dot {
  width: 6px;
  height: 6px;
  background: var(--ea-magenta);
  border-radius: 50%;
  box-shadow: 0 0 8px var(--ea-magenta);
  animation: eaPulse 1.6s infinite;
}

@keyframes eaPulse {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.6; }
}

.tp-esports-arena .tp-ea-badge-meta {
  color: var(--ea-cyan);
  font-family: monospace;
  font-size: 12px;
  letter-spacing: 0.08em;
}

.tp-esports-arena .tp-ea-title {
  position: relative;
  margin: 0 0 16px;
  color: #fff;
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 900;
  font-style: italic;
  letter-spacing: -0.01em;
  line-height: 1.25;
  text-transform: uppercase;
  z-index: 1;
}

.tp-esports-arena .tp-ea-title span {
  background: linear-gradient(90deg, var(--ea-cyan), var(--ea-lime));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-style: normal;
}

.tp-esports-arena .tp-ea-lead {
  position: relative;
  margin: 0 0 12px;
  color: #d1deef;
  font-size: 15px;
  line-height: 1.8;
  z-index: 1;
}

.tp-esports-arena .tp-ea-sub {
  position: relative;
  margin: 0;
  color: var(--ea-text-muted);
  font-size: 13.5px;
  line-height: 1.7;
  z-index: 1;
}

/* 核心游戏矩阵 HUD 机组（Hero 右侧） */
.tp-esports-arena .tp-ea-loadout {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  background: rgba(10, 14, 25, 0.9);
  border: 1px solid rgba(0, 243, 255, 0.2);
  border-radius: 4px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4), inset 0 0 15px rgba(0, 243, 255, 0.04);
  z-index: 1;
}

.tp-esports-arena .tp-ea-loadout-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.tp-esports-arena .tp-ea-loadout-head strong {
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.12em;
  font-family: monospace;
}

.tp-esports-arena .tp-ea-loadout-head span {
  color: var(--ea-cyan);
  font-size: 11px;
  font-family: monospace;
}

.tp-esports-arena .tp-ea-game-tile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-left: 3px solid var(--ea-cyan);
  transition: all 0.2s ease;
}

.tp-esports-arena .tp-ea-game-tile:nth-child(2) { border-left-color: var(--ea-cyan); }
.tp-esports-arena .tp-ea-game-tile:nth-child(3) { border-left-color: var(--ea-purple); }
.tp-esports-arena .tp-ea-game-tile:nth-child(4) { border-left-color: var(--ea-lime); }
.tp-esports-arena .tp-ea-game-tile:nth-child(5) { border-left-color: var(--ea-magenta); }
.tp-esports-arena .tp-ea-game-tile:nth-child(6) { border-left-color: var(--ea-yellow); }

.tp-esports-arena .tp-ea-game-tile:hover {
  background: rgba(0, 243, 255, 0.06);
  border-color: var(--ea-border-active);
  transform: translateX(4px);
}

.tp-esports-arena .tp-ea-game-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.tp-esports-arena .tp-ea-game-meta code {
  color: var(--ea-text-muted);
  font-size: 11px;
  font-family: monospace;
}

.tp-esports-arena .tp-ea-game-name {
  color: #fff;
  font-weight: 700;
  font-size: 13.5px;
}

.tp-esports-arena .tp-ea-game-tag {
  color: var(--ea-text-muted);
  font-size: 11px;
  font-family: monospace;
}

/* 战况参数数据状态带（Meta Ribbon） */
.tp-esports-arena .tp-ea-telemetry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin: 18px 0 32px;
  padding: 12px 20px;
  background: var(--ea-bg-panel);
  border: 1px solid var(--ea-border);
  font-size: 12.5px;
  color: var(--ea-text-muted);
  font-family: monospace;
}

.tp-esports-arena .tp-ea-telemetry strong {
  color: #fff;
}

.tp-esports-arena .tp-ea-telemetry a {
  color: var(--ea-cyan);
  text-decoration: none;
  font-weight: 700;
}

.tp-esports-arena .tp-ea-telemetry a:hover {
  text-decoration: underline;
}

/* 模块五：战术终端与盘口研判 */
.tp-esports-arena .tp-ea-command-hub {
  position: relative;
  padding: 32px;
  background: var(--ea-bg-panel);
  border: 1px solid var(--ea-border);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0 100%);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45);
}

.tp-esports-arena .tp-ea-hub-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-bottom: 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.tp-esports-arena .tp-ea-hub-head h3 {
  margin: 0;
  color: #fff;
  font-size: 21px;
  font-weight: 800;
  font-style: italic;
  letter-spacing: -0.01em;
}

.tp-esports-arena .tp-ea-hub-head code {
  color: var(--ea-cyan);
  font-size: 11px;
  font-family: monospace;
}

/* 三列战术解析卡片 */
.tp-esports-arena .tp-ea-tactics-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.tp-esports-arena .tp-ea-card {
  position: relative;
  padding: 20px;
  background: var(--ea-bg-card);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-top: 2px solid var(--ea-cyan);
  transition: all 0.25s ease;
}

.tp-esports-arena .tp-ea-card:nth-child(2) { border-top-color: var(--ea-magenta); }
.tp-esports-arena .tp-ea-card:nth-child(3) { border-top-color: var(--ea-lime); }

.tp-esports-arena .tp-ea-card:hover {
  background: var(--ea-bg-card-hover);
  border-color: var(--ea-border-active);
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}

.tp-esports-arena .tp-ea-card-tag {
  display: block;
  margin-bottom: 8px;
  color: var(--ea-cyan);
  font-size: 11px;
  font-family: monospace;
  letter-spacing: 0.08em;
}

.tp-esports-arena .tp-ea-card:nth-child(2) .tp-ea-card-tag { color: var(--ea-magenta); }
.tp-esports-arena .tp-ea-card:nth-child(3) .tp-ea-card-tag { color: var(--ea-lime); }

.tp-esports-arena .tp-ea-card h4 {
  margin: 0 0 10px;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
}

.tp-esports-arena .tp-ea-card p {
  margin: 0;
  color: #9cb0c9;
  font-size: 13px;
  line-height: 1.7;
}

/* 控制台日志风格告示框 */
.tp-esports-arena .tp-ea-console {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background: rgba(0, 243, 255, 0.03);
  border: 1px solid rgba(0, 243, 255, 0.2);
  border-left: 3px solid var(--ea-cyan);
}

.tp-esports-arena .tp-ea-console-icon {
  flex: 0 0 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 243, 255, 0.12);
  color: var(--ea-cyan);
  font-family: monospace;
  font-size: 13px;
  font-weight: 800;
}

.tp-esports-arena .tp-ea-console-text {
  color: #c4d6eb;
  font-size: 13px;
  line-height: 1.6;
}

.tp-esports-arena .tp-ea-footnote {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  color: var(--ea-text-muted);
  font-size: 12px;
  line-height: 1.6;
  font-family: monospace;
}

/* 响应式断点适配 */
@media (max-width: 900px) {
  .tp-esports-arena .tp-ea-hero {
    grid-template-columns: 1fr;
    padding: 28px 24px;
    gap: 24px;
    clip-path: none;
    border-radius: 6px;
  }
  .tp-esports-arena .tp-ea-command-hub {
    clip-path: none;
    border-radius: 6px;
  }
  .tp-esports-arena .tp-ea-tactics-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

@media (max-width: 640px) {
  .tp-esports-arena {
    font-size: 14px;
    margin-bottom: 24px;
  }
  .tp-esports-arena .tp-ea-hero {
    padding: 20px 16px;
  }
  .tp-esports-arena .tp-ea-title {
    font-size: 25px;
  }
  .tp-esports-arena .tp-ea-command-hub {
    padding: 20px 16px;
  }
  .tp-esports-arena .tp-ea-console {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
}
