.mobile-match-meta { display: none; }
/* Shared mobile corrections, loaded after each theme. Desktop compositions stay intact. */
@media (max-width: 768px) {
  main, main section, main article, main aside, main nav { min-width: 0; }
  main h1, main h2, main h3, main p { overflow-wrap: anywhere; }
  main img { max-width: 100%; }
  .ng-share { flex-wrap: wrap; }
  .p-site .p-sidebar, .v11-site .jf-rail { align-items: start; }
  .p-v3 .p-panel, .p-v4 .p-panel, .p-v7 .p-panel { align-self: start; }
  .p-v4 .p-main-column .xzs-article { min-height: 0; }
  /* Every league remains accessible, with a consistent touch target. */
  .p-hot-leagues .p-league-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
  .p-hot-leagues .p-league-grid > a { min-width: 0; min-height: 82px; padding: 10px 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border-radius: 6px; }
  .p-hot-leagues .p-league-grid img { width: 36px; height: 36px; object-fit: contain; margin: 0; }
  .p-hot-leagues .p-league-grid span { font-size: 13px; line-height: 1.4; }
  .ng-designed .design-catalog { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .ng-designed .design-catalog > a { min-width: 0; padding: 14px 12px; margin: 0; min-height: 72px; }
  .ng-designed .design-catalog strong { font-size: 15px; }
  .ng-designed .design-catalog small { margin-top: 6px; }
  .v11-site .jf-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .v11-site .jf-team-card { padding: 14px 10px; }
  .v11-site .jf-team-img { width: 42px; height: 42px; margin-bottom: 8px; }
  .v11-site .jf-lg-desc { display: none; }
  .v13-site .qx-leaguegrid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .v13-site .qx-leaguecard { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 14px 10px; gap: 8px; }
  .v13-site .qx-lcard-ph { width: 42px; height: 42px; }
  .v13-site .qx-lcard-bd p, .v13-site .qx-lcard-go { display: none; }
  /* The imported v14 stylesheet declares a one-column !important rule. */
  .v14-site .ry-grid.ry-g5 { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 10px; }
  .v14-site .ry-tmcard { padding: 14px 10px; }
  .v14-site .ry-tmcard-ph { width: 44px; height: 44px; margin: 0 auto 8px; }
  .v14-site .ry-tmcard-ph img { width: 44px; height: 44px; }
  .v14-site .ry-tmcard-lg, .v14-site .ry-tmcard-go { display: none; }
  .v17-site .ref-home-topics ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .v17-site .ref-home-topics li { margin: 0; padding: 0; }
  .v17-site .ref-home-topics li a { display: flex; align-items: center; justify-content: center; min-height: 44px; margin: 0; font-size: 14px; }
  /* Featured matches scroll sideways instead of pushing the schedule several screens down. */
  .p-v8 .v8-hot-grid, .p-v10 .v10-focus-grid, .v15-site .pulse-hero-cards, .v16-site .arena-focus-grid,
  .ng-designed.page-home .match-cards {
    display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc(100% - 24px);
    gap: 12px; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding: 12px; padding-bottom: 10px; align-items: start;
  }
  .p-v8 .v8-hot-grid > *, .p-v10 .v10-focus-grid > *, .v15-site .pulse-hero-cards > *, .v16-site .arena-focus-grid > *,
  .ng-designed.page-home .match-cards > * { scroll-snap-align: start; min-width: 0; }
  .v11-site .jf-focus-list { min-height: 0; }
  .v11-site .jf-focus-item { position: relative; inset: auto; transition: none; }
  .v11-site .jf-focus-dots { position: static; padding: 10px 0; }
  .v21-site .tags_list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .v21-site .tags_list a { display: flex; align-items: center; justify-content: center; min-height: 44px; margin: 0; padding: 8px; background: #f7f4fa; border-radius: 4px; font-size: 14px; }
  .v18-site .league-chip-nav { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
  .v18-site .league-chip-nav a { min-height: 44px; display: flex; align-items: center; justify-content: center; margin: 0; font-size: 13px; }
  /* Long headlines need a readable column, not desktop three-up cards. */
  .p-v9 .v9-news-main .tr-news-list { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .p-v9 .v9-news-main .tr-news-card { display: grid; grid-template-columns: 88px minmax(0,1fr); align-items: center; padding: 10px; gap: 12px; }
  .p-v9 .v9-news-main .v9-cover { min-width: 0; }
  .p-v9 .v9-news-main .tr-thumb { width: 88px; height: 70px; }
  .p-v9 .v9-news-main .tr-news-copy { min-width: 0; padding: 0; }
  .p-v9 .v9-news-main .tr-news-copy h2 { font-size: 15px; line-height: 1.6; white-space: normal; -webkit-line-clamp: unset; }
  .ng-designed .news-layout { align-items: start; }
  .ng-designed .news-link.news-media { min-height: 0; }
  .ng-designed .news-copy { min-width: 0; }
  .ng-designed .news-copy p:empty { display: none; }
  /* All four lines are immediately visible and remain comfortably tappable. */
  body .xs-signal-panel { padding: 14px; margin-bottom: 16px; }
  body .xs-signal-panel .xs-signal-panel__head { gap: 8px; margin-bottom: 8px; }
  body .xs-signal-panel .xs-signal-panel__title { font-size: 17px; }
  body .xs-signal-panel .xs-signal-panel__links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  body .xs-signal-panel .xs-signal-panel__links a { min-width: 0; min-height: 44px; padding: 10px 8px; font-size: 14px; line-height: 1.5; text-align: center; justify-content: center; overflow-wrap: anywhere; }
  body .xs-signal-panel .xs-signal-panel__description { font-size: 12px; line-height: 1.6; margin: 6px 0 10px; }
  body .xs-signal-panel .xs-signal-panel__links + .xs-signal-panel__description { display: none; }
  body .xs-signal-panel .xs-signal-panel__empty { grid-column: 1 / -1; }
  body .xs-signal-panel .xs-signal-panel__foot { display: none; }
  /* Keep opponents side by side, including 320px phones and long team names. */
  .p-v10 .v10-match-hero .tr-scoreboard { display: grid; grid-template-columns: minmax(0,1fr) 108px minmax(0,1fr); min-height: 0; padding: 18px 4px; gap: 6px; }
  .p-v10 .v10-match-hero .p-score-team { min-width: 0; }
  .p-v10 .v10-match-hero .p-score-team img { width: 52px; height: 52px; }
  .p-v10 .v10-match-hero .p-score-team strong { font-size: 14px; overflow-wrap: anywhere; }
  .v17-site .ref-match-hero .detail-teams { display: grid; grid-template-columns: minmax(0,1fr) 108px minmax(0,1fr); gap: 6px; padding: 18px 10px; align-items: start; }
  .v17-site .detail-team, .v17-site .detail-vs { width: auto; min-width: 0; }
  .v17-site .detail-team .team-logo-lg { width: 52px; height: 52px; margin: 0 auto 8px; }
  .v17-site .detail-team .team-name-lg { display: block; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
  .v17-site .detail-vs .score { font-size: 30px; line-height: 1.2; }
  .v17-site .detail-vs .vs-time { font-size: 11px; white-space: normal; line-height: 1.5; }
  .v17-site .ref-match-hero .detail-title { font-size: 17px; padding: 14px 12px; line-height: 1.5; }
  .v17-site .detail-match-card.ref-match-hero { min-height: 0; }
  .v17-site .mobile-match-meta { position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 12px; padding: 0 12px; font-size: 12px; }
  .v17-site .detail-vs .vs-time, .v17-site .detail-vs .vs-league { display: none; }
  .v17-site .ref-match-hero .mobile-match-meta a { display: inline; color: inherit; }
  .v17-site .detail-vs { max-width: none; padding: 0; }
  .v11-site .jf-spot-body { display: grid; grid-template-columns: minmax(0,1fr) 90px minmax(0,1fr); gap: 8px; padding: 18px 0; }
  .v11-site .jf-spot-mid { order: 0; grid-column: auto; }
  .v11-site .jf-spot-team { min-width: 0; flex-direction: column; gap: 8px; }
  .v11-site .jf-spot-team b { font-size: 14px; }
  .v11-site .jf-spot-team>div>span, .v11-site .jf-spot-team br { display: none; }
  .v11-site .jf-spot-page { min-height: 0; }
  .v11-site .jf-spot-foot { padding-top: 8px; }
  .ng-designed .news-layout.stories-media { display: grid; grid-template-columns: minmax(0,1fr); }
  .ng-designed .news-layout.stories-media .news-link { float: none; width: auto; clear: both; display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 12px; padding-block: 12px; }
  .ng-designed .news-layout.stories-media .news-link img { width: 88px; height: 70px; object-fit: cover; }
  .v17-site .ref-page-shell { min-height: 0; }
  .v17-site .ref-main-nav { overflow-x: auto; margin-top: 4px; }
  .v17-site .ref-main-nav ul { flex-wrap: nowrap; width: max-content; min-width: 100%; }
  .v17-site .ref-main-nav li { flex: 0 0 auto; min-width: 0; }
  .v17-site .ref-main-nav .nav-link { padding: 0 14px; min-height: 42px; font-size: 13px; }
  .v17-site .ref-header-inner { padding-top: 10px; }
  .v14-site .v14-signal-duel { display: none; }
  .v14-site .ry-phead { padding-top: 24px; padding-bottom: 24px; }
  .v22-site .scoreboard { grid-template-columns: minmax(0,1fr) 104px minmax(0,1fr); gap: 6px; padding: 16px 8px; }
  .v22-site .sb-team { min-width: 0; overflow-wrap: anywhere; font-size: 14px; }
  .v22-site .sb-team img { width: 52px; height: 52px; }
  .v22-site .sb-mid { min-width: 0; font-size: 12px; }
  .ng-designed.page-match .duel { padding: 16px 12px; }
  .ng-designed.page-match .duel-grid, .ng-designed.page-match .duel-teams { padding: 18px 0; gap: 8px; }
  .ng-designed.page-match .duel-team { min-width: 0; }
  .ng-designed.page-match .duel-team img { width: 52px; height: 52px; margin-bottom: 8px; }
  .ng-designed.page-match .duel-team h2 { font-size: 14px; line-height: 1.5; }
  .ng-designed.page-match .duel-team small, .ng-designed.page-match .duel-foot { display: none; }
  .ng-designed.gazette .paper-mast { padding-top: 16px; padding-bottom: 16px; }
}
@media (max-width: 360px) {
  .p-hot-leagues .p-league-grid { gap: 5px; }
  .p-hot-leagues .p-league-grid > a { padding-inline: 2px; }
  .p-v10 .v10-match-hero .tr-scoreboard, .v17-site .ref-match-hero .detail-teams, .v22-site .scoreboard { grid-template-columns: minmax(0,1fr) 96px minmax(0,1fr); }
}
