/*
 * Final UI polish layer.
 * Loaded after all route styles so every template shares one readable type
 * scale, one colour system and the same control behaviour.
 */

:root,
body.sb-redesign {
    --ui-primary: #0c8a61;
    --ui-primary-dark: #086447;
    --ui-primary-soft: #edf8f3;
    --ui-navy: #102f44;
    --ui-text: #172a34;
    --ui-muted: #647780;
    --ui-line: #dbe6e1;
    --ui-canvas: #f4f7f5;
    --ui-card: #ffffff;
    --ui-live: #ef5268;
    --ui-gold: #d5a126;
    --ui-radius: 12px;
    --ui-shadow: 0 8px 24px rgba(25, 55, 45, .065);
    --portal-navy: var(--ui-navy);
    --portal-navy-2: #174861;
    --portal-green: var(--ui-primary);
    --portal-green-dark: var(--ui-primary-dark);
    --portal-green-soft: var(--ui-primary-soft);
    --portal-bg: var(--ui-canvas);
    --portal-surface: var(--ui-card);
    --portal-line: var(--ui-line);
    --portal-text: var(--ui-text);
    --portal-muted: var(--ui-muted);
    --theme-primary: var(--ui-primary) !important;
    --theme-primary-hover: var(--ui-primary-dark) !important;
    --theme-accent: var(--ui-primary) !important;
    --theme-deep: var(--ui-navy) !important;
    --theme-gold: var(--ui-gold) !important;
    --sb-green: var(--ui-primary) !important;
    --sb-green-2: var(--ui-primary-dark) !important;
    --sb-red: var(--ui-primary) !important;
    --sb-red-2: var(--ui-primary-dark) !important;
    --sb-blue: var(--ui-navy) !important;
    --sb-blue-2: #174861 !important;
    --sb-soft: var(--ui-canvas) !important;
    --sb-card: var(--ui-card) !important;
    --sb-line: var(--ui-line) !important;
    --sb-ink: var(--ui-text) !important;
    --sb-muted: var(--ui-muted) !important;
}

html { overflow-x: hidden; }

body.sb-redesign {
    overflow-x: clip;
    color: var(--ui-text) !important;
    background: var(--ui-canvas) !important;
    font-size: 14px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.sb-redesign *,
body.sb-redesign *::before,
body.sb-redesign *::after { box-sizing: border-box; }

body.sb-redesign img { max-width: 100%; }
body.sb-redesign main,
body.sb-redesign .site-container,
body.sb-redesign .container { min-width: 0; }

body.sb-redesign a {
    text-underline-offset: 3px;
    transition: color .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.sb-redesign a:focus-visible,
body.sb-redesign button:focus-visible {
    outline: 3px solid rgba(12, 138, 97, .22) !important;
    outline-offset: 2px;
}

/* Header and navigation */
body.sb-redesign .sb-site-header { color: var(--ui-text); }
body.sb-redesign .sb-masthead { background: #fff !important; }
body.sb-redesign .sb-brand {
    min-width: 0;
    white-space: nowrap;
}
body.sb-redesign .sb-brand > a {
    display: inline-flex !important;
    align-items: center !important;
    flex-flow: row nowrap !important;
    gap: 8px;
    width: max-content;
    white-space: nowrap !important;
}
body.sb-redesign .sb-brand-wordmark {
    display: inline-flex !important;
    align-items: baseline;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 3px;
    color: var(--ui-navy) !important;
    font-weight: 950;
    letter-spacing: -.04em;
    line-height: 1 !important;
    white-space: nowrap !important;
}
body.sb-redesign .sb-brand-wordmark b { color: var(--ui-primary) !important; }
body.sb-redesign .jzt-frame-logo .sb-brand-wordmark > span {
    display: inline !important;
    overflow: visible !important;
    white-space: nowrap !important;
}
body.sb-redesign .sb-brand > a > small {
    display: inline-block;
    flex: 0 0 auto;
    white-space: nowrap;
}
body.sb-redesign .sb-main-nav-bar { background: var(--ui-navy) !important; }
body.sb-redesign .sb-primary-nav > ul > li > a,
body.sb-redesign .sb-primary-nav > ul > li > button { color: #eef7f3 !important; }
body.sb-redesign .sb-primary-nav > ul > li > :is(a, button):hover,
body.sb-redesign .sb-primary-nav > ul > li > :is(a, button).is-current {
    color: #fff !important;
    background: rgba(255, 255, 255, .1) !important;
}
body.sb-redesign .sb-league-rail { border-bottom-color: var(--ui-line) !important; background: #fff !important; }
body.sb-redesign .sb-league-rail a:hover,
body.sb-redesign .sb-league-rail a.is-current { color: var(--ui-primary-dark) !important; background: var(--ui-primary-soft) !important; }

/* Shared card language */
body.sb-redesign :where(
    .fl-panel, .pl-news-section, .fl-home-note,
    .sp-match-card, .sp-smart-card,
    .mod-box, .wg, .side-card, .hub-header, .hub-main,
    .cat-hub-header, .cat-main-col, .portal-table-container,
    .jzt-dir-main-box, .jzt-dir-seo-box,
    .team-info-card, .player-info-card, .article-main
) {
    border: 1px solid var(--ui-line) !important;
    border-radius: var(--ui-radius) !important;
    background: var(--ui-card) !important;
    box-shadow: var(--ui-shadow) !important;
}

body.sb-redesign :where(.mod-hd, .wg-hd, .side-card-hd, .fl-side-head, .sp-card-head) {
    color: var(--ui-navy) !important;
    border-bottom-color: var(--ui-line) !important;
    background: #fff !important;
}

body.sb-redesign :where(.mod-hd, .wg-hd, .side-card-hd) span,
body.sb-redesign :where(.mod-hd, .wg-hd, .side-card-hd) h2 {
    color: var(--ui-navy) !important;
    font-size: 16px !important;
    font-weight: 900 !important;
}

/* Shared buttons: readable, vertically centred and colour-safe on hover. */
body.sb-redesign :where(
    .px-live-button, .fl-match-action, .jzt-live-btn,
    .jzt-schedule-live-btn, .schedule-live-btn, .wc-live-btn,
    .sp-side-live-btn, .sp-player-live-btn, .side-match-btn,
    .jzt-article-live-btn, .seo-jzt-live-btn, .tag-btn-live,
    .yc-live-btn, .cg-btn, .dynamic-src, .btn-full-standings,
    .hub-btn, .league-filter-btn, .page-numbers,
    .more-link, .rdn-btn, .jzt-dir-pagination a,
    .fl-panel-head > a, .pl-section-heading > a
) {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center;
    white-space: nowrap;
}

body.sb-redesign :where(
    .jzt-schedule-live-btn, .schedule-live-btn, .wc-live-btn,
    .sp-side-live-btn, .sp-player-live-btn, .side-match-btn,
    .jzt-article-live-btn, .seo-jzt-live-btn, .tag-btn-live,
    .yc-live-btn, .cg-btn, .dynamic-src, .btn-full-standings, .hub-btn
) {
    color: var(--ui-primary-dark) !important;
    border: 1px solid #bcd9cd !important;
    background: #f7fbf9 !important;
    box-shadow: none !important;
}

body.sb-redesign :where(
    .jzt-schedule-live-btn, .schedule-live-btn, .wc-live-btn,
    .sp-side-live-btn, .sp-player-live-btn, .side-match-btn,
    .jzt-article-live-btn, .seo-jzt-live-btn, .tag-btn-live,
    .yc-live-btn, .cg-btn, .dynamic-src, .btn-full-standings, .hub-btn
):hover {
    color: #fff !important;
    border-color: var(--ui-primary-dark) !important;
    background: var(--ui-primary-dark) !important;
    box-shadow: 0 7px 16px rgba(8, 100, 71, .14) !important;
    transform: translateY(-1px);
}

body.sb-redesign :where(.x-mask-txt, .x-mask-txt[data-mt]) {
    color: inherit !important;
    background: transparent !important;
    line-height: inherit !important;
}

body.sb-redesign :where(.more-link, .rdn-btn, .jzt-dir-pagination a, .fl-panel-head > a, .pl-section-heading > a) {
    color: var(--ui-primary-dark) !important;
    border-color: #c9dfd5 !important;
    background: #fff !important;
}
body.sb-redesign :where(.more-link, .rdn-btn, .jzt-dir-pagination a, .fl-panel-head > a, .pl-section-heading > a):hover {
    color: #fff !important;
    border-color: var(--ui-primary) !important;
    background: var(--ui-primary) !important;
}

/* Homepage */
body.sb-template-home .pl-home { gap: 16px !important; }
body.sb-template-home .pl-home-hero,
body.sb-template-home .pl-league-tabs,
body.sb-template-home .fl-match-ticker { border-radius: var(--ui-radius) !important; }
body.sb-template-home .pl-home-hero {
    background: linear-gradient(125deg, var(--ui-navy), #114f55 72%, #0c8a61) !important;
    box-shadow: 0 12px 30px rgba(16, 47, 68, .14) !important;
}
body.sb-template-home .pl-home-hero-copy .fl-kicker { color: #8be2c0 !important; font-size: 12px !important; letter-spacing: .08em !important; }
body.sb-template-home .pl-home-hero-copy h1 { color: #fff !important; }
body.sb-template-home .pl-home-hero-copy p { color: #e5f2ee !important; font-size: 14px !important; line-height: 1.75 !important; }
body.sb-template-home .pl-home-hero-copy nav a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 40px !important;
    padding: 0 15px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
}
body.sb-template-home .pl-home-hero-copy nav a.is-primary { color: #fff !important; background: var(--ui-primary) !important; }
body.sb-template-home .pl-home-hero-copy nav a.is-primary:hover { background: var(--ui-primary-dark) !important; }

body.sb-template-home .pl-league-tabs a { border-color: var(--ui-line) !important; }
body.sb-template-home .pl-league-tabs span { color: var(--ui-navy) !important; font-size: 14px !important; font-weight: 900 !important; }
body.sb-template-home .pl-league-tabs small { color: var(--ui-muted) !important; font-size: 11px !important; }

body.sb-template-home :where(.fl-panel-head, .pl-section-heading) > div > span {
    color: var(--ui-primary-dark) !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    letter-spacing: .03em !important;
}
body.sb-template-home :where(.fl-panel-head, .pl-section-heading) h2 { color: var(--ui-navy) !important; }
body.sb-template-home :where(.fl-panel-head, .pl-section-heading) p { color: var(--ui-muted) !important; font-size: 13px !important; line-height: 1.65 !important; }

body.sb-template-home .fl-match-board .fl-panel-head nav {
    border-radius: 10px !important;
    background: #f5f8f6 !important;
}
body.sb-template-home .fl-match-board .fl-panel-head nav a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 34px !important;
    border-radius: 7px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}
body.sb-template-home .fl-match-board .fl-panel-head nav a.is-active,
body.sb-template-home .fl-match-board .fl-panel-head nav a:hover { color: #fff !important; background: var(--ui-primary) !important; }
body.sb-template-home .fl-match-table-head { color: var(--ui-muted) !important; font-size: 11px !important; }
body.sb-template-home .fl-match-row { border-bottom-color: var(--ui-line) !important; }
body.sb-template-home .fl-match-data > time small { font-size: 10px !important; }
body.sb-template-home .fl-match-league { font-size: 11px !important; }
body.sb-template-home .fl-match-team b { font-size: 13px !important; }
body.sb-template-home .fl-match-row > :is(.px-live-button, .fl-match-action) {
    color: #fff !important;
    border-color: var(--ui-primary) !important;
    border-radius: 8px !important;
    background: var(--ui-primary) !important;
    font-size: 12px !important;
}
body.sb-template-home .fl-match-row > :is(.px-live-button, .fl-match-action):hover { background: var(--ui-primary-dark) !important; }

body.sb-template-home .pl-quick-list strong { font-size: 13px !important; }
body.sb-template-home .pl-quick-list small { color: var(--ui-muted) !important; font-size: 11px !important; }
body.sb-template-home .pl-quick-list > a > i { font-size: 12px !important; }
body.sb-template-home .pl-news-section .fl-story strong,
body.sb-template-home .fl-briefs a { font-size: 13px !important; }

body.sb-template-home .pl-kickoff-table {
    gap: 10px !important;
    padding: 12px !important;
    background: #f7faf8 !important;
}
body.sb-template-home .pl-kickoff-row {
    min-height: 250px !important;
    border: 1px solid var(--ui-line) !important;
    border-radius: 11px !important;
    background: #fff !important;
    box-shadow: 0 5px 16px rgba(25, 55, 45, .045) !important;
}
body.sb-template-home .pl-kickoff-row::before { height: 4px !important; border-radius: 11px 11px 0 0; background: var(--ui-primary) !important; }
body.sb-template-home .pl-kickoff-league > i { width: 14px !important; height: 14px !important; border: 3px solid #dff2e9 !important; }
body.sb-template-home .pl-kickoff-league strong { font-size: 18px !important; }
body.sb-template-home .pl-kickoff-league small,
body.sb-template-home .pl-kickoff-row time small,
body.sb-template-home .pl-kickoff-scale small,
body.sb-template-home .pl-kickoff-season small { font-size: 11px !important; }
body.sb-template-home .pl-kickoff-row time strong { font-size: 16px !important; }
body.sb-template-home .pl-kickoff-scale strong,
body.sb-template-home .pl-kickoff-season strong { font-size: 13px !important; }
body.sb-template-home .pl-kickoff-row > nav a {
    min-height: 36px !important;
    border-radius: 8px !important;
    font-size: 11px !important;
}

body.sb-template-home .fl-home-note { padding: 20px 22px !important; }
body.sb-template-home .fl-home-note h2 { color: var(--ui-navy) !important; font-size: 20px !important; }
body.sb-template-home .fl-home-note p { color: #435861 !important; font-size: 14px !important; line-height: 1.8 !important; }
body.sb-template-home .fl-home-note nav a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 36px !important;
    padding: 0 12px !important;
    border: 1px solid var(--ui-line) !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}

/* Match template */
body.sb-template-match .sp-match-page { color: var(--ui-text); background: var(--ui-canvas) !important; }
body.sb-template-match .sp-match-hero {
    padding: 20px 0 24px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background:
        radial-gradient(circle at 12% 20%, rgba(12,138,97,.12), transparent 30%),
        linear-gradient(135deg, #f7faf8, #edf4f2) !important;
    box-shadow: inset 0 -1px 0 var(--ui-line) !important;
}
body.sb-template-match .sp-match-crumb {
    margin-bottom: 10px !important;
    color: var(--ui-muted) !important;
}
body.sb-template-match .sp-match-crumb :is(a, span) { color: var(--ui-muted) !important; }
body.sb-template-match .sp-match-stage-card {
    overflow: hidden;
    border: 1px solid #d7e5de;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(25, 55, 45, .10);
}
body.sb-template-match .sp-match-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--ui-line);
    background: linear-gradient(100deg, #fff, #f6faf8);
}
body.sb-template-match .sp-match-heading-copy { min-width: 0; }
body.sb-template-match .sp-match-heading-copy h1 {
    margin: 7px 0 0 !important;
    color: var(--ui-navy) !important;
    font-size: 24px !important;
    line-height: 1.3 !important;
    font-weight: 900;
}
body.sb-template-match .sp-match-league {
    min-height: 26px !important;
    padding: 0 10px !important;
    border: 1px solid #c7e0d5 !important;
    border-radius: 999px !important;
    color: var(--ui-primary-dark) !important;
    background: var(--ui-primary-soft) !important;
    font-size: 12px !important;
}
body.sb-template-match .sp-match-heading-meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 auto;
    gap: 14px;
}
body.sb-template-match .sp-match-heading-meta .sp-status-line { color: var(--ui-muted) !important; }
body.sb-template-match .sp-match-heading-meta .sp-status-pill {
    min-height: 28px;
    border-radius: 999px;
}
body.sb-template-match .sp-hero-actions { margin-top: 0 !important; }
body.sb-template-match .sp-scoreboard {
    grid-template-columns: minmax(0, 1fr) 176px minmax(0, 1fr) !important;
    grid-template-areas: "home core away";
    gap: 0 !important;
    overflow: hidden;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff;
}
body.sb-template-match .sp-team-panel:first-child { grid-area: home !important; }
body.sb-template-match .sp-score-core { grid-area: core !important; grid-column: auto !important; order: 0 !important; }
body.sb-template-match .sp-team-panel:last-child { grid-area: away !important; }
body.sb-template-match .sp-team-panel,
body.sb-template-match .sp-score-core {
    min-height: 210px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
body.sb-template-match .sp-team-panel {
    position: relative;
    align-items: center;
    padding: 24px 18px !important;
    background: #fff !important;
    text-align: center;
}
body.sb-template-match .sp-team-panel::after { display: none !important; }
body.sb-template-match .sp-team-link {
    flex-direction: column;
    justify-content: center;
    gap: 10px !important;
}
body.sb-template-match .sp-team-logo {
    width: 72px !important;
    height: 72px !important;
    border: 1px solid #dbe8e2 !important;
    box-shadow: 0 8px 20px rgba(18, 58, 45, .08) !important;
}
body.sb-template-match .sp-team-link strong {
    width: 100%;
    color: var(--ui-navy) !important;
    font-size: 20px !important;
    text-align: center;
    text-shadow: none !important;
}
body.sb-template-match .sp-team-role {
    position: static !important;
    top: auto !important;
    display: inline-flex !important;
    align-items: center;
    min-height: 24px;
    margin-bottom: 9px;
    padding: 0 9px;
    border: 1px solid #dce8e3;
    border-radius: 999px;
    color: var(--ui-muted) !important;
    background: #f5f8f6 !important;
}
body.sb-template-match .sp-team-panel p {
    margin-top: 10px !important;
    color: var(--ui-muted) !important;
    font-size: 12px !important;
}
body.sb-template-match .sp-score-core {
    position: relative;
    padding: 24px 12px !important;
    border-right: 1px solid rgba(255,255,255,.12) !important;
    border-left: 1px solid rgba(255,255,255,.12) !important;
    color: #fff;
    background: linear-gradient(145deg, var(--ui-navy), #0a715b) !important;
}
body.sb-template-match .sp-score-core::before {
    content: "";
    position: absolute;
    inset: 14px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 50%;
    pointer-events: none;
}
body.sb-template-match .sp-match-stage {
    position: relative;
    z-index: 1;
    display: inline-flex !important;
    align-items: center;
    min-height: 25px;
    padding: 0 10px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    color: #e8f5ef !important;
    background: rgba(255,255,255,.08) !important;
    font-size: 11px !important;
}
body.sb-template-match .sp-score-row { position: relative; z-index: 1; margin: 14px 0 0 !important; }
body.sb-template-match .sp-score-row:not(.is-pending) { gap: 5px !important; }
body.sb-template-match .sp-score-row:not(.is-pending) b {
    min-width: 42px !important;
    font-size: 48px !important;
}
body.sb-template-match .sp-score-row:not(.is-pending) span { font-size: 28px !important; }
body.sb-template-match .sp-score-row.is-pending span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    color: #fff !important;
    background: rgba(255,255,255,.10);
    font-size: 34px !important;
    letter-spacing: 1px !important;
    box-shadow: 0 12px 24px rgba(0,0,0,.15);
}
body.sb-template-match .sp-match-card { overflow: hidden; }
body.sb-template-match .sp-match-card h2 { color: var(--ui-navy) !important; font-size: 18px !important; }
body.sb-template-match .sp-hero-actions a.jzt-live-btn {
    min-height: 42px !important;
    padding: 0 17px !important;
    color: #fff !important;
    border: 1px solid var(--ui-primary) !important;
    border-radius: 10px !important;
    background: linear-gradient(135deg, var(--ui-primary), var(--ui-primary-dark)) !important;
    box-shadow: 0 8px 20px rgba(12,138,97,.20) !important;
}
body.sb-template-match .sp-hero-actions a.jzt-live-btn:hover {
    color: #fff !important;
    border-color: var(--ui-primary-dark) !important;
    background: var(--ui-primary-dark) !important;
    transform: translateY(-1px);
}
body.sb-template-match .sp-hero-actions a.jzt-live-btn :where(.x-mask-txt, i) { color: inherit !important; }
body.sb-template-match .sp-live-card { border-top: 3px solid var(--ui-primary) !important; }
body.sb-template-match .sp-live-card .sp-section-head > span {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 9px;
    border-radius: 999px;
    color: var(--ui-primary-dark) !important;
    background: var(--ui-primary-soft);
    white-space: nowrap;
}
body.sb-template-match .sp-live-body { gap: 14px !important; background: linear-gradient(180deg, #fff, #fbfdfc); }
body.sb-template-match .sp-live-lines {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}
body.sb-template-match .sp-live-lines a.jzt-live-btn {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    column-gap: 11px !important;
    row-gap: 2px !important;
    min-height: 72px !important;
    padding: 10px 13px !important;
    justify-content: stretch !important;
    text-align: left;
    color: var(--ui-primary-dark) !important;
    border: 1px solid #c8dfd5 !important;
    border-radius: 13px !important;
    background: linear-gradient(120deg, #f2faf6, #fff 72%) !important;
    box-shadow: 0 7px 18px rgba(25,55,45,.06) !important;
}
body.sb-template-match .sp-live-lines a.jzt-live-btn > i {
    grid-row: 1 / 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    color: #fff !important;
    background: linear-gradient(135deg, var(--ui-primary), var(--ui-primary-dark));
    font-size: 18px !important;
    box-shadow: 0 7px 14px rgba(12,138,97,.20);
}
body.sb-template-match .sp-live-lines a.jzt-live-btn .x-mask-txt {
    grid-column: 2;
    align-self: end;
    color: inherit !important;
    font-size: 14px !important;
    line-height: 1.3;
}
body.sb-template-match .sp-live-lines a.jzt-live-btn::after {
    content: "高清线路 · 点击观看";
    grid-column: 2 / 4;
    align-self: start;
    color: var(--ui-muted);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.3;
}
body.sb-template-match .sp-live-lines a.jzt-live-btn:first-child {
    color: #fff !important;
    border-color: transparent !important;
    background: linear-gradient(135deg, #0c9a6c, #086447) !important;
    box-shadow: 0 10px 22px rgba(12,138,97,.18) !important;
}
body.sb-template-match .sp-live-lines a.jzt-live-btn:first-child > i {
    border: 1px solid rgba(255,255,255,.30);
    background: rgba(255,255,255,.14);
    box-shadow: none;
}
body.sb-template-match .sp-live-lines a.jzt-live-btn:first-child::after { color: rgba(255,255,255,.78); }
body.sb-template-match .sp-live-lines a.jzt-live-btn:hover {
    color: #fff !important;
    border-color: var(--ui-primary-dark) !important;
    background: var(--ui-primary-dark) !important;
    box-shadow: 0 10px 22px rgba(12,138,97,.16) !important;
    transform: translateY(-1px);
}
body.sb-template-match .sp-live-lines a.jzt-live-btn:hover :is(.x-mask-txt, i),
body.sb-template-match .sp-live-lines a.jzt-live-btn:hover::after { color: #fff !important; }

/* Schedule, league and standings */
body.sb-template-schedule .sb-schedule-screen .col-main,
body.sb-template-league .layout-main,
body.sb-template-standings .portal-table-container { min-width: 0; }
body.sb-template-schedule .sb-schedule-screen .jzt-c-tabs,
body.sb-template-schedule .sb-schedule-screen .jzt-c-dates,
body.sb-template-schedule .sb-schedule-screen .jzt-league-filter-bar { border-color: var(--ui-line) !important; }
body.sb-template-schedule .sb-schedule-screen :is(.jzt-c-tabs a, .jzt-c-dates a, .league-filter-btn),
body.sb-template-league :is(.league-jzt-nav-links a, .league-matrix-links a),
body.sb-template-standings .jzt-league-matrix-nav a {
    min-height: 38px !important;
    color: var(--ui-text) !important;
    border-color: var(--ui-line) !important;
    border-radius: 8px !important;
    background: #fff !important;
    font-size: 13px !important;
}
body.sb-template-schedule .sb-schedule-screen :is(.jzt-c-tabs a, .jzt-c-dates a, .league-filter-btn).active,
body.sb-template-league .league-jzt-nav-links a.active,
body.sb-template-standings .jzt-league-matrix-nav a.active {
    color: #fff !important;
    border-color: var(--ui-primary) !important;
    background: var(--ui-primary) !important;
}
body.sb-template-schedule .sb-schedule-screen .jzt-league-group-title { color: var(--ui-primary-dark) !important; background: var(--ui-primary-soft) !important; }
body.sb-template-schedule .sb-schedule-screen .m-row,
body.sb-template-league .jzt-match-row {
    border-color: var(--ui-line) !important;
    border-radius: 10px !important;
    background: #fff !important;
}
body.sb-template-schedule .sb-schedule-screen .m-row:hover,
body.sb-template-league .jzt-match-row:hover { border-color: #b9d8ca !important; box-shadow: 0 7px 18px rgba(25,55,45,.07) !important; }
body.sb-template-schedule .sb-schedule-screen :is(.jzt-m-time .t-hi, .jzt-m-team, .jzt-m-team a) { color: var(--ui-text) !important; }
body.sb-template-schedule .sb-schedule-screen .jzt-m-act span { color: var(--ui-primary-dark) !important; border-color: #bcd9cd !important; }
body.sb-template-schedule .sb-schedule-screen .m-row:hover .jzt-m-act span { color: #fff !important; background: var(--ui-primary-dark) !important; }
body.sb-template-standings .jzt-table-standings { font-size: 13px !important; }
body.sb-template-standings .jzt-table-standings th { color: var(--ui-muted) !important; background: #f6f9f7 !important; }
body.sb-template-standings .jzt-table-standings td { color: var(--ui-text) !important; border-color: var(--ui-line) !important; }

/* Team, player, directories, category, hub and articles */
body.sb-redesign :where(.sb-team-screen, .sb-player-screen, .sb-directory-screen, .sb-category-screen, .sb-hub-screen) { color: var(--ui-text); }
body.sb-redesign :where(.jzt-dir-header h1, .cat-hub-header h1, .hub-header h1, .team-hero h1, .player-hero h1) { color: var(--ui-navy) !important; }
body.sb-redesign :where(.jzt-dir-team-card, .jzt-player-pill, .team-card, .st-card) {
    border-color: var(--ui-line) !important;
    border-radius: 10px !important;
    background: #fff !important;
}
body.sb-redesign :where(.jzt-dir-team-card, .jzt-player-pill, .team-card, .st-card):hover {
    border-color: #b9d8ca !important;
    background: var(--ui-primary-soft) !important;
    box-shadow: 0 7px 18px rgba(25,55,45,.07) !important;
    transform: translateY(-1px);
}
body.sb-redesign :where(.team-name, .player-name, .jzt-player-pill, .jzt-dir-team-card) { font-size: 13px !important; }
body.sb-template-category :where(.cat-hub-header, .cat-main-col) { border-top-color: var(--ui-primary) !important; }
body.sb-template-category .cn-title a { color: var(--ui-text) !important; font-size: 18px !important; }
body.sb-template-category .cn-excerpt { color: var(--ui-muted) !important; font-size: 14px !important; }
body.sb-template-category .cn-title a:hover { color: var(--ui-primary-dark) !important; }
body.sb-template-hub :where(.v-card, .n-list li) { border-color: var(--ui-line) !important; }
body.sb-template-hub .v-title,
body.sb-template-hub .n-list li a { color: var(--ui-text) !important; }
body.sb-template-hub .v-card:hover { border-color: #b9d8ca !important; box-shadow: 0 8px 20px rgba(25,55,45,.08) !important; }
body.sb-template-article :where(.entry-content, .article-content, .post-content) { color: #314750 !important; font-size: 15px !important; line-height: 1.9 !important; }

@media (max-width: 767px) {
    body.sb-redesign { font-size: 14px; }
    body.sb-redesign .sb-masthead-inner {
        flex-wrap: nowrap !important;
        gap: 8px !important;
    }
    body.sb-redesign .sb-brand {
        flex: 0 1 auto !important;
        max-width: calc(100vw - 76px) !important;
    }
    body.sb-redesign .sb-brand > a {
        max-width: 100% !important;
        min-height: 38px !important;
        padding: 0 10px !important;
        overflow: visible !important;
        text-overflow: clip !important;
    }
    body.sb-redesign .sb-brand-wordmark {
        font-size: 19px !important;
        overflow: visible !important;
        text-overflow: clip !important;
    }
    body.sb-redesign .sb-brand > a > small { display: none !important; }
    body.sb-redesign .sb-page-shell { width: 100%; padding-right: 10px !important; padding-left: 10px !important; }
    body.sb-redesign :where(.site-container, .container, .jzt-portal-inner, .jzt-dir-inner, .sp-match-container) { max-width: 100% !important; }
    body.sb-redesign :where(p, li, td, th) { line-height: 1.65; }
    body.sb-redesign :where(.breadcrumb, .dir-breadcrumb, .clean-breadcrumb) { font-size: 12px !important; }
    body.sb-redesign :where(.mod-hd, .wg-hd, .side-card-hd, .fl-side-head, .sp-card-head) { min-height: 48px !important; padding-right: 13px !important; padding-left: 13px !important; }
    body.sb-redesign :where(.mod-hd, .wg-hd, .side-card-hd) span,
    body.sb-redesign :where(.mod-hd, .wg-hd, .side-card-hd) h2 { font-size: 15px !important; }

    body.sb-redesign :where(
        .px-live-button, .fl-match-action, .jzt-live-btn,
        .jzt-schedule-live-btn, .schedule-live-btn, .wc-live-btn,
        .sp-side-live-btn, .sp-player-live-btn, .side-match-btn,
        .jzt-article-live-btn, .seo-jzt-live-btn, .tag-btn-live,
        .yc-live-btn, .cg-btn, .dynamic-src, .btn-full-standings,
        .hub-btn, .league-filter-btn, .page-numbers,
        .more-link, .rdn-btn, .jzt-dir-pagination a,
        .fl-panel-head > a, .pl-section-heading > a
    ) { min-height: 40px; font-size: 12px !important; }

    /* Home: first screen stays compact, but never uses unreadable text. */
    body.sb-template-home .pl-home { width: 100% !important; gap: 12px !important; }
    body.sb-template-home .pl-home-hero { min-height: 154px !important; padding: 16px !important; }
    body.sb-template-home .pl-home-hero-copy .fl-kicker { font-size: 11px !important; }
    body.sb-template-home .pl-home-hero-copy h1 { font-size: 25px !important; line-height: 1.15 !important; }
    body.sb-template-home .pl-home-hero-copy p { margin-top: 7px !important; font-size: 13px !important; line-height: 1.55 !important; }
    body.sb-template-home .pl-home-hero-copy nav { margin-top: 10px !important; }
    body.sb-template-home .pl-home-hero-copy nav a { min-height: 38px !important; font-size: 12px !important; }
    body.sb-template-home .pl-league-tabs { min-height: 58px !important; }
    body.sb-template-home .pl-league-tabs a { flex-basis: 100px !important; min-height: 58px !important; }
    body.sb-template-home .pl-league-tabs span { font-size: 13px !important; }
    body.sb-template-home .pl-league-tabs small { font-size: 10px !important; }

    body.sb-template-home .fl-match-board { overflow: hidden; border-radius: 13px !important; }
    body.sb-template-home .fl-match-board .fl-panel-head { padding: 15px 12px 12px !important; }
    body.sb-template-home .fl-match-board .fl-panel-head > div > span { font-size: 11px !important; }
    body.sb-template-home .fl-match-board .fl-panel-head h2 { font-size: 20px !important; }
    body.sb-template-home .fl-match-board .fl-panel-head p { font-size: 12px !important; line-height: 1.55 !important; }
    body.sb-template-home .fl-match-board .fl-panel-head nav { gap: 3px !important; padding: 4px !important; }
    body.sb-template-home .fl-match-board .fl-panel-head nav a { flex-basis: 55px !important; min-width: 55px !important; min-height: 34px !important; font-size: 11px !important; }

    body.sb-template-home .fl-match-list { padding: 8px !important; background: #f4f8f6 !important; }
    body.sb-template-home .fl-match-row {
        grid-template-columns: minmax(0, 1fr) 80px !important;
        min-height: 92px !important;
        margin-bottom: 8px !important;
        overflow: hidden;
        border: 1px solid var(--ui-line) !important;
        border-radius: 11px !important;
        background: #fff !important;
        box-shadow: 0 4px 12px rgba(25,55,45,.045) !important;
    }
    body.sb-template-home .fl-match-row:last-child { margin-bottom: 0 !important; }
    body.sb-template-home .fl-match-row.state-live { border-color: #a9d6c3 !important; box-shadow: inset 3px 0 var(--ui-primary), 0 4px 12px rgba(25,55,45,.045) !important; }
    body.sb-template-home .fl-match-data {
        grid-template-columns: 48px minmax(0, 1fr) 23px minmax(0, 1fr) !important;
        grid-template-areas:
            "time league league status"
            "time home score away" !important;
        gap: 5px !important;
        min-height: 90px !important;
        padding: 10px 4px 10px 10px !important;
    }
    body.sb-template-home .fl-match-data > time { grid-area: time; align-self: center; }
    body.sb-template-home .fl-match-data > time strong { font-size: 15px !important; }
    body.sb-template-home .fl-match-data > time small { font-size: 10px !important; }
    body.sb-template-home .fl-match-league {
        grid-area: league;
        display: block !important;
        align-self: end;
        overflow: hidden;
        color: var(--ui-primary-dark) !important;
        font-size: 11px !important;
        font-weight: 800 !important;
        line-height: 1.25 !important;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    body.sb-template-home .fl-match-data > em {
        grid-area: status;
        display: block !important;
        align-self: end;
        color: var(--ui-muted) !important;
        font-size: 10px !important;
        font-style: normal;
        line-height: 1.25 !important;
        text-align: right;
        white-space: nowrap;
    }
    body.sb-template-home .fl-match-team.is-home { grid-area: home; }
    body.sb-template-home .fl-match-score { grid-area: score; }
    body.sb-template-home .fl-match-team.is-away { grid-area: away; }
    body.sb-template-home .fl-match-team b { font-size: 12px !important; line-height: 1.35 !important; }
    body.sb-template-home .fl-match-team img,
    body.sb-template-home .fl-match-team .px-team-fallback { width: 24px !important; height: 24px !important; }
    body.sb-template-home .fl-match-row > :is(.px-live-button, .fl-match-action) {
        align-self: center !important;
        width: 72px !important;
        min-width: 72px !important;
        max-width: 72px !important;
        height: 52px !important;
        min-height: 52px !important;
        margin: 0 8px 0 0 !important;
        padding: 0 6px !important;
        border-radius: 9px !important;
        font-size: 11px !important;
        white-space: normal !important;
    }

    body.sb-template-home .pl-news-section .pl-section-heading { padding: 14px !important; }
    body.sb-template-home .pl-news-section .pl-section-heading > div > span { font-size: 11px !important; }
    body.sb-template-home .pl-news-section .fl-story strong { font-size: 14px !important; }
    body.sb-template-home .fl-briefs a { font-size: 12px !important; }

    body.sb-template-home .pl-kickoff-card { overflow: hidden; }
    body.sb-template-home .pl-kickoff-card .fl-panel-head { padding: 15px 13px !important; }
    body.sb-template-home .pl-kickoff-card .fl-panel-head h2 { font-size: 20px !important; }
    body.sb-template-home .pl-kickoff-card .fl-panel-head p { display: block !important; margin-top: 5px !important; font-size: 12px !important; line-height: 1.55 !important; }
    body.sb-template-home .pl-kickoff-card .fl-panel-head > a { width: 100%; min-height: 38px !important; margin-top: 10px !important; border-radius: 8px !important; font-size: 12px !important; }
    body.sb-template-home .pl-kickoff-table {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 9px !important;
        padding: 10px !important;
        overflow: visible !important;
    }
    body.sb-template-home .pl-kickoff-row {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto auto !important;
        grid-template-areas:
            "league time scale"
            "season season season"
            "links links links" !important;
        gap: 10px 12px !important;
        min-height: 0 !important;
        width: 100% !important;
        padding: 15px 13px 13px !important;
        border-radius: 11px !important;
        scroll-snap-align: none;
    }
    body.sb-template-home .pl-kickoff-league { grid-area: league; min-width: 0; }
    body.sb-template-home .pl-kickoff-row time { grid-area: time; }
    body.sb-template-home .pl-kickoff-scale { grid-area: scale; }
    body.sb-template-home .pl-kickoff-season { grid-area: season; padding-top: 8px; border-top: 1px dashed var(--ui-line); }
    body.sb-template-home .pl-kickoff-row > nav { grid-area: links; }
    body.sb-template-home .pl-kickoff-league strong { font-size: 17px !important; }
    body.sb-template-home .pl-kickoff-league small,
    body.sb-template-home .pl-kickoff-row time small,
    body.sb-template-home .pl-kickoff-scale small,
    body.sb-template-home .pl-kickoff-season small { font-size: 10px !important; }
    body.sb-template-home .pl-kickoff-row time strong { font-size: 15px !important; }
    body.sb-template-home .pl-kickoff-scale strong,
    body.sb-template-home .pl-kickoff-season strong { font-size: 12px !important; }
    body.sb-template-home .pl-kickoff-season small { -webkit-line-clamp: 2; }
    body.sb-template-home .pl-kickoff-row > nav a { min-height: 40px !important; font-size: 12px !important; }

    body.sb-template-home .fl-home-note { padding: 16px !important; }
    body.sb-template-home .fl-home-note h2 { font-size: 18px !important; }
    body.sb-template-home .fl-home-note p { font-size: 13px !important; -webkit-line-clamp: 5; }
    body.sb-template-home .fl-home-note nav a { min-height: 38px !important; font-size: 12px !important; }

    /* Match page: compact horizontal match card and a permanent 2 x 2 channel grid. */
    body.sb-template-match .sp-match-container { padding-right: 0 !important; padding-left: 0 !important; }
    body.sb-template-match .sp-match-hero { padding: 10px !important; }
    body.sb-template-match .sp-match-crumb {
        margin-bottom: 8px !important;
        padding: 0 2px !important;
        font-size: 11px !important;
    }
    body.sb-template-match .sp-match-stage-card { border-radius: 14px !important; }
    body.sb-template-match .sp-match-heading {
        display: block !important;
        padding: 13px 12px 12px !important;
        text-align: center;
    }
    body.sb-template-match .sp-match-heading-copy h1 {
        display: -webkit-box;
        overflow: hidden;
        margin-top: 7px !important;
        font-size: 17px !important;
        line-height: 1.35 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
    body.sb-template-match .sp-match-league {
        min-height: 24px !important;
        font-size: 11px !important;
    }
    body.sb-template-match .sp-match-heading-meta {
        justify-content: center !important;
        flex-wrap: wrap;
        gap: 8px !important;
        margin-top: 10px;
    }
    body.sb-template-match .sp-match-heading-meta .sp-status-line {
        gap: 7px !important;
        font-size: 11px !important;
    }
    body.sb-template-match .sp-hero-actions a.jzt-live-btn {
        min-height: 36px !important;
        padding: 0 13px !important;
        border-radius: 9px !important;
        font-size: 12px !important;
    }
    body.sb-template-match .sp-scoreboard {
        grid-template-columns: minmax(0, 1fr) 66px minmax(0, 1fr) !important;
        grid-template-areas: "home core away" !important;
        align-items: stretch !important;
        border-radius: 0 !important;
    }
    body.sb-template-match .sp-score-core {
        min-height: 150px !important;
        padding: 16px 4px !important;
        border-right: 0 !important;
        border-bottom: 0 !important;
        border-left: 0 !important;
    }
    body.sb-template-match .sp-score-core::before { inset: 18px 5px !important; }
    body.sb-template-match .sp-match-stage {
        min-height: 22px !important;
        padding: 0 6px !important;
        font-size: 10px !important;
        white-space: nowrap;
    }
    body.sb-template-match .sp-score-row.is-pending span {
        width: 52px !important;
        height: 52px !important;
        font-size: 25px !important;
    }
    body.sb-template-match .sp-score-row:not(.is-pending) { gap: 3px !important; }
    body.sb-template-match .sp-score-row:not(.is-pending) b { min-width: 20px !important; font-size: 27px !important; }
    body.sb-template-match .sp-score-row:not(.is-pending) span { font-size: 19px !important; }
    body.sb-template-match .sp-team-panel {
        min-height: 150px !important;
        padding: 13px 5px !important;
    }
    body.sb-template-match .sp-team-role {
        min-height: 21px !important;
        margin-bottom: 8px !important;
        padding: 0 7px !important;
        font-size: 10px !important;
    }
    body.sb-template-match .sp-team-logo {
        width: 52px !important;
        height: 52px !important;
        padding: 8px !important;
    }
    body.sb-template-match .sp-team-link { gap: 8px !important; }
    body.sb-template-match .sp-team-link strong {
        display: -webkit-box;
        overflow: hidden !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
        white-space: normal !important;
        text-overflow: clip !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
    body.sb-template-match .sp-team-panel p { display: none !important; }
    body.sb-template-match .sp-match-card { border-radius: 12px !important; }
    body.sb-template-match .sp-match-card h2 { font-size: 17px !important; line-height: 1.4 !important; }
    body.sb-template-match .sp-live-body { gap: 11px !important; padding: 13px 10px !important; }
    body.sb-template-match .sp-live-intro p { font-size: 12px !important; line-height: 1.65 !important; }
    body.sb-template-match .sp-live-lines {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }
    body.sb-template-match .sp-live-lines a.jzt-live-btn {
        grid-template-columns: 34px minmax(0, 1fr) !important;
        grid-template-rows: auto auto !important;
        column-gap: 8px !important;
        min-height: 68px !important;
        width: 100% !important;
        padding: 8px !important;
        border-radius: 11px !important;
        font-size: 12px !important;
    }
    body.sb-template-match .sp-live-lines a.jzt-live-btn > i {
        width: 34px !important;
        height: 34px !important;
        border-radius: 9px !important;
        font-size: 15px !important;
    }
    body.sb-template-match .sp-live-lines a.jzt-live-btn .x-mask-txt {
        grid-column: 2 !important;
        font-size: 12px !important;
    }
    body.sb-template-match .sp-live-lines a.jzt-live-btn::after {
        content: "点击观看";
        grid-column: 2 !important;
        font-size: 10px !important;
    }

    /* Schedule cards keep league, teams and the live action visible. */
    body.sb-template-schedule .sb-schedule-screen { padding: 10px 0 30px !important; }
    body.sb-template-schedule .sb-schedule-screen .col-main { overflow: hidden; border-radius: 12px !important; }
    body.sb-template-schedule .sb-schedule-screen .jzt-c-tabs,
    body.sb-template-schedule .sb-schedule-screen .jzt-c-dates,
    body.sb-template-schedule .sb-schedule-screen .jzt-league-filter-bar { gap: 6px !important; padding: 10px !important; }
    body.sb-template-schedule .sb-schedule-screen :is(.jzt-c-tabs a, .jzt-c-dates a, .league-filter-btn) { min-height: 36px !important; font-size: 12px !important; }
    body.sb-template-schedule .sb-schedule-screen .jzt-league-group-title { min-height: 42px !important; margin: 10px 8px 4px !important; padding: 0 11px !important; border-radius: 9px !important; font-size: 14px !important; }
    body.sb-template-schedule .sb-schedule-screen .m-row {
        grid-template-columns: 46px minmax(0, 1fr) 28px minmax(0, 1fr) !important;
        grid-template-areas:
            "time status status action"
            "time home score away" !important;
        gap: 5px !important;
        min-height: 92px !important;
        margin: 8px !important;
        padding: 10px !important;
        border-radius: 10px !important;
    }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-time { grid-area: time; align-self: center; }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-status-box { grid-area: status; justify-self: start; }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-team.h { grid-area: home; }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-score { grid-area: score; }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-team.a { grid-area: away; }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-act { grid-area: action; display: block !important; width: auto !important; }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-act > a { min-width: 72px !important; min-height: 34px !important; padding: 0 8px !important; font-size: 11px !important; }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-team,
    body.sb-template-schedule .sb-schedule-screen .jzt-m-team a { max-width: 100% !important; font-size: 12px !important; }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-time .t-hi { font-size: 14px !important; }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-time .t-md { font-size: 10px !important; }
    body.sb-template-schedule .sb-schedule-screen .m-status { min-height: 23px !important; font-size: 10px !important; }

    body.sb-template-standings .portal-table-container { overflow: hidden; border-radius: 12px !important; }
    body.sb-template-standings .jzt-standings-head { padding: 14px !important; }
    body.sb-template-standings .jzt-table-standings { min-width: 650px; font-size: 12px !important; }
    body.sb-template-standings .jzt-table-swipe-hint { display: block !important; padding: 0 14px; color: var(--ui-muted) !important; font-size: 12px !important; }

    body.sb-template-league .league-header { padding: 16px !important; border-radius: 12px !important; }
    body.sb-template-league .league-matrix-links,
    body.sb-template-league .league-jzt-nav-links { flex-wrap: nowrap !important; overflow-x: auto !important; scrollbar-width: none; }
    body.sb-template-league .league-matrix-links a,
    body.sb-template-league .league-jzt-nav-links a { flex: 0 0 auto !important; min-height: 38px !important; font-size: 12px !important; }
    body.sb-template-league .jzt-match-row { min-width: 0 !important; overflow: hidden; }

    body.sb-template-directory .jzt-dir-main-box,
    body.sb-template-hub :where(.hub-header, .hub-main, .side-card),
    body.sb-template-category :where(.cat-hub-header, .cat-main-col) { border-radius: 12px !important; }
    body.sb-template-directory .jzt-dir-header { padding: 16px !important; }
    body.sb-template-directory .jzt-dir-header h1 { font-size: 21px !important; }
    body.sb-template-directory .jzt-nav-links { flex-wrap: nowrap !important; overflow-x: auto !important; }
    body.sb-template-directory .jzt-nav-links a { flex: 0 0 auto !important; min-height: 38px !important; font-size: 12px !important; }
    body.sb-template-directory .jzt-dir-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 9px !important; }
    body.sb-template-directory .player-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
    body.sb-template-directory :where(.jzt-dir-team-card, .jzt-player-pill) { min-width: 0; min-height: 48px !important; font-size: 12px !important; }

    body.sb-template-category .cat-hub-header { padding: 16px !important; }
    body.sb-template-category .cat-hub-header h1 { font-size: 21px !important; }
    body.sb-template-category .cat-news-item { gap: 12px !important; padding: 14px 0 !important; }
    body.sb-template-category .cn-img { width: 112px !important; height: 78px !important; border-radius: 9px !important; }
    body.sb-template-category .cn-title a { font-size: 15px !important; line-height: 1.45 !important; }
    body.sb-template-category .cn-meta { font-size: 11px !important; }

    body.sb-template-hub .hub-header h1 { font-size: 21px !important; }
    body.sb-template-hub .nav-matrix { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    body.sb-template-hub .nav-matrix a { min-width: 0 !important; min-height: 42px !important; font-size: 12px !important; white-space: normal !important; }
    body.sb-template-hub .v-grid { gap: 10px !important; }
    body.sb-template-hub .v-title { height: auto !important; min-height: 52px; padding: 9px !important; font-size: 13px !important; }

    body.sb-template-article :where(.entry-title, .article-title, h1) { overflow-wrap: anywhere; font-size: 22px !important; line-height: 1.45 !important; }
    body.sb-template-article :where(.entry-content, .article-content, .post-content) { font-size: 14px !important; line-height: 1.85 !important; }
}

@media (max-width: 380px) {
    body.sb-redesign .sb-brand-wordmark { font-size: 18px !important; }
    body.sb-redesign .sb-brand > a { padding-right: 8px !important; padding-left: 8px !important; }
    body.sb-template-home .fl-match-row { grid-template-columns: minmax(0, 1fr) 74px !important; }
    body.sb-template-home .fl-match-data { grid-template-columns: 44px minmax(0, 1fr) 21px minmax(0, 1fr) !important; padding-left: 8px !important; }
    body.sb-template-home .fl-match-team img,
    body.sb-template-home .fl-match-team .px-team-fallback { display: none !important; }
    body.sb-template-home .fl-match-row > :is(.px-live-button, .fl-match-action) { width: 66px !important; min-width: 66px !important; max-width: 66px !important; margin-right: 6px !important; }
    body.sb-template-schedule .sb-schedule-screen .m-row { grid-template-columns: 43px minmax(0, 1fr) 25px minmax(0, 1fr) !important; padding: 8px !important; }
    body.sb-template-schedule .sb-schedule-screen .jzt-m-act > a { min-width: 66px !important; padding: 0 6px !important; }
}

/* Match detail final composition.
 * A restrained score header follows the same hierarchy used by established
 * score products: competition/title, two crests, central state, then actions.
 */
body.sb-template-match.sb-redesign .sp-match-page .sp-match-stage-card {
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 16px !important;
    background:
        radial-gradient(circle at 12% 12%, rgba(34, 197, 139, .22), transparent 27%),
        radial-gradient(circle at 88% 105%, rgba(255,255,255,.10), transparent 32%),
        linear-gradient(125deg, #102f44 0%, #0d3f47 48%, #086447 100%) !important;
    box-shadow: 0 16px 36px rgba(16, 47, 68, .18) !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-match-heading {
    padding: 17px 20px !important;
    border-bottom: 1px solid rgba(255,255,255,.13) !important;
    background: transparent !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-match-heading-copy h1 {
    color: #fff !important;
    text-shadow: none !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-match-heading .sp-match-league {
    border-color: rgba(255,255,255,.24) !important;
    color: #fff !important;
    background: rgba(255,255,255,.10) !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-match-heading-meta .sp-status-line,
body.sb-template-match.sb-redesign .sp-match-page .sp-match-heading-meta time {
    color: rgba(255,255,255,.78) !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-scoreboard {
    grid-template-columns: minmax(0, 1fr) 136px minmax(0, 1fr) !important;
    grid-template-areas: "home core away" !important;
    gap: 0 !important;
    min-height: 190px !important;
    border: 0 !important;
    background: transparent !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-team-panel,
body.sb-template-match.sb-redesign .sp-match-page .sp-score-core {
    min-height: 190px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-team-panel::after,
body.sb-template-match.sb-redesign .sp-match-page .sp-score-core::before,
body.sb-template-match.sb-redesign .sp-match-page .sp-score-core::after {
    display: none !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-team-role {
    position: static !important;
    display: inline-flex !important;
    align-items: center !important;
    min-height: 22px !important;
    margin: 0 0 9px !important;
    padding: 0 8px !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    border-radius: 999px !important;
    color: rgba(255,255,255,.76) !important;
    background: rgba(255,255,255,.08) !important;
    font-size: 10px !important;
    line-height: 1 !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-team-logo {
    width: 66px !important;
    height: 66px !important;
    padding: 10px !important;
    border: 1px solid #dce7e2 !important;
    background: #fff !important;
    box-shadow: 0 7px 18px rgba(25, 55, 45, .07) !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-team-link strong {
    color: #fff !important;
    font-size: 18px !important;
    text-shadow: none !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-team-panel p {
    color: rgba(255,255,255,.68) !important;
    font-size: 12px !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-score-core {
    grid-area: core !important;
    grid-column: auto !important;
    order: 0 !important;
    padding: 24px 6px !important;
    border-right: 1px solid rgba(255,255,255,.12) !important;
    border-left: 1px solid rgba(255,255,255,.12) !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-match-stage {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 23px !important;
    padding: 0 8px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: rgba(255,255,255,.82) !important;
    background: rgba(255,255,255,.10) !important;
    font-size: 10px !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-score-row {
    margin: 13px 0 0 !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-score-row.is-pending span {
    width: 62px !important;
    height: 62px !important;
    border: 1px solid rgba(255,255,255,.24) !important;
    border-radius: 50% !important;
    color: #fff !important;
    background: rgba(255,255,255,.10) !important;
    font-size: 27px !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-score-row:not(.is-pending) b {
    color: #fff !important;
    font-size: 42px !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-score-row:not(.is-pending) span {
    color: rgba(255,255,255,.56) !important;
    font-size: 25px !important;
}

/* Live sources: one visual language, true vertical centring, 2 x 2 grid. */
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines {
    display: flex !important;
    flex-wrap: wrap !important;
    grid-template-columns: none !important;
    gap: 10px !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn,
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:nth-child(2),
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:nth-child(3),
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:nth-child(4) {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    width: auto !important;
    min-width: 0 !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 15px !important;
    overflow: hidden !important;
    border: 1px solid #0c8a61 !important;
    border-radius: 7px !important;
    color: #fff !important;
    background: #0c8a61 !important;
    box-shadow: 0 5px 12px rgba(12,138,97,.12) !important;
    font-size: 14px !important;
    line-height: 1 !important;
    text-align: left !important;
    transform: none !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:first-child {
    border-color: #087554 !important;
    color: #fff !important;
    background: #087554 !important;
    box-shadow: 0 5px 12px rgba(8,117,84,.15) !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn i,
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:nth-child(4) i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 20px !important;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 5px !important;
    color: #fff !important;
    background: rgba(255,255,255,.16) !important;
    box-shadow: none !important;
    font-size: 12px !important;
    line-height: 1 !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn i::before {
    content: "" !important;
    display: block !important;
    width: 0 !important;
    height: 0 !important;
    margin-left: 2px !important;
    border-top: 4px solid transparent !important;
    border-bottom: 4px solid transparent !important;
    border-left: 7px solid currentColor !important;
    font-family: inherit !important;
    transform: none !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:first-child i {
    color: #fff !important;
    border-color: transparent !important;
    background: rgba(255,255,255,.16) !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn .x-mask-txt {
    display: block !important;
    align-self: center !important;
    grid-column: auto !important;
    grid-row: auto !important;
    height: auto !important;
    margin: 0 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    color: inherit !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn::before {
    content: none !important;
    display: none !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn::after {
    content: none !important;
    display: none !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:first-child::after {
    content: none !important;
    display: none !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:hover {
    border-color: #0c8a61 !important;
    color: #fff !important;
    background: #086447 !important;
    box-shadow: 0 7px 16px rgba(12, 138, 97, .14) !important;
    transform: translateY(-1px) !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:hover i {
    color: #fff !important;
    border-color: transparent !important;
    background: rgba(255,255,255,.16) !important;
}
body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:hover::after {
    content: none !important;
    display: none !important;
}

@media (max-width: 767px) {
    body.sb-template-match.sb-redesign .sp-match-page .sp-match-hero {
        padding: 8px 9px 10px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-match-stage-card {
        border-radius: 13px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-match-heading {
        padding: 12px 10px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-match-heading-copy h1 {
        margin-top: 6px !important;
        font-size: 16px !important;
        line-height: 1.35 !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-match-heading-meta {
        margin-top: 8px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-scoreboard {
        grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr) !important;
        grid-template-areas: "home core away" !important;
        min-height: 142px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-team-panel,
    body.sb-template-match.sb-redesign .sp-match-page .sp-score-core {
        min-height: 142px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-team-panel {
        padding: 12px 4px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-team-role {
        min-height: 19px !important;
        margin-bottom: 6px !important;
        padding: 0 6px !important;
        font-size: 9px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-team-logo {
        width: 46px !important;
        height: 46px !important;
        padding: 7px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-team-link {
        gap: 7px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-team-link strong {
        display: -webkit-box !important;
        overflow: hidden !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
        white-space: normal !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-team-panel p {
        display: none !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-score-core {
        padding: 16px 3px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-match-stage {
        min-height: 20px !important;
        padding: 0 5px !important;
        font-size: 9px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-score-row.is-pending span {
        width: 46px !important;
        height: 46px !important;
        font-size: 21px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-score-row:not(.is-pending) b {
        min-width: 18px !important;
        font-size: 25px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-score-row:not(.is-pending) span {
        font-size: 17px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-body {
        padding: 12px 9px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn,
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:nth-child(2),
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:nth-child(3),
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:nth-child(4) {
        height: 44px !important;
        min-height: 44px !important;
        padding: 0 10px !important;
        gap: 7px !important;
        border-radius: 7px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn i,
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:nth-child(4) i {
        flex-basis: 19px !important;
        width: 19px !important;
        height: 19px !important;
        font-size: 11px !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn .x-mask-txt {
        font-size: 12px !important;
        line-height: 1.2 !important;
    }
}

@media (max-width: 380px) {
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn::after {
        content: none !important;
        display: none !important;
    }
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:first-child::after,
    body.sb-template-match.sb-redesign .sp-match-page .sp-live-lines a.jzt-live-btn:hover::after {
        content: none !important;
        display: none !important;
    }
}
