/* ========================================================================== */
/* towin · 分层长卷全站视觉系统                                            */
/* 该文件只覆盖视觉与排版，不改变现有真实数据、路由、权限和业务交互。           */
/* ========================================================================== */

:root,
html[data-nova-palette="pitch"],
html[data-nova-theme="pitch"] {
  --color-bg: #f4f7f1;
  --color-surface: #ffffff;
  --color-surface-alt: #edf2eb;
  --color-text-heading: #0b1412;
  --color-text: #0b1412;
  --color-text-soft: #3f4e47;
  --color-text-muted: #5e6a65;
  --color-border: #dce4dc;
  --color-primary: #b8ff38;
  --color-primary-strong: #497d00;
  --color-primary-soft: #ecffd0;
  --color-on-primary: #0b1412;
  --color-secondary: #087b69;
  --theme-heading-accent: var(--color-primary-strong);
  --color-chrome: #0b1412;
  --color-chrome-alt: #182720;
  --color-on-chrome: #f7fff9;
  --status-live: #c83b32;
  --status-success: #187449;
  --status-warning: #805200;
  --status-neutral: #66706c;
  --shadow-card: 0 12px 36px rgba(13, 30, 22, 0.08);
  --shadow-float: 0 22px 70px rgba(5, 18, 12, 0.2);
  --texture-page:
    linear-gradient(rgba(27, 49, 39, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(27, 49, 39, 0.025) 1px, transparent 1px);
}

/* Save-Data、2G 和低内存 Android 保留配色与内容，只移除会在首屏争抢带宽、
   解码内存和合成层的大幅背景。用户仍可正常浏览并在网络恢复后刷新取回主题图。 */
html[data-nova-low-bandwidth="true"] {
  --theme-scene-hero: none !important;
  --theme-scene-body-wide: none !important;
  --theme-scene-body-portrait: none !important;
  --theme-home-wide: none !important;
  --theme-home-portrait: none !important;
  --theme-channel-matches-wide: none !important;
  --theme-channel-matches-portrait: none !important;
  --theme-channel-discover-wide: none !important;
  --theme-channel-discover-portrait: none !important;
  --theme-channel-news-wide: none !important;
  --theme-channel-news-portrait: none !important;
  --theme-channel-data-wide: none !important;
  --theme-channel-data-portrait: none !important;
}

html[data-nova-low-bandwidth="true"] body.nova-ui::before {
  background-image: none !important;
  transition: none !important;
}

/* Growth loop: onboarding, verified sharing and notification inbox. */
.nova-ui .towin-share-actions{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.nova-ui .towin-share-actions button{border:1px solid var(--line);border-radius:999px;background:var(--surface,#fff);color:var(--text);padding:7px 11px;font:700 12px/1 system-ui;cursor:pointer;white-space:nowrap}
.nova-ui .towin-share-actions button.primary{background:var(--accent,#168a53);border-color:var(--accent,#168a53);color:#fff}
.nova-ui .towin-share-actions.compact button{padding:6px 9px;font-size:11px}
.nova-ui .detail-bar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.nova-ui .detail-bar-actions .nr-hist-link{border:0;background:none;color:inherit;padding:6px}
.nova-ui .stand-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.nova-ui .pd-actions .towin-share-actions{margin-left:auto}
.nova-ui .off.official{display:inline-flex;align-items:center;margin-left:5px;border:1px solid color-mix(in srgb,var(--accent,#168a53) 45%,transparent);border-radius:999px;background:color-mix(in srgb,var(--accent,#168a53) 12%,transparent);color:var(--accent,#168a53);padding:2px 7px;font-size:11px;font-weight:800}

.nova-ui .interest-onboarding-overlay,.nova-ui .onboarding-match-overlay{display:grid;place-items:center;padding:18px;z-index:1600}
.nova-ui .interest-onboarding,.nova-ui .onboarding-match{width:min(720px,100%);max-height:min(88vh,760px);overflow:auto;border:1px solid var(--line);border-radius:24px;background:var(--surface,#fff);box-shadow:0 24px 80px rgba(5,28,18,.24);padding:26px;color:var(--text)}
.nova-ui .interest-onboarding header small,.nova-ui .onboarding-match>small{color:var(--accent,#168a53);font-weight:800}
.nova-ui .interest-onboarding h2,.nova-ui .onboarding-match h2{margin:7px 0 6px;font-size:clamp(22px,4vw,32px)}
.nova-ui .interest-onboarding header p,.nova-ui .onboarding-match>p{margin:0;color:var(--text2);line-height:1.6}
.nova-ui .interest-groups{display:grid;gap:16px;margin:22px 0}
.nova-ui .interest-groups section h3{margin:0 0 8px;font-size:14px}
.nova-ui .interest-groups section>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.nova-ui .interest-topic{display:grid;grid-template-columns:34px 1fr 18px;align-items:center;gap:8px;min-height:48px;border:1px solid var(--line);border-radius:13px;background:var(--surface2,#f7faf8);color:var(--text);padding:7px 10px;text-align:left;cursor:pointer}
.nova-ui .interest-topic.selected{border-color:var(--accent,#168a53);background:color-mix(in srgb,var(--accent,#168a53) 12%,var(--surface,#fff))}
.nova-ui .interest-topic i{visibility:hidden;color:var(--accent,#168a53);font-style:normal;font-weight:900}.nova-ui .interest-topic.selected i{visibility:visible}
.nova-ui .interest-topic-logo{width:32px;height:32px;object-fit:contain}
.nova-ui .interest-onboarding footer{display:flex;align-items:center;justify-content:space-between;gap:14px;position:sticky;bottom:-26px;margin:0 -26px -26px;padding:14px 26px;background:var(--surface,#fff);border-top:1px solid var(--line)}
.nova-ui .interest-onboarding footer button,.nova-ui .onboarding-match>div:last-child button{border:0;border-radius:12px;background:var(--accent,#168a53);color:#fff;padding:11px 16px;font-weight:800;cursor:pointer}.nova-ui .interest-onboarding footer button:disabled{opacity:.45;cursor:not-allowed}
.nova-ui #interest-onboarding-status{min-height:20px;margin-top:10px;color:var(--red,#b94040);font-size:13px}
.nova-ui .onboarding-match{width:min(520px,100%)}
.nova-ui .onboarding-match-card{display:grid;gap:7px;margin:20px 0;padding:18px;border-radius:16px;background:var(--surface2,#f7faf8);border:1px solid var(--line)}
.nova-ui .onboarding-match-card span,.nova-ui .onboarding-match-card time{color:var(--text2);font-size:13px}.nova-ui .onboarding-match-card b{font-size:18px}.nova-ui .onboarding-match-card i{font-style:normal;color:var(--accent,#168a53);font-size:12px}
.nova-ui .onboarding-match>div:last-child{display:flex;justify-content:flex-end;gap:9px}.nova-ui .onboarding-match>div:last-child button.secondary{background:var(--surface2,#f7faf8);color:var(--text);border:1px solid var(--line)}

.nova-ui .notification-preferences{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:18px 0}
.nova-ui .notification-preferences label{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface2,#f7faf8);font-weight:700}
.nova-ui .notification-preferences input{width:20px;height:20px;accent-color:var(--accent,#168a53)}
.nova-ui .notification-push-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:22px}
.nova-ui .notification-push-row>div{display:grid;gap:4px}.nova-ui .notification-push-row small{color:var(--text2);line-height:1.45}
.nova-ui .notification-list-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:8px}.nova-ui .notification-list-head h4{margin:0}.nova-ui .notification-list-head button{border:0;background:none;color:var(--accent,#168a53);font-weight:800;cursor:pointer}
.nova-ui .notification-list{display:grid;gap:8px;margin-top:10px}.nova-ui .notification-card{display:grid;grid-template-columns:8px 1fr;gap:10px;width:100%;border:1px solid var(--line);border-radius:13px;background:var(--surface,#fff);color:var(--text);padding:12px;text-align:left;cursor:pointer}.nova-ui .notification-card.unread{background:color-mix(in srgb,var(--accent,#168a53) 8%,var(--surface,#fff))}.nova-ui .notification-dot{width:7px;height:7px;border-radius:50%;margin-top:6px;background:transparent}.nova-ui .notification-card.unread .notification-dot{background:var(--accent,#168a53)}.nova-ui .notification-card>span:last-child{display:grid;gap:4px}.nova-ui .notification-card small{color:var(--text2)}.nova-ui .notification-card b{font-size:14px}.nova-ui .notification-card p{margin:0;color:var(--text2);line-height:1.45}

@media(max-width:640px){
  .nova-ui .towin-share-actions.compact button:first-child{display:none}
  .nova-ui .mxd-cover-bar .towin-share-actions{order:3;margin-left:auto}
  .nova-ui .interest-onboarding,.nova-ui .onboarding-match{padding:20px;border-radius:19px}
  .nova-ui .interest-groups section>div{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nova-ui .interest-onboarding footer{bottom:-20px;margin:0 -20px -20px;padding:12px 20px}
  .nova-ui .notification-preferences{grid-template-columns:1fr}
  .nova-ui .notification-push-row{align-items:flex-start;flex-direction:column}.nova-ui .notification-push-row button{width:100%}
  .nova-ui .pd-actions{flex-wrap:wrap}.nova-ui .pd-actions .towin-share-actions{width:100%;justify-content:flex-end}
}

html[data-nova-palette="ocean"],
html[data-nova-theme="ocean"] {
  --color-bg: #f3f7fc;
  --color-surface: #ffffff;
  --color-surface-alt: #eaf1fa;
  --color-text-heading: #102033;
  --color-text: #102033;
  --color-text-soft: #405468;
  --color-text-muted: #58697b;
  --color-border: #d9e3ef;
  --color-primary: #2f6fe4;
  --color-primary-strong: #1d5fd1;
  --color-primary-soft: #e7f0ff;
  --color-on-primary: #ffffff;
  --color-secondary: #00727a;
  --color-chrome: #102033;
  --color-chrome-alt: #18324d;
  --color-on-chrome: #f7fbff;
  --status-live: #c63d48;
  --status-success: #18764b;
  --status-warning: #805400;
  --status-neutral: #667085;
  --shadow-card: 0 12px 36px rgba(25, 57, 92, 0.09);
  --shadow-float: 0 22px 70px rgba(8, 35, 65, 0.23);
  --texture-page:
    radial-gradient(
      circle at 12% 8%,
      rgba(47, 111, 228, 0.08),
      transparent 28%
    ),
    radial-gradient(
      circle at 90% 70%,
      rgba(87, 212, 220, 0.08),
      transparent 30%
    );
}

html[data-nova-palette="clay"],
html[data-nova-theme="clay"] {
  --color-bg: #f8f4ed;
  --color-surface: #fffdfc;
  --color-surface-alt: #f0e8dc;
  --color-text-heading: #2a201a;
  --color-text: #2a201a;
  --color-text-soft: #57483f;
  --color-text-muted: #6e625a;
  --color-border: #e6dcd0;
  --color-primary: #b9552d;
  --color-primary-strong: #a84520;
  --color-primary-soft: #f9e6dc;
  --color-on-primary: #ffffff;
  --color-secondary: #006f70;
  --color-chrome: #2a201a;
  --color-chrome-alt: #44342a;
  --color-on-chrome: #fffaf5;
  --status-live: #bf3741;
  --status-success: #26724d;
  --status-warning: #805000;
  --status-neutral: #6d6863;
  --shadow-card: 0 12px 34px rgba(72, 48, 34, 0.09);
  --shadow-float: 0 22px 70px rgba(47, 29, 19, 0.24);
  --texture-page: radial-gradient(
    rgba(78, 50, 31, 0.035) 0.7px,
    transparent 0.7px
  );
}

html[data-nova-palette="violet"],
html[data-nova-theme="violet"] {
  --color-bg: #f7f4fa;
  --color-surface: #ffffff;
  --color-surface-alt: #eee8f3;
  --color-text-heading: #25192d;
  --color-text: #25192d;
  --color-text-soft: #55485d;
  --color-text-muted: #6d6173;
  --color-border: #e2dbe7;
  --color-primary: #7447c6;
  --color-primary-strong: #6839b7;
  --color-primary-soft: #efe7fb;
  --color-on-primary: #ffffff;
  --color-secondary: #805b00;
  --color-chrome: #25192d;
  --color-chrome-alt: #382642;
  --color-on-chrome: #fffaff;
  --status-live: #c43d64;
  --status-success: #1e7551;
  --status-warning: #795600;
  --status-neutral: #6e6873;
  --shadow-card: 0 12px 36px rgba(61, 35, 75, 0.09);
  --shadow-float: 0 22px 70px rgba(36, 17, 48, 0.24);
  --texture-page:
    radial-gradient(
      circle at 18% 10%,
      rgba(116, 71, 198, 0.08),
      transparent 28%
    ),
    radial-gradient(
      circle at 86% 40%,
      rgba(199, 154, 41, 0.07),
      transparent 26%
    );
}

html[data-nova-palette="midnight"],
html[data-nova-theme="midnight"] {
  --color-bg: #07111f;
  --color-surface: #0d1c2d;
  --color-surface-alt: #14283d;
  --color-text-heading: #f4f8ff;
  --color-text: #d2deeb;
  --color-text-soft: #b7c7d8;
  --color-text-muted: #93a7bd;
  --color-border: #294159;
  --color-primary: #f2c24e;
  --color-primary-strong: #d7a92f;
  --color-primary-soft: #342d1b;
  --color-on-primary: #171207;
  --color-on-primary-strong: #171207;
  --color-secondary: #69a7ff;
  --color-chrome: #050d18;
  --color-chrome-alt: #10263d;
  --color-on-chrome: #f5f8fc;
  --status-live: #ff6b62;
  --status-success: #5ad095;
  --status-warning: #f2c24e;
  --status-neutral: #94a6ba;
  --shadow-card: 0 14px 42px rgba(0, 0, 0, 0.32);
  --shadow-float: 0 26px 78px rgba(0, 0, 0, 0.5);
  --texture-page:
    radial-gradient(circle at 12% 8%, rgba(105, 167, 255, 0.12), transparent 28%),
    linear-gradient(rgba(105, 167, 255, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(105, 167, 255, 0.045) 1px, transparent 1px);
}

:root {
  --font-ui:
    "SF Pro Text", "PingFang SC", "Hiragino Sans GB",
    "Segoe UI Variable Text", "Segoe UI", "Microsoft YaHei UI",
    "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC",
    system-ui, sans-serif;
  --font-display:
    "SF Pro Display", "PingFang SC", "Hiragino Sans GB",
    "Segoe UI Variable Display", "Segoe UI", "Microsoft YaHei UI",
    "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC",
    system-ui, sans-serif;
  --font-score:
    "DIN Alternate", Bahnschrift, "SF Pro Display", "Arial Narrow",
    var(--font-ui);
  --nova-header-h: 72px;
  --nova-page-max: 1440px;
  --nova-content-max: 1220px;
  --nova-radius: 16px;
  --red: var(--color-primary-strong);
  --red-dark: var(--color-primary-strong);
  --blue-link: var(--color-secondary);
  --text: var(--color-text);
  --text2: var(--color-text-muted);
  --line: var(--color-border);
  --bg: var(--color-surface);
  --green-live: var(--status-success);
  --color-on-primary-strong: #ffffff;
  --color-link: var(--color-secondary);
  --color-focus: var(--color-primary-strong);
  --status-danger: var(--status-live);
  --status-info: var(--color-secondary);
  --series-home: var(--color-primary-strong);
  --series-away: var(--color-secondary);
  --theme-scene-hero: none;
  --theme-scene-body-wide: none;
  --theme-scene-body-portrait: none;
  --theme-scene-position: center;
  --theme-stage-overlay: 90%;
  --theme-home-wide: none;
  --theme-home-portrait: none;
  --theme-home-position-wide: center;
  --theme-home-position-portrait: center;
  /* 首屏默认使用 pitch；运行时按当前主题切换完整 4 频道矩阵。 */
  --theme-channel-matches-wide: url("assets/channel-scenes/pitch/matches-wide.v2.webp");
  --theme-channel-matches-portrait: url("assets/channel-scenes/pitch/matches-portrait.v2.webp");
  --theme-channel-discover-wide: url("assets/channel-scenes/pitch/discover-wide.v2.webp");
  --theme-channel-discover-portrait: url("assets/channel-scenes/pitch/discover-portrait.v2.webp");
  --theme-channel-news-wide: url("assets/channel-scenes/pitch/news-wide.v2.webp");
  --theme-channel-news-portrait: url("assets/channel-scenes/pitch/news-portrait.v2.webp");
  --theme-channel-data-wide: url("assets/channel-scenes/pitch/data-wide.v2.webp");
  --theme-channel-data-portrait: url("assets/channel-scenes/pitch/data-portrait.v2.webp");
  --nova-active-channel-wide: var(--theme-channel-matches-wide);
  --nova-active-channel-portrait: var(--theme-channel-matches-portrait);
}

html[data-nova-theme="pitch"] {
  --theme-home-wide: url("assets/themes/pitch-home-wide.v1.jpg");
  --theme-home-portrait: url("assets/themes/pitch-home-portrait.v1.jpg");
}

html[data-nova-theme="ocean"] {
  --theme-home-wide: url("assets/themes/ocean-home-wide.v1.jpg");
  --theme-home-portrait: url("assets/themes/ocean-home-portrait.v1.jpg");
}

html[data-nova-theme="clay"] {
  --theme-home-wide: url("assets/themes/clay-home-wide.v1.jpg");
  --theme-home-portrait: url("assets/themes/clay-home-portrait.v1.jpg");
}

html[data-nova-theme="violet"] {
  --theme-home-wide: url("assets/themes/violet-home-wide.v1.jpg");
  --theme-home-portrait: url("assets/themes/violet-home-portrait.v1.jpg");
}

html[data-nova-theme="midnight"] {
  --theme-home-wide: url("assets/themes/midnight-home-wide.v1.jpg");
  --theme-home-portrait: url("assets/themes/midnight-home-portrait.v1.jpg");
}

html[data-nova-theme="world-night"] {
  --theme-scene-hero: url("assets/themes/world-night-wide.v1.webp");
  --theme-scene-body-wide: url("assets/themes/world-night-wide.v1.webp");
  --theme-scene-body-portrait: url("assets/themes/world-night-portrait.v1.webp");
  --theme-home-wide: url("assets/themes/world-night-wide.v1.webp");
  --theme-home-portrait: url("assets/themes/world-night-portrait.v1.webp");
  --theme-stage-overlay: 84%;
}

html[data-nova-theme="pitch-dawn"] {
  --theme-scene-hero: url("assets/themes/pitch-dawn-wide.v1.webp");
  --theme-scene-body-wide: url("assets/themes/pitch-dawn-wide.v1.webp");
  --theme-scene-body-portrait: url("assets/themes/pitch-dawn-portrait.v1.webp");
  --theme-home-wide: url("assets/themes/pitch-dawn-wide.v1.webp");
  --theme-home-portrait: url("assets/themes/pitch-dawn-portrait.v1.webp");
  --theme-stage-overlay: 78%;
}

html[data-nova-theme="champion-night"] {
  --theme-scene-hero: url("assets/themes/champion-night-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/champion-night-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/champion-night-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/champion-night-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/champion-night-portrait.v2.webp");
  --theme-stage-overlay: 83%;
}

html[data-nova-theme="retro-matchday"] {
  --theme-scene-hero: url("assets/themes/retro-matchday-wide.v1.webp");
  --theme-scene-body-wide: url("assets/themes/retro-matchday-wide.v1.webp");
  --theme-scene-body-portrait: url("assets/themes/retro-matchday-portrait.v1.webp");
  --theme-home-wide: url("assets/themes/retro-matchday-wide.v1.webp");
  --theme-home-portrait: url("assets/themes/retro-matchday-portrait.v1.webp");
  --theme-stage-overlay: 76%;
}

html[data-nova-theme="tactics-board"] {
  --theme-scene-hero: url("assets/themes/tactics-board-wide.v1.webp");
  --theme-scene-body-wide: url("assets/themes/tactics-board-wide.v1.webp");
  --theme-scene-body-portrait: url("assets/themes/tactics-board-portrait.v1.webp");
  --theme-home-wide: url("assets/themes/tactics-board-wide.v1.webp");
  --theme-home-portrait: url("assets/themes/tactics-board-portrait.v1.webp");
  --theme-stage-overlay: 82%;
  --color-bg: #061421;
  --color-surface: #0d2234;
  --color-surface-alt: #153047;
  --color-text-heading: #eff9ff;
  --color-text: #d8e8f2;
  --color-text-soft: #bcd2df;
  --color-text-muted: #98b2c3;
  --color-border: #2d4c62;
  --color-primary: #aada56;
  --color-primary-strong: #c4ed7e;
  --color-primary-soft: #263d25;
  --color-on-primary: #102005;
  --color-on-primary-strong: #102005;
  --color-secondary: #8ac7e7;
  --color-chrome: #030c14;
  --color-chrome-alt: #102b40;
  --color-on-chrome: #f2fbff;
  --status-live: #ff766c;
  --status-success: #65d9a0;
  --status-warning: #f0ce75;
  --status-neutral: #9bb2c4;
  --color-focus: #c4ed7e;
  --series-home: #c4ed7e;
  --series-away: #8ac7e7;
}

html[data-nova-theme="city-lights"] {
  --theme-scene-hero: url("assets/themes/city-lights-wide.v1.webp");
  --theme-scene-body-wide: url("assets/themes/city-lights-wide.v1.webp");
  --theme-scene-body-portrait: url("assets/themes/city-lights-portrait.v1.webp");
  --theme-home-wide: url("assets/themes/city-lights-wide.v1.webp");
  --theme-home-portrait: url("assets/themes/city-lights-portrait.v1.webp");
  --theme-stage-overlay: 80%;
  --color-bg: #080b19;
  --color-surface: #12172b;
  --color-surface-alt: #1d2542;
  --color-text-heading: #fff3ff;
  --color-text: #e9ddf2;
  --color-text-soft: #cfbddc;
  --color-text-muted: #af9dbf;
  --color-border: #41365b;
  --color-primary: #dc68d2;
  --color-primary-strong: #f29beb;
  --color-primary-soft: #3b2140;
  --color-on-primary: #240721;
  --color-on-primary-strong: #240721;
  --color-secondary: #7cbcff;
  --color-chrome: #040611;
  --color-chrome-alt: #18254a;
  --color-on-chrome: #fff5ff;
  --status-live: #ff7788;
  --status-success: #66d7ac;
  --status-warning: #f3c96c;
  --status-neutral: #b2a4c4;
  --color-focus: #f29beb;
  --series-home: #f29beb;
  --series-away: #7cbcff;
}

/* 热门球队与经典对决：图片全部为本站原创生成场景，不含队徽、球员或官方素材。 */
html[data-nova-theme="club-real-madrid"] {
  --theme-scene-hero: url("assets/themes/club-real-madrid-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/club-real-madrid-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/club-real-madrid-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/club-real-madrid-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/club-real-madrid-portrait.v2.webp");
  --theme-stage-overlay: 76%;
  --color-primary: #d6b65d;
  --color-primary-strong: #725600;
  --color-primary-soft: #f6edcf;
  --color-on-primary: #171207;
  --color-on-primary-strong: #ffffff;
  --color-secondary: #493571;
  --color-chrome: #16243d;
  --color-chrome-alt: #293d5e;
  --color-on-chrome: #fbf8f0;
  --color-focus: #725600;
  --series-home: #725600;
  --series-away: #493571;
}

html[data-nova-theme="club-barcelona"] {
  --theme-scene-hero: url("assets/themes/club-barcelona-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/club-barcelona-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/club-barcelona-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/club-barcelona-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/club-barcelona-portrait.v2.webp");
  --theme-stage-overlay: 82%;
  --color-primary: #ef6a76;
  --color-primary-strong: #ff8b95;
  --color-primary-soft: #3c1f2a;
  --color-on-primary: #18070a;
  --color-on-primary-strong: #18070a;
  --color-secondary: #f3bd59;
  --color-chrome: #070d22;
  --color-chrome-alt: #17244b;
  --color-focus: #ff8b95;
  --series-home: #ff8b95;
  --series-away: #f3bd59;
}

html[data-nova-theme="club-manchester-united"] {
  --theme-scene-hero: url("assets/themes/club-manchester-united-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/club-manchester-united-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/club-manchester-united-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/club-manchester-united-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/club-manchester-united-portrait.v2.webp");
  --theme-stage-overlay: 82%;
  --color-primary: #e3615e;
  --color-primary-strong: #ff8580;
  --color-primary-soft: #3d211f;
  --color-on-primary: #180909;
  --color-on-primary-strong: #180909;
  --color-secondary: #e2bd7a;
  --color-chrome: #14090b;
  --color-chrome-alt: #382022;
  --color-focus: #ff8580;
  --series-home: #ff8580;
  --series-away: #e2bd7a;
}

html[data-nova-theme="club-paris-saint-germain"] {
  --theme-scene-hero: url("assets/themes/club-paris-saint-germain-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/club-paris-saint-germain-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/club-paris-saint-germain-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/club-paris-saint-germain-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/club-paris-saint-germain-portrait.v2.webp");
  --theme-stage-overlay: 82%;
  --color-primary: #e66d93;
  --color-primary-strong: #f493b2;
  --color-primary-soft: #392034;
  --color-on-primary: #150911;
  --color-on-primary-strong: #150911;
  --color-secondary: #78d5e6;
  --color-chrome: #070d20;
  --color-chrome-alt: #162447;
  --color-focus: #f493b2;
  --series-home: #f493b2;
  --series-away: #78d5e6;
}

html[data-nova-theme="club-manchester-city"] {
  --theme-scene-hero: url("assets/themes/club-manchester-city-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/club-manchester-city-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/club-manchester-city-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/club-manchester-city-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/club-manchester-city-portrait.v2.webp");
  --theme-stage-overlay: 75%;
  --color-primary: #9ad3e5;
  --color-primary-strong: #205f7c;
  --color-primary-soft: #dff2f8;
  --color-on-primary: #102731;
  --color-on-primary-strong: #ffffff;
  --color-secondary: #2e5870;
  --color-chrome: #142d3c;
  --color-chrome-alt: #2b5368;
  --color-focus: #205f7c;
  --series-home: #205f7c;
  --series-away: #2e5870;
}

html[data-nova-theme="club-liverpool"] {
  --theme-scene-hero: url("assets/themes/club-liverpool-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/club-liverpool-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/club-liverpool-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/club-liverpool-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/club-liverpool-portrait.v2.webp");
  --theme-stage-overlay: 82%;
  --color-primary: #e65e68;
  --color-primary-strong: #ff8087;
  --color-primary-soft: #3d1f26;
  --color-on-primary: #170809;
  --color-on-primary-strong: #170809;
  --color-secondary: #78cdbf;
  --color-chrome: #12090b;
  --color-chrome-alt: #352126;
  --color-focus: #ff8087;
  --series-home: #ff8087;
  --series-away: #78cdbf;
}

html[data-nova-theme="club-bayern-munich"] {
  --theme-scene-hero: url("assets/themes/club-bayern-munich-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/club-bayern-munich-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/club-bayern-munich-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/club-bayern-munich-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/club-bayern-munich-portrait.v2.webp");
  --theme-stage-overlay: 82%;
  --color-primary: #e65578;
  --color-primary-strong: #f57e9b;
  --color-primary-soft: #3a2030;
  --color-on-primary: #16080e;
  --color-on-primary-strong: #16080e;
  --color-secondary: #9bd4ef;
  --color-chrome: #121017;
  --color-chrome-alt: #2e2433;
  --color-focus: #f57e9b;
  --series-home: #f57e9b;
  --series-away: #9bd4ef;
}

html[data-nova-theme="rivalry-el-clasico"] {
  --theme-scene-hero: url("assets/themes/rivalry-el-clasico-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/rivalry-el-clasico-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/rivalry-el-clasico-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/rivalry-el-clasico-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/rivalry-el-clasico-portrait.v2.webp");
  --theme-stage-overlay: 82%;
  --color-primary: #e9c872;
  --color-primary-strong: #f2d88d;
  --color-primary-soft: #38301d;
  --color-on-primary: #171205;
  --color-on-primary-strong: #171205;
  --color-secondary: #ff7b86;
  --color-chrome: #091426;
  --color-chrome-alt: #322038;
  --color-focus: #f2d88d;
  --series-home: #f2d88d;
  --series-away: #ff7b86;
}

html[data-nova-theme="rivalry-north-west"] {
  --theme-scene-hero: url("assets/themes/rivalry-north-west-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/rivalry-north-west-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/rivalry-north-west-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/rivalry-north-west-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/rivalry-north-west-portrait.v2.webp");
  --theme-stage-overlay: 82%;
  --color-primary: #e65a64;
  --color-primary-strong: #ff7d85;
  --color-primary-soft: #3b2026;
  --color-on-primary: #170809;
  --color-on-primary-strong: #170809;
  --color-secondary: #78c9bc;
  --color-chrome: #100b0e;
  --color-chrome-alt: #332127;
  --color-focus: #ff7d85;
  --series-home: #ff7d85;
  --series-away: #78c9bc;
}

html[data-nova-theme="rivalry-der-klassiker"] {
  --theme-scene-hero: url("assets/themes/rivalry-der-klassiker-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/rivalry-der-klassiker-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/rivalry-der-klassiker-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/rivalry-der-klassiker-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/rivalry-der-klassiker-portrait.v2.webp");
  --theme-stage-overlay: 82%;
  --color-primary: #f0d348;
  --color-primary-strong: #f8e47a;
  --color-primary-soft: #38331b;
  --color-on-primary: #171405;
  --color-on-primary-strong: #171405;
  --color-secondary: #ff747c;
  --color-chrome: #101114;
  --color-chrome-alt: #322424;
  --color-focus: #f8e47a;
  --series-home: #f8e47a;
  --series-away: #ff747c;
}

html[data-nova-theme="rivalry-manchester"] {
  --theme-scene-hero: url("assets/themes/rivalry-manchester-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/rivalry-manchester-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/rivalry-manchester-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/rivalry-manchester-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/rivalry-manchester-portrait.v2.webp");
  --theme-stage-overlay: 82%;
  --color-primary: #83c8e2;
  --color-primary-strong: #a1dcf0;
  --color-primary-soft: #1d3440;
  --color-on-primary: #0b202a;
  --color-on-primary-strong: #0b202a;
  --color-secondary: #f06b79;
  --color-chrome: #0d151d;
  --color-chrome-alt: #2f2630;
  --color-focus: #a1dcf0;
  --series-home: #a1dcf0;
  --series-away: #f06b79;
}

html[data-nova-theme="rivalry-milan"] {
  --theme-scene-hero: url("assets/themes/rivalry-milan-wide.v2.webp");
  --theme-scene-body-wide: url("assets/themes/rivalry-milan-wide.v2.webp");
  --theme-scene-body-portrait: url("assets/themes/rivalry-milan-portrait.v2.webp");
  --theme-home-wide: url("assets/themes/rivalry-milan-wide.v2.webp");
  --theme-home-portrait: url("assets/themes/rivalry-milan-portrait.v2.webp");
  --theme-stage-overlay: 82%;
  --color-primary: #6d9ffc;
  --color-primary-strong: #8db8ff;
  --color-primary-soft: #1c2e4d;
  --color-on-primary: #09152a;
  --color-on-primary-strong: #09152a;
  --color-secondary: #f06a77;
  --color-chrome: #080a0f;
  --color-chrome-alt: #242030;
  --color-focus: #8db8ff;
  --series-home: #8db8ff;
  --series-away: #f06a77;
}

html {
  background: var(--color-bg) !important;
  /* iPad/iOS 到达页首或页尾后会继续拖动整个视口；根节点负责封住这段橡皮筋越界。 */
  overscroll-behavior-y: none;
}

body.nova-ui {
  position: relative;
  isolation: isolate;
  height: auto;
  min-height: 100%;
  min-height: 100dvh;
  width: 100%;
  max-width: none;
  margin: 0;
  overflow-x: clip;
  overscroll-behavior-y: none;
  color: var(--color-text);
  background-color: var(--color-bg);
  background-image: var(--texture-page);
  background-size: 36px 36px;
  box-shadow: none;
  font-family: var(--font-ui);
  font-kerning: normal;
  font-optical-sizing: auto;
  letter-spacing: normal;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.nova-ui::before {
  content: "";
  position: fixed;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background-image: var(--theme-scene-body-wide);
  background-position: var(--theme-scene-position);
  background-size: cover;
  opacity: 0;
  filter: saturate(0.92) contrast(1.03);
  transition: opacity 220ms ease;
}

html[data-nova-theme-kind="scene"] body.nova-ui::before {
  opacity: 0.22;
}

.nova-ui #app {
  position: relative;
  /* 手机固定底栏位于 #app 内。正文堆叠上下文必须明确高于后置页脚，
     否则 Android Chrome 滚到页尾时，同为 z-index:1 且 DOM 更靠后的
     .site-rights 会盖住底栏，即使底栏自身设置了很大的 z-index。 */
  z-index: 2;
}

@media (orientation: portrait) {
  html[data-nova-theme-kind="scene"] {
    --theme-scene-hero: var(--theme-scene-body-portrait);
  }

  body.nova-ui::before {
    background-image: var(--theme-scene-body-portrait);
  }
}

.nova-ui #app {
  width: 100%;
  min-height: calc(100vh - var(--nova-header-h));
  min-height: calc(100dvh - var(--nova-header-h));
}

.nova-ui .page.nova-page {
  width: min(100%, var(--nova-page-max));
  min-height: calc(100vh - var(--nova-header-h));
  min-height: calc(100dvh - var(--nova-header-h));
  margin: 0 auto;
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
  box-sizing: border-box;
  color: var(--color-text);
  background: var(--color-bg);
  overflow-x: clip;
  box-shadow: 0 0 0 1px rgba(80, 96, 86, 0.04);
}

html[data-nova-theme-kind="scene"] .nova-ui .page.nova-page {
  background: color-mix(in srgb, var(--color-bg) 95%, transparent);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.nova-ui a,
.nova-ui button,
.nova-ui input,
.nova-ui textarea,
.nova-ui select {
  font-family: inherit;
}

.nova-ui :focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}

/* ---------- 全站顶栏 ---------- */
.nova-global-header {
  position: sticky;
  z-index: 900;
  top: 0;
  width: 100%;
  height: var(--nova-header-h);
  color: var(--color-on-chrome);
  background: var(--color-chrome);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.nova-global-inner {
  width: min(100% - 40px, var(--nova-content-max));
  height: 100%;
  margin: 0 auto;
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 210px minmax(330px, 1fr) minmax(390px, auto);
  align-items: center;
  gap: 24px;
}

.nova-brand {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 10px;
  padding: 0;
  color: inherit;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.nova-brand-symbol {
  display: block;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: 10px;
  object-fit: contain;
  box-shadow: 0 8px 22px
    color-mix(in srgb, var(--color-primary) 28%, transparent);
}

.nova-brand-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
}

.nova-brand-copy b {
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.09em;
  font-weight: 850;
}

.nova-brand-copy em {
  color: var(--color-primary);
  font-style: normal;
}

.nova-brand-copy small {
  font-size: 7px;
  line-height: 1;
  letter-spacing: 0.28em;
  color: color-mix(in srgb, var(--color-on-chrome) 55%, transparent);
}

.nova-global-nav {
  height: 100%;
  display: flex;
  align-items: stretch;
  justify-content: center;
}

.nova-global-nav button {
  position: relative;
  min-width: 84px;
  padding: 0 17px;
  border: 0;
  color: color-mix(in srgb, var(--color-on-chrome) 58%, transparent);
  background: transparent;
  font-size: 13px;
  font-weight: 680;
  cursor: pointer;
}

.nova-global-nav button.active,
.nova-global-nav button:hover {
  color: var(--color-on-chrome);
}

.nova-global-nav button.active::after {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 0;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: var(--color-primary);
}

.nova-global-actions {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.nova-search-button,
.nova-language-button,
.nova-settings-button {
  -webkit-appearance: none;
  appearance: none;
  touch-action: manipulation;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 11px;
  color: color-mix(in srgb, var(--color-on-chrome) 85%, transparent);
  background: rgba(255, 255, 255, 0.055);
  cursor: pointer;
}

.nova-search-button {
  font-size: 18px;
}

.nova-search-button span {
  font-size: 10px;
  font-weight: 700;
}

.nova-language-button {
  min-width: 112px;
}

.nova-language-button .nova-action-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  text-align: left;
}

.nova-language-button .nova-action-copy b {
  font-size: 10px;
  line-height: 1.05;
}

.nova-language-button .nova-action-copy small {
  max-width: 76px;
  overflow: hidden;
  color: color-mix(in srgb, var(--color-on-chrome) 55%, transparent);
  font-size: 8px;
  line-height: 1.05;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 顶栏语言入口：桌面为锚定浮层，手机为底部抽屉。 */
body.nova-ui.nova-language-sheet-open {
  overflow: hidden;
}

.nova-ui .nova-language-layer {
  box-sizing: border-box;
  color: var(--color-text);
}

.nova-ui .nova-language-layer.is-popover {
  position: fixed;
  z-index: 1450;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid color-mix(in srgb, var(--color-border) 84%, white 16%);
  border-radius: 18px;
  background: color-mix(in srgb, var(--color-surface) 97%, transparent);
  box-shadow: var(--shadow-float);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.nova-ui .nova-language-panel {
  width: 100%;
  box-sizing: border-box;
}

.nova-ui .nova-language-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 18px 12px;
}

.nova-ui .nova-language-panel > header small {
  display: block;
  margin-bottom: 3px;
  color: var(--color-primary-strong);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.nova-ui .nova-language-panel > header h2 {
  margin: 0;
  color: var(--color-text);
  font-size: 18px;
  line-height: 1.25;
}

.nova-ui .nova-language-close {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  color: var(--color-text-muted);
  border: 1px solid var(--color-border);
  border-radius: 50%;
  background: var(--color-surface-alt);
  font: inherit;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.nova-ui .nova-language-list {
  display: grid;
  gap: 7px;
  padding: 0 10px 10px;
}

.nova-ui .nova-language-list :is(button, a) {
  width: 100%;
  box-sizing: border-box;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 13px;
  color: var(--color-text);
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  text-align: left;
  text-decoration: none;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
  cursor: pointer;
}

.nova-ui .nova-language-list :is(button, a):hover {
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui .nova-language-list :is(button, a)[aria-checked="true"],
.nova-ui .nova-language-list a[aria-current="page"] {
  color: var(--color-primary-strong);
  border-color: color-mix(in srgb, var(--color-primary-strong) 54%, transparent);
  background: color-mix(in srgb, var(--color-primary) 10%, var(--color-surface));
}

.nova-ui .nova-language-list :is(button, a) em {
  min-width: 18px;
  color: inherit;
  font-style: normal;
  text-align: center;
}

.nova-ui .nova-language-panel[aria-busy="true"] .nova-language-list a[aria-disabled="true"] {
  opacity: 0.56;
  pointer-events: none;
  cursor: wait;
}

.nova-ui .nova-language-status {
  margin: 0;
  padding: 0 18px 16px;
  color: var(--color-text-muted);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
}

.nova-ui .nova-language-navigation-error {
  position: fixed;
  z-index: 2200;
  left: 50%;
  bottom: max(24px, env(safe-area-inset-bottom));
  width: min(420px, calc(100vw - 32px));
  box-sizing: border-box;
  padding: 12px 16px;
  color: var(--color-text);
  border: 1px solid var(--color-danger, #b42318);
  border-radius: 12px;
  background: var(--color-surface);
  box-shadow: var(--shadow-float);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.45;
  transform: translateX(-50%);
}

.nova-ui :is(.nova-language-close, .nova-language-list button, .nova-language-list a):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--color-primary) 70%, white 20%);
  outline-offset: 2px;
}

@media (max-width: 700px) {
  .nova-ui .nova-language-layer.is-sheet {
    position: fixed;
    inset: 0;
    z-index: 1500;
    width: auto !important;
    max-height: none !important;
    display: flex;
    align-items: flex-end;
    padding-top: 36px;
    padding-top: max(36px, env(safe-area-inset-top));
    background: color-mix(in srgb, var(--color-chrome) 72%, transparent);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
  }

  .nova-ui .nova-language-layer.is-sheet .nova-language-panel {
    max-height: calc(100vh - 36px);
    max-height: calc(100dvh - max(36px, env(safe-area-inset-top)));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: env(safe-area-inset-bottom);
    border: 1px solid var(--color-border);
    border-bottom: 0;
    border-radius: 24px 24px 0 0;
    background: var(--color-surface);
    box-shadow: 0 -18px 64px rgba(0, 0, 0, 0.28);
    animation: nova-language-sheet-in 180ms ease-out both;
  }

  .nova-ui .nova-language-panel > header {
    padding: 20px 18px 13px;
  }

  .nova-ui .nova-language-panel > header h2 {
    font-size: 20px;
  }

  .nova-ui .nova-language-list {
    padding: 0 12px 14px;
  }

  .nova-ui .nova-language-list :is(button, a) {
    min-height: 54px;
    padding-inline: 15px;
  }
}

@keyframes nova-language-sheet-in {
  from { transform: translateY(18px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* 顶栏搜索始终留在当前业务模块，不复用登录或设置里的输入框。 */
.nova-ui .nova-search-overlay {
  z-index: 1400;
  align-items: flex-start;
  padding: clamp(76px, 10vh, 112px) 18px 24px;
}

.nova-ui .nova-search-modal {
  width: min(760px, calc(100vw - 36px));
  max-height: min(76dvh, 760px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 22px;
  box-shadow: var(--shadow-float);
}

.nova-ui .nova-search-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 20px 22px 12px;
}

.nova-ui .nova-search-head small {
  display: block;
  margin-bottom: 3px;
  color: var(--color-primary-strong);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
}

.nova-ui .nova-search-head h2 {
  margin: 0;
  color: var(--color-text);
  font-size: 22px;
  line-height: 1.2;
}

.nova-ui .nova-search-close {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  color: var(--color-text-muted);
  background: var(--color-surface-alt);
  font: 400 25px/1 system-ui, sans-serif;
  cursor: pointer;
}

.nova-ui .nova-search-form {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin: 0 22px;
  padding: 7px 8px 7px 14px;
  border: 1px solid var(--color-border);
  border-radius: 15px;
  color: var(--color-text-muted);
  background: var(--color-surface-alt);
}

.nova-ui .nova-search-form:focus-within {
  border-color: var(--color-primary-strong);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary-strong) 18%, transparent);
}

.nova-ui .nova-search-form > span {
  font-size: 22px;
  line-height: 1;
}

.nova-ui .nova-search-form input {
  min-width: 0;
  height: 40px;
  padding: 0;
  border: 0;
  outline: 0;
  color: var(--color-text);
  -webkit-text-fill-color: var(--color-text);
  background: transparent;
  caret-color: var(--color-primary-strong);
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}

.nova-ui .nova-search-form input::placeholder {
  color: var(--color-text-muted);
  -webkit-text-fill-color: var(--color-text-muted);
  opacity: 1;
}

.nova-ui .nova-search-form button {
  min-width: 68px;
  min-height: 38px;
  padding: 0 14px;
  border: 0;
  border-radius: 11px;
  color: var(--color-on-primary-strong);
  background: var(--color-primary-strong);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.nova-ui .nova-search-hint {
  margin: 9px 24px 12px;
  color: var(--color-text-muted);
  font-size: 11px;
  line-height: 1.5;
}

.nova-ui .nova-context-search-results {
  min-height: 180px;
  padding: 0 22px 22px;
  overflow: auto;
  overscroll-behavior: contain;
}

.nova-ui .nova-search-summary {
  padding: 11px 2px 9px;
  color: var(--color-text-muted);
  font-size: 12px;
  font-weight: 700;
}

.nova-ui .nova-search-empty {
  min-height: 180px;
  display: grid;
  place-content: center;
  gap: 7px;
  padding: 30px;
  text-align: center;
  color: var(--color-text-muted);
}

.nova-ui .nova-search-empty b {
  color: var(--color-text);
  font-size: 16px;
}

.nova-ui .nova-search-empty span {
  font-size: 12px;
  line-height: 1.55;
}

.nova-ui .nova-search-match-result {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(155px, .72fr) minmax(280px, 1.28fr);
  align-items: center;
  gap: 18px;
  margin: 0 0 8px;
  padding: 13px 15px;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  color: var(--color-text);
  background: var(--color-surface-alt);
  text-align: left;
  cursor: pointer;
}

.nova-ui .nova-search-match-result:hover,
.nova-ui .nova-search-match-result:focus-visible {
  border-color: var(--color-primary-strong);
  transform: translateY(-1px);
}

.nova-ui .nova-search-match-meta,
.nova-ui .nova-search-match-teams {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.nova-ui .nova-search-match-meta b,
.nova-ui .nova-search-match-meta small,
.nova-ui .nova-search-match-teams span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nova-ui .nova-search-match-meta b {
  font-size: 12px;
}

.nova-ui .nova-search-match-meta small {
  margin-left: auto;
  color: var(--color-text-muted);
  font-size: 10px;
}

.nova-ui .nova-search-logo {
  width: 24px;
  height: 24px;
}

.nova-ui .nova-search-match-teams {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  text-align: center;
}

.nova-ui .nova-search-match-teams span:last-child {
  text-align: right;
}

.nova-ui .nova-search-match-teams strong {
  color: var(--color-primary-strong);
  font-size: 13px;
}

.nova-ui .nova-context-search-results .post-feed,
.nova-ui .nova-context-search-results .post,
.nova-ui .nova-context-search-results .tt-item2,
.nova-ui .nova-context-search-results .dm-group {
  margin-left: 0;
  margin-right: 0;
}

.nova-ui .nova-context-search-results .news-updated {
  margin-top: 0;
}

.nova-settings-button {
  min-width: 116px;
  display: grid;
  grid-template-columns: 20px 10px auto;
  grid-template-rows: auto auto;
  column-gap: 7px;
  text-align: left;
}

.nova-settings-icon {
  grid-row: 1 / 3;
  align-self: center;
  color: var(--color-on-chrome);
  font-size: 16px;
}

.nova-theme-dot {
  grid-row: 1 / 3;
  align-self: center;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--theme-dot);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--theme-dot) 18%, transparent);
}

.nova-settings-button b {
  align-self: end;
  font-size: 10px;
  line-height: 1.05;
}

.nova-settings-button small {
  align-self: start;
  font-size: 8px;
  line-height: 1.05;
  color: color-mix(in srgb, var(--color-on-chrome) 55%, transparent);
}

.nova-theme-card {
  --nova-theme-preview-width: clamp(84px, 9vw, 104px);
  position: relative;
  min-height: 74px;
  display: grid;
  grid-template-columns: 42px 1fr 16px;
  align-items: center;
  gap: 10px;
  padding: 10px;
  text-align: left;
  border: 1px solid var(--color-border);
  border-radius: 11px;
  color: var(--color-text);
  background: var(--color-surface-alt);
  cursor: pointer;
}

.nova-theme-card.active {
  border-color: var(--color-primary-strong);
  box-shadow: inset 0 0 0 1px var(--color-primary-strong);
  background: var(--color-primary-soft);
}

.nova-theme-swatches {
  display: flex;
  width: 42px;
  height: 42px;
  border: 2px solid var(--color-surface);
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 0 0 1px var(--color-border);
}

.nova-theme-swatches i {
  flex: 1;
}

.nova-theme-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.nova-theme-preview {
  width: var(--nova-theme-preview-width);
  aspect-ratio: 360 / 203;
  display: block;
  overflow: hidden;
  border: 2px solid var(--color-surface);
  border-radius: 9px;
  background: var(--color-surface);
  box-shadow: 0 0 0 1px var(--color-border);
  box-sizing: border-box;
}

.nova-theme-preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.nova-theme-card.has-image {
  min-height: 88px;
  grid-template-columns: var(--nova-theme-preview-width) minmax(0, 1fr) 16px;
}

.nova-theme-card b {
  font-size: 12px;
}

.nova-theme-card small {
  overflow: hidden;
  color: var(--color-text-muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nova-theme-card > em {
  font-style: normal;
  color: var(--color-primary-strong);
  font-weight: 900;
}

.nova-appearance-title {
  align-items: center;
}

.nova-current-theme {
  flex: 0 0 auto;
  padding: 6px 10px;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  color: var(--color-primary-strong);
  background: var(--color-primary-soft);
  font-size: 11px;
  font-weight: 800;
}

.nova-theme-settings {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.nova-theme-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.nova-theme-group-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}

.nova-theme-group-head h4 {
  margin: 0 0 3px;
  font-size: 14px;
}

.nova-theme-group-head p {
  margin: 0;
  color: var(--color-text-muted);
  font-size: 11px;
  line-height: 1.5;
}

.nova-theme-group-head > span {
  flex: 0 0 auto;
  color: var(--color-text-muted);
  font-size: 10px;
}

.nova-theme-settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.nova-theme-origin-note {
  margin: 20px 0 0;
  padding: 12px 13px;
  border: 1px solid var(--color-border);
  border-radius: 11px;
  color: var(--color-text-muted);
  background: var(--color-surface-alt);
  font-size: 10.5px;
  line-height: 1.65;
}

.nova-account-slot {
  min-width: 124px;
  display: flex;
  justify-content: flex-end;
}

.nova-account-slot .account-trigger {
  max-width: 170px;
  min-height: 44px;
  height: 44px;
  padding: 4px 12px 4px 7px;
  border: 1px solid color-mix(in srgb, var(--color-primary) 80%, transparent);
  border-radius: 12px;
  color: var(--color-on-primary);
  background: var(--color-primary);
  box-shadow: 0 8px 24px
    color-mix(in srgb, var(--color-primary) 22%, transparent);
}

.nova-account-slot .account-trigger:hover,
.nova-account-slot .account-trigger[aria-expanded="true"] {
  color: var(--color-on-primary);
  background: color-mix(in srgb, var(--color-primary) 88%, #ffffff);
}

.nova-account-slot .account-trigger-name {
  max-width: 98px;
  color: inherit;
  font-size: 12px;
  font-weight: 850;
}

.nova-account-slot .account-guest-avatar,
.nova-account-slot .user-avatar {
  width: 30px;
  height: 30px;
  border: 1px solid color-mix(in srgb, var(--color-on-primary) 18%, transparent);
  color: var(--color-on-primary);
  background: color-mix(in srgb, var(--color-on-primary) 13%, transparent);
}

.nova-account-slot .account-trigger-caret {
  color: inherit;
  opacity: 0.65;
}

/* ---------- 顶层频道舞台 ---------- */
.nova-page-stage {
  position: relative;
  color: var(--color-on-chrome);
  background:
    radial-gradient(
      circle at 83% 30%,
      color-mix(in srgb, var(--color-primary) 16%, transparent),
      transparent 30%
    ),
    linear-gradient(110deg, var(--color-chrome), var(--color-chrome-alt));
  overflow: hidden;
}

html[data-nova-theme-kind="scene"] .nova-page-stage {
  background-image:
    linear-gradient(
      90deg,
      color-mix(
          in srgb,
          var(--color-chrome) var(--theme-stage-overlay),
          transparent
        )
        0%,
      color-mix(in srgb, var(--color-chrome) 66%, transparent) 58%,
      color-mix(in srgb, var(--color-chrome-alt) 36%, transparent) 100%
    ),
    radial-gradient(
      circle at 84% 28%,
      color-mix(in srgb, var(--color-primary) 22%, transparent),
      transparent 36%
    ),
    var(--theme-scene-hero);
  background-position: center, center, var(--theme-scene-position);
  background-size: cover;
}

.nova-page-stage::before {
  content: "";
  position: absolute;
  right: -7%;
  bottom: -98%;
  width: 58%;
  aspect-ratio: 1;
  border: 1px solid color-mix(in srgb, var(--color-primary) 32%, transparent);
  border-radius: 50%;
  transform: rotate(-16deg);
}

.nova-stage-status {
  position: relative;
  z-index: 1;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 max(26px, calc((100% - var(--nova-content-max)) / 2));
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  color: color-mix(in srgb, var(--color-on-chrome) 65%, transparent);
  font-size: 9px;
}

.nova-stage-status time {
  font-weight: 600;
}

.nova-stage-status span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 750;
  letter-spacing: 0.04em;
}

.nova-stage-status i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--status-live);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--status-live) 18%, transparent);
}

.nova-stage-status b {
  font-weight: 600;
}

.nova-stage-main {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 52px), var(--nova-content-max));
  min-height: 240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
}

.nova-stage-main > div small {
  display: block;
  margin-bottom: 10px;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: 0.18em;
  color: color-mix(in srgb, var(--color-primary) 90%, #ffffff);
}

.nova-stage-main h1 {
  margin: 0;
  color: var(--color-on-chrome);
  font-family: var(--font-display);
  font-size: clamp(42px, 5.6vw, 72px);
  line-height: 0.98;
  letter-spacing: -0.035em;
  font-weight: 700;
}

.nova-stage-main p {
  max-width: 650px;
  margin: 17px 0 0;
  color: color-mix(in srgb, var(--color-on-chrome) 64%, transparent);
  font-size: 12px;
  line-height: 1.7;
}

.nova-stage-main > em {
  position: absolute;
  z-index: 0;
  right: 0;
  max-width: none;
  overflow: visible;
  color: rgba(255, 255, 255, 0.055);
  font-family: var(--font-display);
  font-size: clamp(34px, 4.6vw, 72px);
  line-height: 0.8;
  font-style: normal;
  font-weight: 800;
  letter-spacing: -0.04em;
  white-space: nowrap;
  pointer-events: none;
}

html[data-nova-theme-kind="scene"] .nova-stage-main > em {
  color: rgba(255, 255, 255, 0.11);
  text-shadow: 0 5px 26px rgba(0, 0, 0, 0.28);
}

/* 晨光与复古比赛日是明亮场景：舞台改用深色文字，避免亮图上仍一律白字。 */
html:is(
    [data-nova-theme="pitch-dawn"],
    [data-nova-theme="retro-matchday"]
  )
  .nova-page-stage {
  color: var(--color-text);
  background-image:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--color-surface) 94%, transparent) 0%,
      color-mix(in srgb, var(--color-surface) 84%, transparent) 58%,
      color-mix(in srgb, var(--color-surface-alt) 58%, transparent) 100%
    ),
    radial-gradient(
      circle at 84% 28%,
      color-mix(in srgb, var(--color-primary) 18%, transparent),
      transparent 36%
    ),
    var(--theme-scene-hero);
}

html:is(
    [data-nova-theme="pitch-dawn"],
    [data-nova-theme="retro-matchday"]
  )
  .nova-stage-status {
  color: var(--color-text-muted);
  border-color: color-mix(in srgb, var(--color-text) 10%, transparent);
}

html:is(
    [data-nova-theme="pitch-dawn"],
    [data-nova-theme="retro-matchday"]
  )
  :is(.nova-stage-main h1, .nova-stage-main > em) {
  color: var(--color-text-heading);
}

html:is(
    [data-nova-theme="pitch-dawn"],
    [data-nova-theme="retro-matchday"]
  )
  .nova-stage-main > em {
  color: color-mix(in srgb, var(--color-text-heading) 11%, transparent);
  text-shadow: none;
}

html:is(
    [data-nova-theme="pitch-dawn"],
    [data-nova-theme="retro-matchday"]
  )
  .nova-stage-main p {
  color: var(--color-text-muted);
}

html:is(
    [data-nova-theme="pitch-dawn"],
    [data-nova-theme="retro-matchday"]
  )
  .nova-stage-main > div small {
  color: var(--color-primary-strong);
}

.nova-stage-main > :not(em) {
  position: relative;
  z-index: 1;
}

/* ---------- 共用旧组件重新归一 ---------- */
.nova-ui .page,
.nova-ui .home-top,
.nova-ui .news-head,
.nova-ui .disc-head,
.nova-ui .data-top,
.nova-ui .league-tabs,
.nova-ui .detail-tabs,
.nova-ui .team-news-bar,
.nova-ui .league-picker,
.nova-ui .lg-filter-bar,
.nova-ui .date-strip,
.nova-ui .tt-cats,
.nova-ui .real-note,
.nova-ui .news-updated,
.nova-ui .follow-tip,
.nova-ui .date-head,
.nova-ui .gm-date,
.nova-ui .spl-game-filters {
  color: var(--color-text);
  border-color: var(--color-border);
  background-color: var(--color-surface);
}

.nova-ui .real-note,
.nova-ui .news-updated,
.nova-ui .follow-tip,
.nova-ui .date-head,
.nova-ui .gm-date,
.nova-ui .nh-note,
.nova-ui .entity-source-line {
  color: var(--color-text-muted);
  background: var(--color-surface-alt);
}

.nova-ui .home-top,
.nova-ui .news-head,
.nova-ui .disc-head,
.nova-ui .data-top,
.nova-ui .league-tabs,
.nova-ui .detail-tabs,
.nova-ui .team-news-bar,
.nova-ui .league-picker {
  position: static;
  z-index: auto;
  top: auto;
  min-height: 58px;
  border-bottom: 1px solid var(--color-border);
  box-shadow: 0 8px 24px rgba(19, 38, 28, 0.04);
}

.nova-ui .sports-nav {
  display: none;
}

.nova-ui .sub-tabs,
.nova-ui .news-head,
.nova-ui .disc-head,
.nova-ui .data-top {
  width: min(100%, var(--nova-content-max));
  min-height: 58px;
  margin: 0 auto;
  padding: 0 18px;
  border: 0;
}

.nova-ui .sub-tabs .tabs,
.nova-ui .news-topnav,
.nova-ui .disc-topnav,
.nova-ui .data-top .tabs {
  justify-content: flex-start;
  gap: 8px;
  overflow-x: auto;
}

.nova-ui .sub-tabs .tab,
.nova-ui .news-topnav .tab,
.nova-ui .disc-topnav .tab,
.nova-ui .data-top .tabs .on,
.nova-ui .league-tabs .tab,
.nova-ui .detail-tabs .tab {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border-radius: 9px;
  color: var(--color-text-muted);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.nova-ui .sub-tabs .tab.active,
.nova-ui .news-topnav .tab.active,
.nova-ui .disc-topnav .tab.active,
.nova-ui .league-tabs .tab.active,
.nova-ui .detail-tabs .tab.active {
  color: var(--color-on-primary);
  background: var(--color-primary);
}

.nova-ui .sub-tabs .tab.active::after,
.nova-ui .news-topnav .tab.active::after,
.nova-ui .disc-topnav .tab.active::after,
.nova-ui .league-tabs .tab.active::after,
.nova-ui .detail-tabs .tab.active::after {
  display: none;
}

.nova-ui .news-head .h24,
.nova-ui .disc-head > .user-avatar,
.nova-ui .disc-head > .av,
.nova-ui .disc-head > .acts2,
.nova-ui .data-top .tabs {
  flex: 0 0 auto;
}

.nova-ui .news-head .nh-clear {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  color: var(--status-danger);
  border: 1px solid
    color-mix(in srgb, var(--status-danger) 20%, var(--color-border));
  border-radius: 8px;
  background: color-mix(in srgb, var(--status-danger) 6%, var(--color-surface));
  font-size: 11px;
}

.nova-ui .news-head .h24,
.nova-ui .news-head .acts2:not(.nh-clear),
.nova-ui .disc-head > .user-avatar,
.nova-ui .disc-head > .av,
.nova-ui .disc-head > .acts2 {
  display: none;
}

.nova-ui .data-top {
  justify-content: flex-end;
}

.nova-ui .data-top .tabs {
  margin-right: auto;
}

.nova-ui .data-search {
  min-width: 240px;
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  color: var(--color-text);
  background: var(--color-surface-alt);
}

.nova-ui .tabbar {
  display: none;
}

.nova-ui .real-loading {
  color: var(--color-text-muted);
}

.nova-ui .real-loading::before {
  content: "";
  display: inline-block;
  width: 13px;
  height: 13px;
  margin-right: 8px;
  border: 2px solid var(--color-border);
  border-top-color: var(--color-primary-strong);
  border-radius: 50%;
  vertical-align: -3px;
  animation: nova-spin 0.8s linear infinite;
}

@keyframes nova-spin {
  to {
    transform: rotate(360deg);
  }
}

.nova-ui .real-offline,
.nova-ui .home-data-warning {
  color: var(--status-warning);
  border: 1px solid color-mix(in srgb, var(--status-warning) 23%, transparent);
  border-radius: 10px;
  background: color-mix(
    in srgb,
    var(--status-warning) 8%,
    var(--color-surface)
  );
}

.nova-ui .truth-empty,
.nova-ui .follow-empty,
.nova-ui .support-empty,
.nova-ui .licensed-watch-empty {
  color: var(--color-text-muted);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui .truth-empty b {
  color: var(--color-text);
}

.nova-ui .truth-empty.error {
  color: var(--status-danger);
  border-color: color-mix(in srgb, var(--status-danger) 34%, var(--color-border));
  background: color-mix(in srgb, var(--status-danger) 7%, var(--color-surface));
}

/* ---------- 首页：焦点舞台后接比赛信息带 ---------- */
.nova-route-home .home-top {
  height: 58px;
}

.nova-route-home .lg-filter-bar {
  width: min(calc(100% - 40px), var(--nova-content-max));
  height: 58px !important;
  margin: 18px auto 0;
  padding: 0 !important;
  border: 1px solid var(--color-border);
  border-radius: 13px 13px 0 0;
  background: var(--color-surface);
}

.nova-route-home .lg-filter-bar .home-range-note {
  left: 18px;
  top: 20px;
  color: var(--color-text-muted);
  font-size: 10px;
  font-weight: 650;
}

.nova-route-home .lg-filter-bar .lf-select {
  right: 12px !important;
  top: 10px !important;
  min-height: 36px;
  padding: 0 13px;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: 9px;
  background: var(--color-surface-alt);
}

.nova-route-home .match-list {
  flex: none;
  min-height: 0;
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin: 0 auto 42px;
  padding: 0 0 30px;
  border: 1px solid var(--color-border);
  border-top: 0;
  border-radius: 0 0 var(--nova-radius) var(--nova-radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.nova-route-home .home-data-warning {
  margin: 12px 14px;
}

.nova-ui .competition-group {
  margin: 14px;
  border-color: var(--color-border);
  border-radius: 14px;
  background: var(--color-surface);
  box-shadow: 0 6px 22px rgba(20, 39, 29, 0.05);
}

.nova-ui .competition-head {
  min-height: 58px;
  padding: 10px 16px;
  border-color: var(--color-border);
  background: linear-gradient(
    90deg,
    var(--color-surface-alt),
    var(--color-surface)
  );
}

.nova-ui .competition-ident.group-logo,
.nova-ui .competition-ident.compact {
  color: var(--color-text);
}

.nova-ui .competition-date {
  padding: 9px 16px;
  color: var(--color-text-muted);
  border-color: var(--color-border);
  background: color-mix(
    in srgb,
    var(--color-surface-alt) 70%,
    var(--color-surface)
  );
}

.nova-ui .match-row {
  --match-time-edge: 94px;
  min-height: 88px;
  padding: 12px 16px;
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
  transition:
    background 140ms ease,
    transform 140ms ease;
}

/*
 * 比赛顶部信息必须以对阵区域的中心线为准。旧的两列 flex 把日期放在左侧后，
 * 倒计时只在“剩余宽度”内居中，实际会向右偏移半个日期列宽。第三列保留与
 * 日期列等宽的空白镜像，使状态/倒计时在桌面和窄屏都真正对齐对阵中心。
 */
.nova-ui .match-row .time-min {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns:
    var(--match-time-edge)
    minmax(0, 1fr)
    var(--match-time-edge);
  align-items: baseline;
  overflow: hidden;
}

.nova-ui .match-row .time-min::after {
  content: "";
  min-width: 0;
}

.nova-ui .match-row .time-min .t {
  width: auto;
  min-width: 0;
  display: flex;
  align-items: baseline;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
}

.nova-ui .match-row .time-min .m {
  width: auto;
  min-width: 0;
  overflow: hidden;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nova-ui .match-row:hover {
  background: color-mix(
    in srgb,
    var(--color-primary-soft) 56%,
    var(--color-surface)
  );
}

.nova-ui .match-row.row-live {
  border-left: 3px solid var(--status-live);
  background: color-mix(in srgb, var(--status-live) 5%, var(--color-surface));
}

.nova-ui .match-row .score,
.nova-ui .match-row .lineup-tag,
.nova-ui .match-row .time-min .m:not(.pre) {
  color: var(--color-primary-strong);
}

.nova-ui .home-range-more {
  margin: 16px;
  color: var(--color-text-muted);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui .home-range-more button {
  color: var(--color-primary-strong);
  border-color: var(--color-primary-strong);
  background: var(--color-surface);
}

.nova-ui .lf-menu,
.nova-ui .year-menu {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-float);
}

.nova-ui .lf-item.on,
.nova-ui .year-menu .ym-item.on {
  color: var(--color-primary-strong);
  background: var(--color-primary-soft);
}

/* ---------- 资讯：头图、分类、列表信息带 ---------- */
.nova-route-news .news-head {
  width: 100%;
  padding: 0 max(18px, calc((100% - var(--nova-content-max)) / 2));
}

.nova-route-news .news-topnav {
  width: min(100%, var(--nova-content-max));
  flex: 1;
}

.nova-route-news .tt-cats,
.nova-route-news .news-updated,
.nova-route-news .follow-tip,
.nova-route-news .nh-note,
.nova-route-news .wc-quick {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
}

.nova-route-news .tt-cats {
  margin-top: 18px;
  padding: 8px;
  gap: 5px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  border: 1px solid var(--color-border);
  border-radius: 12px 12px 0 0;
  background: var(--color-surface);
}

.nova-route-news .tt-cats::-webkit-scrollbar {
  display: none;
}

.nova-route-news .tt-cats span {
  min-height: 35px;
  display: inline-flex;
  align-items: center;
  padding: 0 13px;
  border-radius: 8px;
  color: var(--color-text-muted);
  font-size: 11px;
  font-weight: 700;
}

.nova-route-news .tt-cats span.on {
  color: var(--color-on-primary);
  background: var(--color-primary);
}

.nova-route-news .tt-scores {
  display: none;
}

.nova-route-news .toutiao-list,
.nova-route-news .news-history-list,
.nova-route-news .follow-layout,
.nova-route-news .wc-info-hero {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
  color: var(--color-text);
  background: var(--color-surface);
}

.nova-route-news .toutiao-list,
.nova-route-news .news-history-list,
.nova-route-news .follow-layout {
  margin-bottom: 44px;
  border: 1px solid var(--color-border);
  border-radius: 0 0 var(--nova-radius) var(--nova-radius);
  box-shadow: var(--shadow-card);
  overflow: visible;
}

.nova-route-news .tt-item2,
.nova-route-news .nh-item,
.nova-ui .news-item {
  min-height: 136px;
  padding: 20px 22px;
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-route-news .tt-item2 .t,
.nova-ui .news-item .txt .t {
  color: var(--color-text);
  font-size: 17px;
  line-height: 1.5;
  font-weight: 700;
}

.nova-route-news .tt-item2 .m,
.nova-ui .news-item .txt .time {
  color: var(--color-text-muted);
}

.nova-route-news .tt-item2 .thumb2,
.nova-route-news .tt-item2 .thumb,
.nova-ui .news-item .thumb {
  width: 172px;
  height: 98px;
  margin-left: 18px;
  border-radius: 11px;
  background: var(--color-surface-alt);
}

.nova-route-news .tt-big {
  padding: 28px;
  border-color: var(--color-bg);
  background: var(--color-surface);
}

.nova-route-news .tt-big .big-img {
  height: 380px;
  border-radius: 15px;
  background: linear-gradient(
    135deg,
    var(--color-chrome),
    var(--color-chrome-alt)
  );
}

.nova-route-news .wc-info-hero {
  margin-top: 18px;
  border-radius: var(--nova-radius) var(--nova-radius) 0 0;
  background:
    radial-gradient(
      circle at 80% 20%,
      color-mix(in srgb, var(--color-primary) 18%, transparent),
      transparent 35%
    ),
    linear-gradient(120deg, var(--color-chrome), var(--color-chrome-alt));
  overflow: hidden;
}

.nova-route-news .wc-quick {
  border-inline: 1px solid var(--color-border);
  background: linear-gradient(
    180deg,
    var(--color-primary-soft),
    var(--color-surface)
  );
}

.nova-route-news .wc-quick .q {
  color: var(--color-text);
}

.nova-route-news .follow-layout {
  display: block;
  min-height: 0;
  padding-bottom: 0;
}

.nova-route-news .follow-side {
  position: static;
  z-index: auto;
  top: auto;
  width: 100%;
  display: flex;
  gap: 6px;
  padding: 8px;
  overflow-x: auto;
  border: 0;
  border-bottom: 1px solid var(--color-border);
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.nova-route-news .follow-side .it {
  width: auto;
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid var(--color-border);
  border-radius: 9px;
  color: var(--color-text-muted);
  background: var(--color-surface);
}

.nova-route-news .follow-side .it.active {
  color: var(--color-on-primary);
  border-color: var(--color-primary);
  background: var(--color-primary);
}

.nova-route-news .follow-main {
  padding: 22px;
}

.nova-route-news .follow-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

/* ---------- 发现：来源说明与内容区带 ---------- */
.nova-route-discover .disc-head {
  width: 100%;
  padding: 0 max(18px, calc((100% - var(--nova-content-max)) / 2));
}

.nova-route-discover .disc-topnav {
  width: min(100%, var(--nova-content-max));
  flex: 1;
}

.nova-route-discover .discover-source-note,
.nova-route-discover .discover-real-section,
.nova-route-discover .topic-grid,
.nova-route-discover .feed-bar,
.nova-route-discover .post-feed,
.nova-route-discover .expert-publish-note {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
}

.nova-route-discover .discover-source-note {
  margin-top: 18px;
  padding: 18px 20px;
  border-color: color-mix(
    in srgb,
    var(--color-secondary) 20%,
    var(--color-border)
  );
  border-radius: var(--nova-radius);
  color: var(--color-text-muted);
  background: color-mix(
    in srgb,
    var(--color-secondary) 5%,
    var(--color-surface)
  );
}

.nova-route-discover .discover-source-note b {
  color: var(--color-text);
  font-size: 15px;
}

.nova-route-discover .discover-real-section,
.nova-route-discover .topic-grid,
.nova-route-discover .post-feed {
  margin-top: 14px;
  border: 1px solid var(--color-border);
  border-radius: var(--nova-radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.nova-route-discover .discover-real-section {
  padding: 20px;
}

.nova-ui .discover-section-head,
.nova-ui .feed-bar,
.nova-ui .match-real-section-head,
.nova-ui .spl-section-title,
.nova-ui .ov-best-h,
.nova-ui .stand-title,
.nova-ui .entity-section-title {
  color: var(--color-text);
  border-color: var(--color-border);
}

.nova-ui .discover-section-head b {
  color: var(--theme-heading-accent);
  font-size: 18px;
}

/* 章节标题使用当前主题的主强调色；正文仍保持中性色，避免整页只剩黑白。 */
.nova-ui :is(
  .match-official-watch-head h3,
  .match-real-section-head h3,
  .dm-group h4,
  .spl-section-title,
  .account-history-head h1
) {
  color: var(--theme-heading-accent);
}

.nova-ui .discover-section-head small {
  color: var(--color-text-muted);
}

.nova-route-discover .official-watch-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nova-route-discover .official-video-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nova-route-discover .official-watch-card,
.nova-route-discover .official-insight-card,
.nova-route-discover .official-video-card,
.nova-route-discover .discover-match-card,
.nova-route-discover .post {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
  box-shadow: 0 5px 18px rgba(25, 45, 34, 0.06);
}

.nova-route-discover .topic-grid {
  grid-template-columns: repeat(10, minmax(0, 1fr));
  padding: 26px 18px;
}

.nova-route-discover .topic-grid.community-topic-empty {
  grid-template-columns: minmax(0, 1fr);
}

.nova-route-discover .community-feed-toolbar {
  position: relative;
}

.nova-route-discover .topic .tic {
  border: 1px solid var(--color-border);
  background: var(--color-surface-alt) !important;
}

.nova-route-discover .feed-bar {
  margin-top: 14px;
  padding: 15px 18px;
  border: 1px solid var(--color-border);
  border-radius: 13px 13px 0 0;
  background: var(--color-surface-alt);
}

.nova-route-discover .post-feed {
  margin-top: 0;
  margin-bottom: 44px;
  border-radius: 0 0 var(--nova-radius) var(--nova-radius);
}

.nova-route-discover .fab {
  right: max(24px, calc((100vw - var(--nova-content-max)) / 2 + 24px));
  bottom: 28px;
  color: var(--color-on-primary);
  background: var(--color-primary);
  box-shadow: 0 12px 30px
    color-mix(in srgb, var(--color-primary) 28%, transparent);
}

/* ---------- 数据：洲际分类改为上方横向带，彻底取消常驻左右栏 ---------- */
.nova-route-data .data-top {
  width: 100%;
  padding: 0 max(18px, calc((100% - var(--nova-content-max)) / 2));
}

.nova-route-data .data-hot-stage,
.nova-route-data .data-body2 {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
}

.nova-route-data .data-hot-stage {
  margin-top: 18px;
  padding: 17px 0;
  border: 1px solid var(--color-border);
  border-radius: var(--nova-radius) var(--nova-radius) 0 0;
  background:
    radial-gradient(
      circle at 8% 50%,
      color-mix(in srgb, var(--color-primary) 14%, transparent),
      transparent 18%
    ),
    var(--color-surface);
}

.nova-route-data .hot-ring {
  border-color: color-mix(
    in srgb,
    var(--color-primary-strong) 28%,
    transparent
  );
}

.nova-route-data .hot-flame {
  fill: var(--color-primary-strong);
  filter: drop-shadow(
    0 3px 5px color-mix(in srgb, var(--color-primary) 28%, transparent)
  );
}

.nova-route-data .hot-flame .core {
  fill: var(--color-primary);
}

.nova-route-data .data-hot .hot-card,
.nova-route-data .dm-logo-shell {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-route-data .data-body2 {
  display: block;
  min-height: 60vh;
  margin-bottom: 44px;
  border: 1px solid var(--color-border);
  border-top: 0;
  border-radius: 0 0 var(--nova-radius) var(--nova-radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow: visible;
}

.nova-route-data .data-side2,
.nova-route-data .data-side {
  position: static;
  z-index: auto;
  top: auto;
  width: 100%;
  display: flex;
  gap: 6px;
  padding: 9px;
  overflow-x: auto;
  border: 0;
  border-bottom: 1px solid var(--color-border);
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.nova-route-data .data-side2 .it,
.nova-route-data .data-side .it {
  flex: 0 0 auto;
  min-width: 70px;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 13px;
  border: 1px solid var(--color-border);
  border-radius: 9px;
  color: var(--color-text-muted);
  background: var(--color-surface);
}

.nova-route-data .data-side2 .it.active,
.nova-route-data .data-side .it.active {
  color: var(--color-on-primary);
  border-color: var(--color-primary);
  background: var(--color-primary);
}

.nova-route-data .data-main2,
.nova-route-data .data-main {
  width: 100%;
  padding: 14px 18px 28px;
}

.nova-route-data .dm-group {
  padding: 12px 8px 18px;
  border-bottom: 1px solid var(--color-border);
}

.nova-route-data .dm-group:last-child {
  border-bottom: 0;
}

.nova-route-data .dm-group h4 {
  margin: 0 0 15px;
  color: var(--color-text);
  font-size: 15px;
}

.nova-route-data .dm-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}

.nova-route-data .dm-item {
  min-height: 104px;
  justify-content: center;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface-alt);
}

.nova-route-data .dm-item .dm-nm {
  color: var(--color-text);
}

/* ---------- 赛事详情：统一赛事舞台、局部导航与纵向榜单 ---------- */
.nova-ui .league-hero {
  width: 100%;
  height: 300px;
  color: var(--color-on-chrome);
  background:
    radial-gradient(
      circle at 76% 20%,
      color-mix(in srgb, var(--color-primary) 22%, transparent),
      transparent 34%
    ),
    linear-gradient(125deg, var(--color-chrome), var(--color-chrome-alt)) !important;
}

.nova-ui .league-hero.small {
  height: 130px;
}

.nova-ui .league-hero .bar,
.nova-ui .league-hero .center {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
}

.nova-ui .league-hero .bar {
  padding-top: 17px;
}

.nova-ui .league-hero .center {
  left: 50%;
  top: 66px;
}

.nova-ui .league-hero.small .center {
  top: 46px;
}

.nova-ui .league-tabs {
  width: 100%;
  padding: 0 max(18px, calc((100% - var(--nova-content-max)) / 2));
}

.nova-ui .league-tabs .tabs {
  gap: 7px;
}

.nova-ui .league-tabs .year {
  flex: 0 0 auto;
  color: var(--color-primary-strong);
  border-color: color-mix(
    in srgb,
    var(--color-primary-strong) 25%,
    var(--color-border)
  );
  background: var(--color-primary-soft);
}

.nova-ui .lg-detail-body,
.nova-ui .rank-layout,
.nova-ui .hist-layout,
.nova-ui .games-list,
.nova-ui .group-block,
.nova-ui .ov-sec,
.nova-ui .overview-metric-grid,
.nova-ui .best-pitch,
.nova-ui .bracket-scroll,
.nova-ui .spl-pulse,
.nova-ui .matchday-strip,
.nova-ui .stage-pills,
.nova-ui .news-list {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
}

.nova-ui .lg-detail-body {
  margin-top: 18px;
  margin-bottom: 44px;
  padding-bottom: 28px;
  border: 1px solid var(--color-border);
  border-radius: var(--nova-radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.nova-ui .rank-layout,
.nova-ui .hist-layout {
  display: block;
  min-height: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--nova-radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow: visible;
}

.nova-ui .rank-side,
.nova-ui .hist-side {
  position: static;
  z-index: auto;
  top: auto;
  width: 100%;
  max-height: none;
  display: flex;
  gap: 6px;
  padding: 9px;
  overflow-x: auto;
  border-bottom: 1px solid var(--color-border);
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.nova-ui .rank-side .it,
.nova-ui .hist-side .it {
  flex: 0 0 auto;
  min-height: 36px;
  display: flex;
  align-items: center;
  padding: 0 13px;
  border: 1px solid var(--color-border);
  border-radius: 9px;
  color: var(--color-text-muted);
  background: var(--color-surface);
}

.nova-ui .rank-side .it.active,
.nova-ui .hist-side .it.active {
  color: var(--color-on-primary);
  border-color: var(--color-primary);
  background: var(--color-primary);
}

.nova-ui .rank-main,
.nova-ui .hist-main {
  width: 100%;
  padding: 24px;
}

.nova-ui .stand-table,
.nova-ui .g-table,
.nova-ui .r-table,
.nova-ui .h-table,
.nova-ui .spl-table {
  color: var(--color-text);
  background: var(--color-surface);
}

.nova-ui :is(.stand-table, .g-table, .r-table, .h-table, .spl-table) th {
  color: var(--color-text-muted);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui :is(.stand-table, .g-table, .r-table, .h-table, .spl-table) td {
  color: var(--color-text);
  border-color: var(--color-border);
}

.nova-ui .g-table tr.adv {
  background: var(--color-primary-soft);
}

.nova-ui .bk-round,
.nova-ui .stage-pills .p1,
.nova-ui .spl-game-filters span.on,
.nova-ui .radar-tabs span.on,
.nova-ui .intel-filters .f.on,
.nova-ui .exp-filter2 span.on,
.nova-ui .data-filters span.on,
.nova-ui .date-strip .dt.on {
  color: var(--color-primary-strong);
  border-color: color-mix(
    in srgb,
    var(--color-primary-strong) 24%,
    var(--color-border)
  );
  background: var(--color-primary-soft);
}

.nova-ui .bk-match,
.nova-ui .md-card,
.nova-ui .rank-podium-card,
.nova-ui .rank-chart-row,
.nova-ui .history-season-card,
.nova-ui .history-award-grid > a,
.nova-ui .history-award-grid > div,
.nova-ui .stat-compare-row,
.nova-ui .match-form-card,
.nova-ui .match-standing-card {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-ui .bracket-cols {
  width: max-content;
  min-width: 100%;
  justify-content: center;
}

/* ---------- 比赛详情：比分舞台 + 九类功能长卷 ---------- */
.nova-ui .match-hero {
  width: 100%;
  min-height: 360px;
  padding-bottom: 24px;
  color: var(--color-on-chrome);
  background:
    radial-gradient(
      circle at 18% 88%,
      color-mix(in srgb, var(--color-secondary) 26%, transparent),
      transparent 38%
    ),
    radial-gradient(
      circle at 82% 20%,
      color-mix(in srgb, var(--color-primary) 20%, transparent),
      transparent 36%
    ),
    linear-gradient(150deg, var(--color-chrome), var(--color-chrome-alt));
}

.nova-ui .match-hero.compact {
  min-height: 0;
  padding-bottom: 12px;
}

.nova-ui .match-hero > .bar,
.nova-ui .match-hero > .teams,
.nova-ui .match-hero > .follow-row,
.nova-ui .match-hero > .result-versus,
.nova-ui .match-hero > .support-bar,
.nova-ui .match-hero > .predict-bar,
.nova-ui .match-hero > .result-bar {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
}

.nova-ui .match-hero .bar {
  padding-top: 18px;
}

.nova-ui .match-hero .teams {
  padding: 48px 12% 40px;
}

.nova-ui .match-hero .tside {
  width: 180px;
}

.nova-ui .match-hero .tside .nm {
  font-size: 21px;
  font-weight: 800;
}

.nova-ui .match-hero .big-score,
.nova-ui .match-hero .center .score {
  color: var(--color-on-chrome);
  font-size: 48px;
}

.nova-ui .detail-tabs {
  width: 100%;
  justify-content: center;
  gap: 7px;
  padding: 0 max(18px, calc((100% - var(--nova-content-max)) / 2));
}

.nova-ui .detail-tabs button.tab {
  appearance: none;
  font: inherit;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.nova-ui .weather-card,
.nova-ui .live-player,
.nova-ui .lp-note,
.nova-ui .thumb-strip,
.nova-ui .stat-rings,
.nova-ui .shots,
.nova-ui #mt-stats,
.nova-ui #mt-tl,
.nova-ui #mt-news,
.nova-ui .chat-notice,
.nova-ui #match-chat-list,
.nova-ui .chat-input,
.nova-ui #lineup-box,
.nova-ui .odds-real-head,
.nova-ui #odds-real,
.nova-ui .match-intel-note,
.nova-ui #intel-items,
.nova-ui .match-expert-note,
.nova-ui .match-expert-compose,
.nova-ui #match-expert-real,
.nova-ui .match-hot-note,
.nova-ui #match-hot-real,
.nova-ui .data-seg,
.nova-ui #md-body,
.nova-ui #paid-slot-vip,
.nova-ui .match-real-section,
.nova-ui .chat-box,
.nova-ui .lineup-wrap,
.nova-ui .odds2-table,
.nova-ui .intel-wrap,
.nova-ui .expert-wrap,
.nova-ui .hot-wrap,
.nova-ui .paid-slot,
.nova-ui .match-account-panel,
.nova-ui .rel-news,
.nova-ui .match-stat-detail,
.nova-ui .stat-compare-list {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
}

.nova-ui .live-player {
  margin-top: 18px;
  border: 1px solid
    color-mix(in srgb, var(--color-on-chrome) 10%, var(--color-border));
  border-radius: var(--nova-radius) var(--nova-radius) 0 0;
  box-shadow: var(--shadow-card);
}

.nova-ui .lp-note {
  padding: 10px 14px;
  color: var(--color-text-muted);
  border: 1px solid var(--color-border);
  border-top: 0;
  border-radius: 0 0 var(--nova-radius) var(--nova-radius);
  background: var(--color-surface-alt);
}

.nova-ui .match-watch-shell {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin: 18px auto;
}

.nova-ui .match-watch-shell .live-player,
.nova-ui .match-watch-shell .lp-note {
  width: 100%;
  margin-inline: 0;
}

.nova-ui .match-watch-shell .live-player {
  margin-top: 0;
}

.nova-ui .live-source-empty {
  min-height: 260px;
  display: grid;
  grid-template-columns: minmax(250px, 0.9fr) minmax(330px, 1.1fr);
  align-items: stretch;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--nova-radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.nova-ui .live-source-visual {
  position: relative;
  min-height: 240px;
  display: grid;
  place-items: center;
  color: var(--color-on-chrome);
  background-image:
    linear-gradient(120deg, color-mix(in srgb, var(--color-chrome) 87%, transparent), color-mix(in srgb, var(--color-chrome-alt) 52%, transparent)),
    var(--theme-scene-hero);
  background-position: center, var(--theme-scene-position);
  background-size: cover;
  overflow: hidden;
}

.nova-ui .live-source-visual::before,
.nova-ui .live-source-visual::after {
  content: "";
  position: absolute;
  inset: 14% 9%;
  border: 1px solid color-mix(in srgb, var(--color-primary) 42%, transparent);
  border-radius: 48%;
}

.nova-ui .live-source-visual::after {
  inset: 14% 41%;
  border-radius: 0;
  border-block: 0;
}

.nova-ui .live-source-visual span {
  position: absolute;
  left: 18px;
  top: 16px;
  z-index: 1;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.18em;
  color: var(--color-primary);
}

.nova-ui .live-source-visual i {
  position: absolute;
  right: 18px;
  top: 19px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--status-neutral);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--status-neutral) 18%, transparent);
}

.nova-ui .live-source-visual b {
  position: relative;
  z-index: 1;
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  padding-left: 4px;
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 42%, transparent);
  border-radius: 50%;
  color: var(--color-on-chrome);
  background: color-mix(in srgb, var(--color-chrome) 54%, transparent);
  backdrop-filter: blur(10px);
}

.nova-ui .live-source-copy {
  align-self: center;
  padding: 34px clamp(24px, 4vw, 54px);
}

.nova-ui .live-source-state {
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: 0.08em;
  color: var(--color-primary-strong);
  background: var(--color-primary-soft);
}

.nova-ui .live-source-copy h3 {
  margin: 15px 0 8px;
  font-size: clamp(21px, 3vw, 30px);
  line-height: 1.12;
}

.nova-ui .live-source-copy p {
  max-width: 620px;
  margin: 0;
  color: var(--color-text-muted);
  font-size: 12px;
  line-height: 1.75;
}

.nova-ui .live-source-copy button {
  margin-top: 20px;
  min-height: 40px;
  padding: 0 17px;
  color: var(--color-on-primary-strong);
  border: 0;
  border-radius: 9px;
  background: var(--color-primary-strong);
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.nova-ui .match-official-watch {
  margin-top: 12px;
  padding: 18px;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--nova-radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}

.nova-ui .match-official-watch-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 14px;
}

.nova-ui .match-official-watch-head span {
  display: block;
  margin-bottom: 4px;
  color: var(--color-primary-strong);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: 0.15em;
}

.nova-ui .match-official-watch-head h3 {
  margin: 0;
  font-size: 19px;
}

.nova-ui .match-official-watch-head p {
  max-width: 520px;
  margin: 0;
  color: var(--color-text-muted);
  font-size: 10px;
  line-height: 1.55;
  text-align: right;
}

.nova-ui .match-official-watch-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.nova-ui .match-official-watch-grid > :is(.real-loading, .truth-empty) {
  grid-column: 1 / -1;
}

.nova-ui .match-official-watch .official-watch-card {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
  box-shadow: none;
}

.nova-ui .match-official-watch :is(.ow-name, .ow-desc) {
  color: var(--color-text);
}

.nova-ui .match-official-watch .ow-comp {
  color: var(--color-primary-strong);
}

.nova-ui .match-official-watch :is(.ow-desc, .ow-out) {
  color: var(--color-text-muted);
}

.nova-ui #wc-dongtai {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
}

.nova-ui #mt-stats:not(:empty),
.nova-ui #mt-tl:not(:empty),
.nova-ui #mt-news:not(:empty),
.nova-ui #lineup-box:not(:empty),
.nova-ui #odds-real:not(:empty),
.nova-ui #intel-items:not(:empty),
.nova-ui #match-expert-real:not(:empty),
.nova-ui #match-hot-real:not(:empty),
.nova-ui #md-body:not(:empty) {
  margin-top: 14px;
  margin-bottom: 18px;
}

.nova-ui #mt-stats:not(:empty),
.nova-ui #mt-tl:not(:empty),
.nova-ui #lineup-box:not(:empty),
.nova-ui #odds-real:not(:empty),
.nova-ui #intel-items:not(:empty),
.nova-ui #match-expert-real:not(:empty),
.nova-ui #match-hot-real:not(:empty),
.nova-ui #md-body:not(:empty) {
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--nova-radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.nova-ui .odds2-table {
  overflow-x: auto;
  overscroll-behavior-x: contain;
}

.nova-ui .chat-notice {
  margin-top: 14px;
  color: var(--status-warning);
  border: 1px solid
    color-mix(in srgb, var(--status-warning) 18%, var(--color-border));
  background: color-mix(
    in srgb,
    var(--status-warning) 7%,
    var(--color-surface)
  );
}

.nova-ui .chat-notice.n2 {
  margin-top: -1px;
  color: var(--color-text-muted);
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-ui #match-chat-list {
  min-height: 260px;
  margin-bottom: 82px;
  color: var(--color-text);
}

.nova-ui .chat-input {
  bottom: 14px;
  left: 50%;
  width: min(calc(100% - 40px), var(--nova-content-max));
  max-width: none;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: 15px;
  background: color-mix(in srgb, var(--color-surface) 96%, transparent);
  box-shadow: var(--shadow-float);
  backdrop-filter: blur(16px);
}

.nova-ui .chat-input .box {
  color: var(--color-text);
  background: var(--color-surface-alt);
  caret-color: var(--color-primary-strong);
}

.nova-ui .odds-real-head {
  margin-top: 18px;
  padding: 15px 17px 10px;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-bottom: 0;
  border-radius: var(--nova-radius) var(--nova-radius) 0 0;
  background: var(--color-surface-alt);
}

.nova-ui .odds-real-head + #odds-real {
  margin-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.nova-ui .match-intel-note,
.nova-ui .match-expert-note,
.nova-ui .match-hot-note {
  margin-top: 18px;
}

.nova-ui .match-expert-compose {
  padding: 10px 0 0;
}

.nova-ui .match-expert-compose button {
  color: var(--color-on-primary-strong);
  background: var(--color-primary-strong);
}

.nova-ui .match-hot-compose {
  border-color: color-mix(in srgb, var(--color-primary-strong) 32%, var(--color-border));
  background: linear-gradient(135deg, color-mix(in srgb, var(--color-primary-soft) 74%, var(--color-surface)), var(--color-surface));
}

.nova-ui .match-hot-compose-copy > span { color: var(--color-primary-strong); }
.nova-ui .match-hot-compose-copy > b { color: var(--color-text); }
.nova-ui .match-hot-compose-copy > small { color: var(--color-text-muted); }
.nova-ui .match-hot-compose > button {
  color: var(--color-on-primary-strong);
  background: var(--color-primary-strong);
  box-shadow: 0 9px 22px color-mix(in srgb, var(--color-primary-strong) 24%, transparent);
}

.nova-ui .data-seg {
  margin-top: 16px;
  padding: 10px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface-alt);
}

.nova-ui .data-seg .s.on,
.nova-ui .data-seg .right span.on {
  color: var(--color-on-primary-strong);
  border-color: transparent;
  background: var(--color-primary-strong);
}

.nova-ui .weather-card,
.nova-ui .match-real-section,
.nova-ui .chat-box,
.nova-ui .lineup-wrap,
.nova-ui .odds2-table,
.nova-ui .intel-wrap,
.nova-ui .expert-wrap,
.nova-ui .hot-wrap,
.nova-ui .paid-slot,
.nova-ui .match-account-panel,
.nova-ui .match-stat-detail {
  margin-top: 18px;
  margin-bottom: 18px;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--nova-radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.nova-ui .odds2-table {
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
}

.nova-ui .weather-card {
  background: linear-gradient(
    135deg,
    var(--color-primary-soft),
    var(--color-surface)
  );
}

.nova-ui .weather-card .meta,
.nova-ui .weather-card .stadium .tags {
  color: var(--color-text-muted);
}

.nova-ui .weather-card .stadium {
  color: var(--color-text);
  background: color-mix(in srgb, var(--color-surface-alt) 82%, transparent);
}

.nova-ui .odds2-hd,
.nova-ui .odds2-tr,
.nova-ui .match-stat-detail-head,
.nova-ui .match-stat-detail-row,
.nova-ui .match-real-section-head {
  color: var(--color-text);
  border-color: var(--color-border);
}

.nova-ui .odds2-hd,
.nova-ui .match-stat-detail-head {
  color: var(--color-text-muted);
  background: var(--color-surface-alt);
}

.nova-ui .support-bar .l,
.nova-ui .stat-compare-track .home,
.nova-ui .match-detail-compare .home {
  background: var(--color-primary-strong);
}

.nova-ui .support-bar .r,
.nova-ui .stat-compare-track .away,
.nova-ui .match-detail-compare .away {
  background: var(--color-secondary);
}

.nova-ui .intel-vip .buy,
.nova-ui .auth-submit,
.nova-ui .cm-head .cm-pub {
  color: var(--color-on-primary);
  background: var(--color-primary);
}

/* ---------- 球队/球员百科：保持单轴资料长卷 ---------- */
.nova-ui .entity-page {
  background: var(--color-bg);
}

.nova-ui .entity-hero {
  color: var(--color-on-chrome);
  background:
    radial-gradient(
      circle at 82% 22%,
      color-mix(in srgb, var(--color-primary) 20%, transparent),
      transparent 34%
    ),
    linear-gradient(135deg, var(--color-chrome), var(--color-chrome-alt)) !important;
}

html[data-nova-theme-kind="scene"] .nova-ui :is(
    .league-hero,
    .match-hero,
    .entity-hero,
    .wc-info-hero
  ) {
  background-color: var(--color-chrome) !important;
  background-image:
    linear-gradient(
      105deg,
      color-mix(in srgb, var(--color-chrome) 92%, transparent) 0%,
      color-mix(in srgb, var(--color-chrome) 72%, transparent) 54%,
      color-mix(in srgb, var(--color-chrome-alt) 42%, transparent) 100%
    ),
    var(--theme-scene-hero) !important;
  background-position: center, var(--theme-scene-position) !important;
  background-size: cover !important;
}

.nova-ui .entity-topbar,
.nova-ui .entity-hero-content,
.nova-ui .entity-fact-strip,
.nova-ui .entity-source-line,
.nova-ui .entity-section {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
}

.nova-ui .entity-topbar {
  padding-top: 16px;
}

.nova-ui .entity-hero-content {
  min-height: 250px;
}

.nova-ui .entity-identity h1 {
  font-size: clamp(34px, 5vw, 62px);
  letter-spacing: -0.05em;
}

.nova-ui .entity-source-line {
  margin-top: 16px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
}

.nova-ui .entity-section {
  margin-top: 16px;
  padding: 24px;
  border-color: var(--color-border);
  border-radius: var(--nova-radius);
  color: var(--color-text);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}

.nova-ui .entity-page .entity-section:last-child {
  margin-bottom: 44px;
}

.nova-ui .entity-profile-facts > div,
.nova-ui .entity-metric,
.nova-ui .entity-roster-grid > a {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui .entity-profile-facts span,
.nova-ui .entity-metric-head span,
.nova-ui .entity-roster-grid small {
  color: var(--color-text-muted);
}

.nova-ui .entity-metric-track {
  background: var(--color-border);
}

.nova-ui .entity-metric-track i {
  background: linear-gradient(
    90deg,
    var(--color-primary-strong),
    var(--color-secondary)
  );
}

/* ---------- 帖子、话题、资讯正文 ---------- */
.nova-ui .nova-page > .detail-bar {
  position: static;
  z-index: auto;
  top: auto;
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-route-topic .feed-bar {
  width: min(calc(100% - 40px), 980px);
  margin: 18px auto 0;
  padding: 14px 18px;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--nova-radius) var(--nova-radius) 0 0;
  background: var(--color-surface-alt);
}

.nova-route-topic .topic-page-head,
.nova-route-topic .post-feed,
.nova-route-topic #topic-feed,
.nova-route-post .post-detail,
.nova-route-post #post-detail,
.nova-route-post .comments,
.nova-route-newsread #news-read,
.nova-route-newsread .news-reader,
.nova-route-newsread .news-read-body,
.nova-route-newsread article {
  width: min(calc(100% - 40px), 980px);
  margin-inline: auto;
}

.nova-route-newsread .news-comments-section {
  color: var(--color-text);
  border-color: var(--color-border);
}

.nova-route-newsread :is(.news-comments-head h2, .news-comment-text, .news-comment-form > label) {
  color: var(--color-text);
}

.nova-route-newsread :is(.news-comments-head p, .news-comments-head > span, .news-comment-meta time, .news-comment-form-foot > span) {
  color: var(--color-text-muted);
}

.nova-route-newsread .news-comment-meta b {
  color: var(--color-text-soft);
}

.nova-route-newsread .news-comment-row {
  border-color: var(--color-border);
}

.nova-route-newsread :is(.ua-news-comment, .news-comment-form, .news-comment-form textarea[readonly]) {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-route-newsread .news-comment-form textarea {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-route-newsread .news-comment-form textarea::placeholder {
  color: var(--color-text-muted);
  opacity: 1;
}

.nova-route-newsread .news-comment-form-foot button {
  color: var(--color-on-primary-strong);
  background: var(--color-primary-strong);
}

.nova-route-post .pd-cmt-bar {
  left: 50%;
  right: auto;
  bottom: 12px;
  width: min(calc(100% - 40px), 980px);
  max-width: none;
  transform: translateX(-50%);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: color-mix(in srgb, var(--color-surface) 96%, transparent);
  box-shadow: var(--shadow-float);
  backdrop-filter: blur(16px);
}

.nova-route-post #post-detail {
  margin-bottom: 88px;
}

/* ---------- 旧球队页：同样改为上下资料流 ---------- */
.nova-route-team .team-hero {
  width: 100%;
  min-height: 300px;
  color: var(--color-on-chrome);
  background:
    radial-gradient(
      circle at 78% 24%,
      color-mix(in srgb, var(--color-primary) 18%, transparent),
      transparent 34%
    ),
    linear-gradient(140deg, var(--color-chrome), var(--color-chrome-alt));
}

.nova-route-team .team-hero > *,
.nova-route-team .mx-matchcard,
.nova-route-team .news-list,
.nova-route-team .video-post {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin-inline: auto;
}

.nova-route-team .mx-matchcard,
.nova-route-team .news-list,
.nova-route-team .video-post {
  margin-top: 18px;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--nova-radius);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.nova-route-topic .post-feed,
.nova-route-topic #topic-feed,
.nova-route-post .post-detail,
.nova-route-post #post-detail,
.nova-route-post .comments,
.nova-route-newsread #news-read,
.nova-route-newsread .news-reader,
.nova-route-newsread article {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}

/* ---------- 账号、登录注册、主题化弹层 ---------- */
.nova-ui .modal-ov,
.nova-ui .settings-overlay {
  background: color-mix(in srgb, var(--color-chrome) 72%, transparent);
  backdrop-filter: blur(10px);
}

.nova-ui .auth-modal,
.nova-ui .settings-modal,
.nova-ui .compose-modal,
.nova-ui .account-menu-popover {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-float);
}

.nova-ui .auth-modal {
  max-width: 440px;
  border-radius: 19px;
}

.nova-ui .auth-tabs,
.nova-ui .settings-head,
.nova-ui .cm-head,
.nova-ui .entry-auth-footer {
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-ui .auth-tabs span.on {
  color: var(--color-text);
  border-color: var(--color-primary-strong);
}

.nova-ui .auth-inp,
.nova-ui .cm-inp,
.nova-ui .cm-area {
  color: var(--color-text);
  -webkit-text-fill-color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
  caret-color: var(--color-primary-strong);
}

.nova-ui .auth-inp:focus,
.nova-ui .cm-inp:focus,
.nova-ui .cm-area:focus {
  border-color: var(--color-primary-strong);
  background: var(--color-surface);
}

.nova-ui :is(.auth-inp, .cm-inp, .cm-area)::placeholder {
  color: var(--color-text-muted);
  -webkit-text-fill-color: var(--color-text-muted);
  opacity: 1;
}

.nova-ui .cm-area {
  min-height: 144px;
  line-height: 1.65;
}

.nova-ui .cm-cat-label,
.nova-ui .cm-hint {
  color: var(--color-text-muted);
}

.nova-ui .cm-cats .cm-cat {
  color: var(--color-text-soft);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui .cm-cats .cm-cat.on {
  color: var(--color-primary-strong);
  border-color: var(--color-primary-strong);
  background: var(--color-primary-soft);
}

.nova-ui .cm-match-bind {
  color: var(--status-success);
  background: color-mix(in srgb, var(--status-success) 10%, var(--color-surface));
}

.nova-ui .cm-match-bind small {
  color: var(--color-text-muted);
}

.nova-ui .cm-head .cm-t {
  color: var(--color-text-heading);
  font-family: var(--font-display);
  font-weight: 700;
}

/* 固定 +86 手机号控件跟随内容面板。 */
.nova-ui .auth-phone-control {
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui .auth-phone-control:focus-within {
  border-color: var(--color-primary-strong);
  background: var(--color-surface);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary-strong) 12%, transparent);
}

.nova-ui .auth-phone-prefix {
  color: var(--color-text);
  border-color: var(--color-border);
  background: color-mix(in srgb, var(--color-surface-alt) 82%, var(--color-chrome));
}

/* 标题、正文、说明形成层级；暗色主题不再把所有内容都渲染成同一种白。 */
.nova-ui :is(
    .home-ranked-head b,
    .home-comp-drawer-head h3,
    .competition-hub-head h2,
    .paid-slot-head h3,
    .paid-card-top h4,
    .post .p-title,
    .news-comments-head h2,
    .match-account-panel h3,
    .entity-section-title b,
    .settings-panel-title h3,
    .support-empty b
  ) {
  color: var(--color-text-heading);
}

.nova-ui :is(
    time,
    .big-score,
    .match-hero .center .score,
    .wc-hm .sc,
    .bk-sc,
    .gm-sc,
    .ring .v,
    .competition-hub-summary b,
    .overview-metric-grid b
  ) {
  font-family: var(--font-score);
  font-variant-numeric: tabular-nums;
}

.nova-ui .auth-submit {
  min-height: 46px;
  border-radius: 11px;
  font-weight: 850;
  box-shadow: 0 10px 24px
    color-mix(in srgb, var(--color-primary) 20%, transparent);
}

.nova-ui .entry-auth-intro {
  color: var(--color-text);
  border-color: var(--color-border);
  background: linear-gradient(
    135deg,
    var(--color-primary-soft),
    var(--color-surface)
  );
}

.nova-ui .entry-auth-mark {
  color: var(--color-on-primary);
  background: var(--color-primary);
  box-shadow: 0 7px 18px
    color-mix(in srgb, var(--color-primary) 24%, transparent);
}

.nova-ui .settings-modal {
  width: min(920px, calc(100vw - 28px));
  height: min(760px, calc(100dvh - 32px));
  max-height: calc(100dvh - 32px);
  border-radius: 19px;
  overscroll-behavior: none;
}

/* 设置层打开时，背景页面不能接管列表到达边界后的高速触摸滚动。 */
html.nova-settings-open,
body.nova-ui.nova-settings-open {
  overflow: hidden;
  overscroll-behavior-y: none;
}

.nova-ui .settings-overlay {
  overscroll-behavior: none;
}

.nova-ui .settings-layout {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto minmax(0, 1fr);
}

.nova-ui .settings-nav {
  display: flex;
  gap: 7px;
  padding: 9px 12px;
  overflow-x: auto;
  border: 0;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui .settings-nav button {
  width: auto;
  flex: 0 0 auto;
  margin: 0;
  color: var(--color-text-muted);
}

.nova-ui .settings-nav button.on {
  color: var(--color-on-primary);
  background: var(--color-primary);
}

@media (max-width: 700px) {
  .nova-ui .lg-detail-body {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .nova-ui .lg-detail-body > :is(.stand-table, .g-table) {
    min-width: 620px;
  }
  .nova-ui .lg-detail-body > .spl-table {
    min-width: 500px;
  }
  .nova-ui .settings-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    overflow: visible;
    padding: 8px;
  }

  .nova-ui .settings-nav button {
    width: 100%;
    min-width: 0;
    min-height: 52px;
    padding: 7px 4px;
    gap: 3px;
    flex-direction: column;
    justify-content: center;
    white-space: normal;
    text-align: center;
    line-height: 1.16;
    font-size: clamp(10px, 3vw, 12px);
  }

  .nova-ui .settings-nav button span {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
  }
}

.nova-ui .settings-content {
  color: var(--color-text);
  background: var(--color-surface);
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
}

.nova-ui .account-identity-card,
.nova-ui .binding-list,
.nova-ui .binding-row,
.nova-ui .settings-profile-link,
.nova-ui .binding-action {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-ui .account-danger-zone,
.nova-ui .account-deletion-dialog,
.nova-ui .account-deletion-dialog input,
.nova-ui .account-deletion-cancel {
  color: var(--color-text);
  border-color: color-mix(in srgb, var(--status-danger) 30%, var(--color-border));
  background: var(--color-surface);
}

.nova-ui .account-danger-zone {
  background: color-mix(in srgb, var(--status-danger) 5%, var(--color-surface));
}

.nova-ui .account-danger-zone h4,
.nova-ui .account-deletion-status {
  color: var(--status-danger);
}

.nova-ui .account-danger-zone p,
.nova-ui .account-deletion-dialog > p {
  color: var(--color-text-muted);
}

.nova-ui .account-danger-zone > button {
  color: var(--status-danger);
  border-color: var(--status-danger);
  background: transparent;
}

.nova-ui .account-danger-zone > button:hover,
.nova-ui .account-deletion-submit {
  color: #fff;
  border-color: var(--status-danger);
  background: var(--status-danger);
}

.nova-ui .account-deletion-icon {
  color: var(--status-danger);
  background: color-mix(in srgb, var(--status-danger) 11%, var(--color-surface));
}

.nova-ui .account-deletion-dialog h2,
.nova-ui .account-deletion-dialog label {
  color: var(--color-text);
}

.nova-ui .account-deletion-close {
  color: var(--color-text-muted);
}

.nova-ui .account-deletion-close:hover {
  background: var(--color-surface-alt);
}

.nova-ui .account-deletion-submit:disabled {
  color: color-mix(in srgb, var(--color-text-muted) 70%, transparent);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui .account-menu-popover button {
  color: var(--color-text);
}

.nova-ui .account-menu-popover button:hover {
  background: var(--color-surface-alt);
}

.nova-ui .account-menu-sep {
  background: var(--color-border);
}

/* ---------- 清理旧红色视觉残留，映射到新主题语义 ---------- */
.nova-ui .sports-tabs .tab.active::after,
.nova-ui .stand-table tr.rel td.rk::before,
.nova-ui .stand-legend .k.rel,
.nova-ui .player .rt.hi,
.nova-ui .today-tag,
.nova-ui .adv-tag,
.nova-ui .exp-card .streak,
.nova-ui .exp-card .rt .rc,
.nova-ui .entry-auth-mark,
.nova-ui .hot-topline,
.nova-ui .follow-foot .done-btn {
  background: var(--color-primary-strong);
}

.nova-ui .today-tag,
.nova-ui .adv-tag,
.nova-ui .player .rt.hi,
.nova-ui .entry-auth-mark,
.nova-ui .follow-foot .done-btn {
  color: var(--color-on-primary-strong);
}

.nova-ui .b-connector.red-l {
  border-left-color: var(--color-primary-strong);
}
.nova-ui .b-connector.red-r {
  border-right-color: var(--color-primary-strong);
}

.nova-ui .top-tag,
.nova-ui .post .off,
.nova-ui .post .plan,
.nova-ui .exp-card .tags span,
.nova-ui .hot-topline,
.nova-ui .lrec-e .rt,
.nova-ui .exp-live-cards .elc .livebtn,
.nova-ui .real-mini,
.nova-ui .group-head .badge,
.nova-ui .ov-best-h .rnd {
  color: var(--color-primary-strong);
  border-color: color-mix(
    in srgb,
    var(--color-primary-strong) 22%,
    var(--color-border)
  );
  background: var(--color-primary-soft);
}

.nova-ui .source-chip.live,
.nova-ui .dmc-state,
.nova-ui .is-live .dmc-state,
.nova-ui .is-live .dmc-teams b {
  color: var(--status-live);
}

.nova-ui .account-menu-popover button.danger,
.nova-ui .account-menu-popover button.danger span {
  color: var(--status-danger);
}

.nova-ui .source-chip.youtube {
  color: var(--status-live);
  background: color-mix(in srgb, var(--status-live) 9%, var(--color-surface));
}

/* 旧业务组件的语义色收口：换主题时不再残留固定红蓝白。 */
.nova-ui .rank-chart-copy > i > em {
  background: linear-gradient(90deg, var(--series-home), var(--series-away));
}

.nova-ui .mfc-result-bar .w {
  background: var(--status-success);
}
.nova-ui .mfc-result-bar .d {
  background: var(--status-neutral);
}
.nova-ui .mfc-result-bar .l {
  background: var(--status-danger);
}
.nova-ui .odds2-tr .v2.down {
  color: var(--status-success);
}
.nova-ui .odds2-tr .v2.ah {
  color: var(--status-warning);
}
.nova-ui .entity-wiki-card a {
  color: var(--color-link);
}

.nova-ui .lineup-player-avatar {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui .payment-sheet,
.nova-ui .payment-method {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-ui .lp-badge.ft {
  color: var(--status-success);
  background: color-mix(
    in srgb,
    var(--status-success) 10%,
    var(--color-surface)
  );
}

.nova-ui .lp-badge.pre {
  color: var(--status-info);
  background: color-mix(in srgb, var(--status-info) 10%, var(--color-surface));
}

.nova-ui .match-row.row-delayed {
  color: var(--status-warning);
  background: color-mix(
    in srgb,
    var(--status-warning) 6%,
    var(--color-surface)
  );
}

/* ---------- 大平板 / 窄桌面 ---------- */
@media (max-width: 1040px) {
  .nova-global-inner {
    width: calc(100% - 28px);
    grid-template-columns: 170px 1fr auto;
    gap: 10px;
  }

  .nova-global-nav button {
    min-width: 68px;
    padding-inline: 9px;
  }

  .nova-search-button span,
  .nova-settings-button small {
    display: none;
  }

  .nova-settings-button {
    min-width: 82px;
    grid-template-rows: 1fr;
  }

  .nova-theme-dot {
    grid-row: auto;
  }

  .nova-route-discover .topic-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .nova-route-data .dm-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .nova-route-news .follow-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .nova-ui .match-official-watch-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* iPad 分屏 / 窄窗口：优先保住右上角账号入口。 */
@media (min-width: 701px) and (max-width: 860px) {
  .nova-global-inner {
    width: calc(100% - 20px);
    grid-template-columns: 132px minmax(248px, 1fr) auto;
    gap: 8px;
  }

  .nova-search-button,
  .nova-settings-button small,
  .nova-brand-copy small {
    display: none;
  }

  .nova-settings-button {
    min-width: 58px;
    width: 58px;
    padding: 0;
    grid-template-columns: auto auto;
    place-items: center;
  }

  .nova-theme-dot {
    display: none;
  }

  .nova-settings-icon {
    grid-row: auto;
    color: var(--theme-dot);
    font-size: 15px;
  }

  .nova-settings-button b {
    color: var(--color-on-chrome);
    font-size: 10px;
    font-weight: 800;
  }

  .nova-global-nav {
    gap: 3px;
  }

  .nova-global-nav button {
    min-width: 58px;
    padding-inline: 6px;
  }
}

/* iPad 横屏及高度较短的桌面窗口：压缩首屏舞台，把比赛内容留在第一屏。 */
@media (orientation: landscape) and (min-width: 701px) and (max-width: 1366px) and (max-height: 900px) {
  .nova-stage-main {
    min-height: 196px;
  }

  .nova-ui .match-hero {
    min-height: 272px;
  }

  .nova-ui .match-hero .teams {
    padding: 26px 8% 20px;
  }

  .nova-ui .league-hero {
    height: 224px;
  }

  .nova-ui .entity-hero-content {
    min-height: 188px;
  }

  .nova-ui .live-source-empty {
    min-height: 224px;
  }
}

/* ---------- 手机：顶栏紧凑、底部四导航、内容严格单列 ---------- */
@media (max-width: 700px) {
  :root {
    --nova-header-h: calc(60px + env(safe-area-inset-top));
  }

  body.nova-ui {
    background-image: none;
  }

  .nova-global-header {
    height: var(--nova-header-h);
    padding-top: env(safe-area-inset-top);
    box-sizing: border-box;
  }

  .nova-global-inner {
    width: calc(100% - 24px);
    height: 60px;
    grid-template-columns: 1fr auto;
    gap: 8px;
  }

  .nova-brand-symbol {
    width: 30px;
    height: 30px;
    border-radius: 9px;
  }

  .nova-brand-copy b {
    font-size: 13px;
  }

  .nova-brand-copy small,
  .nova-global-nav,
  .nova-search-button,
  .nova-settings-button small,
  .nova-account-slot .account-guest-avatar,
  .nova-account-slot .account-trigger-name:not(:only-child) {
    display: none;
  }

  .nova-global-actions {
    gap: 6px;
  }

  .nova-settings-button {
    min-width: 54px;
    width: 54px;
    min-height: 40px;
    display: grid;
    grid-template-columns: auto auto;
    padding: 0;
    place-items: center;
    border-radius: 10px;
  }

  .nova-theme-dot {
    display: none;
  }

  .nova-settings-icon {
    grid-row: auto;
    color: var(--theme-dot);
    font-size: 15px;
  }

  .nova-settings-button b {
    color: var(--color-on-chrome);
    font-size: 10px;
    font-weight: 800;
  }

  .nova-account-slot {
    min-width: 92px;
  }

  .nova-account-slot .account-trigger {
    min-width: 92px;
    max-width: 122px;
    height: 40px;
    min-height: 40px;
    justify-content: center;
    padding: 0 11px;
    border-radius: 10px;
  }

  .nova-account-slot .account-trigger.guest .account-trigger-name {
    display: inline;
    max-width: none;
    font-size: 11px;
  }

  .nova-account-slot .account-trigger:not(.guest) .user-avatar {
    display: inline-flex;
  }

  .nova-account-slot .account-trigger:not(.guest) .account-trigger-name,
  .nova-account-slot .account-trigger-caret {
    display: none;
  }

  .nova-page-stage::before {
    right: -38%;
    bottom: -38%;
    width: 105%;
  }

  .nova-stage-status {
    min-height: 32px;
    padding: 0 16px;
    font-size: 8px;
  }

  .nova-stage-status b {
    display: none;
  }

  .nova-stage-main {
    width: calc(100% - 32px);
    min-height: 176px;
    grid-template-columns: minmax(0, 1fr);
  }

  .nova-stage-main h1 {
    font-size: 42px;
  }

  .nova-stage-main p {
    margin-top: 12px;
    font-size: 10px;
    line-height: 1.55;
  }

  .nova-stage-main > em {
    display: none;
  }

  .nova-ui .home-top,
  .nova-ui .news-head,
  .nova-ui .disc-head,
  .nova-ui .data-top,
  .nova-ui .league-tabs,
  .nova-ui .detail-tabs,
  .nova-ui .team-news-bar {
    top: auto;
    min-height: 52px;
  }

  .nova-ui .sub-tabs,
  .nova-ui .news-head,
  .nova-ui .disc-head,
  .nova-ui .data-top {
    min-height: 52px;
    padding-inline: 8px;
  }

  .nova-ui .sub-tabs .tab,
  .nova-ui .news-topnav .tab,
  .nova-ui .disc-topnav .tab,
  .nova-ui .league-tabs .tab,
  .nova-ui .detail-tabs .tab {
    min-height: 36px;
    padding-inline: 13px;
    font-size: 11px;
  }

  .nova-ui .tabbar {
    position: fixed;
    z-index: 800;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: none;
    height: calc(72px + env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    box-sizing: border-box;
    padding-top: 4px;
    padding-bottom: max(6px, env(safe-area-inset-bottom));
    padding-left: max(8px, env(safe-area-inset-left));
    padding-right: max(8px, env(safe-area-inset-right));
    transform: none;
    color: var(--color-text-muted);
    border-color: var(--color-border);
    background: color-mix(in srgb, var(--color-surface) 94%, transparent);
    backdrop-filter: blur(18px);
  }

  .nova-ui .tabbar .item {
    min-width: 0;
    min-height: 44px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    position: relative;
    color: var(--color-text-muted);
    text-decoration: none;
    border-radius: 12px;
    -webkit-tap-highlight-color: transparent;
  }

  .nova-ui .tabbar .item.active {
    color: var(--color-primary-strong);
    font-weight: 750;
  }

  .nova-ui .tabbar .item .ic {
    width: 38px;
    height: 38px;
    margin: 0;
    display: block;
    object-fit: cover;
    border: 1px solid color-mix(in srgb, var(--color-border) 72%, transparent);
    border-radius: 11px;
    opacity: 0.62;
    filter: saturate(0.72) contrast(0.94);
    box-shadow: 0 3px 10px color-mix(in srgb, var(--color-chrome) 20%, transparent);
    transition: opacity 160ms ease, filter 160ms ease, transform 160ms ease, box-shadow 160ms ease;
  }

  .nova-ui .tabbar .item.active .ic {
    opacity: 1;
    filter: saturate(1.08) contrast(1.06);
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--color-primary-strong) 72%, white 12%);
    box-shadow: 0 4px 14px color-mix(in srgb, var(--color-primary) 34%, transparent);
  }

  .nova-ui .tabbar .item .label {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 10px;
    line-height: 1.1;
  }

  .nova-ui .tabbar .item:focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: -2px;
  }

  /* 最后子元素的 margin 会与根布局折叠，无法形成真实滚动距离。独立 spacer
     把页脚和帖子评论框完整推到固定底栏上方，同时自身不接收指针事件。 */
  .nova-ui .site-rights {
    margin-bottom: 0;
  }

  .nova-ui .site-bottom-spacer {
    display: block;
    width: 100%;
    height: calc(72px + env(safe-area-inset-bottom));
    flex: 0 0 auto;
    pointer-events: none;
  }

  .nova-route-home .lg-filter-bar,
  .nova-route-home .match-list,
  .nova-route-news .tt-cats,
  .nova-route-news .news-updated,
  .nova-route-news .follow-tip,
  .nova-route-news .nh-note,
  .nova-route-news .wc-quick,
  .nova-route-news .toutiao-list,
  .nova-route-news .news-history-list,
  .nova-route-news .follow-layout,
  .nova-route-news .wc-info-hero,
  .nova-route-discover .discover-source-note,
  .nova-route-discover .discover-real-section,
  .nova-route-discover .topic-grid,
  .nova-route-discover .feed-bar,
  .nova-route-discover .post-feed,
  .nova-route-discover .expert-publish-note,
  .nova-route-data .data-hot-stage,
  .nova-route-data .data-body2,
  .nova-ui .lg-detail-body,
  .nova-ui .rank-layout,
  .nova-ui .hist-layout,
  .nova-ui .games-list,
  .nova-ui .group-block,
  .nova-ui .ov-sec,
  .nova-ui .overview-metric-grid,
  .nova-ui .best-pitch,
  .nova-ui .bracket-scroll,
  .nova-ui .spl-pulse,
  .nova-ui .matchday-strip,
  .nova-ui .stage-pills,
  .nova-ui .news-list,
  .nova-ui .weather-card,
  .nova-ui .live-player,
  .nova-ui .lp-note,
  .nova-ui #wc-dongtai,
  .nova-ui .thumb-strip,
  .nova-ui .stat-rings,
  .nova-ui .shots,
  .nova-ui #mt-stats,
  .nova-ui #mt-tl,
  .nova-ui #mt-news,
  .nova-ui .chat-notice,
  .nova-ui #match-chat-list,
  .nova-ui .chat-input,
  .nova-ui #lineup-box,
  .nova-ui .odds-real-head,
  .nova-ui #odds-real,
  .nova-ui .match-intel-note,
  .nova-ui #intel-items,
  .nova-ui .match-expert-note,
  .nova-ui .match-expert-compose,
  .nova-ui #match-expert-real,
  .nova-ui .match-hot-note,
  .nova-ui #match-hot-real,
  .nova-ui .data-seg,
  .nova-ui #md-body,
  .nova-ui #paid-slot-vip,
  .nova-ui .match-real-section,
  .nova-ui .chat-box,
  .nova-ui .lineup-wrap,
  .nova-ui .odds2-table,
  .nova-ui .intel-wrap,
  .nova-ui .expert-wrap,
  .nova-ui .hot-wrap,
  .nova-ui .paid-slot,
  .nova-ui .match-account-panel,
  .nova-ui .rel-news,
  .nova-ui .match-stat-detail,
  .nova-ui .stat-compare-list,
  .nova-ui .entity-topbar,
  .nova-ui .entity-hero-content,
  .nova-ui .entity-fact-strip,
  .nova-ui .entity-source-line,
  .nova-ui .entity-section,
  .nova-route-topic .feed-bar,
  .nova-route-team .team-hero > *,
  .nova-route-team .mx-matchcard,
  .nova-route-team .news-list,
  .nova-route-team .video-post,
  .nova-route-post .pd-cmt-bar {
    width: calc(100% - 16px);
  }

  .nova-route-home .lg-filter-bar {
    height: 54px !important;
    margin-top: 10px;
  }

  .nova-route-home .lg-filter-bar .home-range-note {
    top: 19px;
    font-size: 9px;
  }

  .nova-route-home .lg-filter-bar .lf-select {
    right: 8px !important;
    top: 9px !important;
    max-width: 132px;
    overflow: hidden;
  }

  .nova-route-home .match-list,
  .nova-route-news .toutiao-list,
  .nova-route-news .news-history-list,
  .nova-route-news .follow-layout,
  .nova-route-discover .post-feed,
  .nova-route-discover .discover-real-section:last-of-type,
  .nova-route-topic #topic-feed,
  .nova-route-data .data-body2 {
    margin-bottom: calc(78px + env(safe-area-inset-bottom));
  }

  .nova-ui .competition-group {
    margin: 8px;
  }

  .nova-ui .competition-head {
    min-height: 50px;
    padding-inline: 10px;
  }

  .nova-ui .match-row {
    --match-time-edge: 68px;
    min-height: 78px;
    padding: 10px 8px;
  }

  .nova-ui .match-row .left-col {
    width: 48px;
  }

  .nova-ui .match-row .right-col {
    width: 55px;
  }

  .nova-ui .match-row .teams-line {
    gap: 5px;
    font-size: 13px;
  }

  .nova-ui .match-row .team {
    max-width: 92px;
  }

  .nova-ui .match-row .team-name {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .nova-ui .match-row .team > :not(.team-name) {
    flex: 0 0 auto;
  }

  .nova-route-news .tt-cats {
    margin-top: 10px;
    border-radius: 10px 10px 0 0;
  }

  .nova-route-news .tt-item2,
  .nova-route-news .nh-item,
  .nova-ui .news-item {
    min-height: 118px;
    padding: 14px 12px;
  }

  .nova-route-news .tt-item2 .t,
  .nova-ui .news-item .txt .t {
    font-size: 14px;
  }

  .nova-route-news .tt-item2 .thumb2,
  .nova-route-news .tt-item2 .thumb,
  .nova-ui .news-item .thumb {
    width: 100px;
    height: 72px;
    margin-left: 8px;
  }

  .nova-route-news .tt-big {
    padding: 14px;
  }

  .nova-route-news .tt-big .big-img {
    height: 210px;
  }

  .nova-route-news .follow-side,
  .nova-route-data .data-side2,
  .nova-route-data .data-side,
  .nova-ui .rank-side,
  .nova-ui .hist-side {
    top: auto;
  }

  .nova-route-news .follow-main {
    padding: 12px;
  }

  .nova-route-news .follow-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nova-route-discover .discover-real-section {
    padding: 14px;
  }

  .nova-route-discover .official-watch-grid,
  .nova-route-discover .official-video-grid {
    grid-template-columns: 1fr;
  }

  .nova-route-discover .topic-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px 3px;
    padding: 18px 7px;
  }

  .nova-route-discover .topic-grid.community-topic-empty {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    min-height: 0;
    padding: 22px 18px;
  }

  .nova-route-discover .community-topic-empty > div {
    width: 100%;
    max-width: 34rem;
    margin-inline: auto;
  }

  .nova-route-discover .community-feed-toolbar {
    width: calc(100% - 16px);
    margin: 14px auto 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px 10px 10px 16px;
    border: 1px solid var(--color-border);
    border-radius: 13px 13px 0 0;
    background: var(--color-surface-alt);
  }

  .nova-route-discover .community-feed-toolbar .feed-bar {
    width: auto;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .nova-route-discover .community-feed-toolbar .fab {
    position: static;
    min-height: 44px;
    margin: 0;
    padding: 10px 15px;
    transform: none;
    white-space: nowrap;
  }

  .nova-route-discover .community-feed-toolbar + .post-feed {
    width: calc(100% - 16px);
    margin-top: 0;
  }

  .nova-route-discover .topic .tic {
    width: 48px;
    height: 48px;
    font-size: 25px;
  }

  .nova-route-discover .topic .tnm {
    font-size: 11px;
  }

  .nova-route-topic .fab {
    right: 16px;
    bottom: calc(78px + env(safe-area-inset-bottom));
  }

  .nova-route-data .data-top .tabs {
    display: none;
  }

  .nova-route-data .data-top .acts2 {
    width: 100%;
  }

  .nova-ui .data-search {
    width: 100%;
    min-width: 0;
  }

  .nova-route-data .data-hot-stage {
    margin-top: 10px;
  }

  .nova-route-data .hot-beacon {
    width: 60px;
    min-width: 60px;
  }

  .nova-route-data .data-main2,
  .nova-route-data .data-main {
    padding: 8px 8px 20px;
  }

  .nova-route-data .dm-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
  }

  .nova-route-data .dm-item {
    min-height: 96px;
  }

  .nova-ui .league-hero {
    height: 240px;
  }

  .nova-ui .league-hero.small {
    height: 112px;
  }

  .nova-ui .league-hero .center {
    top: 54px;
  }

  .nova-ui .league-tabs,
  .nova-ui .detail-tabs {
    justify-content: flex-start;
    padding-inline: 8px;
    overflow-x: auto;
  }

  .nova-ui .lg-detail-body {
    margin-top: 9px;
  }

  .nova-ui .rank-main,
  .nova-ui .hist-main,
  .nova-ui .entity-section {
    padding: 14px;
  }

  .nova-ui .match-hero {
    min-height: 300px;
  }

  .nova-ui .match-hero .teams {
    padding: 34px 2% 28px;
  }

  .nova-ui .match-hero .tside {
    width: 100px;
  }

  .nova-ui .match-hero .tside .nm {
    font-size: 15px;
  }

  .nova-ui .match-hero .big-score,
  .nova-ui .match-hero .center .score {
    font-size: 34px;
  }

  .nova-ui .chat-input {
    bottom: max(8px, env(safe-area-inset-bottom));
    width: calc(
      100% - 16px - env(safe-area-inset-left) - env(safe-area-inset-right)
    );
    padding: 8px;
    border-radius: 13px;
  }

  .nova-ui .entity-hero-content {
    min-height: 190px;
  }

  .nova-ui .entity-identity h1 {
    font-size: 30px;
  }

  .nova-ui .entity-profile-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nova-ui .settings-overlay {
    padding: 0;
  }

  .nova-ui .settings-modal {
    width: 100%;
    height: 100dvh;
    max-height: none;
    border-radius: 0;
  }

  .nova-ui .match-watch-shell {
    width: calc(100% - 16px);
    margin-block: 10px;
  }

  .nova-ui .live-source-empty {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .nova-ui .live-source-visual {
    min-height: 154px;
  }

  .nova-ui .live-source-copy {
    padding: 24px 18px;
  }

  .nova-ui .live-source-copy h3 {
    font-size: 22px;
  }

  .nova-ui .match-official-watch {
    padding: 14px;
  }

  .nova-ui .match-official-watch-head {
    display: block;
  }

  .nova-ui .match-official-watch-head p {
    margin-top: 7px;
    text-align: left;
  }

  .nova-ui .match-official-watch-grid {
    grid-template-columns: 1fr;
  }

  .nova-theme-settings-grid {
    grid-template-columns: 1fr;
  }

  .nova-theme-card,
  .nova-theme-card.has-image {
    --nova-theme-preview-width: clamp(76px, 26vw, 92px);
    grid-template-columns: var(--nova-theme-preview-width) minmax(0, 1fr) 18px;
  }

  .nova-appearance-title {
    align-items: flex-start;
  }

  .nova-current-theme {
    font-size: 9px;
  }

  .nova-ui .settings-head {
    min-height: calc(54px + env(safe-area-inset-top));
    padding-top: env(safe-area-inset-top);
  }

  .nova-route-post .pd-cmt-bar {
    bottom: max(8px, env(safe-area-inset-bottom));
    width: calc(
      100% - 16px - env(safe-area-inset-left) - env(safe-area-inset-right)
    );
    padding-bottom: max(9px, env(safe-area-inset-bottom));
  }
}

/* 320px 手机与 iPad 窄分屏：三段式网格锁住赛事、队名比分和操作列。 */
@media (max-width: 360px) {
  .nova-ui .tabbar {
    height: calc(68px + env(safe-area-inset-bottom));
    padding-left: max(4px, env(safe-area-inset-left));
    padding-right: max(4px, env(safe-area-inset-right));
  }

  .nova-ui .tabbar .item {
    border-radius: 10px;
  }

  .nova-ui .tabbar .item .ic {
    width: 34px;
    height: 34px;
    border-radius: 9px;
  }

  .nova-ui .tabbar .item .label {
    font-size: 9px;
  }

  .nova-ui .site-bottom-spacer {
    height: calc(68px + env(safe-area-inset-bottom));
  }

  .nova-ui .match-row {
    --match-time-edge: 64px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 30px;
    column-gap: 4px;
    align-items: stretch;
  }

  .nova-ui .match-row .left-col,
  .nova-ui .match-row .mid-col,
  .nova-ui .match-row .right-col {
    width: auto;
    min-width: 0;
  }

  .nova-ui .match-row .mid-col {
    grid-column: 2 / 4;
  }

  .nova-ui .match-row .teams-line {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr);
    gap: 3px;
  }

  .nova-ui .match-row .team {
    max-width: none;
    min-width: 0;
    gap: 2px;
  }

  .nova-ui .match-row .team:first-child {
    justify-content: flex-end;
    text-align: right;
  }

  .nova-ui .match-row .team-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .nova-ui .match-row .right-col {
    grid-column: 2 / 4;
    grid-row: 2;
    min-height: 24px;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    overflow: visible;
  }

  .nova-ui .match-row .right-col > div {
    flex-direction: row;
    align-items: center;
  }

  .nova-ui .match-row .score {
    width: 32px;
    min-width: 0;
  }
}

/* tvOS / 大屏焦点：仍按上下信息带移动 */
@media (min-width: 1500px) {
  .nova-ui :is(button, .clickable, a):focus-visible {
    outline-width: 4px;
    outline-offset: 5px;
  }

  .nova-stage-main {
    min-height: 280px;
  }

  .nova-ui .match-row {
    min-height: 98px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nova-ui *,
  .nova-ui *::before,
  .nova-ui *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* v110：地区筛选和赛事抽屉纳入11套主题；v121 图标继续复用语义令牌。 */
.nova-route-home .lg-filter-bar.home-filter-panel {
  height: auto !important;
  min-height: 0 !important;
  padding: 13px 16px 9px !important;
  border-color: var(--color-border);
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  backdrop-filter: blur(16px);
}

.nova-ui .home-filter-meta,
.nova-ui .home-ranked-head span,
.nova-ui .home-ranked-head small,
.nova-ui .home-comp-help,
.nova-ui .home-comp-option small {
  color: var(--color-text-muted);
}

.nova-ui .home-filter-icon {
  color: var(--color-primary-strong);
  border-color: color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 10%, var(--color-surface-alt));
}

.nova-ui .home-region-chip,
.nova-ui .home-comp-trigger,
.nova-ui .home-ranked-section,
.nova-ui .home-comp-drawer,
.nova-ui .home-comp-option {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-ui .home-region-chip {
  background: var(--color-surface-alt);
}

.nova-ui .home-region-chip small {
  color: var(--color-text-muted);
  background: color-mix(in srgb, var(--color-border) 72%, transparent);
}

.nova-ui .home-region-chip.on {
  color: var(--color-on-primary);
  border-color: var(--color-primary);
  background: var(--color-primary);
  box-shadow: 0 7px 18px color-mix(in srgb, var(--color-primary) 25%, transparent);
}

.nova-ui .home-region-chip.on small {
  color: inherit;
  background: rgba(255, 255, 255, 0.2);
}

.nova-ui .home-comp-trigger:hover,
.nova-ui .home-comp-option:hover {
  border-color: color-mix(in srgb, var(--color-primary) 36%, var(--color-border));
  background: var(--color-surface-alt);
}

.nova-ui .home-ranked-section {
  border-color: var(--color-border);
  box-shadow: var(--shadow-card);
}

.nova-ui .home-ranked-head {
  border-color: var(--color-border);
  background: linear-gradient(100deg, var(--color-surface-alt), var(--color-surface));
}

.nova-ui .home-ranked-head b,
.nova-ui .home-comp-drawer-head h3,
.nova-ui .home-comp-option b {
  color: var(--color-text);
}

.nova-ui .match-strength span {
  color: var(--color-primary-strong);
  border-color: color-mix(in srgb, var(--color-primary) 32%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 10%, var(--color-surface));
}

.nova-ui .match-strength b {
  color: var(--color-primary-strong);
}

.nova-ui .wc-fixture-completeness,
.nova-ui .competition-hub-head,
.nova-ui .competition-hub-match,
.nova-ui .competition-hub-summary span {
  border-color: color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  background: var(--color-surface);
  color: var(--color-text);
}

.nova-ui .wc-fixture-completeness button,
.nova-ui .competition-hub-all {
  border-color: color-mix(in srgb, var(--color-primary) 42%, var(--color-border));
  color: var(--color-primary-strong);
}

.nova-ui .competition-hub-match:hover {
  border-color: var(--color-primary);
}

.nova-ui .home-country-chip {
  border-color: var(--color-border);
  background: var(--color-surface);
  color: var(--color-text-muted);
}

.nova-ui .home-country-chip.on {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 10%, var(--color-surface));
  color: var(--color-primary-strong);
}

.nova-ui .home-country-chip small {
  color: var(--color-text-muted);
  background: color-mix(in srgb, var(--color-border) 72%, transparent);
}

.nova-ui .home-country-chip.on small {
  color: inherit;
  background: color-mix(in srgb, var(--color-primary) 18%, transparent);
}

.nova-ui .home-comp-drawer {
  background: var(--color-surface);
}

.nova-ui .home-comp-option.on {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 9%, var(--color-surface));
}

.nova-ui .home-comp-option > i {
  color: var(--color-primary);
}

.nova-ui .home-comp-close {
  color: var(--color-text-muted);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

@media (max-width: 700px) {
  .nova-route-home .lg-filter-bar.home-filter-panel {
    height: auto !important;
    min-height: 0 !important;
    margin-top: 10px;
    padding: 10px 8px 8px !important;
  }

  .nova-route-home .lg-filter-bar.home-filter-panel .home-comp-trigger {
    max-width: none;
  }
}

/* v112：深色主题与场景深底的文字对比度闭环。 */
.nova-route-news .wc-info-hero {
  color: var(--color-on-chrome);
  --text: var(--color-on-chrome);
  --text2: color-mix(in srgb, var(--color-on-chrome) 72%, transparent);
}

/* 淘汰赛卡片原来只换了容器底色，队名、比分和点球条仍保留旧版固定灰色。 */
.nova-ui .bk-team + .bk-team,
.nova-ui :is(.bk-vs, .bk-pen) {
  border-color: var(--color-border);
}

.nova-ui .bk-team .bk-nm {
  color: var(--color-text);
}

.nova-ui .bk-team .bk-sc {
  color: var(--color-text-muted);
}

.nova-ui .bk-team.lose {
  opacity: 1;
}

.nova-ui .bk-team.lose :is(.bk-nm, .bk-sc) {
  color: var(--color-text-muted);
}

.nova-ui :is(.bk-vs, .bk-pen) {
  background: var(--color-surface-alt);
}

.nova-ui .bk-vs {
  color: var(--color-text-muted);
}

.nova-ui .bk-pen {
  color: var(--status-warning);
}

/* 世界杯小组表的排名来自旧内联样式，必须由主题层显式接管。 */
.nova-ui .g-table .tm > span:first-child {
  color: var(--color-text-muted) !important;
}

/* 赛事页旧组件：同时替换文字、边框和底色，不按“场景主题”一刀切白字。 */
.nova-ui :is(
    .ov-row b,
    .gm-l .stg
  ) {
  color: var(--color-text);
}

.nova-ui :is(
    .ov-teams .ds,
    .ov-row,
    .gm-l .tm2,
    .gm-sc,
    .r-table .no,
    .md-card .lg,
    .data-seg .s,
    .year-menu .ym-item,
    .lf-item,
    .lf-item .lf-n,
    .lgx-md-strip span
  ) {
  color: var(--color-text-muted);
}

.nova-ui :is(.ov-sec, .ov-row, .gm-row, .h2h-line, .lgx-md-strip) {
  border-color: var(--color-border);
}

.nova-ui :is(.group-head, .lgx-md-strip) {
  color: var(--color-text);
  background: var(--color-surface-alt);
}

.nova-ui .lgx-md-strip span {
  background: var(--color-surface);
}

.nova-ui .lgx-md-strip span.on {
  color: var(--color-on-primary-strong);
  background: var(--color-primary-strong);
}

.nova-ui :is(.lf-item:active, .year-menu .ym-item:hover) {
  color: var(--color-text);
  background: var(--color-surface-alt);
}

/* 完整赛程提示与赛事级情报/会员中心：父卡片和所有子文字成对换色。 */
.nova-ui :is(
    .wc-fixture-completeness b,
    .competition-hub-head h2,
    .competition-hub-summary b,
    .competition-hub-teams b
  ) {
  color: var(--color-text);
}

.nova-ui :is(
    .wc-fixture-completeness small,
    .wc-fixture-completeness span,
    .competition-hub-head small,
    .competition-hub-head p,
    .competition-hub-summary span,
    .competition-hub-meta small,
    .competition-hub-teams em,
    .competition-hub-match > strong
  ) {
  color: var(--color-text-muted);
}

.nova-ui :is(.wc-fixture-completeness button, .competition-hub-all) {
  color: var(--color-primary-strong);
  border-color: color-mix(in srgb, var(--color-primary-strong) 42%, var(--color-border));
  background: var(--color-surface-alt);
}

.nova-ui .competition-hub-match:hover {
  color: var(--color-text);
  border-color: var(--color-primary);
  background: var(--color-surface-alt);
}

/* 单场情报/会员内容内部也必须跟随深浅主题，不能只给 paid-slot 父层换色。 */
.nova-ui :is(.paid-card, .paid-once, .paid-method-strip span) {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui :is(
    .paid-slot-head h3,
    .paid-public-head b,
    .paid-card-top h4,
    .paid-full-content
  ) {
  color: var(--color-text);
}

.nova-ui :is(
    .paid-slot-note,
    .paid-public-head span,
    .paid-teaser,
    .paid-card-foot
  ) {
  color: var(--color-text-muted);
}

.nova-ui :is(.paid-slot-note, .paid-public-head, .paid-full-content) {
  border-color: var(--color-border);
}

/* 发现页少数更具体的子选择器会压过父卡片继承色。 */
.nova-ui :is(.dmc-foot b, .oi-author b) {
  color: var(--color-secondary);
}

/* 旧页面曾把标题和正文写成固定深灰；统一改用当前主题的正文令牌。 */
.nova-ui :is(
    .ow-name,
    .competition-ident.discover-logo,
    .dmc-teams,
    .oi-title,
    .ov-title,
    .post .ph .nm,
    .post .p-title,
    .post-feed .post .body2 p,
    .pd-content,
    .cmt .cc,
    .nr-body p,
    .tl-item,
    .lineup-last .res,
    .odds2-tr .bk,
    .odds2-tr .v2,
    .chat-content,
    .mfc-row b,
    .match-standing-card b,
    .match-stat-detail-row b,
    .mdc-author,
    .mdc-content,
    .match-account-panel h3,
    .map-user b,
    .odds-market h4,
    .rank-chart-row > strong,
    .rank-chart-copy > b,
    .entity-section-title b,
    .entity-profile-facts b,
    .entity-metric-head b,
    .entity-wiki-card p,
    .overview-metric-grid b,
    .account-identity-card b,
    .support-empty b
  ) {
  color: var(--color-text);
}

/* 时间、来源、说明等辅助信息使用经过各调色板验证的次级文字令牌。 */
.nova-ui :is(
    .match-row .time-min,
    .match-row .time-min .m.pre,
    .match-row .time-min .t.ranked small,
    .match-row .time-min .t.ranked b,
    .match-row .team .rank,
    .match-row .score.vs,
    .match-row .half-corner,
    .match-row .hot.gray,
    .ow-out,
    .ow-desc,
    .dmc-state,
    .dmc-teams b,
    .dmc-foot,
    .oi-meta time,
    .oi-original,
    .oi-author,
    .ov-meta,
    .ring .v,
    .ring-nums,
    .shots .row,
    .lineup-teamtabs .t,
    .lineup-last,
    .intel-item p,
    .radar-legend,
    .pd-actions .pa,
    .cmt .cn,
    .cmt .cn .ct,
    .nr-body-label,
    .nr-nobody,
    .nr-repost .nr-rp-t,
    .nr-repost .nr-rp-b,
    .nr-repost .nr-rp-note,
    .odds2-note,
    .odds-empty,
    .chat-time,
    .mdc-author span,
    .match-account-panel > p,
    .map-user span,
    .map-user em,
    .rank-no,
    .rank-chart-copy > small,
    .rank-arrow,
    .entity-section-title span,
    .entity-profile-facts span,
    .entity-metric-head span,
    .entity-metric small,
    .entity-wiki-loading,
    .entity-wiki-image-note,
    .entity-roster-grid small,
    .overview-metric-grid span,
    .settings-panel-title p,
    .account-identity-card span,
    .binding-section-head span,
    .binding-main small,
    .binding-footnote,
    .settings-loading,
    .entry-auth-intro small
  ) {
  color: var(--color-text-muted);
}

/* 内层卡片、提示条和输入区同时映射背景与文字，避免只修一边后反向失读。 */
.nova-route-discover .dmc-top,
.nova-ui :is(
    .map-user,
    .overview-metric-grid > div,
    .nr-body-label,
    .nr-repost,
    .odds-cats2 span,
    .chat-lock,
    .p-img-more,
    .rank-chart-row > .avatar,
    .rank-chart-row > .lgx-badge,
    .rank-chart-row > .lgx-national-flag,
    .rank-chart-row > .sport-badge-missing
  ) {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-route-discover .official-insight-card,
.nova-ui .match-account-panel {
  color: var(--color-text);
  border-color: var(--color-border);
  background: linear-gradient(
    145deg,
    var(--color-surface-alt),
    var(--color-surface)
  );
}

.nova-ui :is(.post .p-match, .ow-region, .source-chip.official) {
  color: var(--color-secondary);
  background: color-mix(in srgb, var(--color-secondary) 10%, var(--color-surface));
}

.nova-ui :is(.post .p-pick .pk, .odds-cats2 span.on) {
  color: var(--color-on-primary);
  border-color: var(--color-primary);
  background: var(--color-primary);
}

.nova-ui :is(
    .rank-load-more button,
    .feed-load-more button
  ) {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface);
}

.nova-ui .tl-item {
  border-color: var(--color-border);
}

.nova-ui .tl-item::before {
  background: var(--color-surface);
}

.nova-ui .chat-input .box::placeholder,
.nova-ui .pd-cmt-bar input::placeholder {
  color: var(--color-text-muted);
  opacity: 1;
}

.nova-ui .pd-cmt-bar input {
  color: var(--color-text);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui .settings-head button {
  color: var(--color-text-muted);
}

.nova-ui .settings-head button:hover {
  background: var(--color-surface-alt);
}

.nova-ui .auth-access-links button {
  color: var(--color-secondary);
}

.nova-ui .chat-send,
.nova-ui .pd-cmt-bar button {
  color: var(--color-on-primary-strong);
  background: var(--color-primary-strong);
}

.nova-ui .sport-badge-missing.team-identity-mark.match-badge-missing {
  color: var(--color-text-muted);
  border-color: var(--color-border);
  background: var(--color-surface-alt);
}

.nova-ui :is(.side-tag.blue, .pb-bar .seg.a, .rb-bar .seg.h) {
  color: var(--color-surface);
  background: var(--color-secondary);
}

.nova-ui :is(.side-tag.red, .pb-bar .seg.h, .rb-bar .seg.a) {
  color: var(--color-surface);
  background: var(--status-danger);
}

/* v116：单场比赛改为原创“比赛档案”长卷；不再沿用对称比分台与横向下划线标签。 */
.nova-ui .match-detail-page {
  min-height: 100vh;
  padding-bottom: 52px;
  color: var(--color-text);
  background-color: var(--color-bg);
  background-image: var(--texture-page);
  background-size: 30px 30px, auto;
}

.nova-ui .mxd-route-state {
  width: min(calc(100% - 40px), 760px);
  min-height: 320px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 8px;
  margin: 32px auto;
  padding: 42px;
  color: var(--color-on-chrome);
  border-radius: 26px;
  background: linear-gradient(145deg, var(--color-chrome), var(--color-chrome-alt));
  box-shadow: var(--shadow-float);
}

.nova-ui .mxd-route-state > span {
  color: var(--color-primary);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.16em;
}

.nova-ui .mxd-route-state > b { font-size: 28px; }
.nova-ui .mxd-route-state > p { margin: 0; color: var(--color-on-chrome); opacity: 0.72; }
.nova-ui .mxd-route-state > button {
  width: 42px;
  height: 42px;
  margin-bottom: 16px;
  color: var(--color-on-chrome);
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 22%, transparent);
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-on-chrome) 8%, transparent);
  cursor: pointer;
}

.nova-ui .mxd-cover { padding: 20px 20px 0; }

.nova-ui .mxd-cover-frame {
  position: relative;
  isolation: isolate;
  width: min(100%, var(--nova-content-max));
  margin: 0 auto;
  overflow: hidden;
  color: var(--color-on-chrome);
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 13%, transparent);
  border-radius: 30px;
  background:
    radial-gradient(circle at 92% 4%, color-mix(in srgb, var(--color-primary) 24%, transparent), transparent 32%),
    radial-gradient(circle at 4% 100%, color-mix(in srgb, var(--color-secondary) 22%, transparent), transparent 34%),
    linear-gradient(145deg, var(--color-chrome), var(--color-chrome-alt));
  box-shadow: var(--shadow-float);
}

.nova-ui .mxd-cover-frame::after {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  opacity: 0.28;
  background:
    linear-gradient(color-mix(in srgb, var(--color-on-chrome) 8%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--color-on-chrome) 8%, transparent) 1px, transparent 1px);
  background-size: 44px 44px;
  pointer-events: none;
}

.nova-ui .mxd-cover-bar {
  min-height: 72px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  padding: 14px 22px;
  border-bottom: 1px solid color-mix(in srgb, var(--color-on-chrome) 12%, transparent);
}

.nova-ui .mxd-back {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  color: var(--color-on-chrome);
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 18%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-on-chrome) 7%, transparent);
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.nova-ui .mxd-back:hover { background: color-mix(in srgb, var(--color-on-chrome) 14%, transparent); }

.nova-ui .mxd-competition {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--color-on-chrome);
  font-size: 12px;
  font-weight: 800;
}

.nova-ui .mxd-competition .competition-ident.match-logo {
  width: auto;
  min-width: 30px;
  height: 30px;
  padding: 0;
  color: var(--color-on-chrome);
  background: transparent;
}

.nova-ui .mxd-competition .competition-logo { width: 26px; height: 26px; }

.nova-ui .mxd-state {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 11px;
  color: var(--color-on-chrome);
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 20%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--color-on-chrome) 9%, transparent);
  font-size: 10px;
  font-weight: 850;
  white-space: nowrap;
}

.nova-ui .mxd-state-live { color: var(--color-on-chrome); background: var(--status-live); border-color: var(--status-live); }
.nova-ui .mxd-state-ft { color: var(--color-on-primary); background: var(--color-primary); border-color: var(--color-primary); }
.nova-ui .mxd-state-postponed,
.nova-ui .mxd-state-cancelled { color: var(--color-on-chrome); background: var(--status-neutral); border-color: var(--status-neutral); }

.nova-ui .mxd-cover-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.82fr) minmax(440px, 1.18fr);
  gap: clamp(28px, 5vw, 78px);
  align-items: center;
  padding: clamp(34px, 6vw, 76px);
}

.nova-ui .mxd-context { min-width: 0; }

.nova-ui .mxd-kicker {
  display: block;
  color: var(--color-primary);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: 0.16em;
}

.nova-ui .mxd-context h1 {
  max-width: 560px;
  margin: 12px 0 8px;
  color: var(--color-on-chrome);
  font-size: clamp(36px, 5.4vw, 74px);
  font-weight: 950;
  letter-spacing: -0.055em;
  line-height: 0.98;
}

.nova-ui .mxd-context > p {
  margin: 0;
  color: color-mix(in srgb, var(--color-on-chrome) 72%, transparent);
  font-size: 12px;
  line-height: 1.65;
}

.nova-ui .mxd-fact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: 28px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 14%, transparent);
  border-radius: 15px;
  background: color-mix(in srgb, var(--color-on-chrome) 13%, transparent);
}

.nova-ui .mxd-fact-grid > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 13px 14px;
  background: color-mix(in srgb, var(--color-chrome) 78%, transparent);
}

.nova-ui .mxd-fact-grid span,
.nova-ui .mxd-fact-grid small { color: color-mix(in srgb, var(--color-on-chrome) 62%, transparent); font-size: 8px; }
.nova-ui .mxd-fact-grid span { font-weight: 900; letter-spacing: 0.08em; }
.nova-ui .mxd-fact-grid b { overflow: hidden; color: var(--color-on-chrome); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }

.nova-ui .mxd-score-ledger {
  min-width: 0;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 17%, transparent);
  border-radius: 22px;
  background: color-mix(in srgb, var(--color-on-chrome) 6%, transparent);
  box-shadow: 0 20px 50px color-mix(in srgb, var(--color-chrome) 48%, transparent);
}

.nova-ui .mxd-team-row {
  min-height: 112px;
  display: grid;
  grid-template-columns: 82px 58px minmax(0, 1fr) 76px;
  align-items: center;
  gap: 14px;
  padding: 18px 22px;
  background: color-mix(in srgb, var(--color-on-chrome) 4%, transparent);
}

.nova-ui .mxd-team-row.is-winner {
  background: linear-gradient(90deg, color-mix(in srgb, var(--color-primary) 18%, transparent), transparent 70%);
}

.nova-ui .mxd-team-role {
  color: color-mix(in srgb, var(--color-on-chrome) 58%, transparent);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: 0.1em;
}

.nova-ui .mxd-team-mark {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 16%, transparent);
  border-radius: 16px;
  background: color-mix(in srgb, var(--color-on-chrome) 8%, transparent);
}

.nova-ui .mxd-team-mark :is(.match-team-badge.big, .match-badge-missing.big) { width: 40px; height: 40px; }
.nova-ui .mxd-team-mark .match-national-flag.big { font-size: 38px; }

.nova-ui .mxd-team-copy { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.nova-ui .mxd-team-copy b { overflow: hidden; color: var(--color-on-chrome); font-size: clamp(18px, 2vw, 27px); text-overflow: ellipsis; white-space: nowrap; }
.nova-ui .mxd-team-copy small { overflow: hidden; color: color-mix(in srgb, var(--color-on-chrome) 58%, transparent); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.nova-ui .mxd-team-score { color: var(--color-on-chrome); font-size: clamp(36px, 4vw, 58px); font-variant-numeric: tabular-nums; letter-spacing: -0.06em; text-align: right; }

.nova-ui .mxd-score-rule {
  min-height: 44px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 8px 22px;
  border-top: 1px solid color-mix(in srgb, var(--color-on-chrome) 13%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--color-on-chrome) 13%, transparent);
  background: color-mix(in srgb, var(--color-chrome) 46%, transparent);
}

.nova-ui .mxd-score-rule > span { color: color-mix(in srgb, var(--color-on-chrome) 70%, transparent); font-size: 9px; }
.nova-ui .mxd-score-rule > i { color: var(--color-primary); font-size: 9px; font-style: normal; font-weight: 950; letter-spacing: 0.12em; }
.nova-ui .mxd-countdown { display: flex; align-items: baseline; gap: 8px; }
.nova-ui .mxd-countdown small { color: color-mix(in srgb, var(--color-on-chrome) 60%, transparent); font-size: 8px; }
.nova-ui .mxd-countdown b { color: var(--color-primary); font-size: 13px; font-variant-numeric: tabular-nums; }

.nova-ui .mxd-verdict,
.nova-ui .mxd-predict {
  width: auto;
  margin: 0 clamp(34px, 6vw, 76px) clamp(32px, 5vw, 58px);
}

.nova-ui .mxd-verdict {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  padding: 18px 20px;
  color: var(--color-on-chrome);
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 14%, transparent);
  border-radius: 16px;
  background: color-mix(in srgb, var(--color-on-chrome) 7%, transparent);
}

.nova-ui .mxd-verdict > span { color: var(--color-primary); font-size: 8px; font-weight: 950; letter-spacing: 0.12em; }
.nova-ui .mxd-verdict > div { min-width: 0; }
.nova-ui .mxd-verdict b { display: block; font-size: 18px; }
.nova-ui .mxd-verdict p { margin: 3px 0 0; color: color-mix(in srgb, var(--color-on-chrome) 64%, transparent); font-size: 9px; }
.nova-ui .mxd-verdict > strong { color: color-mix(in srgb, var(--color-on-chrome) 16%, transparent); font-size: 30px; letter-spacing: -0.06em; }

.nova-ui .mxd-predict {
  padding: 18px;
  color: var(--color-on-chrome);
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 14%, transparent);
  border-radius: 16px;
  background: color-mix(in srgb, var(--color-on-chrome) 7%, transparent);
}

.nova-ui .mxd-index {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin: 18px auto 0;
  padding: 18px;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: 22px;
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}

.nova-ui .mxd-index-head,
.nova-ui .mxd-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.nova-ui .mxd-index-head { padding: 2px 2px 15px; }
.nova-ui .mxd-index-head span,
.nova-ui .mxd-section-head span { display: block; color: var(--color-primary-strong); font-size: 8px; font-weight: 950; letter-spacing: 0.14em; }
.nova-ui .mxd-index-head h2,
.nova-ui .mxd-section-head h3 { margin: 4px 0 0; color: var(--color-text); font-weight: 900; letter-spacing: -0.025em; }
.nova-ui .mxd-index-head h2 { font-size: 22px; }
.nova-ui .mxd-section-head h3 { font-size: 20px; }
.nova-ui .mxd-index-head p,
.nova-ui .mxd-section-head p { max-width: 520px; margin: 0; color: var(--color-text-muted); font-size: 9px; line-height: 1.55; text-align: right; }

.nova-ui .match-detail-page .detail-tabs.mxd-chapters {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  gap: 7px;
  justify-content: stretch;
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
}

.nova-ui .match-detail-page .detail-tabs .mxd-chapter {
  min-width: 0;
  min-height: 56px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  padding: 10px;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: 13px;
  background: var(--color-surface-alt);
  text-align: center;
  transition: transform 140ms ease, border-color 140ms ease, background 140ms ease;
}

.nova-ui .match-detail-page .detail-tabs .mxd-chapter:hover { transform: translateY(-2px); border-color: var(--color-primary-strong); }
.nova-ui .match-detail-page .detail-tabs .mxd-chapter::after { display: none; }
.nova-ui .match-detail-page .detail-tabs .mxd-chapter.active {
  color: var(--color-on-primary-strong);
  border-color: var(--color-primary-strong);
  background: var(--color-primary-strong);
  box-shadow: 0 9px 24px color-mix(in srgb, var(--color-primary-strong) 23%, transparent);
}

.nova-ui .mxd-chapter-copy { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.nova-ui .mxd-chapter-copy b { font-size: 12px; }
.nova-ui .mxd-chapter-copy small { overflow: hidden; color: var(--color-text-muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.nova-ui .mxd-chapter.active .mxd-chapter-copy small { color: var(--color-on-primary-strong); opacity: 0.72; }

.nova-ui .mxd-body {
  width: min(calc(100% - 40px), var(--nova-content-max));
  margin: 0 auto;
  padding: 0 0 46px;
}

.nova-ui .match-detail-page .mxd-body > :not(.chat-input),
.nova-ui .match-detail-page .mxd-body :is(
  #mt-stats, #mt-tl, #mt-news, #lineup-box, #odds-real, #intel-items,
  #match-expert-real, #match-hot-real, #md-body, .paid-slot,
  .match-expert-compose, .paid-public-head
) {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.nova-ui .match-detail-page .mxd-section {
  margin-top: 16px;
  margin-bottom: 0;
  padding: 20px;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: 22px;
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.nova-ui .match-detail-page .mxd-section:empty { display: none; }
.nova-ui .mxd-section-head { padding-bottom: 16px; }

.nova-ui .mxd-watch-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, 0.88fr);
  gap: 12px;
  align-items: stretch;
}

.nova-ui .match-detail-page .mxd-watch-grid > :is(.live-player, .live-source-empty) {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 17px;
  box-shadow: none;
}

.nova-ui .match-detail-page .mxd-watch-grid > .live-source-empty { grid-template-columns: 1fr; }
.nova-ui .match-detail-page .mxd-watch-grid .live-source-visual { min-height: 190px; }
.nova-ui .match-detail-page .mxd-watch-grid .live-source-copy { padding: 24px; }
.nova-ui .match-detail-page .mxd-watch-grid .live-source-copy h3 { font-size: 22px; }

.nova-ui .match-detail-page .match-official-watch {
  height: 100%;
  margin: 0;
  padding: 18px;
  border-radius: 17px;
  background: var(--color-surface-alt);
  box-shadow: none;
}

.nova-ui .match-detail-page .match-official-watch-head { display: block; margin-bottom: 12px; }
.nova-ui .match-detail-page .match-official-watch-head p { margin-top: 6px; text-align: left; }
.nova-ui .match-detail-page .match-official-watch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.nova-ui .match-detail-page .match-official-watch .official-watch-card { padding: 10px; border-radius: 12px; }

.nova-ui .mxd-match-fact-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.nova-ui .mxd-match-fact-grid > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 14px;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: var(--color-surface-alt);
}

.nova-ui .mxd-match-fact-grid .mxd-fact-wide { grid-column: span 2; }
.nova-ui .mxd-match-fact-grid span { color: var(--color-primary-strong); font-size: 8px; font-weight: 900; letter-spacing: 0.08em; }
.nova-ui .mxd-match-fact-grid b { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.nova-ui .mxd-match-fact-grid small { overflow: hidden; color: var(--color-text-muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }

.nova-ui .match-detail-page .stat-compare-list {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin: 0;
  padding: 0;
}

.nova-ui .match-detail-page .stat-compare-row {
  padding: 15px;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: var(--color-surface-alt);
  box-shadow: none;
}

.nova-ui .match-detail-page .stat-compare-values { grid-template-columns: 48px minmax(0, 1fr) 48px; font-size: 10px; }
.nova-ui .match-detail-page .stat-compare-values b:first-child { color: var(--color-primary-strong); }
.nova-ui .match-detail-page .stat-compare-values b:last-child { color: var(--color-secondary); }
.nova-ui .match-detail-page .stat-compare-track { height: 4px; margin-top: 12px; background: var(--color-border); }
.nova-ui .match-detail-page .stat-compare-track .home { background: var(--color-primary-strong); }
.nova-ui .match-detail-page .stat-compare-track .away { background: var(--color-secondary); }

.nova-ui .mxd-timeline-stream { position: relative; padding: 12px 0 4px; }
.nova-ui .mxd-timeline-stream::before {
  content: "";
  position: absolute;
  top: 10px;
  bottom: 6px;
  left: 50%;
  width: 1px;
  background: var(--color-border);
}

.nova-ui .mxd-timeline-event {
  position: relative;
  width: 50%;
  min-height: 64px;
  display: grid;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
}

.nova-ui .mxd-timeline-event.home {
  grid-template-columns: minmax(0, 1fr) 54px 32px;
  grid-template-areas: "copy time mark";
  padding-right: 0;
  text-align: right;
}

.nova-ui .mxd-timeline-event.away {
  grid-template-columns: 32px 54px minmax(0, 1fr);
  grid-template-areas: "mark time copy";
  margin-left: 50%;
}

.nova-ui .mxd-timeline-event > time { grid-area: time; color: var(--color-text-muted); font-size: 9px; font-weight: 850; font-variant-numeric: tabular-nums; }
.nova-ui .mxd-timeline-event > .mxd-event-mark {
  z-index: 1;
  grid-area: mark;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid var(--color-border);
  border-radius: 9px;
  background: var(--color-surface-alt);
  font-size: 12px;
}
.nova-ui .mxd-timeline-event.home > .mxd-event-mark { transform: translateX(15px); }
.nova-ui .mxd-timeline-event.away > .mxd-event-mark { transform: translateX(-15px); }
.nova-ui .mxd-timeline-event > div { grid-area: copy; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nova-ui .mxd-timeline-event > div small { color: var(--color-text-muted); font-size: 8px; }
.nova-ui .mxd-timeline-event > div b { font-size: 12px; }
.nova-ui .mxd-timeline-event > div strong { color: var(--color-text); font-size: 10px; }
.nova-ui .mxd-timeline-event > div em { color: var(--color-text-muted); font-size: 8px; font-style: normal; }

.nova-ui .mxd-timeline-event.neutral {
  width: min(62%, 620px);
  grid-template-columns: 58px 32px minmax(0, 1fr);
  grid-template-areas: "time mark copy";
  margin: 8px auto;
  padding: 10px 16px;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  background: var(--color-primary-soft);
}

.nova-ui .mxd-timeline-event.neutral > .mxd-event-mark { border-color: var(--color-primary-strong); }
.nova-ui .mxd-timeline-source-note { margin-top: 10px; color: var(--color-text-muted); font-size: 9px; text-align: center; }

.nova-ui .mxd-rule-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.nova-ui .mxd-rule-grid p { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 14px; border: 1px solid var(--color-border); border-radius: 14px; background: var(--color-surface-alt); }
.nova-ui .mxd-rule-grid b { font-size: 12px; }
.nova-ui .mxd-rule-grid span { color: var(--color-text-muted); font-size: 9px; line-height: 1.5; }
.nova-ui .mxd-chat-room { min-height: 300px; }
.nova-ui .match-detail-page .chat-list { width: 100%; padding: 2px 0 72px; }
.nova-ui .match-detail-page .real-chat-msg { padding: 13px 4px; }
.nova-ui .match-detail-page .chat-input {
  width: min(calc(100% - 40px), var(--nova-content-max));
  bottom: max(12px, env(safe-area-inset-bottom));
  padding: 10px;
  border: 1px solid var(--color-border);
  border-radius: 18px;
  background: var(--color-surface);
  box-shadow: var(--shadow-float);
}

.nova-ui .match-detail-page #lineup-box { padding: 0; }
.nova-ui .match-detail-page .lineup-head { padding: 22px 22px 0; }
.nova-ui .match-detail-page .lineup-head .cap { font-size: 20px; font-weight: 900; }
.nova-ui .match-detail-page .lineup-teamtabs { gap: 7px; margin-top: 16px; padding-bottom: 14px; border: 0; }
.nova-ui .match-detail-page .lineup-teamtabs .t {
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-surface-alt);
  font-size: 11px;
}
.nova-ui .match-detail-page .lineup-teamtabs .t.on { color: var(--color-on-primary-strong); border-color: var(--color-primary-strong); background: var(--color-primary-strong); }
.nova-ui .match-detail-page .lineup-teamtabs .t.on::after { display: none; }
.nova-ui .match-detail-page .pitch {
  min-height: 560px;
  margin: 0 16px 16px;
  padding: 34px 0 42px;
  border: 1px solid color-mix(in srgb, var(--color-on-chrome) 18%, transparent);
  border-radius: 22px;
  background:
    linear-gradient(color-mix(in srgb, var(--color-on-chrome) 6%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--color-on-chrome) 6%, transparent) 1px, transparent 1px),
    linear-gradient(145deg, var(--color-chrome-alt), var(--color-chrome));
  background-size: 32px 32px, 32px 32px, auto;
}
.nova-ui .match-detail-page .pitch .box-lines { border-color: color-mix(in srgb, var(--color-on-chrome) 38%, transparent); }
.nova-ui .match-detail-page .pitch .box-lines .inner { border-color: color-mix(in srgb, var(--color-on-chrome) 38%, transparent); }
.nova-ui .match-detail-page .pitch .team-cap { border: 1px solid color-mix(in srgb, var(--color-on-chrome) 18%, transparent); border-radius: 999px; background: color-mix(in srgb, var(--color-on-chrome) 9%, transparent); }
.nova-ui .match-detail-page .p-line { gap: 8px; justify-content: space-evenly; }
.nova-ui .match-detail-page .player .ava { border-radius: 15px; box-shadow: 0 8px 22px color-mix(in srgb, var(--color-chrome) 38%, transparent); }
.nova-ui .match-detail-page .player .nm { display: inline-block; max-width: 100%; overflow: hidden; padding: 3px 7px; border-radius: 999px; background: color-mix(in srgb, var(--color-chrome) 62%, transparent); text-overflow: ellipsis; white-space: nowrap; }
.nova-ui .match-detail-page .lineup-sub-list { padding: 0 18px 20px; }
.nova-ui .match-detail-page .lineup-sub-player { color: var(--color-text); border: 1px solid var(--color-border); background: var(--color-surface-alt); }

.nova-ui .match-detail-page .mxd-odds-intro > #odds-real { margin-top: 0; }
.nova-ui .match-detail-page .odds-market { margin-top: 12px; overflow: hidden; border: 1px solid var(--color-border); border-radius: 15px; background: var(--color-surface-alt); }
.nova-ui .match-detail-page .odds-market h4 { margin: 0; padding: 13px 14px; font-size: 13px; }
.nova-ui .match-detail-page .odds2-table { width: 100%; margin: 0; border: 0; border-radius: 0; background: var(--color-surface); box-shadow: none; }
.nova-ui .match-detail-page .odds2-hd { background: var(--color-surface-alt); }
.nova-ui .match-detail-page .odds2-note { padding: 14px 4px 0; color: var(--color-text-muted); }

.nova-ui .match-detail-page .paid-slot {
  padding: 0;
  border-color: var(--color-border);
  border-radius: 22px;
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}
.nova-ui .match-detail-page .paid-kicker { color: var(--color-on-primary-strong); background: var(--color-primary-strong); }
.nova-ui .match-detail-page .paid-once { color: var(--color-text-muted); border-color: var(--color-border); background: var(--color-surface-alt); }
.nova-ui .match-detail-page .paid-slot-note { color: var(--color-text-muted); border-color: var(--color-border); }
.nova-ui .match-detail-page .paid-public-head { margin-top: 18px; padding: 14px 18px; border: 1px solid var(--color-border); border-radius: 16px; background: var(--color-surface-alt); }

.nova-ui .match-detail-page :is(.mxd-intel-list, .mxd-expert-list, .mxd-hot-list, .mxd-data-list) { padding: 0; background: transparent; box-shadow: none; }
.nova-ui .match-detail-page .mxd-intel-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border: 0; overflow: visible; }
.nova-ui .match-detail-page .mxd-intel-list > .intel-item { margin: 0; padding: 18px; border: 1px solid var(--color-border); border-radius: 16px; background: var(--color-surface); box-shadow: var(--shadow-card); }
.nova-ui .match-detail-page .mxd-intel-list > .match-form-grid { grid-column: 1 / -1; width: 100%; padding: 0; }
.nova-ui .match-detail-page .intel-item::after { display: none; }

.nova-ui .match-detail-page .mxd-data-list { border: 0; overflow: visible; }
.nova-ui .match-detail-page .mxd-data-list > .dt-sec {
  margin: 0 0 12px;
  padding: 20px;
  border: 1px solid var(--color-border);
  border-radius: 18px;
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}
.nova-ui .match-detail-page .mxd-data-list > .dt-sec::before,
.nova-ui .match-detail-page .mxd-data-list > .dt-sec::after { display: none; }
.nova-ui .match-detail-page .mxd-data-list > .dt-sec > h4 { margin: 0 0 14px; font-size: 17px; }
.nova-ui .match-detail-page .mxd-data-list > .dt-sec > h4 small { color: var(--color-text-muted); font-size: 8px; }
.nova-ui .match-detail-page .match-standing-card,
.nova-ui .match-detail-page .match-form-card { border-radius: 15px; background: var(--color-surface-alt); }

.nova-ui .match-detail-page .mxd-vip-state { padding: 0; }
.nova-ui .match-detail-page .truth-empty { color: var(--color-text-muted); }

@media (max-width: 1050px) {
  .nova-ui .mxd-cover-grid { grid-template-columns: minmax(240px, 0.72fr) minmax(400px, 1.28fr); gap: 28px; padding: 42px; }
  .nova-ui .mxd-context h1 { font-size: 46px; }
  .nova-ui .match-detail-page .detail-tabs.mxd-chapters { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .nova-ui .mxd-watch-grid { grid-template-columns: 1fr; }
  .nova-ui .match-detail-page .mxd-watch-grid > .live-source-empty { grid-template-columns: minmax(260px, 0.9fr) minmax(320px, 1.1fr); }
  .nova-ui .match-detail-page .match-official-watch-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nova-ui .match-detail-page .stat-compare-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .nova-ui .mxd-cover { padding: 8px 8px 0; }
  .nova-ui .mxd-cover-frame { border-radius: 20px; }
  .nova-ui .mxd-cover-frame::before { right: -8px; bottom: -6px; font-size: 64px; }
  .nova-ui .mxd-cover-bar { min-height: 58px; gap: 10px; padding: 9px 12px; }
  .nova-ui .mxd-back { min-height: 36px; padding: 0 11px; }
  .nova-ui .mxd-back span { display: none; }
  .nova-ui .mxd-competition > span { overflow: hidden; max-width: 130px; text-overflow: ellipsis; white-space: nowrap; }
  .nova-ui .mxd-state { min-height: 27px; padding: 0 8px; font-size: 8px; }
  .nova-ui .mxd-cover-grid { grid-template-columns: 1fr; gap: 24px; padding: 30px 18px 24px; }
  .nova-ui .mxd-context h1 { margin-top: 9px; font-size: 36px; }
  .nova-ui .mxd-context > p { font-size: 10px; }
  .nova-ui .mxd-fact-grid { margin-top: 20px; }
  .nova-ui .mxd-fact-grid > div { padding: 10px 11px; }
  .nova-ui .mxd-team-row { min-height: 92px; grid-template-columns: 44px minmax(0, 1fr) 54px; gap: 10px; padding: 13px 15px; }
  .nova-ui .mxd-team-role { grid-column: 1 / -1; margin-bottom: -5px; }
  .nova-ui .mxd-team-mark { width: 42px; height: 42px; border-radius: 13px; }
  .nova-ui .mxd-team-mark :is(.match-team-badge.big, .match-badge-missing.big) { width: 32px; height: 32px; }
  .nova-ui .mxd-team-mark .match-national-flag.big { font-size: 31px; }
  .nova-ui .mxd-team-copy b { font-size: 18px; }
  .nova-ui .mxd-team-score { font-size: 38px; }
  .nova-ui .mxd-score-rule { padding: 8px 15px; }
  .nova-ui .mxd-verdict,
  .nova-ui .mxd-predict { margin: 0 18px 22px; }
  .nova-ui .mxd-verdict { grid-template-columns: 1fr; gap: 8px; padding: 14px; }
  .nova-ui .mxd-verdict > span { grid-column: 1 / -1; }
  .nova-ui .mxd-verdict > strong { font-size: 22px; }

  .nova-ui .mxd-index,
  .nova-ui .mxd-body { width: calc(100% - 16px); }
  .nova-ui .mxd-index { margin-top: 8px; padding: 10px; border-radius: 17px; }
  .nova-ui .mxd-index-head { align-items: flex-start; padding: 5px 4px 11px; }
  .nova-ui .mxd-index-head h2 { font-size: 18px; }
  .nova-ui .mxd-index-head p { display: none; }
  .nova-ui .match-detail-page .detail-tabs.mxd-chapters { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
  .nova-ui .match-detail-page .detail-tabs .mxd-chapter { min-height: 52px; gap: 7px; padding: 7px 8px; border-radius: 11px; }
  .nova-ui .mxd-chapter-copy b { font-size: 11px; }
  .nova-ui .mxd-chapter-copy small { display: none; }
  .nova-ui .mxd-body { padding-bottom: 32px; }
  .nova-ui .match-detail-page .mxd-section { margin-top: 8px; padding: 14px; border-radius: 17px; }
  .nova-ui .mxd-section-head { display: block; padding-bottom: 12px; }
  .nova-ui .mxd-section-head h3 { font-size: 18px; }
  .nova-ui .mxd-section-head p { margin-top: 5px; font-size: 8px; text-align: left; }
  .nova-ui .match-hot-compose { align-items: stretch; flex-direction: column; gap: 12px; }
  .nova-ui .match-hot-compose > button { width: 100%; min-height: 42px; }
  .nova-ui .match-detail-page .mxd-watch-grid > .live-source-empty { grid-template-columns: 1fr; }
  .nova-ui .match-detail-page .mxd-watch-grid .live-source-visual { min-height: 150px; }
  .nova-ui .match-detail-page .match-official-watch { padding: 13px; }
  .nova-ui .match-detail-page .match-official-watch-grid { grid-template-columns: 1fr; }
  .nova-ui .mxd-match-fact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nova-ui .mxd-match-fact-grid .mxd-fact-wide { grid-column: 1 / -1; }
  .nova-ui .match-detail-page .stat-compare-list { grid-template-columns: 1fr; }
  .nova-ui .match-detail-page .stat-compare-row { padding: 12px; }

  .nova-ui .mxd-timeline-stream { padding-left: 2px; }
  .nova-ui .mxd-timeline-stream::before { left: 15px; }
  .nova-ui .mxd-timeline-event,
  .nova-ui .mxd-timeline-event.home,
  .nova-ui .mxd-timeline-event.away,
  .nova-ui .mxd-timeline-event.neutral {
    width: 100%;
    min-height: 58px;
    grid-template-columns: 30px 46px minmax(0, 1fr);
    grid-template-areas: "mark time copy";
    margin: 0;
    padding: 7px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    text-align: left;
  }
  .nova-ui .mxd-timeline-event.home > .mxd-event-mark,
  .nova-ui .mxd-timeline-event.away > .mxd-event-mark { transform: none; }
  .nova-ui .mxd-timeline-event > .mxd-event-mark { width: 28px; height: 28px; }

  .nova-ui .mxd-rule-grid,
  .nova-ui .match-detail-page .mxd-intel-list { grid-template-columns: 1fr; }
  .nova-ui .match-detail-page .chat-input { width: calc(100% - 16px); }
  .nova-ui .match-detail-page .lineup-head { padding: 16px 14px 0; }
  .nova-ui .match-detail-page .lineup-head .cap { font-size: 17px; }
  .nova-ui .match-detail-page .pitch { min-height: 500px; margin: 0 8px 8px; border-radius: 17px; }
  .nova-ui .match-detail-page .player { width: 68px; }
  .nova-ui .match-detail-page .player .ava { width: 38px; height: 38px; border-radius: 12px; }
  .nova-ui .match-detail-page .player .nm { font-size: 9px; }
  .nova-ui .match-detail-page .odds2-table { overflow: visible; }
  .nova-ui .match-detail-page :is(.odds2-hd, .odds2-tr) {
    min-width: 0 !important;
    grid-template-columns: minmax(72px, 1.15fr) repeat(var(--odds-cols), minmax(52px, 1fr));
  }
  .nova-ui .match-detail-page .odds2-tr .v2 { padding-inline: 3px; font-size: 10px; }
  .nova-ui .match-detail-page .mxd-data-list > .dt-sec { margin-bottom: 8px; padding: 14px; border-radius: 15px; }
  .nova-ui .mxd-route-state { width: calc(100% - 16px); min-height: 280px; margin: 8px auto; padding: 26px; border-radius: 20px; }
}

@media (max-width: 360px) {
  .nova-ui .mxd-competition > span { max-width: 94px; }
  .nova-ui .mxd-context h1 { font-size: 31px; }
  .nova-ui .mxd-fact-grid { grid-template-columns: 1fr; }
  .nova-ui .mxd-team-copy b { font-size: 16px; }
  .nova-ui .mxd-team-copy small { font-size: 8px; }
  .nova-ui .match-detail-page .detail-tabs .mxd-chapter { padding-inline: 6px; }
  .nova-ui .mxd-match-fact-grid { grid-template-columns: 1fr; }
  .nova-ui .mxd-match-fact-grid .mxd-fact-wide { grid-column: auto; }
}

@media (max-width: 640px) {
  .nova-ui .nova-search-overlay {
    align-items: stretch;
    padding: 0;
  }

  .nova-ui .nova-search-modal {
    width: 100%;
    max-height: 100dvh;
    min-height: 100dvh;
    border: 0;
    border-radius: 0;
  }

  .nova-ui .nova-search-head {
    padding: calc(14px + env(safe-area-inset-top)) 14px 10px;
  }

  .nova-ui .nova-search-head h2 {
    font-size: 20px;
  }

  .nova-ui .nova-search-form {
    margin: 0 14px;
    padding-left: 11px;
  }

  .nova-ui .nova-search-form button {
    min-width: 58px;
    padding-inline: 10px;
  }

  .nova-ui .nova-search-hint {
    margin-inline: 16px;
  }

  .nova-ui .nova-context-search-results {
    padding: 0 12px calc(18px + env(safe-area-inset-bottom));
  }

  .nova-ui .nova-search-match-result {
    grid-template-columns: 1fr;
    gap: 9px;
    padding: 12px;
  }
}

/* v172：流媒体式沉浸账号页。业务状态机不变，视觉只由这一组规则接管。 */
body.nova-ui #auth-ov.modal-ov {
  position: fixed;
  isolation: isolate;
  align-items: flex-start;
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
  padding:
    max(32px, env(safe-area-inset-top))
    max(24px, env(safe-area-inset-right))
    max(32px, env(safe-area-inset-bottom))
    max(24px, env(safe-area-inset-left));
  color: #f7f9f7;
  background:
    radial-gradient(circle at 16% 6%, rgba(168, 255, 44, 0.12), transparent 34%),
    radial-gradient(circle at 86% 92%, rgba(20, 112, 77, 0.14), transparent 36%),
    #030504;
  backdrop-filter: none;
  color-scheme: dark;
}

body.nova-ui #auth-ov.modal-ov::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(90deg, rgba(2, 5, 4, 0.54) 0%, rgba(2, 5, 4, 0.38) 46%, rgba(2, 5, 4, 0.24) 100%),
    linear-gradient(180deg, rgba(2, 5, 4, 0.14), rgba(2, 5, 4, 0.56)),
    var(--theme-home-wide);
  background-position:
    center,
    center,
    var(--theme-home-position-wide);
  background-repeat: no-repeat;
  background-size: cover;
}

body.nova-ui #auth-ov .auth-modal.auth-cinematic {
  position: relative;
  z-index: 1;
  width: min(600px, 100%);
  max-width: 600px;
  max-height: none;
  margin: auto;
  overflow: visible;
  color: #f7f9f7;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

@media (orientation: portrait) {
  body.nova-ui #auth-ov.modal-ov::before {
    background-image:
      linear-gradient(180deg, rgba(2, 5, 4, 0.76) 0%, rgba(2, 5, 4, 0.91) 58%, rgba(2, 5, 4, 0.97) 100%),
      linear-gradient(90deg, rgba(2, 5, 4, 0.3), rgba(2, 5, 4, 0.5)),
      var(--theme-home-portrait);
    background-position:
      center,
      center,
      var(--theme-home-position-portrait);
  }
}

/* 接近方形的桌面和平板若继续裁切 16:9 横图，会把主题主体挤到一侧。
 * 这类视口改用竖版主题图；手机仍由下方窄屏规则保持更强的文字遮罩。 */
@media (min-width: 641px) and (max-aspect-ratio: 4 / 3) {
  body.nova-ui #auth-ov.modal-ov::before {
    background-image:
      linear-gradient(90deg, rgba(2, 5, 4, 0.42), rgba(2, 5, 4, 0.28)),
      linear-gradient(180deg, rgba(2, 5, 4, 0.18), rgba(2, 5, 4, 0.58)),
      var(--theme-home-portrait);
    background-position:
      center,
      center,
      var(--theme-home-position-portrait);
  }
}

#auth-ov .auth-cinematic-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 30px 2px;
  color: #fff;
}

#auth-ov .auth-cinematic-brand .nova-brand-symbol {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #a8ff2c;
  box-shadow: 0 12px 32px rgba(168, 255, 44, 0.18);
}

#auth-ov .auth-cinematic-brand .nova-brand-symbol i:first-child {
  left: 10px;
  top: 8px;
  width: 8px;
  height: 26px;
  background: #071006;
}

#auth-ov .auth-cinematic-brand .nova-brand-symbol i:last-child {
  right: 8px;
  top: 8px;
  width: 13px;
  height: 26px;
  border-color: #071006;
}

#auth-ov .auth-cinematic-brand .nova-brand-copy b {
  color: #fff;
  font-size: 20px;
  letter-spacing: 0.12em;
}

#auth-ov .auth-cinematic-brand .nova-brand-copy em { color: #a8ff2c; }
#auth-ov .auth-cinematic-brand .nova-brand-copy small { color: rgba(255, 255, 255, 0.58); }

body.nova-ui #auth-ov .auth-cinematic .auth-tabs {
  min-height: 48px;
  display: grid;
  grid-template-columns: minmax(86px, 1fr) auto minmax(86px, 1fr);
  align-items: center;
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  background: transparent;
}

body.nova-ui #auth-ov .entry-auth-modal[data-auth-stage="identify"] .auth-tabs { display: none; }

#auth-ov .auth-cinematic .auth-tabs .auth-title {
  position: static;
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  padding: 0;
  color: rgba(255, 255, 255, 0.78);
  border: 0;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.2;
  transform: none;
}

#auth-ov .auth-cinematic .auth-tabs .auth-back {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  min-height: 44px;
  padding: 0 8px 0 0;
  color: #b9f978;
  font-size: 14px;
}

#auth-ov .auth-cinematic .auth-tabs .auth-x {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  color: rgba(255, 255, 255, 0.72);
  border-radius: 50%;
  font-size: 17px;
}

#auth-ov .auth-cinematic .auth-tabs :is(.auth-back, .auth-x):hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

#auth-ov .auth-cinematic .auth-tabs .auth-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

body.nova-ui #auth-ov .auth-cinematic .auth-body {
  box-sizing: border-box;
  padding: 46px 48px 42px;
  color: #f7f9f7;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 12px;
  background: rgba(3, 8, 6, 0.64);
  -webkit-backdrop-filter: blur(16px) saturate(0.88);
  backdrop-filter: blur(16px) saturate(0.88);
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.28);
}

#auth-ov .auth-cinematic .auth-access-copy { margin: 0 0 28px; }
#auth-ov .auth-cinematic .auth-access-copy strong {
  color: #fff;
  font-size: clamp(32px, 4vw, 40px);
  font-weight: 760;
  line-height: 1.2;
  letter-spacing: -0.035em;
}

#auth-ov .auth-cinematic .auth-access-copy p {
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 16px;
  line-height: 1.55;
}

#auth-ov .auth-cinematic .auth-inp,
#auth-ov .auth-cinematic .auth-phone-control {
  min-height: 56px;
  box-sizing: border-box;
  color: #fff;
  -webkit-text-fill-color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.44);
  border-radius: 7px;
  background: rgba(0, 0, 0, 0.28);
  box-shadow: none;
}

#auth-ov .auth-cinematic .auth-inp {
  margin-bottom: 16px;
  padding: 15px 16px;
  font-size: 17px;
}

#auth-ov .auth-cinematic :is(.auth-inp, .auth-phone-input)::placeholder {
  color: rgba(255, 255, 255, 0.56);
  -webkit-text-fill-color: rgba(255, 255, 255, 0.56);
}

#auth-ov .auth-cinematic .auth-inp:focus,
#auth-ov .auth-cinematic .auth-phone-control:focus-within {
  outline: 2px solid #a8ff2c;
  outline-offset: 2px;
  color: #fff;
  border-color: #a8ff2c;
  background: rgba(0, 0, 0, 0.46);
  box-shadow: none;
}

#auth-ov .auth-cinematic .auth-phone-field { margin-bottom: 14px; }
#auth-ov .auth-cinematic .auth-phone-control { overflow: hidden; }
#auth-ov .auth-cinematic .auth-phone-control .auth-inp {
  min-height: 54px;
  margin: 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
}

#auth-ov .auth-cinematic .auth-phone-prefix {
  align-self: stretch;
  min-width: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  font-size: 16px;
}

#auth-ov .auth-cinematic :is(.auth-phone-hint, .auth-cap-note, .auth-provider-status, .google-terms, .auth-hint) {
  color: rgba(255, 255, 255, 0.56);
}

#auth-ov .auth-cinematic .auth-phone-hint.ok,
#auth-ov .auth-cinematic .auth-cap-note.ok,
#auth-ov .auth-cinematic .auth-msg.ok { color: #a8ff2c; }
#auth-ov .auth-cinematic .auth-phone-hint.bad,
#auth-ov .auth-cinematic .auth-msg { color: #ff9b9b; }

#auth-ov .auth-cinematic .auth-submit {
  width: 100%;
  min-height: 50px;
  margin-top: 4px;
  padding: 13px 18px;
  color: #071006;
  border: 0;
  border-radius: 8px;
  background: #a8ff2c;
  box-shadow: none;
  font-size: 16px;
  font-weight: 800;
}

#auth-ov .auth-cinematic .auth-submit:hover:not(:disabled) { background: #b9ff51; }
#auth-ov .auth-cinematic .auth-submit:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}
#auth-ov .auth-cinematic .auth-submit:disabled { opacity: 0.48; }

#auth-ov .auth-cinematic .auth-access-links,
#auth-ov .auth-cinematic .auth-forgot { margin: 16px 0 0; }
#auth-ov .auth-cinematic :is(.auth-access-links, .auth-forgot) button,
#auth-ov .auth-cinematic .social-auth-cancel {
  color: #b9f978;
  font-size: 14px;
  text-decoration: none;
}
#auth-ov .auth-cinematic :is(.auth-access-links, .auth-forgot) button:hover,
#auth-ov .auth-cinematic .social-auth-cancel:hover { color: #fff; text-decoration: underline; }

#auth-ov .auth-cinematic :is(.auth-channel, .auth-method) {
  margin: 0 0 18px;
  padding: 4px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.06);
}
#auth-ov .auth-cinematic :is(.auth-channel, .auth-method) button {
  min-height: 42px;
  color: rgba(255, 255, 255, 0.62);
  border-radius: 6px;
  background: transparent;
}
#auth-ov .auth-cinematic :is(.auth-channel, .auth-method) button.on {
  color: #071006;
  background: #f1f3f0;
  box-shadow: none;
}

#auth-ov .auth-cinematic .auth-code-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 112px;
  gap: 10px;
}
#auth-ov .auth-cinematic .auth-code-row .auth-inp { margin-bottom: 0; }
#auth-ov .auth-cinematic .auth-code-row button,
#auth-ov .auth-cinematic .auth-tencent-captcha button {
  min-height: 56px;
  color: #f7f9f7;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.08);
}

#auth-ov .auth-cinematic .auth-service-note,
#auth-ov .auth-cinematic .auth-recovery-intro,
#auth-ov .auth-cinematic .auth-access-target,
#auth-ov .auth-cinematic .social-phone-profile {
  color: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.06);
}
#auth-ov .auth-cinematic .auth-service-note.dev { color: #c9f89b; background: rgba(168, 255, 44, 0.07); }
#auth-ov .auth-cinematic .auth-service-note.warn,
#auth-ov .auth-cinematic .auth-phone-registration-note { color: #ffd39a; background: rgba(255, 168, 62, 0.1); }
#auth-ov .auth-cinematic .auth-recovery-intro strong,
#auth-ov .auth-cinematic .auth-access-target strong,
#auth-ov .auth-cinematic .social-phone-profile b { color: #fff; }
#auth-ov .auth-cinematic .auth-access-target span,
#auth-ov .auth-cinematic .social-phone-profile small { color: rgba(255, 255, 255, 0.54); }

#auth-ov .auth-cinematic .auth-pass-wrap button { color: #b9f978; }
#auth-ov .auth-cinematic .auth-agree { color: rgba(255, 255, 255, 0.58); }
#auth-ov .auth-cinematic :is(.auth-agree, .google-terms) a { color: #b9f978; }
#auth-ov .auth-cinematic .auth-or { color: rgba(255, 255, 255, 0.42); }
#auth-ov .auth-cinematic .auth-or::before,
#auth-ov .auth-cinematic .auth-or::after { background: rgba(255, 255, 255, 0.12); }

#auth-ov .auth-cinematic .social-auth-button,
#auth-ov .auth-cinematic .google-disabled {
  color: #f7f9f7;
  border-color: rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.07);
}
#auth-ov .auth-cinematic .social-auth-button:hover:not(:disabled) { background: rgba(255, 255, 255, 0.12); }
#auth-ov .auth-cinematic .google-auth-box { overflow: hidden; border-radius: 7px; }
#auth-ov .auth-cinematic .social-auth-label { color: rgba(255, 255, 255, 0.82); }
#auth-ov .auth-cinematic .social-auth-item small,
#auth-ov .auth-cinematic .apple-passkey-login small { color: rgba(255, 255, 255, 0.58); }
#auth-ov .auth-cinematic .apple-passkey-login > button {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.34);
  background: rgba(255, 255, 255, 0.09);
}
#auth-ov .auth-cinematic .apple-passkey-login > button:hover:not(:disabled) { background: rgba(255, 255, 255, 0.15); }
#auth-ov .auth-cinematic .passkey-offer-mark {
  color: #071006;
  border: 1px solid #a8ff2c;
  background: #a8ff2c;
}
#auth-ov .auth-cinematic .passkey-enrollment-offer > strong { color: #a8ff2c; }
#auth-ov .auth-cinematic .passkey-enrollment-offer h3 { color: #fff; }
#auth-ov .auth-cinematic .passkey-enrollment-offer > p { color: rgba(255, 255, 255, 0.78); }
#auth-ov .auth-cinematic .passkey-enrollment-offer .passkey-offer-note { color: rgba(255, 255, 255, 0.6); }
#auth-ov .auth-cinematic .passkey-offer-later { color: rgba(255, 255, 255, 0.76); }
#auth-ov .auth-cinematic .passkey-offer-later:hover { color: #fff; }
#auth-ov .auth-cinematic .auth-completion-check { color: rgba(255, 255, 255, 0.82); }
#auth-ov .auth-cinematic .auth-completion-check span {
  border-color: rgba(255, 255, 255, 0.18);
  border-top-color: #a8ff2c;
}

#auth-ov .auth-cinematic .auth-loading,
#auth-ov .auth-cinematic .auth-unavailable { color: rgba(255, 255, 255, 0.72); }
#auth-ov .auth-cinematic .auth-unavailable button {
  color: #071006;
  border: 0;
  background: #a8ff2c;
}

body.nova-ui #auth-ov .auth-cinematic .entry-auth-footer {
  position: static;
  margin: 18px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
}
#auth-ov .auth-cinematic .entry-auth-footer button {
  width: auto;
  min-height: 44px;
  padding: 8px 2px;
  color: rgba(255, 255, 255, 0.7);
  border: 0;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
}
#auth-ov .auth-cinematic .entry-auth-footer button:hover { color: #fff; background: transparent; text-decoration: underline; }

@media (max-width: 640px) {
  body.nova-ui #auth-ov.modal-ov {
    min-height: 100dvh;
    padding:
      max(22px, env(safe-area-inset-top))
      max(20px, env(safe-area-inset-right))
      max(22px, env(safe-area-inset-bottom))
      max(20px, env(safe-area-inset-left));
  }

  body.nova-ui #auth-ov .auth-modal.auth-cinematic {
    width: 100%;
    min-height: calc(100dvh - max(44px, env(safe-area-inset-top) + env(safe-area-inset-bottom)));
    display: flex;
    flex-direction: column;
  }

  #auth-ov .auth-cinematic-brand { margin: 0 0 28px; }
  #auth-ov .auth-cinematic-brand .nova-brand-symbol { width: 36px; height: 36px; }
  #auth-ov .auth-cinematic-brand .nova-brand-symbol i:first-child { left: 9px; top: 7px; height: 22px; }
  #auth-ov .auth-cinematic-brand .nova-brand-symbol i:last-child { right: 7px; top: 7px; height: 22px; }
  #auth-ov .auth-cinematic-brand .nova-brand-copy b { font-size: 17px; }

  body.nova-ui #auth-ov .auth-cinematic .auth-body {
    padding: 8px 0 24px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  #auth-ov .auth-cinematic .auth-access-copy { margin-bottom: 24px; }
  #auth-ov .auth-cinematic .auth-access-copy strong { font-size: 29px; line-height: 1.22; }
  #auth-ov .auth-cinematic .auth-access-copy p { font-size: 15px; }
  #auth-ov .auth-cinematic .auth-submit { min-height: 52px; }
  #auth-ov .auth-cinematic .social-auth-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #auth-ov .auth-cinematic .social-auth-grid.has-google { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #auth-ov .auth-cinematic .social-auth-grid.has-alipay { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #auth-ov .auth-cinematic .social-auth-grid.has-telegram { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #auth-ov .auth-cinematic .social-auth-grid.has-alipay.has-google { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #auth-ov .auth-cinematic .social-auth-grid.has-telegram.has-google,
  #auth-ov .auth-cinematic .social-auth-grid.has-telegram.has-alipay { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #auth-ov .auth-cinematic .social-auth-grid.has-telegram.has-alipay.has-google { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  #auth-ov .auth-cinematic .auth-code-row { grid-template-columns: minmax(0, 1fr) 112px; }
  body.nova-ui #auth-ov .auth-cinematic .entry-auth-footer { margin-top: auto; padding-top: 10px; }
}

@media (max-width: 360px) {
  #auth-ov .auth-cinematic .auth-code-row { grid-template-columns: 1fr; }
  #auth-ov .auth-cinematic .auth-code-row button { width: 100%; }
}

.nova-ui .nr-translation-unavailable {
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: 10px;
  color: var(--nova-muted, #53625b);
  background: color-mix(in srgb, currentColor 6%, transparent);
  font-size: 14px;
}
