/*
 * ZGZYK Web Design System V3
 *
 * The prior mobile public rules are intentionally retained below as a source
 * compatible baseline.  This file is now the only responsive surface loaded
 * by the theme.  New work belongs to the token/component/desktop/mobile
 * sections at the end of this file; mobile-public-v1.css is retained on disk
 * only for rollback and is no longer enqueued.
 */
:root {
  --zg-bg: #f3f7fb;
  --zg-surface: #ffffff;
  --zg-surface-muted: #eef4f8;
  --zg-border: #cdd9e5;
  --zg-text: #172033;
  --zg-text-secondary: #42526a;
  --zg-text-muted: #617086;
  --zg-primary: #0d6fb8;
  --zg-primary-hover: #075a99;
  --zg-primary-soft: #e8f3fb;
  --zg-success: #137a52;
  --zg-warning: #a35a00;
  --zg-danger: #be3144;
  --zg-font-xs: 12px;
  --zg-font-sm: 14px;
  --zg-font-base: 16px;
  --zg-font-lg: 18px;
  --zg-font-xl: 22px;
  --zg-font-2xl: 30px;
  --zg-space-1: 4px;
  --zg-space-2: 8px;
  --zg-space-3: 12px;
  --zg-space-4: 16px;
  --zg-space-5: 20px;
  --zg-space-6: 24px;
  --zg-space-7: 32px;
  --zg-space-8: 40px;
  --zg-radius-sm: 6px;
  --zg-radius-md: 10px;
  --zg-radius-lg: 14px;
  --zg-shadow-sm: 0 1px 3px rgba(23, 32, 51, .08);
  --zg-shadow-md: 0 8px 24px rgba(23, 32, 51, .10);
}

/*
 * Public mobile surface V1
 *
 * This layer follows the shipped Mini Program's neutral page canvas, white
 * cards, blue section accent and compact list rhythm.  It is limited to
 * handset widths, so the established desktop public front end remains the
 * desktop experience.
 */
.zgzyk-mobile-public-nav {
  display: none;
}

@media (max-width: 768px) {
  :root {
    --zgzyk-mp-bg: #f3f7fb;
    --zgzyk-mp-surface: #ffffff;
    --zgzyk-mp-ink: #172033;
    --zgzyk-mp-muted: #617086;
    --zgzyk-mp-line: #dfe7ef;
    --zgzyk-mp-blue: #0d6fb8;
    --zgzyk-mp-blue-soft: #eaf4fb;
    --zgzyk-mp-radius: 12px;
    --zgzyk-mp-gutter: 14px;
    --zgzyk-mp-gap: 14px;
    --zgzyk-mp-touch: 44px;
  }

  html,
  body.zgzyk-public-shell-body,
  body.zgzyk-visual-v2 {
    background: var(--zgzyk-mp-bg);
    color: var(--zgzyk-mp-ink);
  }

  body.zgzyk-public-shell-body {
    padding-bottom: calc(76px + env(safe-area-inset-bottom));
  }

  body.zgzyk-public-shell-body :where(main, section, article, div, header, footer, nav) {
    min-width: 0;
  }

  body.zgzyk-public-shell-body :where(h1, h2, h3, h4) {
    color: var(--zgzyk-mp-ink);
    overflow-wrap: anywhere;
  }

  body.zgzyk-public-shell-body :where(p, span, small, td, th, a) {
    overflow-wrap: anywhere;
  }

  .zgzyk-site-header,
  .zgzyk-site-header.zgzyk-site-header--direct {
    position: sticky;
    top: 0;
    z-index: 60;
    min-height: 56px;
    border: 0;
    border-bottom: 1px solid var(--zgzyk-mp-line);
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 1px 8px rgba(33, 66, 96, .06);
  }

  .zgzyk-site-header__inner,
  .zgzyk-site-header__inner.zgzyk-site-header__inner--direct {
    min-height: 56px;
    padding: 0 var(--zgzyk-mp-gutter);
  }

  .zgzyk-brand {
    gap: 8px;
  }

  .zgzyk-brand__logo {
    width: 30px;
    height: 30px;
  }

  .zgzyk-brand__name {
    color: var(--zgzyk-mp-ink);
    font-size: 15px;
    font-weight: 750;
  }

  .zgzyk-brand__copy small,
  .zgzyk-site-header__navigation,
  .zgzyk-site-header__account {
    display: none;
  }

  .zgzyk-public-shell-body > main,
  .zgzyk-public-shell-body .zgzyk-topic-page,
  .zgzyk-public-shell-body .zgzyk-wrap,
  .zgzyk-public-shell-body .real-public-wrap,
  .zgzyk-public-shell-body .zgzyk-sponsor-page,
  .zgzyk-public-shell-body .zgzyk-member-page,
  .zgzyk-public-shell-body .zgzyk-team-public-template {
    width: min(100%, 680px);
    box-sizing: border-box;
    margin: 0 auto;
    padding-right: var(--zgzyk-mp-gutter);
    padding-left: var(--zgzyk-mp-gutter);
  }

  .zgzyk-breadcrumb {
    display: none;
  }

  .zgzyk-product-footer {
    margin-top: 22px;
    padding: 20px var(--zgzyk-mp-gutter) 14px;
    border: 0;
    background: #eaf1f7;
  }

  .zgzyk-product-footer__inner {
    width: min(100%, 680px);
    margin: 0 auto;
  }

  .zgzyk-product-footer__brand h2 {
    font-size: 16px;
  }

  .zgzyk-product-footer__nav {
    gap: 10px 14px;
  }

  .zgzyk-mobile-public-nav {
    position: fixed;
    z-index: 100;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    min-height: calc(58px + env(safe-area-inset-bottom));
    grid-template-columns: repeat(5, minmax(0, 1fr));
    padding: 5px 6px env(safe-area-inset-bottom);
    border-top: 1px solid var(--zgzyk-mp-line);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 -4px 18px rgba(37, 64, 92, .08);
  }

  .zgzyk-mobile-public-nav__item {
    display: grid;
    min-width: 0;
    min-height: 52px;
    place-items: center;
    align-content: center;
    gap: 1px;
    color: var(--zgzyk-mp-muted);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.15;
    text-decoration: none;
  }

  .zgzyk-mobile-public-nav__icon {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 8px;
    color: currentColor;
    font-size: 13px;
    font-weight: 800;
  }

  .zgzyk-mobile-public-nav__item[aria-current="page"] {
    color: var(--zgzyk-mp-blue);
  }

  .zgzyk-mobile-public-nav__item[aria-current="page"] .zgzyk-mobile-public-nav__icon {
    background: var(--zgzyk-mp-blue-soft);
  }

  /* Shared public directory rhythm. */
  .zgzyk-directory-page-head,
  .zgzyk-competition-directory__header,
  .zgzyk-sports-directory-header,
  .zgzyk-sponsorship-directory__header,
  .zgzyk-home-data-head,
  .real-public-hero,
  .zgzyk-member-header,
  .zgzyk-sponsor-header {
    margin: 16px 0 var(--zgzyk-mp-gap);
    padding: 0 0 0 12px;
    border: 0;
    border-left: 4px solid var(--zgzyk-mp-blue);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .zgzyk-directory-page-head :where(h1, h2),
  .zgzyk-competition-directory__header :where(h1, h2),
  .zgzyk-sports-directory-header :where(h1, h2),
  .zgzyk-sponsorship-directory__header :where(h1, h2),
  .zgzyk-home-data-head :where(h1, h2),
  .real-public-title,
  .zgzyk-member-header h1,
  .zgzyk-sponsor-header h1 {
    margin: 0;
    color: var(--zgzyk-mp-ink);
    font-size: clamp(23px, 7vw, 29px);
    line-height: 1.25;
  }

  .zgzyk-directory-page-head :where(p, small),
  .zgzyk-competition-directory__summary,
  .zgzyk-sports-directory-header :where(p, small),
  .zgzyk-sponsorship-directory__header :where(p, small),
  .real-public-meta,
  .zgzyk-member-header :where(p, small, span),
  .zgzyk-sponsor-header :where(p, small, span) {
    color: var(--zgzyk-mp-muted);
    font-size: 13px;
    line-height: 1.6;
  }

  .zgzyk-competition-directory__filters,
  .zgzyk-team-index-filters,
  .zgzyk-player-directory-v2__filters,
  .zgzyk-sponsorship-filters,
  .zgzyk-sports-directory-filters {
    display: flex;
    max-width: 100%;
    gap: 8px;
    margin: 0 0 var(--zgzyk-mp-gap);
    padding: 0 0 2px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    white-space: nowrap;
  }

  .zgzyk-competition-directory__filters::-webkit-scrollbar,
  .zgzyk-team-index-filters::-webkit-scrollbar,
  .zgzyk-player-directory-v2__filters::-webkit-scrollbar,
  .zgzyk-sponsorship-filters::-webkit-scrollbar,
  .zgzyk-sports-directory-filters::-webkit-scrollbar {
    display: none;
  }

  .zgzyk-competition-directory__filters :where(a, button, label),
  .zgzyk-team-index-filters :where(a, button, label),
  .zgzyk-player-directory-v2__filters :where(a, button, label),
  .zgzyk-sponsorship-filters :where(a, button, label),
  .zgzyk-sports-directory-filters :where(a, button, label) {
    display: inline-flex;
    min-height: 36px;
    flex: 0 0 auto;
    align-items: center;
    padding: 0 12px;
    border: 1px solid var(--zgzyk-mp-line);
    border-radius: 18px;
    background: var(--zgzyk-mp-surface);
    color: var(--zgzyk-mp-muted);
    font-size: 13px;
    text-decoration: none;
  }

  .zgzyk-competition-directory__filters [aria-current="page"],
  .zgzyk-team-index-filters [aria-current="page"],
  .zgzyk-player-directory-v2__filters [aria-current="page"],
  .zgzyk-sponsorship-filters [aria-current="page"],
  .zgzyk-sports-directory-filters [aria-current="page"] {
    border-color: #b8d8ed;
    background: var(--zgzyk-mp-blue-soft);
    color: var(--zgzyk-mp-blue);
  }

  .zgzyk-competition-directory__table-wrap,
  .zgzyk-team-directory-table-wrap,
  .zgzyk-player-directory-v2__table,
  .zgzyk-match-centre-table-wrap,
  .zgzyk-sports-directory-table-wrap {
    overflow: visible;
    border: 1px solid var(--zgzyk-mp-line);
    border-radius: var(--zgzyk-mp-radius);
    background: var(--zgzyk-mp-surface);
  }

  .zgzyk-competition-directory__table-wrap table,
  .zgzyk-team-directory-table-wrap table,
  .zgzyk-player-directory-v2__table table,
  .zgzyk-match-centre-table-wrap table,
  .zgzyk-sports-directory-table-wrap table {
    width: 100%;
    min-width: 0;
  }

  .zgzyk-competition-directory__table-wrap thead,
  .zgzyk-team-directory-table-wrap thead,
  .zgzyk-player-directory-v2__table thead,
  .zgzyk-match-centre-table-wrap thead,
  .zgzyk-sports-directory-table-wrap thead {
    display: none;
  }

  .zgzyk-competition-directory__table-wrap :where(tbody, tr),
  .zgzyk-team-directory-table-wrap :where(tbody, tr),
  .zgzyk-player-directory-v2__table :where(tbody, tr),
  .zgzyk-match-centre-table-wrap :where(tbody, tr),
  .zgzyk-sports-directory-table-wrap :where(tbody, tr) {
    display: block;
    width: 100%;
  }

  .zgzyk-competition-directory__table-wrap tr,
  .zgzyk-team-directory-table-wrap tr,
  .zgzyk-player-directory-v2__table tr,
  .zgzyk-match-centre-table-wrap tr,
  .zgzyk-sports-directory-table-wrap tr {
    padding: 13px 14px;
    border-bottom: 1px solid var(--zgzyk-mp-line);
  }

  .zgzyk-competition-directory__table-wrap tr:last-child,
  .zgzyk-team-directory-table-wrap tr:last-child,
  .zgzyk-player-directory-v2__table tr:last-child,
  .zgzyk-match-centre-table-wrap tr:last-child,
  .zgzyk-sports-directory-table-wrap tr:last-child {
    border-bottom: 0;
  }

  .zgzyk-competition-directory__table-wrap :where(td, th),
  .zgzyk-team-directory-table-wrap :where(td, th),
  .zgzyk-player-directory-v2__table :where(td, th),
  .zgzyk-match-centre-table-wrap :where(td, th),
  .zgzyk-sports-directory-table-wrap :where(td, th) {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--zgzyk-mp-muted);
    font-size: 13px;
    line-height: 1.55;
  }

  .zgzyk-competition-directory__name,
  .zgzyk-team-directory-table__name,
  .zgzyk-player-directory-v2__person,
  .zgzyk-sports-directory-table__sport,
  .zgzyk-match-centre-table__mobile-teams {
    margin-bottom: 4px;
    color: var(--zgzyk-mp-ink);
    font-size: 16px;
    font-weight: 750;
    line-height: 1.45;
  }

  .zgzyk-competition-directory__action,
  .zgzyk-directory-row-action,
  .zgzyk-player-directory-v2__action,
  .zgzyk-match-centre-table__action,
  .zgzyk-blue-data-action {
    margin-top: 8px;
  }

  .zgzyk-competition-directory__action a,
  .zgzyk-directory-row-action a,
  .zgzyk-player-directory-v2__action a,
  .zgzyk-match-centre-table__action a,
  .zgzyk-blue-data-action a {
    color: var(--zgzyk-mp-blue);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
  }

  .zgzyk-competition-directory__status,
  .zgzyk-sponsorship-status,
  .real-public-badge,
  .real-public-chip {
    display: inline-flex;
    width: fit-content;
    min-height: 24px;
    align-items: center;
    padding: 0 8px;
    border: 0;
    border-radius: 12px;
    background: var(--zgzyk-mp-blue-soft);
    color: var(--zgzyk-mp-blue);
    font-size: 12px;
    font-weight: 700;
  }

  .zgzyk-competition-directory__empty,
  .zgzyk-sponsorship-empty,
  .zgzyk-directory-empty,
  .zgzyk-sports-directory-empty {
    padding: 34px 20px;
    border: 1px dashed #b9cad8;
    border-radius: var(--zgzyk-mp-radius);
    background: var(--zgzyk-mp-surface);
    color: var(--zgzyk-mp-muted);
    text-align: center;
  }

  /* Homepage: keep real data compact rather than a desktop marketing banner. */
  .zgzyk-home-data-report,
  .zgzyk-home-data-panel,
  .zgzyk-home-sport-strip,
  .zgzyk-home-guide-strip {
    margin: 0 0 var(--zgzyk-mp-gap);
    border: 1px solid var(--zgzyk-mp-line);
    border-radius: var(--zgzyk-mp-radius);
    background: var(--zgzyk-mp-surface);
    box-shadow: none;
  }

  .zgzyk-home-data-panel__head,
  .zgzyk-home-sport-strip__head {
    min-height: 48px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--zgzyk-mp-line);
    background: var(--zgzyk-mp-surface);
  }

  .zgzyk-home-data-panel__head :where(h2, h3),
  .zgzyk-home-sport-strip__head :where(h2, h3) {
    font-size: 17px;
  }

  .zgzyk-home-data-table,
  .zgzyk-home-data-table tbody,
  .zgzyk-home-data-table tr {
    display: block;
    width: 100%;
  }

  .zgzyk-home-data-table thead {
    display: none;
  }

  .zgzyk-home-data-table tr {
    padding: 12px 14px;
    border-bottom: 1px solid var(--zgzyk-mp-line);
  }

  .zgzyk-home-data-table td {
    display: block;
    padding: 0;
    border: 0;
  }

  .zgzyk-home-data-row__matchup,
  .zgzyk-home-data-row__team {
    color: var(--zgzyk-mp-ink);
    font-size: 15px;
    font-weight: 700;
  }

  .zgzyk-home-data-row__score {
    color: var(--zgzyk-mp-blue);
    font-size: 16px;
    font-weight: 800;
  }

  .zgzyk-home-data-row__time,
  .zgzyk-home-data-row__actions,
  .zgzyk-home-data-row__link {
    color: var(--zgzyk-mp-muted);
    font-size: 13px;
  }

  /* Real competition details: cards and groups instead of compressed tables. */
  .real-public-wrap {
    padding-top: 1px;
  }

  .real-public-hero,
  .real-public-card,
  .real-public-grid,
  .real-public-grid--2 {
    margin-bottom: var(--zgzyk-mp-gap);
  }

  .real-public-hero,
  .real-public-card {
    padding: 15px;
    border: 1px solid var(--zgzyk-mp-line);
    border-radius: var(--zgzyk-mp-radius);
    background: var(--zgzyk-mp-surface);
    box-shadow: none;
  }

  body.zgzyk-public-shell-body .real-public-card {
    /* These four declarations only neutralize the legacy public-shell
     * !important desktop card rule; no general !important layer is added. */
    padding: 0 !important;
    border: 1px solid var(--zgzyk-mp-line) !important;
    border-radius: var(--zgzyk-mp-radius) !important;
    background: var(--zgzyk-mp-surface) !important;
  }

  body.zgzyk-public-shell-body .real-public-card > h2.real-public-section-title {
    display: flex;
    min-height: 48px;
    align-items: center;
    margin: 0 !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--zgzyk-mp-line) !important;
    border-left: 4px solid var(--zgzyk-mp-blue) !important;
    background: var(--zgzyk-mp-surface) !important;
    color: var(--zgzyk-mp-ink) !important;
    font-size: 17px;
    line-height: 1.35;
  }

  .real-public-hero {
    border-left: 4px solid var(--zgzyk-mp-blue);
  }

  .real-public-grid,
  .real-public-grid--2 {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--zgzyk-mp-gap);
  }

  .real-public-card-title,
  .real-public-section-title {
    margin: 0 0 10px;
    color: var(--zgzyk-mp-ink);
    font-size: 17px;
    font-weight: 750;
  }

  /* Core's real-public renderer deliberately shares the established blue
   * desktop module.  At phone widths, retain its data table but make the
   * module a Mini Program-style white card and its heading a plain section
   * heading rather than a full-width dark banner. */
  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module {
    padding: 0;
    border: 1px solid var(--zgzyk-mp-line);
    border-radius: var(--zgzyk-mp-radius);
    background: var(--zgzyk-mp-surface);
  }

  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module > h2.real-public-section-title {
    display: flex;
    min-height: 48px;
    align-items: center;
    margin: 0;
    padding: 0 14px;
    border: 0;
    border-bottom: 1px solid var(--zgzyk-mp-line);
    border-left: 4px solid var(--zgzyk-mp-blue);
    background: var(--zgzyk-mp-surface);
    color: var(--zgzyk-mp-ink);
    font-size: 17px;
    line-height: 1.35;
  }

  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module .zgzyk-blue-data-table-wrap {
    overflow: visible;
    margin: 0;
    border: 0;
    border-radius: 0 0 var(--zgzyk-mp-radius) var(--zgzyk-mp-radius);
  }

  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module .zgzyk-blue-data-table,
  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module .zgzyk-blue-data-table tbody,
  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module .zgzyk-blue-data-table tr {
    display: block;
    width: 100%;
  }

  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module .zgzyk-blue-data-table thead {
    display: none;
  }

  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module .zgzyk-blue-data-table tr {
    padding: 11px 14px;
    border-bottom: 1px solid var(--zgzyk-mp-line);
    background: transparent;
  }

  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module .zgzyk-blue-data-table tr:last-child {
    border-bottom: 0;
  }

  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module .zgzyk-blue-data-table :where(td, th) {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--zgzyk-mp-muted);
    font-size: 13px;
    line-height: 1.55;
  }

  body.zgzyk-public-shell-body .real-public-card.zgzyk-unified-blue-module .zgzyk-blue-data-table .zgzyk-blue-data-name-cell {
    color: var(--zgzyk-mp-ink);
    font-size: 15px;
    font-weight: 750;
  }

  .real-public-mini-card {
    padding: 11px 0;
    border: 0;
    border-bottom: 1px solid var(--zgzyk-mp-line);
    border-radius: 0;
    background: transparent;
  }

  body.zgzyk-public-shell-body .real-public-card > .real-public-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 0 14px;
  }

  body.zgzyk-public-shell-body .real-public-card > .real-public-grid > .real-public-mini-card {
    padding: 13px 0;
    border: 0;
    border-bottom: 1px solid var(--zgzyk-mp-line);
    border-radius: 0;
    background: transparent;
  }

  body.zgzyk-public-shell-body .real-public-card > .real-public-grid > .real-public-mini-card:last-child {
    border-bottom: 0;
  }

  .real-public-group-list {
    display: grid;
    gap: 12px;
    padding: 12px 14px 14px;
  }

  .real-public-group {
    overflow: hidden;
    border: 1px solid var(--zgzyk-mp-line);
    border-radius: 10px;
    background: #f8fbfe;
  }

  .real-public-group__title {
    margin: 0;
    padding: 9px 11px;
    border-left: 3px solid var(--zgzyk-mp-blue);
    border-bottom: 1px solid var(--zgzyk-mp-line);
    background: var(--zgzyk-mp-blue-soft);
    color: var(--zgzyk-mp-ink);
    font-size: 15px;
    font-weight: 750;
  }

  .real-public-group__members {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 10px;
    padding: 0 11px;
    background: var(--zgzyk-mp-surface);
  }

  .real-public-group__members .real-public-mini-card {
    min-width: 0;
  }

  .real-public-mini-card:last-child {
    border-bottom: 0;
  }

  .real-public-team-header,
  .real-public-match-line {
    color: var(--zgzyk-mp-ink);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
  }

  .real-public-score {
    color: var(--zgzyk-mp-blue);
    font-size: 17px;
    font-weight: 800;
  }

  .real-public-subtle {
    margin-top: 4px;
    color: var(--zgzyk-mp-muted);
    font-size: 13px;
    line-height: 1.55;
  }

  .real-public-link {
    display: inline-flex;
    min-height: var(--zgzyk-mp-touch);
    align-items: center;
    color: var(--zgzyk-mp-blue);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
  }

  /* Match list and detail retain the existing data, with a readable row flow. */
  .zgzyk-match-centre-portal,
  .zgzyk-match-centre-collection-panel,
  .zgzyk-match-centre-entry,
  body.single-match .zgzyk-match-section,
  body.single-match .zgzyk-match-content-column {
    border-color: var(--zgzyk-mp-line);
    border-radius: var(--zgzyk-mp-radius);
    background: var(--zgzyk-mp-surface);
    box-shadow: none;
  }

  .zgzyk-match-centre-entry-list,
  .zgzyk-match-centre-table,
  .zgzyk-match-centre-table tbody {
    display: block;
    width: 100%;
  }

  .zgzyk-match-centre-table__row {
    display: block;
    padding: 13px 14px;
    border-bottom: 1px solid var(--zgzyk-mp-line);
  }

  .zgzyk-match-centre-table__row:last-child {
    border-bottom: 0;
  }

  .zgzyk-match-centre-table__row :where(td, th) {
    display: block;
    padding: 0;
    border: 0;
  }

  .zgzyk-match-centre-table__mobile-meta,
  .zgzyk-match-centre-table__time,
  .zgzyk-match-centre-table__venue,
  .zgzyk-match-centre-table__competition {
    margin-top: 4px;
    color: var(--zgzyk-mp-muted);
    font-size: 13px;
  }

  .zgzyk-match-centre-table__score {
    color: var(--zgzyk-mp-blue);
    font-size: 18px;
    font-weight: 800;
  }

  .zgzyk-match-centre-table__score:empty::after {
    content: '赛果尚未记录';
    color: var(--zgzyk-mp-muted);
    font-size: 13px;
    font-weight: 500;
  }

  body.single-match .zgzyk-match-centre,
  body.single-match .zgzyk-match-continuous-layout,
  body.single-match .zgzyk-match-content-column {
    gap: var(--zgzyk-mp-gap);
  }

  body.single-match .zgzyk-match-section__head,
  body.single-match .zgzyk-gallery-section__head,
  body.single-match .zgzyk-staff-panel__title {
    min-height: 46px;
    padding: 10px 13px;
    border-bottom: 1px solid var(--zgzyk-mp-line);
    background: var(--zgzyk-mp-surface);
  }

  /* Team and athlete directories/details. */
  .zgzyk-team-directory-v2__layout,
  .zgzyk-player-directory-v2__layout,
  .zgzyk-sports-directory-layout,
  .zgzyk-sponsorship-columns,
  .zgzyk-member-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--zgzyk-mp-gap);
  }

  .zgzyk-team-directory-v2__sidebar,
  .zgzyk-player-directory-v2__sidebar,
  .zgzyk-sports-directory-sidebar,
  .zgzyk-member-sidebar {
    display: none;
  }

  .zgzyk-team-directory-table__logo,
  .zgzyk-player-directory-v2__avatar {
    float: left;
    width: 44px;
    height: 44px;
    margin: 0 10px 4px 0;
  }

  .zgzyk-team-directory-table__logo-img,
  .zgzyk-player-directory-v2__avatar img,
  .zgzyk-player-directory-v2__avatar-img {
    width: 100%;
    height: 100%;
    border-radius: 10px;
    object-fit: cover;
  }

  .zgzyk-team-directory-table__sport,
  .zgzyk-player-directory-v2__affiliation,
  .zgzyk-player-directory-v2__summary {
    color: var(--zgzyk-mp-muted);
    font-size: 13px;
  }

  .zgzyk-team-public-template,
  .zgzyk-member-page,
  .zgzyk-sponsor-page {
    margin-top: 16px;
  }

  .zgzyk-team-public-team__header,
  .zgzyk-member-header,
  .zgzyk-sponsor-header {
    grid-template-columns: 58px minmax(0, 1fr);
    padding: 14px;
    border: 1px solid var(--zgzyk-mp-line);
    border-left: 4px solid var(--zgzyk-mp-blue);
    border-radius: var(--zgzyk-mp-radius);
    background: var(--zgzyk-mp-surface);
  }

  .zgzyk-team-public-team__header :where(img, .zgzyk-team-public-team__logo),
  .zgzyk-member-header .zgzyk-member-avatar,
  .zgzyk-sponsor-header__logo {
    width: 56px;
    height: 56px;
  }

  .zgzyk-team-public-card,
  .zgzyk-member-section,
  .zgzyk-sponsor-section,
  .zgzyk-member-sidebar > section {
    margin-bottom: var(--zgzyk-mp-gap);
    border-color: var(--zgzyk-mp-line);
    border-radius: var(--zgzyk-mp-radius);
    background: var(--zgzyk-mp-surface);
    box-shadow: none;
  }

  .zgzyk-team-public-card :where(header, h2),
  .zgzyk-member-section > header,
  .zgzyk-sponsor-section > header {
    background: var(--zgzyk-mp-surface);
    color: var(--zgzyk-mp-ink);
  }

  .zgzyk-member-section > header h2,
  .zgzyk-sponsor-section > header h2 {
    color: var(--zgzyk-mp-ink);
  }

  /* Sports and cooperation pages use compact real-record cards. */
  .zgzyk-sports-directory-panel,
  .zgzyk-sponsorship-panel {
    margin-bottom: var(--zgzyk-mp-gap);
    border: 1px solid var(--zgzyk-mp-line);
    border-radius: var(--zgzyk-mp-radius);
    background: var(--zgzyk-mp-surface);
    box-shadow: none;
  }

  .zgzyk-sports-directory-panel__head,
  .zgzyk-sponsorship-panel > header {
    min-height: 48px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--zgzyk-mp-line);
    background: var(--zgzyk-mp-surface);
  }

  .zgzyk-sports-directory-panel__head :where(h2, h3),
  .zgzyk-sponsorship-panel > header :where(h2, h3) {
    color: var(--zgzyk-mp-ink);
    font-size: 17px;
  }

  .zgzyk-sponsorship-panel__body,
  .zgzyk-sponsorship-row {
    padding: 0;
  }

  .zgzyk-sponsorship-row {
    display: block;
    padding: 13px 14px;
    border-bottom: 1px solid var(--zgzyk-mp-line);
  }

  .zgzyk-sponsorship-row:last-child {
    border-bottom: 0;
  }

  .zgzyk-sponsorship-row__name {
    color: var(--zgzyk-mp-ink);
    font-size: 16px;
    font-weight: 750;
  }

  .zgzyk-sponsorship-row__actions {
    margin-top: 8px;
  }

  .zgzyk-sponsorship-row__actions :where(a, button),
  .zgzyk-sponsorship-panel a.is-primary {
    display: inline-flex;
    min-height: var(--zgzyk-mp-touch);
    align-items: center;
    color: var(--zgzyk-mp-blue);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
  }

  /* The existing workspace remains the destination; only its entry surface is softened. */
  body.zgzyk-workspace-shell-body .zgzyk-wrap {
    padding-top: 14px;
  }

  body.zgzyk-workspace-shell-body .zgzyk-head,
  body.zgzyk-workspace-shell-body .zgzyk-workspace-userbar,
  body.zgzyk-workspace-shell-body .zgzyk-workspace-primary-nav {
    margin-bottom: var(--zgzyk-mp-gap);
    border: 1px solid var(--zgzyk-mp-line);
    border-radius: var(--zgzyk-mp-radius);
    background: var(--zgzyk-mp-surface);
    color: var(--zgzyk-mp-ink);
  }

  body.zgzyk-workspace-shell-body .zgzyk-head {
    padding: 14px;
    border-left: 4px solid var(--zgzyk-mp-blue);
  }

  body.zgzyk-workspace-shell-body .zgzyk-head h1 {
    color: var(--zgzyk-mp-ink);
    font-size: 24px;
  }

  body.zgzyk-workspace-shell-body .zgzyk-workspace-primary-nav {
    display: flex;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
  }

  body.zgzyk-workspace-shell-body .zgzyk-workspace-primary-nav::-webkit-scrollbar {
    display: none;
  }

  body.zgzyk-workspace-shell-body .zgzyk-workspace-primary-nav .zgzyk-button {
    min-width: 112px;
    flex: 0 0 auto;
    border: 0;
    border-right: 1px solid var(--zgzyk-mp-line);
    background: var(--zgzyk-mp-surface);
    color: var(--zgzyk-mp-muted);
  }

  body.zgzyk-workspace-shell-body .zgzyk-workspace-primary-nav .zgzyk-button.is-primary,
  body.zgzyk-workspace-shell-body .zgzyk-workspace-primary-nav .zgzyk-button[aria-current="page"] {
    color: var(--zgzyk-mp-blue);
  }

  .zgzyk-button,
  button,
  input[type="submit"] {
    min-height: var(--zgzyk-mp-touch);
  }
}

/* Legacy workspace rules include an ID-qualified `!important` blue task hub.
 * Keep this equally scoped override in the single V3 layer rather than adding
 * another one-off mobile stylesheet. */
html body.zgzyk-public-shell-body.zgzyk-workspace-shell-body #workspace-module .zgzyk-v2-task-hub.zgzyk-workspace-nav-panel {
  background-color: var(--zg-surface) !important;
  background-image: none !important;
  color: var(--zg-text) !important;
  overflow-x: hidden !important;
}
html body.zgzyk-public-shell-body.zgzyk-workspace-shell-body #workspace-module .zgzyk-v2-task-hub.zgzyk-workspace-nav-panel .zgzyk-v2-section-head {
  padding: var(--zg-space-4) var(--zg-space-4) var(--zg-space-2) !important;
  border-bottom: 1px solid var(--zg-border) !important;
  background: var(--zg-surface-muted) !important;
}
html body.zgzyk-public-shell-body.zgzyk-workspace-shell-body #workspace-module .zgzyk-v2-task-hub.zgzyk-workspace-nav-panel .zgzyk-v2-section-head h2 {
  margin: 0 0 var(--zg-space-1) !important;
  color: var(--zg-text) !important;
}
html body.zgzyk-public-shell-body.zgzyk-workspace-shell-body #workspace-module .zgzyk-v2-task-hub.zgzyk-workspace-nav-panel .zgzyk-v2-section-head p {
  margin: 0 !important;
  color: var(--zg-text-secondary) !important;
}
html body.zgzyk-public-shell-body.zgzyk-workspace-shell-body .zgzyk-workspace-userbar {
  background: var(--zg-surface) !important;
  color: var(--zg-text) !important;
}
html body.zgzyk-public-shell-body.zgzyk-workspace-shell-body .zgzyk-workspace-userbar :where(span, small, a) {
  color: var(--zg-text-secondary) !important;
  opacity: 1 !important;
}
html body.zgzyk-public-shell-body.zgzyk-workspace-shell-body .zgzyk-workspace-userbar strong {
  color: var(--zg-text) !important;
}

@media (max-width: 390px) {
  :root {
    --zgzyk-mp-gutter: 12px;
    --zgzyk-mp-gap: 12px;
  }

  .zgzyk-mobile-public-nav__item {
    font-size: 10px;
  }

  .zgzyk-directory-page-head :where(h1, h2),
  .zgzyk-competition-directory__header :where(h1, h2),
  .zgzyk-sports-directory-header :where(h1, h2),
  .zgzyk-sponsorship-directory__header :where(h1, h2),
  .real-public-title {
    font-size: 23px;
  }
}

/* --------------------------------------------------------------------------
 * V3 components: shared vocabulary for public pages and signed-in workspaces
 * -------------------------------------------------------------------------- */
body.zgzyk-public-shell-body,
body.zgzyk-workspace-shell-body,
body.zgzyk-visual-v2 {
  background: var(--zg-bg);
  color: var(--zg-text);
  line-height: 1.55;
}

.zg-page { width: min(100% - 32px, 1200px); margin: 0 auto; }
.zg-page-header { margin: 0 0 var(--zg-space-6); padding: var(--zg-space-6); border: 1px solid var(--zg-border); border-radius: var(--zg-radius-lg); background: var(--zg-surface); box-shadow: var(--zg-shadow-sm); }
.zg-section { margin: 0 0 var(--zg-space-6); }
.zg-section-title { display: flex; align-items: center; justify-content: space-between; gap: var(--zg-space-3); margin: 0 0 var(--zg-space-3); color: var(--zg-text); font-size: var(--zg-font-xl); line-height: 1.3; }
.zg-card { border: 1px solid var(--zg-border); border-radius: var(--zg-radius-md); background: var(--zg-surface); box-shadow: var(--zg-shadow-sm); }
.zg-list { display: grid; gap: var(--zg-space-2); margin: 0; padding: 0; list-style: none; }
.zg-list-item { padding: var(--zg-space-4); border: 1px solid var(--zg-border); border-radius: var(--zg-radius-md); background: var(--zg-surface); }
.zg-meta { color: var(--zg-text-secondary); font-size: var(--zg-font-sm); }
.zg-status,
.zg-chip { display: inline-flex; min-height: 24px; align-items: center; padding: 2px 8px; border-radius: 999px; background: var(--zg-primary-soft); color: var(--zg-primary); font-size: var(--zg-font-xs); font-weight: 700; line-height: 1.3; }
.zg-filter { display: flex; flex-wrap: wrap; gap: var(--zg-space-2); padding: var(--zg-space-3); border: 1px solid var(--zg-border); border-radius: var(--zg-radius-md); background: var(--zg-surface); }
.zg-form { display: grid; gap: var(--zg-space-4); }
.zg-field { display: grid; gap: var(--zg-space-2); color: var(--zg-text-secondary); font-size: var(--zg-font-sm); font-weight: 700; }
.zg-input,
.zg-select,
.zg-form input,
.zg-form select,
.zg-form textarea { width: 100%; min-height: 42px; box-sizing: border-box; padding: 9px 11px; border: 1px solid var(--zg-border); border-radius: var(--zg-radius-sm); background: var(--zg-surface); color: var(--zg-text); font: inherit; }
.zg-input:focus,
.zg-select:focus,
.zg-form input:focus,
.zg-form select:focus,
.zg-form textarea:focus { border-color: var(--zg-primary); outline: 3px solid rgba(13, 111, 184, .16); outline-offset: 1px; }
.zg-button,
.zg-button--primary,
.zg-button--secondary,
.zg-button--danger { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; gap: 6px; box-sizing: border-box; padding: 8px 14px; border: 1px solid transparent; border-radius: var(--zg-radius-sm); font: inherit; font-size: var(--zg-font-sm); font-weight: 700; line-height: 1.25; text-decoration: none; cursor: pointer; }
.zg-button--primary { background: var(--zg-primary); color: #fff; }
.zg-button--primary:hover { background: var(--zg-primary-hover); color: #fff; }
.zg-button--secondary { border-color: var(--zg-border); background: var(--zg-surface); color: var(--zg-primary); }
.zg-button--danger { background: var(--zg-danger); color: #fff; }
.zg-empty { padding: var(--zg-space-6); border: 1px dashed var(--zg-border); border-radius: var(--zg-radius-md); background: var(--zg-surface-muted); color: var(--zg-text-secondary); text-align: center; }
.zg-table { width: 100%; border-collapse: collapse; background: var(--zg-surface); color: var(--zg-text); }
.zg-table th,
.zg-table td { padding: 10px 12px; border-bottom: 1px solid var(--zg-border); text-align: left; vertical-align: top; }
.zg-table th { background: var(--zg-surface-muted); color: var(--zg-text-secondary); font-size: var(--zg-font-sm); }
.zg-mobile-list { display: grid; gap: var(--zg-space-2); }
.zg-action-bar { display: flex; flex-wrap: wrap; gap: var(--zg-space-2); padding: var(--zg-space-3); border-top: 1px solid var(--zg-border); background: var(--zg-surface); }
.zg-bottom-nav { position: fixed; right: 0; bottom: 0; left: 0; z-index: 100; }
.zg-footer { background: #1e3044; color: #dce7f0; }

/* --------------------------------------------------------------------------
 * V3 colour and hierarchy corrections.  These selectors are deliberately
 * scoped to platform renderers so native WordPress pages remain untouched.
 * -------------------------------------------------------------------------- */
.zgzyk-public-shell-body :where(p, li, small, .description),
.zgzyk-workspace-shell-body :where(p, li, small, .description) { color: var(--zg-text-secondary); }
.zgzyk-public-shell-body :where(h1, h2, h3, h4),
.zgzyk-workspace-shell-body :where(h1, h2, h3, h4) { color: var(--zg-text); }
.zgzyk-public-shell-body a,
.zgzyk-workspace-shell-body a { color: var(--zg-primary); }
.zgzyk-public-shell-body a:hover,
.zgzyk-workspace-shell-body a:hover { color: var(--zg-primary-hover); }
.zgzyk-public-shell-body :where(input, select, textarea),
.zgzyk-workspace-shell-body :where(input, select, textarea) { color: var(--zg-text); border-color: var(--zg-border); background: var(--zg-surface); }

.zgzyk-product-footer {
  margin-top: var(--zg-space-7);
  border: 0;
  background: #1e3044;
  color: #dce7f0;
}
.zgzyk-product-footer__inner { width: min(100% - 32px, 1200px); padding: var(--zg-space-7) 0; }
.zgzyk-product-footer :where(h2, p, a) { color: #dce7f0; }
.zgzyk-product-footer p { opacity: 1; }
.zgzyk-product-footer__nav { gap: 10px 18px; }
.zgzyk-product-footer__nav a:hover { color: #fff; text-decoration: underline; }

/* Cooperation: neutral grouping, compact action cards and readable helpers. */
.zgzyk-sponsorship-directory__header,
.zgzyk-sponsor-page__header,
.zgzyk-sponsorship-process {
  border: 1px solid var(--zg-border) !important;
  border-radius: var(--zg-radius-lg) !important;
  background: var(--zg-surface) !important;
  box-shadow: var(--zg-shadow-sm) !important;
}
.zgzyk-sponsorship-directory__header,
.zgzyk-sponsor-page__header { padding: var(--zg-space-6) !important; }
.zgzyk-sponsorship-directory__header :where(p, small, .description),
.zgzyk-sponsor-page__header :where(p, small, .description),
.zgzyk-sponsorship-process :where(p, li, small) { color: var(--zg-text-secondary) !important; opacity: 1 !important; }
.zgzyk-sponsorship-directory__header :where(h1, h2),
.zgzyk-sponsor-page__header :where(h1, h2),
.zgzyk-sponsorship-process :where(h2, h3) { color: var(--zg-text) !important; }
.zgzyk-sponsorship-directory__header > span { color: var(--zg-text-secondary) !important; font-weight: 700 !important; opacity: 1 !important; }
.zgzyk-sponsorship-filters {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(180px, .44fr) auto !important;
  gap: var(--zg-space-3) !important;
  align-items: end !important;
  margin: var(--zg-space-4) 0 !important;
  padding: var(--zg-space-4) !important;
  border: 1px solid var(--zg-border) !important;
  border-radius: var(--zg-radius-md) !important;
  background: var(--zg-surface) !important;
  box-shadow: var(--zg-shadow-sm) !important;
}
.zgzyk-sponsorship-filters :where(label, .label) { color: var(--zg-text-secondary) !important; font-size: var(--zg-font-sm) !important; font-weight: 700 !important; }
.zgzyk-sponsorship-filters > label { display: grid !important; gap: var(--zg-space-1) !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
.zgzyk-sponsorship-filters :where(input, select) { min-height: 42px !important; border-color: var(--zg-border) !important; border-radius: var(--zg-radius-sm) !important; background: var(--zg-surface) !important; color: var(--zg-text) !important; }
.zgzyk-sponsorship-filters :where(button, .button, .zgzyk-button, input[type="submit"]) { min-height: 42px !important; padding: 9px 16px !important; border-radius: var(--zg-radius-sm) !important; background: var(--zg-primary) !important; color: #fff !important; font-weight: 700 !important; }
html[data-zgzyk-theme] .zgzyk-team-index-page .zgzyk-team-index-panel { padding: 0 !important; border: 0 !important; border-radius: 0 !important; background-color: transparent !important; background-image: none !important; box-shadow: none !important; }
.zgzyk-team-index-page .zgzyk-team-index-filters { display: grid !important; grid-template-columns: minmax(0, 1.2fr) minmax(180px, .8fr) auto !important; align-items: end !important; gap: var(--zg-space-3) !important; margin: 0 !important; padding: var(--zg-space-4) !important; border: 1px solid var(--zg-border) !important; border-radius: var(--zg-radius-md) !important; background: var(--zg-surface) !important; box-shadow: var(--zg-shadow-sm) !important; }
.zgzyk-team-index-page .zgzyk-team-index-filters > label { display: grid !important; gap: var(--zg-space-1) !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.zgzyk-team-index-page .zgzyk-team-index-filters :where(input, select) { min-height: 42px !important; margin: 0 !important; border-color: var(--zg-border) !important; border-radius: var(--zg-radius-sm) !important; background: var(--zg-surface) !important; color: var(--zg-text) !important; }
.zgzyk-team-index-page .zgzyk-directory-filter-actions { display: flex !important; align-items: center !important; gap: var(--zg-space-2) !important; }
.zgzyk-team-index-page .zgzyk-directory-filter-actions > :where(button, a) { min-height: 42px !important; margin: 0 !important; }
.zgzyk-account-dashboard .zgzyk-account-panel > header { padding: var(--zg-space-3) var(--zg-space-4) !important; border-bottom: 1px solid var(--zg-border) !important; background: var(--zg-surface-muted) !important; color: var(--zg-text) !important; }
.zgzyk-account-dashboard .zgzyk-account-panel > header :where(h2, h3) { margin: 0 !important; color: var(--zg-text) !important; }
.zgzyk-account-dashboard .zgzyk-account-panel > header :where(span, small, p) { color: var(--zg-text-secondary) !important; opacity: 1 !important; }
.zgzyk-sponsorship-columns { gap: var(--zg-space-4) !important; }
.zgzyk-sponsorship-panel {
  overflow: hidden;
  margin-bottom: var(--zg-space-4) !important;
  border: 1px solid var(--zg-border) !important;
  border-radius: var(--zg-radius-md) !important;
  background: var(--zg-surface) !important;
  box-shadow: var(--zg-shadow-sm) !important;
}
.zgzyk-sponsorship-panel > header { padding: var(--zg-space-4) !important; border-bottom: 1px solid var(--zg-border) !important; background: var(--zg-surface-muted) !important; }
.zgzyk-sponsorship-panel > header :where(h2, h3, p, small, span) { color: var(--zg-text) !important; opacity: 1 !important; }
.zgzyk-sponsorship-panel > header :where(p, small, span) { color: var(--zg-text-secondary) !important; }
.zgzyk-sponsorship-row { padding: var(--zg-space-4) !important; border-bottom: 1px solid var(--zg-border) !important; background: var(--zg-surface) !important; }
.zgzyk-sponsorship-row:last-child { border-bottom: 0 !important; }
.zgzyk-sponsorship-row :where(p, small, span) { color: var(--zg-text-secondary) !important; opacity: 1 !important; }
.zgzyk-sponsorship-row__name { color: var(--zg-text) !important; font-size: var(--zg-font-lg) !important; font-weight: 750 !important; }
.zgzyk-sponsorship-row__actions { display: flex; flex-wrap: wrap; gap: var(--zg-space-2); margin-top: var(--zg-space-3) !important; }
.zgzyk-sponsorship-row__actions :where(a, button),
.zgzyk-sponsorship-panel a.is-primary {
  min-height: 38px !important;
  padding: 8px 12px !important;
  border: 1px solid var(--zg-border) !important;
  border-radius: var(--zg-radius-sm) !important;
  background: var(--zg-surface) !important;
  color: var(--zg-primary) !important;
  font-weight: 700 !important;
}
.zgzyk-sponsorship-row__actions .is-primary,
.zgzyk-sponsorship-panel a.is-primary { border-color: var(--zg-primary) !important; background: var(--zg-primary) !important; color: #fff !important; }
.zgzyk-sponsorship-status { background: var(--zg-primary-soft) !important; color: var(--zg-primary) !important; opacity: 1 !important; }
.zgzyk-sponsorship-empty { padding: var(--zg-space-5) !important; color: var(--zg-text-secondary) !important; }
.zgzyk-sponsorship-process { margin: var(--zg-space-5) 0 0 !important; padding: var(--zg-space-5) !important; }

/* Workspace: remove blue nested-panel stacks and make every choice scannable. */
body.zgzyk-workspace-shell-body .zgzyk-wrap { width: min(100% - 32px, 1200px); }
body.zgzyk-workspace-shell-body .zgzyk-workspace-userbar,
body.zgzyk-workspace-shell-body .zgzyk-v2-task-hub,
body.zgzyk-workspace-shell-body .zgzyk-workspace-panel,
body.zgzyk-workspace-shell-body .zgzyk-workspace-primary-nav,
body.zgzyk-workspace-shell-body .zgzyk-head {
  margin-bottom: var(--zg-space-4) !important;
  border: 1px solid var(--zg-border) !important;
  border-radius: var(--zg-radius-md) !important;
  background: var(--zg-surface) !important;
  color: var(--zg-text) !important;
  box-shadow: var(--zg-shadow-sm) !important;
}
body.zgzyk-workspace-shell-body .zgzyk-workspace-userbar,
body.zgzyk-workspace-shell-body .zgzyk-head { padding: var(--zg-space-4) !important; }
body.zgzyk-workspace-shell-body .zgzyk-v2-task-hub > :where(h2, header),
body.zgzyk-workspace-shell-body .zgzyk-workspace-panel > :where(h2, header) {
  margin: 0 !important;
  padding: var(--zg-space-4) !important;
  border-bottom: 1px solid var(--zg-border) !important;
  background: var(--zg-surface-muted) !important;
  color: var(--zg-text) !important;
}
body.zgzyk-workspace-shell-body .zgzyk-v2-task-hub,
body.zgzyk-workspace-shell-body .zgzyk-v2-task-hub > :where(h2, p),
body.zgzyk-workspace-shell-body .zgzyk-v2-task-hub > :where(h2, p, small, span) {
  background-color: var(--zg-surface) !important;
  color: var(--zg-text) !important;
  opacity: 1 !important;
}
body.zgzyk-workspace-shell-body .zgzyk-v2-task-hub > p { padding: 0 var(--zg-space-4) var(--zg-space-2) !important; color: var(--zg-text-secondary) !important; }
body.zgzyk-workspace-shell-body .zgzyk-v2-task-list,
body.zgzyk-workspace-shell-body .zgzyk-workspace-module-nav {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: var(--zg-space-2) !important;
  margin: 0 !important;
  padding: var(--zg-space-3) !important;
  border: 0 !important;
  background: transparent !important;
}
body.zgzyk-workspace-shell-body .zgzyk-v2-task-link {
  display: flex !important;
  min-height: 72px !important;
  align-items: center !important;
  padding: var(--zg-space-3) !important;
  border: 1px solid var(--zg-border) !important;
  border-radius: var(--zg-radius-sm) !important;
  background: var(--zg-surface) !important;
  color: var(--zg-text) !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
body.zgzyk-workspace-shell-body .zgzyk-v2-task-link.is-primary,
body.zgzyk-workspace-shell-body .zgzyk-v2-task-link[aria-current="page"] { border-color: var(--zg-primary) !important; background: var(--zg-primary-soft) !important; color: var(--zg-primary) !important; }
body.zgzyk-workspace-shell-body .zgzyk-workspace-existing-list { padding: var(--zg-space-3) !important; }
body.zgzyk-workspace-shell-body .zgzyk-workspace-existing-list > * { border-color: var(--zg-border) !important; background: var(--zg-surface) !important; }
body.zgzyk-workspace-shell-body details.zgzyk-workspace-more-capabilities { margin-top: var(--zg-space-3) !important; padding: var(--zg-space-3) !important; border: 1px solid var(--zg-border) !important; border-radius: var(--zg-radius-sm) !important; background: var(--zg-surface-muted) !important; }

/* Directories and data pages: one page canvas, one card level. */
.zgzyk-directory-page-head,
.zgzyk-competition-directory__header,
.zgzyk-sports-directory-header,
.zgzyk-team-directory-header,
.zgzyk-member-directory-header,
.zgzyk-real-competition-detail__header {
  border-color: var(--zg-border) !important;
  background: var(--zg-surface) !important;
  color: var(--zg-text) !important;
  box-shadow: var(--zg-shadow-sm) !important;
}
.zgzyk-directory-page-head :where(p, small, span),
.zgzyk-competition-directory__header :where(p, small, span),
.zgzyk-sports-directory-header :where(p, small, span),
.zgzyk-real-competition-detail__header :where(p, small, span) { color: var(--zg-text-secondary) !important; opacity: 1 !important; }
.zgzyk-directory-filter,
.zgzyk-competition-directory__filters,
.zgzyk-team-directory-filter { border-color: var(--zg-border) !important; background: var(--zg-surface) !important; box-shadow: var(--zg-shadow-sm) !important; }
.zgzyk-directory-filter :where(input, select, button),
.zgzyk-competition-directory__filters :where(input, select, button),
.zgzyk-team-directory-filter :where(input, select, button) { min-height: 40px !important; border-color: var(--zg-border) !important; color: var(--zg-text) !important; }
.zgzyk-directory-filter :where(button, .is-primary),
.zgzyk-competition-directory__filters :where(button, .is-primary),
.zgzyk-team-directory-filter :where(button, .is-primary) { background: var(--zg-primary) !important; color: #fff !important; }
.real-public-card,
.zgzyk-team-public-card,
.zgzyk-member-section,
.zgzyk-sports-directory-panel { border-color: var(--zg-border) !important; background: var(--zg-surface) !important; box-shadow: var(--zg-shadow-sm) !important; }
.real-public-card :where(p, small, span, dt, dd),
.zgzyk-team-public-card :where(p, small, span, dt, dd),
.zgzyk-member-section :where(p, small, span, dt, dd) { color: var(--zg-text-secondary); opacity: 1; }
.real-public-card :where(h2, h3, h4),
.zgzyk-team-public-card :where(h2, h3, h4),
.zgzyk-member-section :where(h2, h3, h4) { color: var(--zg-text); }

/* Legacy direct shell button class remains supported until renderers adopt the
 * short component names above. */
.zgzyk-public-shell-body .zgzyk-button,
.zgzyk-workspace-shell-body .zgzyk-button { min-height: 40px; border-color: var(--zg-primary); border-radius: var(--zg-radius-sm); background: var(--zg-primary); color: #fff; font-size: var(--zg-font-sm); font-weight: 700; text-decoration: none; }
.zgzyk-public-shell-body .zgzyk-button:not(.is-primary),
.zgzyk-workspace-shell-body .zgzyk-button:not(.is-primary) { border-color: var(--zg-border); background: var(--zg-surface); color: var(--zg-primary); }
.zgzyk-public-shell-body .zgzyk-button.is-danger,
.zgzyk-workspace-shell-body .zgzyk-button.is-danger { border-color: var(--zg-danger); background: var(--zg-danger); color: #fff; }

@media (min-width: 769px) {
  .zgzyk-sponsorship-directory,
  .zgzyk-sponsor-page,
  .zgzyk-competition-directory,
  .zgzyk-team-directory,
  .zgzyk-member-directory { width: min(100% - 48px, 1200px); margin-right: auto; margin-left: auto; }
  body.zgzyk-workspace-shell-body .zgzyk-v2-task-list,
  body.zgzyk-workspace-shell-body .zgzyk-workspace-module-nav { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .zgzyk-sponsorship-row { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: var(--zg-space-4); align-items: center; }
  .zgzyk-sponsorship-row__actions { justify-content: flex-end; margin-top: 0 !important; }
}

@media (max-width: 768px) {
  :root { --zgzyk-mp-bg: var(--zg-bg); --zgzyk-mp-surface: var(--zg-surface); --zgzyk-mp-ink: var(--zg-text); --zgzyk-mp-muted: var(--zg-text-muted); --zgzyk-mp-line: var(--zg-border); --zgzyk-mp-blue: var(--zg-primary); --zgzyk-mp-blue-soft: var(--zg-primary-soft); }
  body.zgzyk-public-shell-body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  .zg-page { width: min(100% - 24px, 680px); }
  .zg-page-header { margin-bottom: var(--zg-space-4); padding: var(--zg-space-4); border-radius: var(--zg-radius-md); }
  .zg-section { margin-bottom: var(--zg-space-4); }
  .zg-section-title { margin-bottom: var(--zg-space-2); font-size: var(--zg-font-lg); }
  .zg-card,
  .zg-list-item { border-radius: var(--zg-radius-sm); }
  .zg-filter { display: grid; grid-template-columns: 1fr; }
  .zg-form { gap: var(--zg-space-3); }
  .zg-button,
  .zg-button--primary,
  .zg-button--secondary,
  .zg-button--danger { width: 100%; min-height: 44px; }
  .zg-table { display: none; }
  .zg-mobile-list { display: grid; }
  .zg-action-bar { position: sticky; bottom: calc(58px + env(safe-area-inset-bottom)); z-index: 20; }
  .zg-action-bar > * { flex: 1 1 140px; }

  .zgzyk-product-footer { margin-top: var(--zg-space-5); padding: var(--zg-space-5) 0 calc(var(--zg-space-5) + 8px); }
  .zgzyk-product-footer__inner { width: min(100% - 28px, 680px); padding: 0; }
  .zgzyk-product-footer__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; }
  .zgzyk-product-footer__nav a { font-size: var(--zg-font-sm); }

  /* V1 used Chinese label characters as provisional icons.  Hiding that
   * duplicate text yields a stable single-line bottom navigation label. */
  .zgzyk-mobile-public-nav { min-height: calc(58px + env(safe-area-inset-bottom)); padding: 5px 6px env(safe-area-inset-bottom); }
  .zgzyk-mobile-public-nav__item { display: flex; min-height: 50px; align-items: center; justify-content: center; padding: 0 2px; gap: 0; font-size: 12px; line-height: 1.2; }
  .zgzyk-mobile-public-nav__icon { display: none !important; }
  .zgzyk-mobile-public-nav__item[aria-current="page"] { border-radius: var(--zg-radius-sm); background: var(--zg-primary-soft); color: var(--zg-primary); }

  .zgzyk-sponsorship-directory__header,
  .zgzyk-sponsor-page__header { margin-top: var(--zg-space-3); padding: var(--zg-space-4) !important; border-radius: var(--zg-radius-md) !important; }
  .zgzyk-sponsorship-directory__header :where(h1, h2),
  .zgzyk-sponsor-page__header :where(h1, h2) { font-size: 25px !important; line-height: 1.28; }
  .zgzyk-sponsorship-filters { grid-template-columns: 1fr !important; padding: var(--zg-space-3) !important; }
  .zgzyk-sponsorship-filters > * { min-width: 0; }
  .zgzyk-sponsorship-filters :where(button, .button, .zgzyk-button, input[type="submit"]) { width: 100%; }
  .zgzyk-sponsorship-filters__actions { display: grid !important; grid-template-columns: 1fr !important; gap: var(--zg-space-2) !important; min-width: 0 !important; }
  .zgzyk-sponsorship-filters__actions > :where(button, a) { width: 100% !important; min-height: 42px !important; box-sizing: border-box !important; text-align: center !important; }
  .zgzyk-sponsorship-columns { display: grid !important; grid-template-columns: 1fr !important; gap: var(--zg-space-3) !important; }
  .zgzyk-sponsorship-panel > header { padding: var(--zg-space-3) !important; }
  .zgzyk-sponsorship-row { padding: var(--zg-space-3) !important; }
  .zgzyk-sponsorship-row__actions :where(a, button),
  .zgzyk-sponsorship-panel a.is-primary { width: 100%; justify-content: center; }
  .zgzyk-sponsorship-process { padding: var(--zg-space-4) !important; }

  body.zgzyk-workspace-shell-body .zgzyk-wrap { width: min(100% - 24px, 680px); padding: 0; }
  body.zgzyk-workspace-shell-body .zgzyk-workspace-userbar,
  body.zgzyk-workspace-shell-body .zgzyk-v2-task-hub,
  body.zgzyk-workspace-shell-body .zgzyk-workspace-panel,
  body.zgzyk-workspace-shell-body .zgzyk-workspace-primary-nav,
  body.zgzyk-workspace-shell-body .zgzyk-head { margin-bottom: var(--zg-space-3) !important; border-radius: var(--zg-radius-sm) !important; }
  body.zgzyk-workspace-shell-body .zgzyk-v2-task-list,
  body.zgzyk-workspace-shell-body .zgzyk-workspace-module-nav { grid-template-columns: 1fr !important; padding: var(--zg-space-2) !important; }
  body.zgzyk-workspace-shell-body .zgzyk-v2-task-link { min-height: 54px !important; padding: 10px 12px !important; }
  body.zgzyk-workspace-shell-body .zgzyk-workspace-primary-nav { overflow-x: auto; }
  body.zgzyk-workspace-shell-body .zgzyk-workspace-primary-nav .zgzyk-button { min-height: 42px; }
  .zgzyk-account-dashboard .zgzyk-account-task-list.zgzyk-workspace-module-nav { grid-template-columns: 1fr !important; overflow: visible !important; padding: var(--zg-space-2) !important; }
  .zgzyk-account-dashboard .zgzyk-account-task-list > * { min-width: 0 !important; }

  .zgzyk-directory-page-head,
  .zgzyk-competition-directory__header,
  .zgzyk-sports-directory-header,
  .zgzyk-team-directory-header,
  .zgzyk-member-directory-header,
  .zgzyk-real-competition-detail__header { border-radius: var(--zg-radius-md) !important; }
  .zgzyk-directory-filter,
  .zgzyk-competition-directory__filters,
  .zgzyk-team-directory-filter { display: grid !important; grid-template-columns: 1fr !important; gap: var(--zg-space-2) !important; padding: var(--zg-space-3) !important; }
  .zgzyk-directory-filter :where(input, select, button),
  .zgzyk-competition-directory__filters :where(input, select, button),
  .zgzyk-team-directory-filter :where(input, select, button) { width: 100% !important; }
  .zgzyk-team-index-page .zgzyk-team-index-filters { grid-template-columns: 1fr !important; padding: var(--zg-space-3) !important; }
  .zgzyk-team-index-page .zgzyk-directory-filter-actions { display: grid !important; grid-template-columns: 1fr !important; }
  .zgzyk-team-index-page .zgzyk-directory-filter-actions > :where(button, a) { width: 100% !important; text-align: center !important; }
  .zgzyk-player-directory-v2__filters { display: grid !important; grid-template-columns: 1fr !important; gap: var(--zg-space-3) !important; overflow: visible !important; }
  .zgzyk-player-directory-v2__filters > label { display: grid !important; min-width: 0 !important; gap: var(--zg-space-1) !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
  .zgzyk-player-directory-v2__filters :where(input, select) { width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; }
  .zgzyk-player-directory-v2__filter-actions { display: grid !important; grid-template-columns: 1fr !important; gap: var(--zg-space-2) !important; }
  .zgzyk-player-directory-v2__filter-actions > :where(button, a) { width: 100% !important; min-height: 42px !important; text-align: center !important; }
  .zgzyk-competition-directory__filter-actions { display: grid !important; grid-template-columns: 1fr !important; gap: var(--zg-space-2) !important; min-width: 0 !important; }
  .zgzyk-competition-directory__filter-actions > :where(button, a) { width: 100% !important; min-height: 42px !important; box-sizing: border-box !important; text-align: center !important; }

  /* Form/table renderers use their compact record cards at phone widths. */
  .zgzyk-public-shell-body .zgzyk-blue-data-table-wrap,
  .zgzyk-workspace-shell-body .zgzyk-blue-data-table-wrap { overflow: visible !important; }
  .zgzyk-public-shell-body table,
  .zgzyk-workspace-shell-body table { max-width: 100%; }
}
