.page-user-dashboard {
      display: none;
      width: 100%;
      max-width: 1180px;
      margin: 0 auto;
      padding: 2.65rem 1.25rem 2.75rem;
      box-sizing: border-box;
    }

.page-rise-settings {
      display: none;
      width: 100%;
      max-width: min(1180px, 100%);
      margin: 0 auto;
      padding: 0.35rem 1.15rem 2.75rem;
      box-sizing: border-box;
      flex: 1 1 auto;
      color: var(--text, #e2e8f0);
    }

.rise-settings-page {
      display: grid;
      grid-template-columns: minmax(11rem, 14rem) minmax(0, 1fr);
      gap: clamp(1rem, 3vw, 2.5rem);
      align-items: start;
      max-width: 960px;
      margin: 0 auto;
    }

.rise-settings-page__aside {
      position: sticky;
      top: calc(var(--header-offset) + 0.75rem);
      align-self: start;
    }

.rise-settings-page__side-nav {
      display: flex;
      flex-direction: column;
      gap: 0.25rem;
      margin: 0;
      padding: 0.35rem 0;
    }

.rise-settings-page__side-link {
      display: block;
      padding: 0.48rem 0.62rem;
      border-radius: 0.45rem;
      font-size: 0.82rem;
      font-weight: 650;
      color: color-mix(in srgb, var(--text-muted) 35%, var(--text));
      border: 1px solid transparent;
      background: transparent;
    }

.rise-settings-page__side-link.is-active {
      color: var(--text);
      border-color: color-mix(in srgb, var(--hero-border) 88%, transparent);
      background: color-mix(in srgb, var(--bg-elevated) 92%, transparent);
      font-weight: 820;
    }

.rise-settings-page__title {
      margin: 0 0 1.25rem;
      font-size: clamp(1.35rem, 3vw, 1.75rem);
      font-weight: 850;
      letter-spacing: -0.02em;
      color: var(--text);
    }

.rise-settings-page__profile-mount.rise-wallet-public-profile {
      max-width: 32rem;
    }

@media (max-width: 720px) {
  .rise-settings-page {
        grid-template-columns: 1fr;
      }

  .rise-settings-page__aside {
        position: relative;
        top: auto;
      }
    }

/* Keep dashboard tiles area stable while cards/me counters hydrate. */
#riseDashboardProductGrid {
      min-height: clamp(28rem, 62vh, 50rem);
    }

.user-portal__hero {
      margin-bottom: 1.75rem;
    }

.user-portal__title {
      font-size: clamp(1.35rem, 3.2vw, 1.85rem);
      font-weight: 800;
      letter-spacing: 0.02em;
      line-height: 1.15;
      margin: 0 0 0.65rem;
      color: var(--text);
    }

.user-portal__lead {
      margin: 0;
      max-width: 40rem;
      font-size: clamp(0.95rem, 1.6vw, 1.05rem);
      line-height: 1.55;
      color: var(--text-muted);
    }

.user-portal__dash-lead {
      margin: 0 0 1rem;
      max-width: 40rem;
      font-size: 0.88rem;
      line-height: 1.45;
      color: var(--text-muted);
    }

.user-portal__dash-subh {
      display: block;
      margin: 0;
      font-size: 0.72rem;
      font-weight: 750;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--text-muted);
      opacity: 0.92;
    }

.dash-product-grid > li.dash-product-section-head {
      grid-column: 1 / -1;
      display: block;
      margin: 0;
      padding: 0.2rem 0 0.25rem;
      min-height: 0;
    }

.user-portal__dash-top {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 0.65rem 1rem;
      margin-bottom: 1rem;
    }

.user-portal__dash-heading {
      font-size: clamp(1.2rem, 3vw, 1.65rem);
      font-weight: 800;
      letter-spacing: 0.02em;
      line-height: 1.2;
      margin: 0;
      color: var(--text);
      flex: 1 1 14rem;
    }

.user-portal__dash-user {
      color: var(--cyan);
      font-weight: 800;
      word-break: break-word;
    }

.user-portal__signout {
      flex-shrink: 0;
      padding: 0.2rem 0.5rem;
      border-radius: 0.35rem;
      border: 1px solid var(--hero-border);
      background: color-mix(in srgb, var(--bg-elevated) 70%, transparent);
      color: var(--cyan);
      font: inherit;
      font-weight: 600;
      font-size: 0.82rem;
      cursor: pointer;
    }

.user-portal__signout:hover {
      border-color: color-mix(in srgb, var(--cyan) 45%, var(--hero-border));
    }

.user-portal-form {
      width: 100%;
      max-width: 28rem;
      padding: 1.35rem 1.25rem 1.45rem;
      border-radius: 0.65rem;
      border: 1px solid var(--hero-border);
      background: color-mix(in srgb, var(--bg-elevated) 82%, transparent);
      display: flex;
      flex-direction: column;
      gap: 1rem;
    }

.user-portal-form__row {
      display: flex;
      flex-direction: column;
      gap: 0.35rem;
    }

.user-portal-form__row label {
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: var(--text-muted);
    }

.user-portal-form__row input {
      width: 100%;
      padding: 0.65rem 0.75rem;
      border-radius: 0.45rem;
      border: 1px solid var(--hero-border);
      background: color-mix(in srgb, var(--bg-page) 60%, var(--bg-elevated));
      color: var(--text);
      font: inherit;
      font-size: 0.95rem;
    }

.user-portal-form__hint {
      margin: 0;
      font-size: 0.8rem;
      color: var(--text-muted);
    }

.user-portal-form__submit {
      margin-top: 0.25rem;
      padding: 0.72rem 1rem;
      border-radius: 0.5rem;
      border: 1px solid #00267a;
      background: #00267a;
      color: #ffffff;
      font: inherit;
      font-weight: 700;
      letter-spacing: 0.03em;
      cursor: pointer;
    }

.user-portal-form__submit:hover {
      border-color: #003d9e;
      background: #003d9e;
    }

.user-portal-form__submit:focus-visible {
      outline: 2px solid var(--cyan);
      outline-offset: 2px;
    }

.dash-product-grid {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 0.85rem;
    }

@media (max-width: 767px) {
      .dash-product-grid.dash-product-grid--products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }

@media (min-width: 560px) {
      .dash-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

@media (min-width: 768px) {
      .dash-product-grid.dash-product-grid--products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }

.dash-product-grid--products {
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      box-sizing: border-box;
    }

.dash-product-grid > li {
      margin: 0;
      padding: 0;
      display: flex;
      min-height: 0;
    }

.dash-product-tile {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.4rem;
      width: 100%;
      min-height: 5.1rem;
      padding: 0.75rem 0.55rem;
      text-align: center;
      font: inherit;
      cursor: pointer;
      border-radius: 12px;
      border: 1px solid var(--hero-border);
      background: var(--bg-elevated);
      color: var(--text);
      transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, background 0.2s ease;
      box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
    }

a.dash-product-tile {
      text-decoration: none;
      color: inherit;
    }

.dash-product-tile__icon {
      width: 22px;
      height: 22px;
      flex-shrink: 0;
      color: var(--cyan);
      opacity: 0.92;
    }

.dash-product-tile__title {
      font-weight: 750;
      font-size: 0.8rem;
      line-height: 1.25;
    }

.dash-product-tile__gate {
      display: inline-flex;
      align-items: center;
      gap: 0.28rem;
      font-size: 0.64rem;
      line-height: 1.1;
      opacity: 0.9;
      white-space: nowrap;
    }

.dash-product-tile__gate-logo {
      width: 12px;
      height: 12px;
      border-radius: 999px;
      flex-shrink: 0;
    }

a.dash-product-tile--visual {
      align-items: stretch;
      justify-content: flex-start;
      text-align: left;
      min-height: 0;
      padding: 0;
      gap: 0;
      overflow: hidden;
      border-radius: 0.6rem;
    }

.dash-product-tile__thumb {
      position: relative;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      aspect-ratio: 4 / 3;
      min-height: clamp(9.5rem, 28vw, 13.5rem);
      flex-shrink: 0;
      background:
        radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--cyan) 22%, transparent) 0%, transparent 55%),
        linear-gradient(165deg, color-mix(in srgb, var(--bg-page) 40%, var(--bg-elevated)) 0%, color-mix(in srgb, var(--bg-elevated) 88%, #020617) 100%);
      border-bottom: 1px solid color-mix(in srgb, var(--hero-border) 70%, transparent);
      box-sizing: border-box;
    }

.dash-product-tile__thumb-ico {
      width: clamp(3.25rem, 15vw, 4.75rem);
      height: clamp(3.25rem, 15vw, 4.75rem);
      color: var(--cyan);
      flex-shrink: 0;
      filter: drop-shadow(0 2px 14px color-mix(in srgb, var(--cyan) 35%, transparent));
    }

.dash-product-tile__thumb-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      pointer-events: none;
    }

.dash-product-tile--coming-soon {
      pointer-events: none;
      cursor: not-allowed;
      opacity: 0.72;
      border-color: color-mix(in srgb, var(--hero-border) 88%, transparent);
      box-shadow: none;
    }

.dash-product-tile--coming-soon .dash-product-tile__thumb-img {
      filter: grayscale(1) saturate(0.18) brightness(0.72);
    }

.dash-product-tile--coming-soon .dash-product-tile__title {
      color: color-mix(in srgb, var(--text) 72%, #9ca3af);
    }

.dash-product-tile--coming-soon .dash-product-tile__gate {
      color: #9ca3af;
    }

a.dash-product-tile[href="/ai-suite/studio/code-chat"] .dash-product-tile__thumb-img {
      object-fit: cover;
      object-position: center 18%;
    }

a.dash-product-tile[href="/swap"] .dash-product-tile__thumb-img {
      object-fit: cover;
      object-position: center 28%;
    }

a.dash-product-tile[href="/sports-betting"] .dash-product-tile__thumb-img {
      object-fit: cover;
      object-position: center 38%;
    }

.dash-product-tile__meta {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 0.4rem;
      padding: 0.75rem 0.95rem 0.85rem;
      box-sizing: border-box;
      width: 100%;
    }

a.dash-product-tile--visual .dash-product-tile__title {
      font-size: clamp(0.98rem, 2.35vw, 1.12rem);
      font-weight: 750;
      letter-spacing: 0.02em;
      line-height: 1.22;
      width: 100%;
    }

a.dash-product-tile--visual .dash-product-tile__gate {
      font-size: 0.7rem;
      opacity: 0.88;
      white-space: normal;
      line-height: 1.25;
    }

.dash-product-tile.is-selected {
      border-color: color-mix(in srgb, var(--gold) 72%, transparent);
      box-shadow:
        0 0 0 2px color-mix(in srgb, var(--gold) 45%, transparent),
        0 6px 22px rgba(0, 0, 0, 0.28);
    }

.dash-product-tile:focus-visible {
      outline: 2px solid var(--cyan);
      outline-offset: 3px;
    }

#riseDashboardProductGrid.dash-product-grid--launching {
      pointer-events: none;
    }

#riseDashboardProductGrid.dash-product-grid--launching .dash-product-tile--launch-peer {
      transition:
        opacity 0.58s cubic-bezier(0.25, 0.1, 0.22, 1),
        transform 0.58s cubic-bezier(0.25, 0.1, 0.22, 1);
      opacity: 0.06;
      transform: scale(0.82);
    }

#riseDashboardProductGrid.dash-product-grid--launching .dash-product-tile--launch-source {
      transition: transform 0.68s cubic-bezier(0.22, 1, 0.32, 1);
      transform: scale(1.06);
    }

.dash-product-tile--launch-hidden {
      opacity: 0 !important;
      visibility: hidden !important;
    }

.page-sports-pools {
      display: none;
      width: 100%;
      max-width: min(100%, 1520px);
      margin: 0 auto;
      padding: 0.35rem clamp(0.85rem, 2.4vw, 1.75rem) 2.75rem;
      box-sizing: border-box;
      flex: 1 1 auto;
    }

/** Sports hub: tight clearance under fixed nav (Polymarket-style) + shorter hero stack.
   Fixture centre uses the same top inset as Sports pools so breadcrumbs / title line up with “Main event showdown”. */
html:is(
      [data-route="dashboard-sports-betting"],
      [data-route="dashboard-sports-activity"],
      [data-route="dashboard-sports-owner-settle"],
      [data-route="dashboard-prediction-markets"]
    )
    main
    > .page-sports-pools,
    html[data-route="dashboard-sports-match"] main > .page-sports-match {
      padding-top: max(0.06rem, calc(var(--header-offset) - clamp(1.05rem, 3.1vw, 1.7rem)));
    }

html:is(
      [data-route="dashboard-sports-betting"],
      [data-route="dashboard-sports-activity"],
      [data-route="dashboard-sports-owner-settle"],
      [data-route="dashboard-prediction-markets"]
    )
    .page-sports-pools
    .sports-pools__main-showdown {
      margin-bottom: clamp(1.85rem, 4.8vw, 3.25rem);
      gap: 0.52rem;
    }

@media (min-width: 1024px) {
      html:is(
          [data-route="dashboard-sports-betting"],
          [data-route="dashboard-sports-activity"],
          [data-route="dashboard-sports-owner-settle"],
          [data-route="dashboard-prediction-markets"]
        )
        .page-sports-pools
        .sports-pools__main-showdown {
        gap: 0.52rem 1.45rem;
      }

      html:is(
          [data-route="dashboard-sports-betting"],
          [data-route="dashboard-sports-activity"],
          [data-route="dashboard-sports-owner-settle"],
          [data-route="dashboard-prediction-markets"]
        )
        .page-sports-pools
        .sports-pools__main-showdown
        .sports-pools__main-event {
        max-width: min(100%, 72rem);
        width: 100%;
        justify-self: start;
      }
    }

html:is(
      [data-route="dashboard-sports-betting"],
      [data-route="dashboard-sports-activity"],
      [data-route="dashboard-sports-owner-settle"],
      [data-route="dashboard-prediction-markets"]
    )
    .page-sports-pools
    .sports-pools__main-event {
      padding: clamp(0.55rem, 1.45vw, 0.95rem);
      gap: 0.62rem;
      min-height: clamp(14.75rem, 20vw, 18.25rem);
    }

/** Today strip + bottom flag marquee: hidden on all dashboard sports views (pools hub + fixture). */
#rise-sports-today-strip-host,
#rise-sports-flagstrip-bottom {
      display: none;
    }

.rise-sports-today-strip {
      width: 100%;
      max-width: none;
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

.rise-sports-today-strip__body {
      position: relative;
      width: 100%;
      min-width: 0;
      min-height: 2.65rem;
    }

.rise-sports-today-strip__empty {
      margin: 0;
      padding: 0.42rem 0.85rem;
      font-size: 0.72rem;
      color: var(--text-muted, #94a3b8);
    }

/** Same infinite-scroll idea as `.partners-marquee` / `partners-marquee-scroll` (two loops, translateX -50%). */
.rise-sports-today-marquee {
      overflow: hidden;
      width: 100%;
      min-height: 3.35rem;
      display: flex;
      align-items: center;
    }

.rise-sports-today-marquee[hidden] {
      display: none !important;
    }

.rise-sports-today-marquee__track {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-items: stretch;
      width: max-content;
      min-width: 0;
      padding: 0.55rem 0;
      box-sizing: border-box;
      animation-name: partners-marquee-scroll;
      animation-duration: var(--rise-today-marquee-sec, 42s);
      animation-timing-function: linear;
      animation-iteration-count: infinite;
      animation-fill-mode: none;
      will-change: transform;
    }

.rise-sports-today-marquee:hover .rise-sports-today-marquee__track,
    .rise-sports-today-marquee:focus-within .rise-sports-today-marquee__track,
    .rise-sports-today-marquee.partners-marquee--paused .rise-sports-today-marquee__track {
      animation-play-state: paused;
    }

.rise-sports-today-marquee__loop {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      flex-shrink: 0;
      min-width: 100%;
      align-items: stretch;
      gap: clamp(0.5rem, 1.8vw, 1.1rem);
      padding: 0 clamp(0.85rem, 2.2vw, 1.5rem);
      box-sizing: border-box;
    }

.rise-sports-today-strip__row {
      flex: 0 0 auto;
      display: flex;
      align-items: center;
      justify-content: center;
      min-width: min(11rem, 88vw);
      max-width: 19rem;
      padding: 0.5rem clamp(0.35rem, 1.2vw, 0.75rem);
      margin: 0;
      border: none;
      border-radius: 0;
      background: transparent;
      box-shadow: none;
      cursor: pointer;
      outline-offset: 2px;
    }

.rise-sports-today-strip__row:focus-visible {
      outline: 2px solid color-mix(in srgb, var(--text-muted) 70%, transparent);
      outline-offset: -2px;
    }

.rise-sports-today-strip__row--live {
      box-shadow: inset 2px 0 0 0 color-mix(in srgb, #f87171 75%, transparent);
    }

.rise-sports-today-strip__match {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      align-items: center;
      justify-content: center;
      gap: clamp(0.2rem, 1.1vw, 0.45rem);
      width: max-content;
      max-width: 100%;
      margin-inline: auto;
      font-size: clamp(0.82rem, 1.45vw, 1rem);
      font-weight: 750;
      line-height: 1.35;
      min-width: 0;
    }

@media (prefers-reduced-motion: reduce) {
      .rise-sports-today-marquee__track {
        animation: none;
        transform: none;
        flex-wrap: wrap;
        justify-content: center;
        width: 100%;
        max-width: 100%;
      }

      .rise-sports-today-marquee__loop[aria-hidden="true"] {
        display: none;
      }

      .rise-sports-today-marquee {
        height: auto;
        min-height: 0;
      }
    }

.rise-sports-today-strip__match .sports-pools__matchup-crest {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

.rise-sports-today-strip__match .sports-pools__team-crest {
      display: block;
      flex-shrink: 0;
    }

.rise-sports-today-strip__match .sports-pools__vs {
      font-size: clamp(0.62rem, 1vw, 0.75rem);
      font-weight: 800;
      letter-spacing: 0.08em;
      padding: 0 0.12rem;
      margin: 0;
    }

.rise-sports-today-strip__match .sports-pools__matchup-score {
      font-size: clamp(0.92rem, 1.8vw, 1.08rem);
      font-weight: 800;
      font-variant-numeric: tabular-nums;
      color: var(--text, #f8fafc);
      padding: 0 0.08rem;
    }

/* Sports pools · League table tab */
.sports-pools__insights-mount {
      max-width: min(100%, 70rem);
      margin: 0 auto;
      padding: clamp(0.35rem, 1.2vw, 0.65rem) 0 clamp(1rem, 2.5vw, 1.6rem);
    }

.sports-pools__insights-head {
      margin-bottom: clamp(0.75rem, 2vw, 1.1rem);
    }

.sports-pools__insights-title {
      margin: 0;
      font-size: clamp(1.05rem, 2.4vw, 1.28rem);
      font-weight: 800;
      letter-spacing: 0.02em;
      color: var(--text, #f8fafc);
    }

.sports-pools__insights-empty {
      margin: 0 0 0.75rem;
      font-size: 0.88rem;
      line-height: 1.45;
      color: color-mix(in srgb, var(--text-muted) 92%, #fbbf24);
    }

.sports-pools__insights-sub {
      margin: 0 0 0.45rem;
      font-size: 0.82rem;
      font-weight: 750;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--text-muted, #94a3b8);
    }

.sports-pools__insights-list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 0.35rem;
    }

.sports-pools__insights-item {
      margin: 0;
    }

.sports-pools__insights-link {
      display: block;
      padding: 0.5rem 0.65rem;
      border-radius: 0.55rem;
      border: 1px solid var(--hero-border, rgba(255, 255, 255, 0.07));
      background: color-mix(in srgb, var(--bg-elevated, #0a1628) 72%, transparent);
      color: var(--text, #e2e8f0);
      font-size: 0.9rem;
      font-weight: 600;
      text-decoration: none;
      transition:
        border-color 0.15s ease,
        background 0.15s ease,
        transform 0.15s ease;
    }

.sports-pools__insights-link:hover {
      border-color: color-mix(in srgb, var(--cyan, #38bdf8) 42%, var(--hero-border));
      background: color-mix(in srgb, var(--bg-elevated, #0a1628) 86%, transparent);
      transform: translateY(-1px);
    }

.sports-pools__insights-body {
      margin-top: clamp(0.5rem, 1.5vw, 0.85rem);
    }

.sports-pools__insights-panel-lede {
      margin: 0;
      font-size: 0.92rem;
      line-height: 1.55;
      color: var(--text-muted, #94a3b8);
      max-width: 44rem;
    }

.sports-pools__insights-panel-lede strong {
      color: color-mix(in srgb, var(--text, #e2e8f0) 88%, var(--text-muted));
      font-weight: 700;
    }

.sports-pools-league-table__toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: 0.75rem 1.25rem;
      margin-bottom: 0.65rem;
    }

.sports-pools-league-table__h {
      margin: 0;
      font-size: clamp(1.2rem, 2.8vw, 1.45rem);
      font-weight: 800;
      letter-spacing: 0.02em;
      color: var(--text, #f8fafc);
      flex: 1 1 auto;
      min-width: 5rem;
    }

.sports-pools-league-table__field {
      display: flex;
      flex-direction: column;
      gap: 0.2rem;
      min-width: 7.5rem;
    }

.sports-pools-league-table__field--grow {
      flex: 1 1 14rem;
      min-width: 12rem;
    }

.sports-pools-league-table__field label {
      font-size: 0.72rem;
      font-weight: 750;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      color: var(--text-muted, #94a3b8);
    }

.sports-pools-lt-dd__shell {
      position: relative;
    }

.sports-pools-league-table__select,
.sports-pools-lt-dd__trigger {
      border-radius: 0.45rem;
      border: 1px solid var(--hero-border, rgba(255, 255, 255, 0.07));
      background: linear-gradient(
        155deg,
        color-mix(in srgb, var(--bg-elevated, #0a1628) 90%, transparent) 0%,
        color-mix(in srgb, var(--bg-page, #060d18) 88%, transparent) 68%
      );
      color: var(--text, #f4f6fb);
      font-size: 0.88rem;
      font-weight: 600;
      padding: 0.4rem 0.55rem;
      width: 100%;
      box-sizing: border-box;
    }

.sports-pools-lt-dd__trigger {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      text-align: left;
      cursor: pointer;
      font-family: inherit;
    }

.sports-pools-lt-dd__value {
      min-width: 0;
      flex: 1 1 auto;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

.sports-pools-lt-dd__chev {
      width: 0.45rem;
      height: 0.45rem;
      border-right: 2px solid color-mix(in srgb, var(--text, #f4f6fb) 55%, transparent);
      border-bottom: 2px solid color-mix(in srgb, var(--text, #f4f6fb) 55%, transparent);
      transform: rotate(45deg);
      margin-top: -0.2rem;
      flex-shrink: 0;
      opacity: 0.85;
    }

.sports-pools-league-table__select:focus-visible,
.sports-pools-lt-dd__trigger:focus-visible {
      outline: 2px solid color-mix(in srgb, var(--cyan, #38bdf8) 45%, var(--hero-border));
      outline-offset: 2px;
    }

.sports-pools-league-table__select:disabled,
.sports-pools-lt-dd__trigger:disabled {
      opacity: 0.55;
      cursor: not-allowed;
    }

.sports-pools-lt-dd__menu {
      position: absolute;
      left: 0;
      right: 0;
      top: calc(100% + 4px);
      z-index: 80;
      margin: 0;
      padding: 0.28rem 0;
      list-style: none;
      border-radius: 0.5rem;
      border: 1px solid var(--hero-border, rgba(255, 255, 255, 0.07));
      background: color-mix(in srgb, var(--bg-elevated, #0a1628) 96%, var(--bg-page, #060d18));
      box-shadow: 0 12px 36px rgba(0, 0, 0, 0.55);
      max-height: 15rem;
      overflow-y: auto;
    }

.sports-pools-lt-dd__menu li {
      margin: 0;
      padding: 0;
    }

.sports-pools-lt-dd__option {
      display: block;
      width: 100%;
      margin: 0;
      padding: 0.42rem 0.65rem;
      border: none;
      border-radius: 0.35rem;
      background: transparent;
      color: var(--text, #f4f6fb);
      font: inherit;
      font-size: 0.86rem;
      font-weight: 600;
      text-align: left;
      cursor: pointer;
    }

.sports-pools-lt-dd__option:hover,
.sports-pools-lt-dd__option:focus-visible {
      background: color-mix(in srgb, var(--cyan, #38bdf8) 10%, var(--bg-elevated, #0a1628));
      outline: none;
    }

.sports-pools-lt-dd__option[aria-selected="true"] {
      background: color-mix(in srgb, var(--cyan, #38bdf8) 14%, var(--bg-elevated, #0a1628));
      color: var(--text, #f4f6fb);
    }

.sports-pools-league-table__status {
      margin: 0 0 0.5rem;
      font-size: 0.86rem;
      color: var(--text-muted, #94a3b8);
    }

.sports-pools-league-table__status--err {
      color: color-mix(in srgb, #fbbf24 55%, var(--text-muted));
    }

.sports-pools-league-table__scroll {
      overflow-x: auto;
      border-radius: 0.75rem;
      border: 1px solid var(--hero-border, rgba(255, 255, 255, 0.07));
      background: linear-gradient(
        155deg,
        color-mix(in srgb, var(--bg-elevated, #0a1628) 90%, transparent) 0%,
        color-mix(in srgb, var(--bg-page, #060d18) 88%, transparent) 68%
      );
      margin-bottom: 0.75rem;
    }

.sports-pools-league-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.78rem;
      min-width: 46rem;
    }

.sports-pools-lt-sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

.sports-pools-league-table thead th {
      position: sticky;
      top: 0;
      z-index: 1;
      background: color-mix(in srgb, var(--bg-elevated, #0a1628) 94%, var(--bg-page, #060d18));
      border-bottom: 1px solid var(--hero-border, rgba(255, 255, 255, 0.07));
      color: var(--text-muted, #94a3b8);
      font-weight: 750;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      font-size: 0.65rem;
      padding: 0.45rem 0.35rem;
      text-align: center;
      white-space: nowrap;
    }

.sports-pools-league-table thead th abbr {
      text-decoration: none;
      cursor: help;
    }

.sports-pools-lt__th--club,
.sports-pools-lt__cell--club {
      text-align: left;
    }

.sports-pools-league-table thead th.sports-pools-lt__th--club {
      padding-left: 0.12rem;
    }

.sports-pools-lt__th--rank {
      text-align: left;
      padding-left: 0.4rem;
      padding-right: 0.08rem;
      width: 1%;
      white-space: nowrap;
    }

.sports-pools-lt__th--form {
      min-width: 6.5rem;
    }

.sports-pools-lt__th--pts {
      color: var(--text, #f4f6fb);
    }

.sports-pools-lt-row td,
.sports-pools-lt-row th {
      border-bottom: 1px solid var(--line, rgba(255, 255, 255, 0.08));
      vertical-align: middle;
    }

.sports-pools-lt__cell {
      padding: 0.38rem 0.35rem;
      color: var(--text, #f4f6fb);
    }

.sports-pools-lt-rank__stripe {
      display: inline-block;
      width: 3px;
      align-self: stretch;
      min-height: 2.1rem;
      border-radius: 2px;
      flex-shrink: 0;
    }

.sports-pools-lt-stripe--tip {
      cursor: help;
    }

.sports-pools-lt-stripe--blank {
      background: transparent;
      opacity: 0.25;
    }

.sports-pools-lt-stripe--cl {
      background: #2563eb;
    }

.sports-pools-lt-stripe--el {
      background: #ea580c;
    }

.sports-pools-lt-stripe--ecl {
      background: #16a34a;
    }

.sports-pools-lt-stripe--rel {
      background: #dc2626;
    }

.sports-pools-lt__cell.sports-pools-lt__cell--club {
      padding-left: 0.1rem;
    }

.sports-pools-lt__cell--rank {
      display: flex;
      align-items: center;
      gap: 0.28rem;
      padding-left: 0.35rem;
      padding-right: 0.06rem;
      font-weight: 700;
    }

.sports-pools-lt-rank__meta {
      display: flex;
      flex-direction: column;
      gap: 0.08rem;
      min-width: 0;
    }

.sports-pools-lt-pos {
      font-size: 0.88rem;
      font-weight: 800;
      color: var(--text, #f8fafc);
    }

.sports-pools-lt-club {
      display: flex;
      align-items: center;
      gap: 0.45rem;
      min-width: 0;
    }

.sports-pools-lt-crest {
      width: 24px;
      height: 24px;
      object-fit: contain;
      flex-shrink: 0;
      border-radius: 50%;
      background: color-mix(in srgb, var(--text, #f4f6fb) 6%, var(--bg-page, #060d18));
      box-shadow: 0 0 0 1px var(--hero-border, rgba(255, 255, 255, 0.07));
    }

.sports-pools-lt-crest--placeholder {
      display: inline-block;
    }

.sports-pools-lt-name {
      font-weight: 650;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

.sports-pools-lt__cell--num {
      text-align: center;
      font-variant-numeric: tabular-nums;
      color: color-mix(in srgb, var(--text, #f4f6fb) 90%, var(--text-muted));
    }

.sports-pools-lt__cell--pts {
      text-align: center;
      font-variant-numeric: tabular-nums;
    }

.sports-pools-lt__cell--pts strong {
      font-weight: 800;
      color: var(--text, #f8fafc);
    }

.sports-pools-lt__cell--form {
      text-align: center;
      white-space: nowrap;
    }

.sports-pools-lt-muted {
      color: var(--text-muted, #64748b);
    }

.sports-pools-l5 {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 1.15rem;
      height: 1.15rem;
      margin: 0 0.1rem;
      border-radius: 50%;
      font-size: 0.55rem;
      font-weight: 800;
      line-height: 1;
      vertical-align: middle;
    }

.sports-pools-l5__glyph {
      display: block;
      transform: translateY(0.5px);
    }

.sports-pools-l5--w {
      background: #15803d;
      color: #fff;
    }

.sports-pools-l5--l {
      background: #b91c1c;
      color: #fff;
    }

.sports-pools-l5--d {
      background: color-mix(in srgb, var(--text-muted, #94a3b8) 72%, #1e293b);
      color: var(--text, #f4f6fb);
    }

.sports-pools-lt5--last {
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--text, #f4f6fb) 88%, transparent);
    }

.sports-pools-leaderboards {
      margin-top: 0.25rem;
    }

.sports-pools-leaderboards__toolbar {
      display: flex;
      align-items: flex-end;
      gap: 0.7rem;
      flex-wrap: wrap;
      margin-bottom: 0.65rem;
    }

.sports-pools-leaderboards__h {
      margin: 0;
      font-size: 1.05rem;
      font-weight: 850;
      letter-spacing: 0.01em;
      margin-right: auto;
    }

.sports-pools-leaderboards__field {
      position: relative;
      min-width: 180px;
      flex: 0 1 240px;
    }

.sports-pools-leaderboards__label {
      display: block;
      font-size: 0.63rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--text-muted, #94a3b8);
      margin-bottom: 0.25rem;
      font-weight: 760;
    }

.sports-pools-leaderboards__select-native {
      position: absolute !important;
      width: 1px !important;
      height: 1px !important;
      opacity: 0 !important;
      pointer-events: none !important;
      border: 0 !important;
      padding: 0 !important;
      margin: 0 !important;
      clip: rect(0 0 0 0) !important;
      clip-path: inset(50%) !important;
      overflow: hidden !important;
      white-space: nowrap !important;
    }

.sports-pools-leaderboards .sports-pools-lt-dd__trigger {
      min-height: 2.6rem;
      border-radius: 0.62rem;
      border-color: color-mix(in srgb, var(--hero-border, rgba(255,255,255,0.08)) 75%, transparent);
      background: linear-gradient(
        160deg,
        color-mix(in srgb, var(--bg-elevated, #0a1628) 92%, transparent) 0%,
        color-mix(in srgb, var(--bg-page, #060d18) 90%, transparent) 100%
      );
      padding: 0.52rem 0.78rem;
      font-size: 0.98rem;
      font-weight: 760;
      position: relative;
      padding-right: 2rem;
    }

.sports-pools-leaderboards .sports-pools-lt-dd__trigger::after {
      content: "";
      position: absolute;
      right: 0.82rem;
      top: 50%;
      width: 0.45rem;
      height: 0.45rem;
      margin-top: -0.28rem;
      border-right: 2px solid color-mix(in srgb, var(--text, #f4f6fb) 58%, transparent);
      border-bottom: 2px solid color-mix(in srgb, var(--text, #f4f6fb) 58%, transparent);
      transform: rotate(45deg);
      pointer-events: none;
    }

.sports-pools-leaderboards__status {
      margin: 0.35rem 0 0.65rem;
      font-size: 0.74rem;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 45%, var(--text, #f8fafc));
    }

.sports-pools-leaderboards__status--err {
      color: #fca5a5;
    }

.sports-pools-leaderboards__scroll {
      overflow-x: auto;
      border: 1px solid color-mix(in srgb, var(--hero-border, rgba(255,255,255,0.08)) 80%, transparent);
      border-radius: 0.75rem;
      background: color-mix(in srgb, var(--bg-page, #060d18) 72%, transparent);
    }

.sports-pools-leaderboards__table {
      width: 100%;
      min-width: 860px;
      border-collapse: separate;
      border-spacing: 0;
      table-layout: auto;
      font-size: 0.74rem;
    }

.sports-pools-leaderboards__table thead th {
      position: sticky;
      top: 0;
      z-index: 1;
      background: color-mix(in srgb, var(--bg-elevated, #0a1628) 94%, var(--bg-page, #060d18));
      border-bottom: 1px solid var(--hero-border, rgba(255, 255, 255, 0.08));
      color: var(--text-muted, #94a3b8);
      font-weight: 780;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      font-size: 0.64rem;
      padding: 0.58rem 0.62rem;
      white-space: nowrap;
      text-align: center;
    }

.sports-pools-leaderboards__table tbody td {
      padding: 0.62rem;
      border-bottom: 1px solid color-mix(in srgb, var(--hero-border, rgba(255,255,255,0.08)) 86%, transparent);
      vertical-align: middle;
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
    }

.sports-pools-leaderboards__table tbody tr:nth-child(even) td {
      background: color-mix(in srgb, var(--bg-elevated, #0b1324) 45%, transparent);
    }

.sports-pools-leaderboards__table tbody tr:hover td {
      background: color-mix(in srgb, var(--cyan, #22d3ee) 8%, transparent);
    }

.sports-pools-leaderboards__table th:first-child,
.sports-pools-leaderboards__table td:first-child {
      text-align: center;
      width: 3.2rem;
    }

.sports-pools-leaderboards__table th:nth-child(2),
.sports-pools-leaderboards__table td:nth-child(2) {
      text-align: left;
      min-width: 13rem;
      white-space: normal;
    }

.sports-pools-leaderboards__table th:nth-child(n + 3),
.sports-pools-leaderboards__table td:nth-child(n + 3) {
      text-align: right;
    }

.sports-pools-leaderboards__wallet {
      display: inline-flex;
      align-items: center;
      gap: 0.45rem;
      max-width: 16rem;
    }

.sports-pools-leaderboards__avatar {
      width: 1.2rem;
      height: 1.2rem;
      border-radius: 999px;
      object-fit: cover;
      flex: 0 0 auto;
      border: 1px solid color-mix(in srgb, var(--hero-border, rgba(255,255,255,0.1)) 75%, transparent);
      background: color-mix(in srgb, var(--bg-elevated, #0b1324) 88%, transparent);
    }

.sports-pools-leaderboards__name {
      display: inline-block;
      max-width: 13.8rem;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      font-weight: 700;
      font-size: 0.76rem;
      letter-spacing: 0.01em;
    }

.page-sports-match {
      display: none;
      width: 100%;
      max-width: min(100%, 1520px);
      margin: 0 auto;
      padding: 0.35rem clamp(0.85rem, 2.4vw, 1.75rem) 2.75rem;
      box-sizing: border-box;
      flex: 1 1 auto;
      color: var(--text, #e2e8f0);
    }

.page-sports-activity {
      display: none;
      width: 100%;
      max-width: min(100%, 1520px);
      margin: 0 auto;
      padding: 0.35rem clamp(0.85rem, 2.4vw, 1.75rem) 2.75rem;
      box-sizing: border-box;
      flex: 1 1 auto;
      color: var(--text, #e2e8f0);
    }

/** You / Open–Done list embedded under Sports pools nav (tab “Dashboard”) */
.sports-pools__panel--dashboard .sports-activity--embed {
      width: 100%;
      max-width: 100%;
      margin: 0;
      padding: 0;
      box-sizing: border-box;
      color: var(--text, #e2e8f0);
    }

.page-sports-owner-settle {
      display: none;
      width: 100%;
      max-width: 720px;
      margin: 0 auto;
      padding: 0.35rem 1.15rem 2.75rem;
      box-sizing: border-box;
      flex: 1 1 auto;
      color: var(--text, #e2e8f0);
    }

.sports-owner-settle {
      position: relative;
    }

.sports-owner-settle__status-host {
      margin-bottom: 0.65rem;
      min-height: 1.25rem;
    }

.sports-owner-settle__ribbon.sports-pools__chain-strip {
      margin: 0;
      font-size: 0.78rem;
    }

.sports-owner-settle__ribbon.sports-pools__chain-strip:empty {
      display: none;
    }

.sports-owner-settle__head {
      margin-bottom: 1.25rem;
    }

.sports-owner-settle__crumb {
      font-size: 0.72rem;
      font-weight: 750;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 55%, var(--text, #e2e8f0));
      margin-bottom: 0.55rem;
    }

.sports-owner-settle__crumb a {
      color: color-mix(in srgb, var(--cyan, #22d3ee) 65%, var(--text-muted, #94a3b8));
      text-decoration: none;
    }

.sports-owner-settle__crumb a:hover {
      text-decoration: underline;
    }

.sports-owner-settle__crumb-sep {
      margin: 0 0.35rem;
      opacity: 0.65;
    }

.sports-owner-settle__title {
      margin: 0 0 0.55rem;
      font-size: clamp(1.35rem, 3.2vw, 1.75rem);
      font-weight: 900;
      letter-spacing: -0.02em;
      line-height: 1.15;
    }

.sports-owner-settle__lede {
      margin: 0;
      font-size: 0.85rem;
      line-height: 1.5;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 22%, var(--text, #e2e8f0));
    }

.sports-owner-settle__code {
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: 0.78em;
      font-weight: 650;
      padding: 0.08rem 0.28rem;
      border-radius: 0.28rem;
      background: color-mix(in srgb, var(--bg-elevated, #1e293b) 88%, transparent);
    }

.sports-owner-settle__gate {
      margin: 0 0 1rem;
      padding: 0.85rem 1rem;
      border-radius: 0.55rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 90%, transparent);
      background: color-mix(in srgb, var(--bg-elevated, #1e293b) 75%, transparent);
      font-size: 0.82rem;
      font-weight: 650;
      line-height: 1.45;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 15%, var(--text, #e2e8f0));
    }

.sports-owner-settle__mount {
      display: flex;
      flex-direction: column;
      gap: 0.85rem;
    }

.sports-owner-settle__wallet-strip {
      padding: 0.75rem 0.95rem;
      border-radius: 0.6rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 85%, transparent);
      background: color-mix(in srgb, var(--bg-page, #0f172a) 55%, transparent);
      margin-bottom: 0.25rem;
    }

.sports-owner-settle__wallet-head {
      margin: 0 0 0.2rem;
      font-size: 0.58rem;
      font-weight: 900;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 35%, var(--text, #e2e8f0));
    }

.sports-owner-settle__wallet-addr {
      margin: 0;
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-weight: 700;
      font-size: 0.92rem;
      color: var(--text, #e2e8f0);
    }

.sports-activity {
      position: relative;
    }

.sports-activity__head {
      margin-bottom: clamp(0.65rem, 1.8vw, 1rem);
      padding-bottom: 0.55rem;
      border-bottom: 1px solid var(--hero-border, #1e293b);
    }

.sports-activity__crumb {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.5rem;
      font-size: 0.72rem;
      font-weight: 650;
      margin-bottom: 0.45rem;
    }

.sports-activity__crumb a {
      color: color-mix(in srgb, var(--cyan, #22d3ee) 55%, var(--text-muted, #94a3b8));
      text-decoration: none;
      font-weight: 800;
    }

.sports-activity__crumb a:hover {
      text-decoration: underline;
    }

.sports-activity__title {
      margin: 0;
      font-size: clamp(1.15rem, 2.4vw, 1.45rem);
      font-weight: 900;
      letter-spacing: -0.02em;
    }

.sports-activity__tabs {
      display: flex;
      gap: 0.35rem;
      margin: 0.85rem 0 0.65rem;
    }

.sports-activity__tab {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      box-sizing: border-box;
      border: 1px solid var(--hero-border, #1e293b);
      background: color-mix(in srgb, var(--bg-elevated) 88%, transparent);
      color: var(--text-muted, #94a3b8);
      font-size: 0.68rem;
      font-weight: 800;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      text-decoration: none;
      padding: 0.38rem 0.72rem;
      border-radius: 0.45rem;
      cursor: pointer;
      transition:
        color 0.15s ease,
        border-color 0.15s ease,
        background 0.15s ease;
    }

.sports-activity__tab[aria-selected="true"] {
      color: var(--text, #e2e8f0);
      border-color: color-mix(in srgb, var(--cyan) 42%, var(--hero-border));
      background: color-mix(in srgb, var(--cyan) 8%, var(--bg-elevated));
    }

.sports-activity__list {
      width: 100%;
      margin: 0;
      padding: 0;
      overflow-x: auto;
    }

.sports-activity__table {
      width: 100%;
      border-collapse: collapse;
      border-spacing: 0;
      table-layout: fixed;
      border: 1px solid color-mix(in srgb, var(--hero-border) 92%, transparent);
      border-radius: 0.65rem;
      overflow: hidden;
      background: color-mix(in srgb, var(--bg-elevated) 90%, transparent);
    }

.sports-activity__table thead th {
      text-align: left;
      font-size: 0.66rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--text-muted, #94a3b8);
      background: color-mix(in srgb, var(--bg-page) 78%, transparent);
      padding: 0.58rem 0.62rem;
      border-bottom: 1px solid color-mix(in srgb, var(--hero-border) 88%, transparent);
    }

.sports-activity__table tbody td {
      padding: 0.62rem;
      vertical-align: top;
      border-bottom: 1px solid color-mix(in srgb, var(--hero-border) 90%, transparent);
    }

.sports-activity__table tbody tr:last-child td {
      border-bottom: 0;
    }

.sports-activity__td-match {
      width: 26%;
    }

.sports-activity__row-tail {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.45rem;
      margin-left: auto;
    }

.sports-activity__row-meta {
      display: flex;
      flex-direction: column;
      gap: 0.12rem;
      min-width: 0;
    }

.sports-activity__row-label {
      margin: 0;
      font-size: 0.82rem;
      font-weight: 800;
      line-height: 1.25;
      overflow: visible;
      text-overflow: clip;
      white-space: normal;
      overflow-wrap: anywhere;
      word-break: break-word;
    }

.sports-activity__row-sub {
      margin: 0;
      font-size: 0.69rem;
      line-height: 1.3;
      font-weight: 650;
      color: var(--text-muted, #64748b);
    }

.sports-activity__pick {
      font-size: 0.72rem;
      font-weight: 900;
      font-variant-numeric: tabular-nums;
      color: color-mix(in srgb, var(--cyan) 55%, var(--text));
      letter-spacing: 0.04em;
    }

.sports-activity__amt {
      font-size: 0.72rem;
      font-weight: 800;
      font-variant-numeric: tabular-nums;
      color: var(--text, #e2e8f0);
    }

.sports-activity__btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 1px solid color-mix(in srgb, var(--cyan) 38%, var(--hero-border));
      background: color-mix(in srgb, var(--cyan) 12%, transparent);
      color: var(--text, #e2e8f0);
      font-size: 0.62rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 0.32rem 0.55rem;
      border-radius: 0.4rem;
      cursor: pointer;
      text-decoration: none;
      white-space: nowrap;
    }

.sports-activity__btn:hover {
      background: color-mix(in srgb, var(--cyan) 20%, transparent);
    }

.sports-activity__btn--share {
      text-transform: uppercase;
      letter-spacing: 0.08em;
      font-size: 0.62rem;
      font-weight: 800;
      border-color: color-mix(in srgb, var(--cyan) 38%, var(--hero-border));
      background: color-mix(in srgb, var(--cyan) 12%, transparent);
      color: var(--text, #e2e8f0);
    }

.sports-activity__btn--share:hover {
      background: color-mix(in srgb, var(--cyan) 20%, transparent);
      color: var(--text, #e2e8f0);
    }

.sports-activity__btn--refund {
      border-color: color-mix(in srgb, #fbbf24 52%, var(--hero-border));
      background: color-mix(in srgb, #fbbf24 16%, rgba(15, 23, 42, 0.25));
      color: color-mix(in srgb, #fef3c7 92%, var(--text, #e2e8f0));
    }

.sports-activity__btn--refund:hover {
      background: color-mix(in srgb, #fbbf24 26%, rgba(15, 23, 42, 0.2));
    }

.sports-activity__btn:disabled {
      opacity: 0.45;
      cursor: default;
    }

.sports-activity__empty {
      margin: 1rem 0;
      font-size: 0.78rem;
      color: var(--text-muted, #94a3b8);
      font-weight: 650;
    }

/** My bets: automatic mainnet / wallet / saved stake tx checks (see sports-activity.js). */
.sports-activity__diagnostics {
      margin: 1rem 0 0;
      padding: 0.75rem 0.85rem;
      border-radius: 0.55rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 70%, transparent);
      background: color-mix(in srgb, var(--bg-page, #0f172a) 88%, rgba(15, 23, 42, 0.92));
      font-size: 0.76rem;
      line-height: 1.45;
      color: var(--text-muted, #94a3b8);
      font-weight: 650;
    }

.sports-activity__diagnostics-title {
      margin: 0 0 0.45rem;
      font-size: 0.82rem;
      font-weight: 800;
      letter-spacing: 0.02em;
      color: var(--text, #e2e8f0);
    }

.sports-activity__diagnostics-list {
      margin: 0;
      padding-left: 1.1rem;
    }

.sports-activity__diagnostics-list li {
      margin: 0.28rem 0;
    }

.sports-activity__diagnostics-list code {
      font-size: 0.72rem;
      font-weight: 700;
      word-break: break-all;
      color: color-mix(in srgb, var(--text, #e2e8f0) 92%, var(--text-muted, #94a3b8));
    }

.sports-activity__diagnostics-ok {
      color: color-mix(in srgb, #34d399 78%, var(--text-muted, #94a3b8));
      font-weight: 780;
    }

.sports-activity__diagnostics-warn {
      color: color-mix(in srgb, #fbbf24 82%, var(--text-muted, #94a3b8));
      font-weight: 780;
    }

.sports-activity__diagnostics-muted {
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 95%, transparent);
      font-weight: 650;
    }

.sports-activity__diagnostics-link {
      color: var(--cyan, #22d3ee);
      font-weight: 800;
      text-decoration: underline;
      text-underline-offset: 0.12em;
    }

.sports-activity__diagnostics-link:hover {
      filter: brightness(1.08);
    }

.sports-activity__diagnostics-foot {
      margin: 0.55rem 0 0;
      font-size: 0.7rem;
      font-weight: 650;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 92%, transparent);
    }

.sports-activity__loading {
      margin: 1rem 0;
      display: inline-flex;
      align-items: center;
      gap: 0.55rem;
      position: relative;
      color: var(--text, #e2e8f0);
      font-size: 0.84rem;
      font-weight: 700;
    }

.sports-activity__spinner {
      width: 0.95rem;
      height: 0.95rem;
      border-radius: 999px;
      border: 2px solid color-mix(in srgb, var(--cyan) 22%, #ffffff 78%);
      border-top-color: var(--cyan, #22d3ee);
      animation: sports-activity-spin 0.8s linear infinite;
      flex: 0 0 auto;
    }

@keyframes sports-activity-spin {
      from {
        transform: rotate(0deg);
      }
      to {
        transform: rotate(360deg);
      }
    }

.sports-activity__section-title {
      margin: 0.85rem 0 0.45rem;
      font-size: 0.96rem;
      font-weight: 900;
      color: var(--text, #f8fafc);
      letter-spacing: 0.01em;
    }

/* Referrals tab: link + actions beside performance table */
.sports-activity__ref-dash {
      margin-top: 0.15rem;
    }

.sports-activity__ref-dash__grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
      gap: 1rem 1.25rem;
      align-items: start;
    }

@media (max-width: 900px) {
      .sports-activity__ref-dash__grid {
        grid-template-columns: 1fr;
      }
    }

.sports-activity__ref-dash__panel {
      border-radius: 0.72rem;
      border: 1px solid color-mix(in srgb, var(--hero-border) 88%, transparent);
      background: color-mix(in srgb, var(--bg-elevated) 88%, transparent);
      padding: 0.85rem 0.95rem;
      min-width: 0;
    }

.sports-activity__ref-dash__h {
      margin: 0 0 0.45rem;
      font-size: 0.82rem;
      font-weight: 800;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--text-muted, #94a3b8);
    }

.sports-activity__ref-dash__hint {
      margin: 0 0 0.65rem;
      font-size: 0.72rem;
      line-height: 1.38;
      font-weight: 500;
      color: var(--text-muted, #64748b);
    }

.sports-activity__ref-dash__url-block {
      display: flex;
      flex-direction: column;
      gap: 0.55rem;
    }

.sports-activity__ref-dash__url-scroll {
      max-width: 100%;
      overflow-x: auto;
      overflow-y: hidden;
      padding: 0.5rem 0.58rem;
      border-radius: 0.5rem;
      background: color-mix(in srgb, var(--bg-page) 70%, transparent);
      border: 1px solid color-mix(in srgb, var(--hero-border) 85%, transparent);
      -webkit-overflow-scrolling: touch;
    }

.sports-activity__ref-dash__url {
      display: block;
      margin: 0;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
      font-size: 0.68rem;
      font-weight: 500;
      line-height: 1.45;
      color: var(--text, #e2e8f0);
      white-space: nowrap;
    }

.sports-activity__ref-dash__actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.4rem;
    }

.sports-activity__ref-dash__actions .sports-activity__btn {
      font-size: 0.7rem;
      padding: 0.36rem 0.58rem;
    }

.sports-activity__ref-dash__code-row {
      margin: 0.75rem 0 0;
      font-size: 0.72rem;
      color: var(--text-muted, #94a3b8);
    }

.sports-activity__ref-dash__code-lbl {
      font-weight: 700;
      margin-right: 0.25rem;
    }

.sports-activity__ref-dash__kbd {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
      font-size: 0.78rem;
      font-weight: 700;
      padding: 0.18rem 0.45rem;
      border-radius: 0.35rem;
      background: color-mix(in srgb, var(--cyan) 12%, var(--bg-page));
      border: 1px solid color-mix(in srgb, var(--cyan) 28%, transparent);
      color: var(--text, #f1f5f9);
    }

.sports-activity__ref-dash__tops {
      margin: 0 0 0.55rem;
      font-size: 0.7rem;
      line-height: 1.35;
      font-weight: 500;
      color: var(--text-muted, #64748b);
    }

.sports-activity__ref-dash__earnings {
      margin: 0 0 0.7rem;
      padding: 0.6rem 0.7rem;
      border-radius: 0.55rem;
      border: 1px solid color-mix(in srgb, var(--cyan) 22%, transparent);
      background: color-mix(in srgb, var(--cyan) 6%, var(--bg-page));
    }

.sports-activity__ref-dash__earnings-h {
      margin: 0 0 0.45rem;
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--cyan) 70%, var(--text, #f1f5f9));
    }

.sports-activity__ref-dash__earnings-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 0.45rem 0.6rem;
      margin: 0 0 0.4rem;
    }

.sports-activity__ref-dash__earnings-grid > div {
      display: flex;
      flex-direction: column;
      gap: 0.15rem;
      min-width: 0;
    }

.sports-activity__ref-dash__earnings-grid dt {
      font-size: 0.62rem;
      font-weight: 700;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      color: var(--text-muted, #94a3b8);
    }

.sports-activity__ref-dash__earnings-grid dd {
      margin: 0;
      font-size: 0.86rem;
      font-weight: 700;
      color: var(--text, #f1f5f9);
      line-height: 1.2;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

.sports-activity__ref-dash__earnings-grid dd strong {
      font-weight: 800;
    }

.sports-activity__ref-dash__earnings-sub {
      font-size: 0.66rem;
      font-weight: 500;
      color: var(--text-muted, #94a3b8);
      margin-left: 0.25rem;
    }

.sports-activity__ref-dash__earnings-hint {
      margin: 0;
      font-size: 0.66rem;
      line-height: 1.4;
      font-weight: 500;
      color: var(--text-muted, #94a3b8);
    }

@media (max-width: 540px) {
      .sports-activity__ref-dash__earnings-grid {
        grid-template-columns: 1fr 1fr;
      }
      .sports-activity__ref-dash__earnings-grid > div:last-child {
        grid-column: 1 / -1;
      }
    }

.sports-activity__ref-dash__table-shell {
      margin: 0;
    }

.sports-activity__ref-dash__table {
      margin: 0;
    }

.sports-activity__ref-dash__empty {
      font-size: 0.74rem;
      line-height: 1.45;
      font-weight: 500;
      color: var(--text-muted, #94a3b8);
      text-align: left;
      padding: 0.85rem 0.75rem !important;
    }

/* Pinned to bottom of full-height designer; flex panel above absorbs extra space */
.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-modal-designer > .sports-activity__ref-designer-footer {
      margin-top: 0;
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      gap: 0.42rem;
      padding-top: 0.5rem;
      padding-bottom: 0;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-designer-footer > .sports-activity__row-tail {
      gap: 0.45rem;
      margin-left: 0;
    }

.sports-activity__ref-save-hint {
      margin: 0;
      padding: 0.52rem 0.62rem;
      border-radius: 0.65rem;
      border: 1px solid rgba(94, 234, 212, 0.28);
      background: linear-gradient(165deg, rgba(22, 56, 48, 0.55), rgba(8, 22, 18, 0.72));
      font-size: clamp(0.78rem, 2vw, 0.88rem);
      font-weight: 650;
      line-height: 1.45;
      letter-spacing: 0.01em;
      color: rgba(248, 250, 252, 0.98);
      text-align: center;
    }

.sports-activity__ref-save-hint[hidden] {
      display: none !important;
    }

.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-designer-footer .sports-activity__btn {
      font-size: 0.72rem;
      padding: 0.38rem 0.65rem;
    }

.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-save-btn.sports-activity__ref-save-btn--emphasize {
      border-color: rgba(94, 234, 212, 0.42);
      background: linear-gradient(165deg, rgba(38, 72, 64, 0.75), rgba(12, 28, 24, 0.96));
      color: #f8fafc;
      box-shadow:
        0 0 0 1px rgba(94, 234, 212, 0.12),
        0 6px 18px rgba(0, 0, 0, 0.35);
    }

.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-save-btn.sports-activity__ref-save-btn--emphasize:hover {
      border-color: rgba(94, 234, 212, 0.55);
      background: linear-gradient(165deg, rgba(48, 88, 76, 0.82), rgba(14, 34, 28, 0.98));
      color: #ffffff;
    }

@media (max-width: 767px) {
      /* Stack: designer grows so the control stack + actions can use remaining viewport */
      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-modal-designer {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        align-self: stretch;
        width: 100%;
        display: flex;
        flex-direction: column;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-panel {
        flex: 1 1 auto;
        min-height: 0;
        max-height: none;
      }

      /*
       * Referral card preview — mobile: lose the tall empty stage, fit card width to screen,
       * tighten padding/type so the mock credit isn’t oversized or clipped.
       */
      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-stage--solo {
        min-height: 0 !important;
        flex: 0 0 auto !important;
        padding: 0.35rem 0.45rem 0.15rem !important;
        justify-content: flex-start !important;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-preview-stack--orbit {
        gap: 0.28rem;
        width: 100%;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-card-orbit {
        width: 100%;
        max-width: min(540px, calc(100vw - 1.35rem)) !important;
        margin-inline: auto;
        filter: drop-shadow(0 16px 36px rgba(0, 0, 0, 0.48)) drop-shadow(0 0 1px rgba(255, 255, 255, 0.05));
      }

      /**
       * Mobile keeps the desktop landscape proportions (5:3 — matches the
       * 1200×720 canvas downloadReferralImage paints) so the preview and the
       * downloaded PNG look identical across viewports. The 5:3 ratio is
       * applied uniformly via the base .sports-activity__ref-card-pivot rule
       * below; we only relax min-height here so the card scales down with
       * width instead of slabbing out at 380px on tiny screens.
       */
      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-card-pivot {
        min-height: 0 !important;
        width: 100%;
        aspect-ratio: 5 / 3;
        overflow: hidden;
        border-radius: 1.05rem;
      }

      .sports-activity__ref-modal .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-card-orbit .sports-activity__ref-credit[data-ref-face] {
        min-height: 100% !important;
        height: 100%;
        box-sizing: border-box;
        padding: 0.62rem 0.68rem !important;
        gap: 0.42rem !important;
      }

      .sports-activity__ref-modal .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-stage--solo .sports-activity__ref-credit-avatar {
        width: calc(48px * var(--ref-text-scale, 1)) !important;
        height: calc(48px * var(--ref-text-scale, 1)) !important;
      }

      .sports-activity__ref-modal .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-stage--solo .sports-activity__ref-credit-chip {
        font-size: calc(0.76rem * var(--ref-text-scale, 1)) !important;
        padding: calc(0.36rem * var(--ref-text-scale, 1)) calc(0.55rem * var(--ref-text-scale, 1)) !important;
      }

      .sports-activity__ref-modal .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-stage--solo .sports-activity__ref-credit-title {
        font-size: clamp(0.72rem, 3.4vw, 0.95rem) !important;
      }

      .sports-activity__ref-modal .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-stage--solo .sports-activity__ref-credit-subtitle {
        font-size: clamp(0.62rem, 2.9vw, 0.78rem) !important;
      }

      .sports-activity__ref-modal .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-credit-link {
        font-size: clamp(0.58rem, 2.6vw, 0.72rem) !important;
        line-height: 1.28 !important;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-back-logo {
        max-width: 100% !important;
        height: auto !important;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-drag-hint {
        margin-top: 0;
        opacity: 0.85;
        transform: scale(0.9);
        transform-origin: center top;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-ambient {
        width: min(320px, 88vw);
        height: 100px;
        opacity: 0.2;
        transform: scaleX(0.72) translateY(36px);
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-modal-designer {
        padding: 0.55rem 0.5rem 0.2rem !important;
        border-radius: 0.85rem 0.85rem 0 0 !important;
        margin-top: 0 !important;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-designer-page-head {
        padding-bottom: 0.42rem !important;
        margin-bottom: 0.35rem !important;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-designer-page-title {
        font-size: clamp(0.92rem, 4vw, 1.12rem) !important;
      }

      .sports-activity__ref-modal .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-credit-back-code {
        font-size: clamp(0.92rem, 6.2vw, 1.18rem) !important;
        letter-spacing: 0.1em !important;
      }

      .sports-activity__ref-modal .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-credit-user strong {
        font-size: clamp(0.72rem, 3.2vw, 0.88rem) !important;
      }

      .sports-activity__ref-modal .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-credit-user span {
        font-size: clamp(0.56rem, 2.6vw, 0.7rem) !important;
      }
    }

.sports-activity__ref-modal {
      position: fixed;
      inset: 0;
      z-index: 100120;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      justify-content: stretch;
      padding: 0;
      min-height: 100dvh;
      background: transparent;
      --rise-border-accent: rgba(226, 232, 240, 0.62);
      --rise-card-shadow-idle: none;
      --rise-card-shadow-drag: none;
    }

/* Frosted veil — keep UI readable but let the real page read through as blur */
.sports-activity__ref-modal-backdrop {
      position: absolute;
      inset: 0;
      z-index: 0;
      background: radial-gradient(
        ellipse 130% 90% at 50% 42%,
        rgba(10, 14, 22, 0.38) 0%,
        rgba(4, 6, 12, 0.52) 52%,
        rgba(2, 4, 10, 0.58) 100%
      );
      backdrop-filter: blur(32px) saturate(1.12) brightness(0.88);
      -webkit-backdrop-filter: blur(32px) saturate(1.12) brightness(0.88);
    }

.sports-activity__ref-modal-card {
      position: relative;
      width: min(620px, calc(100vw - 1.5rem));
      border-radius: 1.25rem;
      border: 1px solid rgba(255, 255, 255, 0.09);
      background: linear-gradient(180deg, rgba(15, 18, 24, 0.96), rgba(10, 12, 16, 0.95));
      padding: 0.95rem;
      display: grid;
      gap: 0.7rem;
      box-shadow: none;
      overflow: hidden;
    }

.sports-activity__ref-modal-card::before {
      content: "";
      position: absolute;
      inset: -30% -10% auto -10%;
      height: 60%;
      pointer-events: none;
      background: radial-gradient(circle at 50% 50%, rgba(79, 158, 255, 0.12), transparent 70%);
      opacity: 0.45;
    }

.sports-activity__ref-modal-designer {
      width: min(560px, calc(100vw - 1.5rem));
      position: relative;
      padding: 0.15rem 0 0;
      background: transparent;
      border: none;
      box-shadow: none;
    }

.sports-activity__ref-modal-shell {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1rem;
      width: min(720px, calc(100vw - 1.5rem));
      max-height: min(94vh, 1200px);
      overflow-y: auto;
      padding-bottom: 0.25rem;
    }

/* Card floats centered on the backdrop; controls sit below (not beside a fake “stage” card). */
.sports-activity__ref-modal-shell--solo-card {
      flex: 1 1 auto;
      width: 100%;
      max-width: none;
      max-height: none;
      min-height: 0;
      gap: 0;
      overflow-x: hidden;
      overflow-y: auto;
      overscroll-behavior: contain;
      padding: max(0.75rem, env(safe-area-inset-top)) 1rem max(0.85rem, env(safe-area-inset-bottom));
      -webkit-overflow-scrolling: touch;
    }

@media (min-width: 768px) {
      .sports-activity__ref-modal-shell--solo-card {
        flex-direction: row;
        align-items: stretch;
        justify-content: center;
        gap: 1.25rem;
        padding: max(0.75rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right))
          max(0.85rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
      }

      /* Designer dock: full row height (match preview); scroll lives in .ref-panel between header and actions */
      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-modal-designer {
        order: 1;
        flex: 0 0 min(380px, 36vw);
        width: auto !important;
        max-width: min(420px, 40vw);
        min-width: min(300px, 34vw);
        margin-top: 0;
        align-self: stretch;
        min-height: 0;
        max-height: min(92vh, 920px);
        display: flex;
        flex-direction: column;
        box-shadow: 8px 0 44px rgba(0, 0, 0, 0.28);
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-stage--solo {
        order: 2;
        flex: 1 1 auto;
        min-width: 0;
        min-height: min(68vh, 760px);
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-panel {
        flex: 1 1 auto;
        min-height: 0;
        align-content: start;
        max-height: none;
        overflow-y: auto;
        padding-top: clamp(0.65rem, 2vh, 1.1rem);
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-preview-stack {
        max-width: min(560px, 100%);
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-card-orbit {
        max-width: min(520px, 100%);
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-modal-designer > .sports-activity__ref-panel {
        flex: 1 1 auto;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-modal-designer > .sports-activity__ref-designer-footer {
        flex-shrink: 0;
      }
    }

.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-stage--solo {
      flex: 1 1 auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      width: 100%;
      min-height: min(56vh, 620px);
      margin: 0;
      padding: 1rem 0.75rem 0.35rem;
      background: transparent !important;
      border: none !important;
      border-radius: 0 !important;
      box-shadow: none !important;
      overflow: visible;
}

.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-card-orbit,
.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-card-pivot {
      overflow: visible;
}

.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-stage--solo::before,
.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-stage--solo.sports-activity__ref-stage--spotlight::after {
      display: none !important;
      content: none !important;
    }

.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-preview-stack {
      width: 100%;
      max-width: min(560px, 94vw);
      align-items: center;
      justify-content: center;
    }

.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-card-orbit {
      max-width: min(540px, 92vw);
      filter: drop-shadow(0 28px 56px rgba(0, 0, 0, 0.55)) drop-shadow(0 0 1px rgba(255, 255, 255, 0.06));
    }

.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-modal-designer {
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      align-items: stretch;
      flex: 0 0 auto;
      min-height: 0;
      width: 100%;
      max-width: min(480px, 100%);
      margin-top: 0.25rem;
      padding: 0.85rem 0.85rem 0.35rem;
      border-radius: 0.95rem;
      border: 1px solid rgba(255, 255, 255, 0.07);
      background: linear-gradient(165deg, rgba(0, 0, 0, 0.86), rgba(0, 0, 0, 0.96));
      backdrop-filter: blur(14px) saturate(1.08);
      -webkit-backdrop-filter: blur(14px) saturate(1.08);
      box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.28);
    }

/* Shared scroll panel — flex / max-height set per breakpoint so desktop rules are not overridden */
.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-panel {
      min-height: 0;
      align-content: start;
      overflow-y: auto;
      overflow-x: hidden;
      border: 0;
      border-radius: 0;
      background: transparent;
      padding-top: clamp(0.55rem, 2.5vh, 1rem);
      padding-bottom: 0.3rem;
    }

/* Column header — above the scroll panel and above the background swatches card */
.sports-activity__ref-modal-shell--solo-card .sports-activity__ref-designer-page-head {
      flex-shrink: 0;
      width: 100%;
      margin: 0 0 0.5rem;
      padding: 0 0.1rem 0.55rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    }

.sports-activity__ref-designer-page-title {
      margin: 0;
      font-size: clamp(1.02rem, 2.6vw, 1.28rem);
      font-weight: 900;
      line-height: 1.22;
      letter-spacing: 0.015em;
      color: var(--text, #f8fafc);
      font-family: inherit;
    }

/* Premium card pricing lines (design total / selected premiums) — high contrast */
.sports-activity__ref-premium-pricing {
      color: #ffffff;
      font-size: clamp(0.92rem, 2.4vw, 1.08rem);
      font-weight: 650;
      line-height: 1.45;
      letter-spacing: 0.02em;
      text-transform: none;
    }

.sports-activity__ref-designer-page-head .sports-activity__ref-premium-pricing {
      margin: 0.5rem 0 0;
    }

.sports-activity__ref-modal-designer > .sports-activity__ref-designer-footer > .sports-activity__ref-premium-pricing {
      display: block;
      margin-top: 0.45rem;
    }

.sports-activity__ref-modal-designer > .sports-activity__ref-designer-footer > .sports-activity__ref-premium-pricing:first-of-type {
      margin-top: 0.55rem;
    }

/* Grouped swatch sections (background, text style, border color, chip bg, premium rims) */
.sports-activity__ref-designer-colors-card {
      border-radius: 0.72rem;
      border: 1px solid rgba(255, 255, 255, 0.11);
      background: rgba(4, 6, 10, 0.52);
      padding: 0.55rem 0.55rem 0.65rem;
      margin: 0;
    }

/* Layer 3: keep subcategory cards visible inside flattened category shells. */
.sports-activity__ref-designer-colors-card.sports-activity__ref-designer-category-shell .sports-activity__ref-swatch-group {
      border-radius: 0.66rem;
      border: 1px solid rgba(255, 255, 255, 0.11);
      background: rgba(4, 6, 10, 0.52);
      padding: 0.5rem 0.5rem 0.55rem;
    }




.sports-activity__ref-designer-colors-card > .sports-activity__row-sub:first-of-type {
      margin-top: 0;
      margin-bottom: 0.12rem;
    }

.sports-activity__ref-border-hint {
      margin: 10px 2px 0;
      min-height: 16px;
      font-size: 12px;
      line-height: 1.25;
      color: rgba(148, 163, 184, 0.95);
    }

.sports-activity__ref-designer-colors-card.is-rim-mode .sports-activity__swatch[data-ref-border] {
      box-shadow: inset 0 0 0 1px rgba(250, 204, 21, 0.45);
    }

@media (min-width: 960px) {
      .sports-activity__ref-modal-shell:not(.sports-activity__ref-modal-shell--solo-card) {
        flex-direction: row;
        align-items: flex-start;
        justify-content: center;
        gap: 1.25rem;
        width: min(1100px, calc(100vw - 2rem));
      }

      .sports-activity__ref-modal-shell:not(.sports-activity__ref-modal-shell--solo-card) .sports-activity__ref-stage {
        order: 1;
        flex: 1 1 min(520px, 52%);
        min-width: 0;
      }

      .sports-activity__ref-modal-shell:not(.sports-activity__ref-modal-shell--solo-card) .sports-activity__ref-modal-designer {
        order: 2;
        flex: 0 1 min(420px, 38vw);
        width: auto !important;
        max-width: 440px;
        min-width: 280px;
      }

      .sports-activity__ref-modal-shell:not(.sports-activity__ref-modal-shell--solo-card) .sports-activity__ref-panel {
        max-height: min(72vh, calc(92vh - 9rem));
      }

    }

.sports-activity__ref-preview-stack {
      display: flex;
      flex-direction: column;
      gap: 1rem;
      width: 100%;
      position: relative;
      z-index: 2;
      perspective: none;
    }

.sports-activity__ref-preview-stack--orbit {
      align-items: center;
      gap: 0.65rem;
    }

.sports-activity__ref-card-orbit {
      position: relative;
      width: 100%;
      max-width: min(520px, 96vw);
      margin-inline: auto;
      perspective: 1600px;
      perspective-origin: 50% 42%;
      touch-action: none;
      cursor: grab;
      user-select: none;
      -webkit-user-select: none;
      outline: none;
    }

.sports-activity__ref-card-orbit.is-dragging {
      cursor: grabbing;
    }

.sports-activity__ref-card-pivot {
      position: relative;
      width: 100%;
      /**
       * Locked to the same 5:3 ratio downloadReferralImage paints onto its
       * 1200×720 canvas. Both desktop and mobile previews (and therefore the
       * html2canvas snapshot of either) now produce identical proportions —
       * the on-screen card and the downloaded PNG are 1:1 across viewports.
       */
      aspect-ratio: 5 / 3;
      min-height: 0;
      transform-style: preserve-3d;
      transition: none;
    }

.sports-activity__ref-card-orbit .sports-activity__ref-credit[data-ref-face] {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      margin: 0;
      min-height: 0;
      transform-style: preserve-3d;
      box-sizing: border-box;
    }

.sports-activity__ref-card-orbit .sports-activity__ref-credit[data-ref-face="front"] {
      transform: rotateY(0deg);
      backface-visibility: hidden;
      -webkit-backface-visibility: hidden;
}

.sports-activity__ref-card-orbit .sports-activity__ref-credit[data-ref-face="back"] {
      transform: rotateY(180deg);
      backface-visibility: hidden;
      -webkit-backface-visibility: hidden;
}

.sports-activity__ref-drag-hint {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      margin-top: 0.15rem;
      pointer-events: none;
      user-select: none;
    }

.sports-activity__ref-drag-hint__chev {
      font-size: 1.45rem;
      font-weight: 700;
      line-height: 1;
      color: rgba(148, 163, 184, 0.88);
      letter-spacing: -0.08em;
    }

.sports-activity__ref-drag-hint__bar {
      width: 1.35rem;
      height: 2px;
      margin: 0 -0.05rem;
      border-radius: 2px;
      background: rgba(148, 163, 184, 0.45);
    }

.sports-activity__ref-face-wrap {
      width: 100%;
      transform-style: preserve-3d;
    }

.sports-activity__ref-face-wrap .sports-activity__ref-credit[data-ref-face] {
      transform: rotateX(1.25deg) translateZ(0);
      transform-origin: 50% 100%;
      transition: transform 180ms ease-out;
    }

.sports-activity__ref-face-label {
      margin: 0 0 0.5rem;
      font-size: 1.08rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      font-weight: 800;
      color: rgba(226, 232, 240, 0.72);
    }

/* Referral designer preview — chip/meta use CSS only (no inline fonts from JS) */
.sports-activity__ref-modal .sports-activity__ref-stage .sports-activity__ref-credit {
      min-height: 300px;
      padding: 1.12rem 1.14rem;
      gap: 0.78rem;
    }

.sports-activity__ref-modal .sports-activity__ref-stage .sports-activity__ref-credit-avatar {
      width: calc(64px * var(--ref-text-scale, 1));
      height: calc(64px * var(--ref-text-scale, 1));
    }

.sports-activity__ref-modal .sports-activity__ref-stage .sports-activity__ref-credit-chip {
      font-size: calc(0.88rem * var(--ref-text-scale, 1));
      padding: calc(0.46rem * var(--ref-text-scale, 1)) calc(0.72rem * var(--ref-text-scale, 1));
    }

.sports-activity__ref-modal .sports-activity__ref-stage .sports-activity__ref-credit-meta {
      font-size: calc(0.74rem * var(--ref-text-scale, 1));
    }

.sports-activity__ref-modal .sports-activity__ref-stage .sports-activity__ref-credit-qr {
      width: calc(62px * var(--ref-text-scale, 1));
      height: calc(62px * var(--ref-text-scale, 1));
    }

.sports-activity__ref-modal .sports-activity__ref-stage .sports-activity__ref-credit-qr-grid {
      width: calc(38px * var(--ref-text-scale, 1));
      height: calc(38px * var(--ref-text-scale, 1));
    }

.sports-activity__ref-slider-row {
      display: flex;
      align-items: center;
      gap: 0.65rem;
      width: 100%;
    }

.sports-activity__ref-slider-row input[type="range"] {
      flex: 1;
      min-width: 0;
      accent-color: #94a3b8;
    }

.sports-activity__ref-slider-readout {
      flex: 0 0 auto;
      min-width: 2.85rem;
      font-size: 0.78rem;
      font-weight: 800;
      font-variant-numeric: tabular-nums;
      letter-spacing: 0.02em;
      color: rgba(226, 232, 240, 0.88);
      text-align: right;
    }

.sports-activity__ref-panel {
      border: 1px solid rgba(255, 255, 255, 0.11);
      border-radius: 0.9rem;
      background: rgba(10, 10, 10, 0.92);
      padding: 0.7rem;
      display: grid;
      gap: 0.55rem;
      max-height: 72vh;
      overflow-y: auto;
      box-shadow: none;
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
    }

.sports-activity__ref-panel::-webkit-scrollbar {
      width: 4px;
    }

.sports-activity__ref-panel::-webkit-scrollbar-track {
      background: rgba(255, 255, 255, 0.08);
      border-radius: 999px;
      opacity: 0;
    }

.sports-activity__ref-panel::-webkit-scrollbar-thumb {
      background: rgba(255, 255, 255, 0.28);
      border-radius: 999px;
      opacity: 0;
    }

.sports-activity__ref-panel:hover::-webkit-scrollbar-track,
.sports-activity__ref-panel:hover::-webkit-scrollbar-thumb {
      opacity: 1;
    }

.sports-activity__ref-panel .sports-activity__row-sub {
      margin: 0.22rem 0 0.06rem;
      font-size: 0.62rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(226, 232, 240, 0.55);
      font-weight: 700;
    }

.sports-activity__ref-panel > .sports-activity__row-sub {
      margin: 0.5rem 0 0.2rem;
      font-size: 0.82rem;
      letter-spacing: 0.08em;
      color: #ffffff;
      font-weight: 800;
    }

.sports-activity__ref-stage {
      --ref-text-scale: 1;
      min-height: 0;
      border-radius: 1rem;
      background: radial-gradient(ellipse 80% 60% at 50% 40%, #141824 0%, #080a0e 100%);
      border: 1px solid rgba(255, 255, 255, 0.08);
      display: flex;
      flex-direction: column;
      align-items: stretch;
      padding: 1rem 1rem 1.15rem;
      touch-action: auto;
      cursor: default;
      user-select: text;
      position: relative;
      overflow: hidden;
      width: 100%;
    }

.sports-activity__ref-stage::before {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      background-image: radial-gradient(rgba(255, 255, 255, 0.16) 0.7px, transparent 0.7px);
      background-size: 16px 16px;
      opacity: 0.06;
    }

.sports-activity__ref-stage--spotlight::after {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 1;
      background: radial-gradient(
        ellipse 62% 58% at 50% 44%,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.22) 52%,
        rgba(0, 0, 0, 0.72) 100%
      );
    }

.sports-activity__ref-ambient {
      position: absolute;
      width: min(560px, 86%);
      height: 170px;
      border-radius: 999px;
      filter: blur(60px);
      opacity: 0.28;
      transform: scaleX(0.72) translateY(48px);
      pointer-events: none;
      transition: background 240ms cubic-bezier(0.4, 0, 0.2, 1), opacity 240ms cubic-bezier(0.4, 0, 0.2, 1);
    }

.sports-activity__ref-credit {
      border-radius: 1rem;
      min-height: 280px;
      padding: 1rem 1.05rem;
      color: #e2e8f0;
      border: 1px solid rgba(255, 255, 255, 0.24);
      box-shadow: var(--rise-card-shadow-idle);
      display: grid;
      align-content: start;
      gap: 0.72rem;
      backdrop-filter: blur(12px) saturate(1.2);
      -webkit-backdrop-filter: blur(12px) saturate(1.2);
      overflow: hidden;
      position: relative;
    }

.sports-activity__ref-credit[data-ref-face]::before {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      border-radius: inherit;
      z-index: 0;
      background-image:
        radial-gradient(ellipse 125% 85% at 50% -8%, rgba(255, 255, 255, 0.11), transparent 52%),
        radial-gradient(ellipse 110% 75% at 50% 108%, rgba(0, 0, 0, 0.38), transparent 58%),
        repeating-linear-gradient(
          -22deg,
          transparent,
          transparent 3px,
          rgba(255, 255, 255, 0.012) 3px,
          rgba(255, 255, 255, 0.012) 4px
        ),
        linear-gradient(145deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 36%, transparent 68%);
      background-blend-mode: normal, normal, soft-light, normal;
    }

/* Physical die-cut / tray inset on link row */
.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-linkbox {
      box-shadow:
        inset 0 4px 14px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.07),
        inset 0 -2px 8px rgba(0, 0, 0, 0.28),
        0 1px 0 rgba(255, 255, 255, 0.06);
      border-color: rgba(255, 255, 255, 0.14);
    }

/* Embossed enamel chip */
.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-chip {
      box-shadow:
        inset 0 2px 5px rgba(255, 255, 255, 0.92),
        inset 0 -4px 8px rgba(15, 23, 42, 0.14),
        0 6px 16px rgba(0, 0, 0, 0.38),
        0 1px 0 rgba(255, 255, 255, 0.35);
      border-color: rgba(255, 255, 255, 0.35);
      text-shadow: 0 1px 0 rgba(255, 255, 255, 0.85);
    }

/* Engraved / letterpress typography — same premium depth for every letter style */
.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-user strong {
      text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.18),
        0 -1px 1px rgba(0, 0, 0, 0.62),
        0 3px 14px rgba(0, 0, 0, 0.38),
        0 -2px 10px rgba(0, 0, 0, 0.28);
    }

.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-user span {
      text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.08),
        0 -1px 1px rgba(0, 0, 0, 0.55),
        0 2px 10px rgba(0, 0, 0, 0.32);
    }

.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-meta {
      text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.12),
        0 -1px 1px rgba(0, 0, 0, 0.55),
        0 2px 8px rgba(0, 0, 0, 0.35);
    }

.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-title:not(.sports-activity__ref-title--gradient) {
      text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.22),
        0 -1px 2px rgba(0, 0, 0, 0.72),
        0 4px 18px rgba(0, 0, 0, 0.48),
        0 -3px 12px rgba(0, 0, 0, 0.35);
    }

.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-title.sports-activity__ref-title--gradient {
      text-shadow: none;
      filter:
        drop-shadow(0 -1px 0 rgba(255, 255, 255, 0.22))
        drop-shadow(0 3px 5px rgba(0, 0, 0, 0.58))
        drop-shadow(0 10px 22px rgba(0, 0, 0, 0.42));
    }

.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-subtitle {
      text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.12),
        0 -1px 1px rgba(0, 0, 0, 0.55),
        0 2px 12px rgba(0, 0, 0, 0.35);
    }

.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-link {
      text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.08),
        0 -1px 1px rgba(0, 0, 0, 0.55),
        0 2px 10px rgba(0, 0, 0, 0.32);
    }

.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-back-code-hint,
.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-back-code,
.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-linklabel,
.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit--back .sports-activity__ref-credit-link {
      text-shadow:
        0 1px 0 rgba(255, 255, 255, 0.1),
        0 -1px 1px rgba(0, 0, 0, 0.58),
        0 2px 12px rgba(0, 0, 0, 0.34);
    }

.sports-activity__ref-credit[data-ref-face]:not([class*="ref-credit--rim-"]) {
      box-shadow:
        var(--rise-card-shadow-idle),
        0 32px 64px rgba(0, 0, 0, 0.46),
        0 12px 28px rgba(0, 0, 0, 0.35),
        inset 0 2px 1px rgba(255, 255, 255, 0.22),
        inset 0 -28px 52px rgba(0, 0, 0, 0.22),
        inset 0 0 0 1px rgba(255, 255, 255, 0.06);
    }

.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-avatar {
      box-shadow:
        0 4px 14px rgba(0, 0, 0, 0.38),
        inset 0 2px 4px rgba(255, 255, 255, 0.18),
        inset 0 -3px 8px rgba(0, 0, 0, 0.35);
    }

.sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-qr {
      box-shadow:
        inset 0 3px 10px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 4px 12px rgba(0, 0, 0, 0.28);
    }

.sports-activity__ref-credit > * {
      position: relative;
      z-index: 1;
    }

.sports-activity__ref-credit--back > .sports-activity__ref-back-deco {
      z-index: 0;
    }

/* Premium metal rims: angled gradient ring + chassis shadows (preview); PNG export uses multi-pass gradients in JS */
.sports-activity__ref-credit[class*="ref-credit--rim-"] {
      isolation: isolate;
      border-width: 0 !important;
      border-color: transparent !important;
      filter:
        drop-shadow(0 22px 44px rgba(0, 0, 0, 0.58))
        drop-shadow(0 0 1px rgba(255, 255, 255, 0.1));
    }

.sports-activity__ref-credit[class*="ref-credit--rim-"]::after {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      pointer-events: none;
      z-index: 3;
      padding: 6px;
      box-sizing: border-box;
      -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      -webkit-mask-composite: xor;
      mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
      mask-composite: exclude;
    }

.sports-activity__ref-credit--rim-platinum {
      box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.1),
        0 0 0 2px #030910,
        0 0 0 3px rgba(148, 163, 184, 0.55),
        0 0 0 5px #1e293b,
        0 0 0 6px rgba(241, 245, 249, 0.35),
        0 0 0 8px #334155,
        0 0 0 10px rgba(100, 116, 139, 0.55),
        0 0 0 12px #0b1220,
        0 0 0 14px rgba(203, 213, 225, 0.14),
        inset 0 3px 6px rgba(255, 255, 255, 0.28),
        inset 0 -14px 28px rgba(0, 0, 0, 0.48),
        inset 10px 0 22px rgba(255, 255, 255, 0.06),
        inset -8px 0 22px rgba(0, 0, 0, 0.32),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-platinum::after {
      background: linear-gradient(
        132deg,
        rgba(255, 255, 255, 0.95) 0%,
        rgba(226, 232, 240, 0.68) 14%,
        rgba(71, 85, 105, 0.98) 38%,
        rgba(15, 23, 42, 1) 52%,
        rgba(148, 163, 184, 0.82) 72%,
        rgba(248, 250, 252, 0.58) 88%,
        rgba(203, 213, 225, 0.42) 100%
      );
    }

.sports-activity__ref-credit--rim-gold {
      filter:
        drop-shadow(0 22px 46px rgba(0, 0, 0, 0.62))
        drop-shadow(0 0 18px rgba(253, 224, 71, 0.07));
      box-shadow:
        0 0 0 1px rgba(254, 249, 195, 0.18),
        0 0 0 2px #2a0f05,
        0 0 0 3px rgba(217, 119, 6, 0.75),
        0 0 0 5px #713f12,
        0 0 0 6px rgba(253, 230, 138, 0.42),
        0 0 0 8px #92400e,
        0 0 0 10px rgba(251, 191, 36, 0.35),
        0 0 0 12px #451a03,
        0 0 0 14px rgba(254, 243, 199, 0.12),
        inset 0 3px 7px rgba(255, 251, 235, 0.35),
        inset 0 -14px 30px rgba(42, 15, 5, 0.62),
        inset 10px 0 24px rgba(253, 230, 138, 0.09),
        inset -8px 0 24px rgba(0, 0, 0, 0.38),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-gold::after {
      background: linear-gradient(
        128deg,
        rgba(255, 251, 235, 0.98) 0%,
        rgba(253, 230, 138, 0.72) 18%,
        rgba(180, 83, 9, 0.98) 42%,
        rgba(69, 26, 6, 1) 54%,
        rgba(251, 191, 36, 0.72) 74%,
        rgba(254, 249, 195, 0.52) 92%,
        rgba(146, 64, 14, 0.55) 100%
      );
    }

.sports-activity__ref-credit--rim-rose {
      filter:
        drop-shadow(0 22px 44px rgba(0, 0, 0, 0.58))
        drop-shadow(0 0 16px rgba(251, 113, 133, 0.08));
      box-shadow:
        0 0 0 1px rgba(254, 242, 242, 0.14),
        0 0 0 2px #2c0c14,
        0 0 0 3px rgba(190, 18, 60, 0.72),
        0 0 0 5px #881337,
        0 0 0 6px rgba(254, 215, 170, 0.38),
        0 0 0 8px #9f1239,
        0 0 0 10px rgba(251, 113, 133, 0.28),
        0 0 0 12px #3f1318,
        0 0 0 14px rgba(254, 205, 211, 0.12),
        inset 0 3px 6px rgba(255, 241, 242, 0.22),
        inset 0 -14px 28px rgba(40, 10, 18, 0.58),
        inset 10px 0 22px rgba(253, 186, 186, 0.06),
        inset -8px 0 22px rgba(0, 0, 0, 0.34),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-rose::after {
      background: linear-gradient(
        130deg,
        rgba(255, 228, 230, 0.92) 0%,
        rgba(254, 205, 211, 0.65) 16%,
        rgba(157, 23, 77, 0.96) 40%,
        rgba(63, 19, 24, 1) 52%,
        rgba(251, 146, 162, 0.62) 72%,
        rgba(254, 215, 170, 0.48) 88%,
        rgba(136, 19, 55, 0.55) 100%
      );
    }

.sports-activity__ref-credit--rim-titanium {
      filter:
        drop-shadow(0 24px 48px rgba(0, 0, 0, 0.68))
        drop-shadow(0 0 12px rgba(148, 163, 184, 0.06));
      box-shadow:
        0 0 0 1px rgba(226, 232, 240, 0.08),
        0 0 0 2px #010409,
        0 0 0 3px rgba(51, 65, 85, 0.92),
        0 0 0 5px #0f172a,
        0 0 0 6px rgba(148, 163, 184, 0.36),
        0 0 0 8px #1e293b,
        0 0 0 10px rgba(71, 85, 105, 0.72),
        0 0 0 12px #020617,
        0 0 0 14px rgba(203, 213, 225, 0.1),
        inset 0 2px 5px rgba(255, 255, 255, 0.14),
        inset 0 -16px 32px rgba(0, 0, 0, 0.58),
        inset 12px 0 26px rgba(148, 163, 184, 0.05),
        inset -10px 0 26px rgba(0, 0, 0, 0.42),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-titanium::after {
      background: linear-gradient(
        136deg,
        rgba(226, 232, 240, 0.55) 0%,
        rgba(71, 85, 105, 0.92) 26%,
        rgba(2, 6, 23, 1) 48%,
        rgba(148, 163, 184, 0.58) 68%,
        rgba(15, 23, 42, 0.98) 82%,
        rgba(203, 213, 225, 0.38) 96%,
        rgba(30, 41, 59, 0.72) 100%
      );
    }

.sports-activity__ref-credit--rim-emerald {
      filter:
        drop-shadow(0 22px 44px rgba(0, 0, 0, 0.58))
        drop-shadow(0 0 18px rgba(52, 211, 153, 0.12));
      box-shadow:
        0 0 0 1px rgba(209, 250, 229, 0.22),
        0 0 0 2px #022c22,
        0 0 0 3px rgba(5, 150, 105, 0.78),
        0 0 0 5px #064e3b,
        0 0 0 6px rgba(167, 243, 208, 0.42),
        0 0 0 8px #047857,
        0 0 0 10px rgba(52, 211, 153, 0.32),
        0 0 0 12px #022c22,
        0 0 0 14px rgba(236, 253, 245, 0.12),
        inset 0 3px 7px rgba(236, 253, 245, 0.28),
        inset 0 -14px 30px rgba(2, 44, 34, 0.58),
        inset 10px 0 24px rgba(167, 243, 208, 0.08),
        inset -8px 0 24px rgba(0, 0, 0, 0.36),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-emerald::after {
      background: linear-gradient(
        128deg,
        rgba(236, 253, 245, 0.96) 0%,
        rgba(167, 243, 208, 0.68) 18%,
        rgba(5, 150, 105, 0.98) 42%,
        rgba(2, 44, 34, 1) 54%,
        rgba(52, 211, 153, 0.7) 74%,
        rgba(209, 250, 229, 0.52) 92%,
        rgba(6, 78, 59, 0.58) 100%
      );
    }

.sports-activity__ref-credit--rim-forest {
      filter:
        drop-shadow(0 22px 46px rgba(0, 0, 0, 0.62))
        drop-shadow(0 0 14px rgba(34, 197, 94, 0.1));
      box-shadow:
        0 0 0 1px rgba(187, 247, 208, 0.14),
        0 0 0 2px #052e16,
        0 0 0 3px rgba(22, 163, 74, 0.82),
        0 0 0 5px #14532d,
        0 0 0 6px rgba(134, 239, 172, 0.32),
        0 0 0 8px #166534,
        0 0 0 10px rgba(74, 222, 128, 0.26),
        0 0 0 12px #052e16,
        0 0 0 14px rgba(220, 252, 231, 0.1),
        inset 0 3px 6px rgba(220, 252, 231, 0.18),
        inset 0 -16px 32px rgba(5, 46, 22, 0.62),
        inset 10px 0 26px rgba(134, 239, 172, 0.06),
        inset -8px 0 26px rgba(0, 0, 0, 0.4),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-forest::after {
      background: linear-gradient(
        130deg,
        rgba(220, 252, 231, 0.55) 0%,
        rgba(74, 222, 128, 0.55) 20%,
        rgba(22, 101, 52, 0.98) 44%,
        rgba(5, 46, 22, 1) 56%,
        rgba(34, 197, 94, 0.62) 76%,
        rgba(134, 239, 172, 0.38) 90%,
        rgba(20, 83, 45, 0.62) 100%
      );
    }

.sports-activity__ref-credit--rim-sapphire {
      filter:
        drop-shadow(0 24px 48px rgba(0, 0, 0, 0.65))
        drop-shadow(0 0 16px rgba(59, 130, 246, 0.1));
      box-shadow:
        0 0 0 1px rgba(219, 234, 254, 0.18),
        0 0 0 2px #020617,
        0 0 0 3px rgba(37, 99, 235, 0.78),
        0 0 0 5px #1e3a8a,
        0 0 0 6px rgba(147, 197, 253, 0.38),
        0 0 0 8px #1d4ed8,
        0 0 0 10px rgba(96, 165, 250, 0.3),
        0 0 0 12px #172554,
        0 0 0 14px rgba(191, 219, 254, 0.12),
        inset 0 3px 7px rgba(239, 246, 255, 0.22),
        inset 0 -16px 32px rgba(2, 6, 23, 0.58),
        inset 10px 0 26px rgba(147, 197, 253, 0.08),
        inset -8px 0 26px rgba(0, 0, 0, 0.38),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-sapphire::after {
      background: linear-gradient(
        132deg,
        rgba(239, 246, 255, 0.92) 0%,
        rgba(147, 197, 253, 0.62) 18%,
        rgba(29, 78, 216, 0.98) 42%,
        rgba(2, 6, 23, 1) 52%,
        rgba(96, 165, 250, 0.68) 72%,
        rgba(191, 219, 254, 0.48) 88%,
        rgba(23, 37, 84, 0.58) 100%
      );
    }

.sports-activity__ref-credit--rim-bronze {
      filter:
        drop-shadow(0 22px 44px rgba(0, 0, 0, 0.6))
        drop-shadow(0 0 14px rgba(234, 88, 12, 0.08));
      box-shadow:
        0 0 0 1px rgba(254, 243, 199, 0.16),
        0 0 0 2px #1c0a02,
        0 0 0 3px rgba(180, 83, 9, 0.82),
        0 0 0 5px #713f12,
        0 0 0 6px rgba(253, 186, 116, 0.4),
        0 0 0 8px #9a3412,
        0 0 0 10px rgba(251, 146, 60, 0.32),
        0 0 0 12px #451a03,
        0 0 0 14px rgba(254, 215, 170, 0.12),
        inset 0 3px 6px rgba(255, 247, 237, 0.22),
        inset 0 -14px 30px rgba(28, 10, 2, 0.58),
        inset 10px 0 24px rgba(253, 186, 116, 0.08),
        inset -8px 0 24px rgba(0, 0, 0, 0.36),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-bronze::after {
      background: linear-gradient(
        128deg,
        rgba(255, 247, 237, 0.94) 0%,
        rgba(253, 186, 116, 0.65) 16%,
        rgba(154, 52, 18, 0.98) 40%,
        rgba(28, 10, 2, 1) 52%,
        rgba(234, 88, 12, 0.65) 72%,
        rgba(254, 215, 170, 0.45) 88%,
        rgba(113, 63, 18, 0.55) 100%
      );
    }

.sports-activity__ref-credit--rim-pine {
      filter:
        drop-shadow(0 24px 48px rgba(0, 0, 0, 0.68))
        drop-shadow(0 0 18px rgba(16, 185, 129, 0.14));
      box-shadow:
        0 0 0 1px rgba(209, 250, 229, 0.18),
        0 0 0 2px #020617,
        0 0 0 3px rgba(5, 150, 105, 0.85),
        0 0 0 5px #022c22,
        0 0 0 6px rgba(52, 211, 153, 0.38),
        0 0 0 8px #064e3b,
        0 0 0 10px rgba(20, 83, 45, 0.72),
        0 0 0 12px #052e16,
        0 0 0 14px rgba(167, 243, 208, 0.12),
        inset 0 3px 7px rgba(236, 253, 245, 0.22),
        inset 0 -16px 34px rgba(2, 44, 34, 0.65),
        inset 10px 0 26px rgba(52, 211, 153, 0.08),
        inset -8px 0 26px rgba(0, 0, 0, 0.45),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-pine::after {
      background: linear-gradient(
        128deg,
        rgba(236, 253, 245, 0.55) 0%,
        rgba(52, 211, 153, 0.55) 18%,
        rgba(6, 95, 75, 0.98) 40%,
        rgba(2, 44, 34, 1) 52%,
        rgba(22, 163, 74, 0.65) 74%,
        rgba(167, 243, 208, 0.42) 90%,
        rgba(5, 46, 22, 0.72) 100%
      );
    }

.sports-activity__ref-credit--rim-copper {
      filter:
        drop-shadow(0 22px 44px rgba(0, 0, 0, 0.62))
        drop-shadow(0 0 16px rgba(249, 115, 22, 0.1));
      box-shadow:
        0 0 0 1px rgba(254, 215, 170, 0.16),
        0 0 0 2px #2a0a06,
        0 0 0 3px rgba(194, 65, 12, 0.82),
        0 0 0 5px #7c2d12,
        0 0 0 6px rgba(253, 186, 116, 0.42),
        0 0 0 8px #c2410c,
        0 0 0 10px rgba(251, 146, 60, 0.3),
        0 0 0 12px #431407,
        0 0 0 14px rgba(254, 215, 170, 0.1),
        inset 0 3px 6px rgba(255, 247, 237, 0.2),
        inset 0 -14px 30px rgba(42, 10, 6, 0.6),
        inset 10px 0 24px rgba(253, 186, 116, 0.08),
        inset -8px 0 24px rgba(0, 0, 0, 0.38),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-copper::after {
      background: linear-gradient(
        126deg,
        rgba(255, 247, 237, 0.92) 0%,
        rgba(253, 186, 116, 0.62) 18%,
        rgba(194, 65, 12, 0.98) 40%,
        rgba(67, 20, 7, 1) 52%,
        rgba(253, 186, 116, 0.58) 72%,
        rgba(254, 215, 170, 0.42) 88%,
        rgba(124, 45, 18, 0.58) 100%
      );
    }

.sports-activity__ref-credit--rim-amethyst {
      filter:
        drop-shadow(0 24px 48px rgba(0, 0, 0, 0.66))
        drop-shadow(0 0 16px rgba(167, 139, 250, 0.12));
      box-shadow:
        0 0 0 1px rgba(233, 213, 255, 0.16),
        0 0 0 2px #1e1b4b,
        0 0 0 3px rgba(109, 40, 217, 0.82),
        0 0 0 5px #4c1d95,
        0 0 0 6px rgba(196, 181, 253, 0.38),
        0 0 0 8px #6d28d9,
        0 0 0 10px rgba(167, 139, 250, 0.28),
        0 0 0 12px #3b0764,
        0 0 0 14px rgba(233, 213, 255, 0.1),
        inset 0 3px 7px rgba(250, 245, 255, 0.2),
        inset 0 -16px 32px rgba(15, 11, 40, 0.6),
        inset 10px 0 26px rgba(196, 181, 253, 0.08),
        inset -8px 0 26px rgba(0, 0, 0, 0.4),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-amethyst::after {
      background: linear-gradient(
        130deg,
        rgba(250, 245, 255, 0.55) 0%,
        rgba(167, 139, 250, 0.55) 18%,
        rgba(109, 40, 217, 0.98) 40%,
        rgba(30, 27, 75, 1) 52%,
        rgba(196, 181, 253, 0.65) 72%,
        rgba(233, 213, 255, 0.4) 88%,
        rgba(59, 7, 100, 0.62) 100%
      );
    }

.sports-activity__ref-credit--rim-onyx {
      filter:
        drop-shadow(0 24px 50px rgba(0, 0, 0, 0.75))
        drop-shadow(0 0 10px rgba(255, 255, 255, 0.04));
      box-shadow:
        0 0 0 1px rgba(250, 250, 250, 0.08),
        0 0 0 2px #000000,
        0 0 0 3px rgba(64, 64, 64, 0.92),
        0 0 0 5px #171717,
        0 0 0 6px rgba(212, 212, 212, 0.32),
        0 0 0 8px #404040,
        0 0 0 10px rgba(163, 163, 163, 0.22),
        0 0 0 12px #0a0a0a,
        0 0 0 14px rgba(250, 250, 250, 0.06),
        inset 0 2px 5px rgba(255, 255, 255, 0.12),
        inset 0 -18px 36px rgba(0, 0, 0, 0.72),
        inset 12px 0 28px rgba(212, 212, 212, 0.05),
        inset -10px 0 28px rgba(0, 0, 0, 0.5),
        var(--ref-rim-glow, 0 0 0 transparent);
    }

.sports-activity__ref-credit--rim-onyx::after {
      background: linear-gradient(
        132deg,
        rgba(250, 250, 250, 0.35) 0%,
        rgba(82, 82, 82, 0.75) 22%,
        rgba(10, 10, 10, 1) 48%,
        rgba(250, 250, 250, 0.55) 56%,
        rgba(64, 64, 64, 0.92) 72%,
        rgba(23, 23, 23, 0.88) 88%,
        rgba(0, 0, 0, 1) 100%
      );
    }

.sports-activity__ref-credit--back .sports-activity__ref-credit-linklabel {
      margin: 0 0 0.2rem;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: rgba(226, 232, 240, 0.72);
    }

.sports-activity__ref-credit--back .sports-activity__ref-credit-linkbox {
      grid-template-columns: minmax(0, 1fr);
      align-items: start;
    }

/* Back footer: site URL + globe — must beat `.ref-credit--back .ref-credit-linkbox` align-items:start */
.sports-activity__ref-credit--back
      .sports-activity__ref-credit-linkbox.sports-activity__ref-back-link-slot {
      display: flex;
      align-items: center;
      justify-content: center;
      margin-top: 0.22rem;
      margin-bottom: 0.12rem;
      /* Tight tray sized to content — large min-height made the row look bottom-heavy */
      min-height: 2.75rem;
      padding: 0.52rem 0.85rem;
      box-sizing: border-box;
    }

.sports-activity__ref-back-link-slot {
      align-self: stretch;
      grid-template-columns: unset;
    }

.sports-activity__ref-back-site {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0.55rem;
      line-height: 1;
      min-height: 0;
    }

.sports-activity__ref-back-globe {
      flex: 0 0 auto;
      display: block;
      width: 1.35rem;
      height: 1.35rem;
      color: rgba(226, 232, 240, 0.92);
      opacity: 0.98;
    }

.sports-activity__ref-back-site-url {
      margin: 0;
      font-size: clamp(0.92rem, 2.6vw, 1.08rem);
      font-weight: 800;
      letter-spacing: 0.05em;
      color: rgba(248, 250, 252, 0.96);
      white-space: nowrap;
      line-height: 1.05;
      display: block;
    }

.sports-activity__ref-credit.sports-activity__ref-credit--back {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      justify-content: flex-start;
      gap: 0.42rem;
      text-align: center;
      min-height: 0;
      padding-bottom: 1.02rem;
    }

.sports-activity__ref-credit--front {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 0.72rem;
    }

.sports-activity__ref-back-deco {
      position: absolute;
      right: -6%;
      bottom: -8%;
      width: min(48%, 9.5rem);
      z-index: 0;
      pointer-events: none;
      opacity: 1;
    }

.sports-activity__ref-back-deco-mark {
      display: block;
      width: 100%;
      aspect-ratio: 1;
      height: auto;
      object-fit: contain;
      object-position: center;
      opacity: 0.12;
      filter: saturate(1.1);
    }

/* Fixed-height strip — swapping blue/silver banner assets must not change card width or height */
.sports-activity__ref-back-header {
      display: flex;
      align-items: center;
      justify-content: center;
      height: calc(7.85rem * var(--ref-text-scale, 1));
      min-height: calc(7.85rem * var(--ref-text-scale, 1));
      max-height: calc(7.85rem * var(--ref-text-scale, 1));
      margin: 0.12rem 0 0.48rem;
      position: relative;
      z-index: 1;
      flex-shrink: 0;
      box-sizing: border-box;
      overflow: hidden;
    }

.sports-activity__ref-back-logo {
      display: block;
      max-width: 98%;
      max-height: 100%;
      width: auto;
      height: auto;
      object-fit: contain;
      object-position: center;
      filter: drop-shadow(0 3px 14px rgba(0, 0, 0, 0.5));
    }

.sports-activity__ref-back-codeblock {
      position: relative;
      z-index: 1;
      margin: 0.22rem 0 0.28rem;
      padding: 0.62rem 0.85rem 0.72rem;
      border-radius: 0.85rem;
      border: 1px solid rgba(255, 255, 255, 0.22);
      background:
        linear-gradient(155deg, rgba(255, 255, 255, 0.1) 0%, transparent 42%),
        linear-gradient(145deg, rgba(2, 6, 23, 0.55), rgba(15, 23, 42, 0.42));
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        0 14px 36px rgba(0, 0, 0, 0.35),
        0 0 0 1px rgba(59, 130, 246, 0.12);
    }

.sports-activity__ref-back-code-hint {
      margin: 0 0 0.28rem;
      font-size: 0.62rem;
      font-weight: 800;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: rgba(148, 163, 184, 0.95);
    }

.sports-activity__ref-credit-top {
      display: flex;
      align-items: center;
      gap: 0.78rem;
      justify-content: space-between;
    }

.sports-activity__ref-credit-avatar {
      width: 58px;
      height: 58px;
      border-radius: 999px;
      border: 1px solid rgba(255, 255, 255, 0.25);
      flex: 0 0 auto;
    }

.sports-activity__ref-credit-user strong {
      display: block;
      font-size: 1.1rem;
      line-height: 1.15;
    }

.sports-activity__ref-credit-user {
      min-width: 0;
      flex: 1 1 auto;
    }

.sports-activity__ref-credit-user span {
      display: block;
      font-size: 0.84rem;
      color: rgba(226, 232, 240, 0.9);
    }

.sports-activity__ref-credit-chip {
      border-radius: 0.58rem;
      border: 1px solid rgba(255, 255, 255, 0.24);
      background: rgba(255, 255, 255, 0.95);
      color: #111827;
      font-size: 0.76rem;
      font-weight: 700;
      padding: 0.42rem 0.68rem;
      white-space: nowrap;
    }

.sports-activity__ref-credit-meta {
      justify-self: end;
      margin-top: -0.25rem;
      font-size: 0.61rem;
      letter-spacing: 0.04em;
      color: rgba(191, 219, 254, 0.86);
    }

.sports-activity__ref-credit-title {
      margin: 0.35rem 0 0;
      font-size: 3rem;
      font-weight: 900;
      letter-spacing: -0.02em;
      line-height: 1;
    }

.sports-activity__ref-credit-subtitle {
      margin: auto 0 0.14rem;
      transform: none;
      font-size: 1.06rem;
      font-weight: 700;
      color: rgba(226, 232, 240, 0.96);
    }

.sports-activity__ref-credit-linkbox {
      margin-top: 0.45rem;
      padding: 0.55rem 0.62rem;
      border-radius: 0.62rem;
      border: 1px solid rgba(255, 255, 255, 0.2);
      background: rgba(2, 6, 23, 0.28);
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      gap: 0.5rem;
      align-items: center;
    }

.sports-activity__ref-credit-linkcol {
      min-width: 0;
    }

.sports-activity__ref-credit-link {
      margin: 0;
      font-size: 0.82rem;
      opacity: 0.95;
      word-break: break-all;
    }

.sports-activity__ref-credit-qr {
      width: 56px;
      height: 56px;
      border-radius: 0.55rem;
      border: 1px solid rgba(255, 255, 255, 0.22);
      background: rgba(148, 163, 184, 0.14);
      display: grid;
      place-items: center;
      flex: 0 0 auto;
    }

.sports-activity__ref-credit-qr-grid {
      width: 34px;
      height: 34px;
      background-image:
        linear-gradient(90deg, rgba(241,245,249,0.95) 50%, transparent 50%),
        linear-gradient(rgba(241,245,249,0.95) 50%, transparent 50%);
      background-size: 6px 6px;
      opacity: 0.88;
    }

/* Front: narrow link tray + corner watermark picker (QR removed) */
.sports-activity__ref-credit--front .sports-activity__ref-credit-front-foot {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      justify-content: space-between;
      gap: 0.5rem 0.65rem;
      margin-top: 0;
      margin-bottom: 0.06rem;
    }

.sports-activity__ref-credit--front .sports-activity__ref-credit-linkbox--front {
      flex: 1 1 auto;
      min-width: 0;
      max-width: min(94%, 25rem);
      grid-template-columns: minmax(0, 1fr);
      margin-top: 0;
    }

.sports-activity__ref-credit-front-corner {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 0;
      flex: 0 0 auto;
      margin-left: auto;
      margin-top: 0;
    }

.sports-activity__ref-front-deco {
      width: 3.35rem;
      flex: 0 0 auto;
      pointer-events: none;
    }

.sports-activity__ref-front-deco-mark {
      display: block;
      width: 100%;
      height: auto;
      object-fit: contain;
      filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.45));
    }

.sports-activity__ref-credit-back-code {
      margin: 0;
      font-size: 1.28rem;
      font-weight: 900;
      color: #f8fafc;
      letter-spacing: 0.14em;
      font-variant-numeric: tabular-nums;
    }

.sports-activity__ref-colors {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 0.38rem;
    }

/* Referral designer: nested swatch groups under one section heading */
.sports-activity__ref-swatch-group {
      display: flex;
      flex-direction: column;
      gap: 0.32rem;
      margin-bottom: 0.55rem;
    }

.sports-activity__ref-swatch-group:last-child {
      margin-bottom: 0;
    }

.sports-activity__row-sub--group {
      margin: 0.12rem 0 0;
      font-size: 0.58rem;
      font-weight: 750;
      letter-spacing: 0.11em;
      text-transform: uppercase;
      color: rgba(226, 232, 240, 0.48);
      line-height: 1.35;
    }

.sports-activity__ref-swatch-group .sports-activity__ref-type-grid {
      margin-bottom: 0;
    }

/* Premium rim picker: color tiles (no text); matches export rim families */
.sports-activity__ref-rim-picker {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0.42rem;
      margin-bottom: 0.55rem;
    }

.sports-activity__ref-rim-swatch {
      aspect-ratio: 1;
      min-height: 2.4rem;
      width: 100%;
      border-radius: 0.55rem;
      border: 1px solid rgba(255, 255, 255, 0.14);
      padding: 0;
      margin: 0;
      cursor: pointer;
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 4px 14px rgba(0, 0, 0, 0.45);
      transition: transform 140ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 140ms ease, outline-color 140ms ease;
      -webkit-tap-highlight-color: transparent;
    }

.sports-activity__ref-rim-swatch:hover {
      transform: scale(1.06);
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.22),
        0 8px 20px rgba(0, 0, 0, 0.5);
    }

.sports-activity__ref-rim-swatch.is-active {
      outline: 2px solid rgba(248, 250, 252, 0.85);
      outline-offset: 2px;
    }

.sports-activity__ref-panel .sports-activity__btn {
      font-size: 0.56rem;
      padding: 0.32rem 0.5rem;
    }

.sports-activity__swatch {
      width: 2rem;
      height: 2rem;
      border-radius: 0.5rem;
      border: 1px solid rgba(255, 255, 255, 0.14);
      padding: 0;
      cursor: pointer;
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.07), 0 2px 8px rgba(0, 0, 0, 0.5);
      transition: transform 140ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 140ms ease, outline-color 140ms ease;
      position: relative;
    }

.sports-activity__swatch:hover {
      transform: scale(1.12);
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18), 0 6px 14px rgba(0, 0, 0, 0.58);
    }

.sports-activity__swatch.is-active {
      outline: 2px solid rgba(248, 250, 252, 0.82);
      outline-offset: 2px;
    }

.sports-activity__swatch.is-active::after {
      content: "✓";
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      font-size: 0.72rem;
      font-weight: 900;
      color: #fff;
      text-shadow: 0 1px 4px rgba(0, 0, 0, 0.65);
    }

.sports-activity__ref-type-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 0.42rem;
      margin-bottom: 0.55rem;
    }

.sports-activity__ref-type-grid--fonts {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

@media (max-width: 520px) {
      .sports-activity__ref-type-grid--fonts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

.sports-activity__ref-type-grid--weights {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

@media (max-width: 520px) {
      .sports-activity__ref-type-grid--weights {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

.sports-activity__ref-panel .sports-activity__row-sub--fine {
      font-size: 0.62rem;
      font-weight: 500;
      line-height: 1.4;
      color: rgba(226, 232, 240, 0.58);
      margin: -0.15rem 0 0.5rem;
    }

/* Back watermark — image chips (not text-first toggles) */
.sports-activity__ref-wm-picker {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 0.5rem;
      margin-bottom: 0.55rem;
    }

.sports-activity__ref-wm-picker--banner {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      align-items: stretch;
    }

.sports-activity__ref-wm-picker--banner .sports-activity__ref-banner-chip {
      min-height: 0;
      align-self: stretch;
    }

.sports-activity__ref-wm-chip {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 0.42rem;
      padding: 0.42rem 0.38rem 0.48rem;
      margin: 0;
      border: 1px solid rgba(255, 255, 255, 0.12);
      border-radius: 0.72rem;
      background: linear-gradient(165deg, rgba(28, 28, 28, 0.97), rgba(6, 6, 6, 0.94));
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 4px 14px rgba(0, 0, 0, 0.35);
      cursor: pointer;
      transition:
        border-color 160ms ease,
        box-shadow 160ms ease,
        transform 160ms cubic-bezier(0.34, 1.45, 0.64, 1);
      color: rgba(226, 232, 240, 0.92);
      -webkit-tap-highlight-color: transparent;
    }

.sports-activity__ref-wm-chip:hover {
      border-color: rgba(148, 163, 184, 0.45);
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 8px 20px rgba(0, 0, 0, 0.42);
      transform: translateY(-1px);
    }

.sports-activity__ref-wm-chip.is-active {
      border-color: rgba(226, 232, 240, 0.5);
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.1),
        0 0 0 1px rgba(0, 0, 0, 0.88),
        0 10px 26px rgba(0, 0, 0, 0.55);
    }

.sports-activity__ref-wm-chip-preview {
      position: relative;
      aspect-ratio: 1;
      border-radius: 0.55rem;
      display: grid;
      place-items: center;
      overflow: hidden;
    }

.sports-activity__ref-wm-chip-preview--mesh {
      background:
        radial-gradient(ellipse 90% 80% at 50% 88%, rgba(82, 82, 82, 0.18), transparent 55%),
        radial-gradient(circle at 30% 22%, rgba(255, 255, 255, 0.06), transparent 45%),
        linear-gradient(155deg, #050505 0%, #141414 48%, #050505 100%);
      border: 1px solid rgba(255, 255, 255, 0.1);
      box-shadow: inset 0 0 24px rgba(0, 0, 0, 0.35);
    }

/* Fixed square frame so Blue/Silver PNGs (different intrinsic ratios) render same visual size */
.sports-activity__ref-wm-chip-img {
      display: block;
      width: 3.15rem;
      height: 3.15rem;
      margin-inline: auto;
      object-fit: contain;
      object-position: center;
      flex-shrink: 0;
      filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.55));
    }

/* Banner chips: override square wm-preview — aspect-ratio:1 + width:100% was forcing height = column width */
.sports-activity__ref-wm-picker--banner .sports-activity__ref-banner-chip-preview {
      flex: 0 0 auto;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 4.85rem;
      min-height: 0;
      max-height: 4.85rem;
      aspect-ratio: unset;
      overflow: hidden;
      box-sizing: border-box;
      isolation: isolate;
    }

.sports-activity__ref-wm-picker--banner .sports-activity__ref-banner-chip-img.sports-activity__ref-wm-chip-img {
      width: auto;
      height: auto;
      max-width: 100%;
      max-height: 100%;
      margin-inline: 0;
      object-fit: contain;
      object-position: center center;
      flex-shrink: 1;
    }

.sports-activity__ref-wm-chip-preview--off {
      background: repeating-linear-gradient(
        -18deg,
        rgba(38, 38, 38, 0.65),
        rgba(38, 38, 38, 0.65) 4px,
        rgba(18, 18, 18, 0.72) 4px,
        rgba(18, 18, 18, 0.72) 8px
      );
      border: 1px dashed rgba(148, 163, 184, 0.35);
      box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.28);
    }

.sports-activity__ref-wm-chip-off-glyph {
      width: 42%;
      height: 42%;
      max-width: 2rem;
      max-height: 2rem;
      border-radius: 999px;
      border: 2px solid rgba(148, 163, 184, 0.55);
      position: relative;
      opacity: 0.85;
    }

.sports-activity__ref-wm-chip-off-glyph::after {
      content: "";
      position: absolute;
      left: 50%;
      top: 50%;
      width: 62%;
      height: 2px;
      background: rgba(248, 113, 113, 0.85);
      border-radius: 2px;
      transform: translate(-50%, -50%) rotate(-42deg);
      box-shadow: 0 0 8px rgba(248, 113, 113, 0.35);
    }

.sports-activity__ref-wm-chip-label {
      font-size: 0.62rem;
      font-weight: 800;
      letter-spacing: 0.07em;
      text-transform: uppercase;
      text-align: center;
      color: rgba(203, 213, 225, 0.82);
    }

.sports-activity__ref-wm-chip.is-active .sports-activity__ref-wm-chip-label {
      color: rgba(241, 245, 249, 0.96);
    }

.sports-activity__ref-wm-chip--none.is-active .sports-activity__ref-wm-chip-preview--off {
      border-color: rgba(148, 163, 184, 0.48);
    }

.sports-activity__ref-type-btn--face {
      font-size: 0.68rem;
      min-height: 1.95rem;
      padding: 0.3rem 0.38rem;
      line-height: 1.15;
    }

.sports-activity__ref-type-btn {
      border: 1px solid rgba(58, 58, 58, 0.75);
      background: linear-gradient(165deg, rgba(34, 34, 34, 0.96), rgba(10, 10, 10, 0.99));
      color: rgba(248, 250, 252, 0.94);
      border-radius: 0.55rem;
      min-height: 2.1rem;
      padding: 0.35rem 0.5rem;
      font-size: 0.78rem;
      font-weight: 700;
      cursor: pointer;
    }

.sports-activity__ref-type-btn:hover {
      border-color: rgba(120, 120, 120, 0.45);
      background: linear-gradient(165deg, rgba(48, 48, 48, 0.98), rgba(12, 12, 12, 1));
    }

.sports-activity__ref-type-btn.is-active {
      border-color: rgba(226, 232, 240, 0.42);
      background: linear-gradient(165deg, rgba(58, 58, 58, 0.98), rgba(14, 14, 14, 1));
      box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.09),
        0 0 0 1px rgba(0, 0, 0, 0.85);
    }

.sports-activity__ref-type-btn--metal {
      border-color: rgba(180, 180, 180, 0.22);
      background: linear-gradient(155deg, rgba(42, 42, 42, 0.72), rgba(10, 10, 10, 0.9));
    }

.sports-activity__ref-type-btn--metal:hover {
      border-color: rgba(253, 230, 138, 0.35);
    }

.sports-activity__ref-type-btn--metal.is-active {
      border-color: rgba(226, 232, 240, 0.38);
      background: linear-gradient(155deg, rgba(56, 56, 56, 0.65), rgba(12, 12, 12, 0.92));
      box-shadow:
        0 0 0 1px rgba(248, 250, 252, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    }

/* Referral designer — flat UI: no box / text / drop shadows on modal or preview cards */
.sports-activity__ref-modal .sports-activity__ref-ambient {
      display: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-modal-card {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-panel {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-credit[data-ref-face],
.sports-activity__ref-modal .sports-activity__ref-credit[data-ref-face][class*="ref-credit--rim-"] {
      box-shadow: none !important;
      filter: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-title.sports-activity__ref-title--gradient {
      filter: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-credit[data-ref-face],
.sports-activity__ref-modal .sports-activity__ref-credit[data-ref-face] * {
      text-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-linkbox,
.sports-activity__ref-modal .sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-chip,
.sports-activity__ref-modal .sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-avatar,
.sports-activity__ref-modal .sports-activity__ref-credit[data-ref-face] .sports-activity__ref-credit-qr {
      box-shadow: none !important;
    }

/*
 * Mobile customizer preview must mirror the exported PNG shape.
 * Earlier mobile rules sit before the generic referral-card rules, so this
 * late override is intentionally placed after all card face styling. It wins
 * the cascade and prevents content/min-height rules from turning the preview
 * back into a tall portrait card while leaving the desktop designer untouched.
 */
@media (max-width: 767.98px) {
      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-stage--solo {
        min-height: 0 !important;
        height: auto !important;
        padding: 0.35rem 0.45rem 0.15rem !important;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-preview-stack--orbit {
        width: min(540px, calc(100vw - 1.35rem)) !important;
        max-width: min(540px, calc(100vw - 1.35rem)) !important;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-card-orbit {
        width: min(540px, calc(100vw - 1.35rem)) !important;
        max-width: min(540px, calc(100vw - 1.35rem)) !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 5 / 3 !important;
      }

      .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-card-pivot {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        aspect-ratio: 5 / 3 !important;
        overflow: hidden !important;
      }

      .sports-activity__ref-modal .sports-activity__ref-modal-shell--solo-card .sports-activity__ref-card-orbit .sports-activity__ref-credit[data-ref-face] {
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        max-height: none !important;
        padding: 0.62rem 0.68rem !important;
        overflow: hidden !important;
      }
    }

.sports-activity__ref-modal .sports-activity__ref-front-deco-mark {
      filter: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-back-codeblock {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-back-logo {
      filter: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-wm-chip,
.sports-activity__ref-modal .sports-activity__ref-wm-chip:hover,
.sports-activity__ref-modal .sports-activity__ref-wm-chip.is-active {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-wm-chip-preview--mesh,
.sports-activity__ref-modal .sports-activity__ref-wm-chip-preview--off {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-wm-chip-img {
      filter: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-banner-chip-img {
      filter: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-wm-chip-off-glyph::after {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__swatch {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__swatch:hover {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__swatch.is-active::after {
      text-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__swatch.is-active {
      outline: none !important;
      border-width: 2px !important;
      border-style: solid !important;
      border-color: rgba(248, 250, 252, 0.88) !important;
      outline-offset: 0 !important;
    }

.sports-activity__ref-modal .sports-activity__ref-type-btn.is-active {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-type-btn--metal.is-active {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-rim-swatch {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-rim-swatch:hover {
      box-shadow: none !important;
    }

.sports-activity__ref-modal .sports-activity__ref-rim-swatch.is-active {
      outline: none !important;
      border-width: 2px !important;
      border-style: solid !important;
      border-color: rgba(248, 250, 252, 0.88) !important;
      outline-offset: 0 !important;
    }

.sports-activity__swatch[data-swatch="bg-ocean"] { background: linear-gradient(135deg,#051124,#0a2a4d); }
.sports-activity__swatch[data-swatch="bg-midnight"] { background: linear-gradient(135deg,#020617,#0b1220); }
.sports-activity__swatch[data-swatch="bg-aurora"] { background: linear-gradient(135deg,#052e2b,#0f172a); }
.sports-activity__swatch[data-swatch="bg-neon-violet"] { background: linear-gradient(135deg,#1e1b4b,#581c87); }
.sports-activity__swatch[data-swatch="bg-royal-blue"] { background: linear-gradient(135deg,#0b1d4d,#1d4ed8); }
.sports-activity__swatch[data-swatch="bg-emerald"] { background: linear-gradient(135deg,#052e2b,#065f46); }
.sports-activity__swatch[data-swatch="bg-sunset"] { background: linear-gradient(135deg,#4a1a0d,#9a3412); }
.sports-activity__swatch[data-swatch="bg-ruby"] { background: linear-gradient(135deg,#3f0b1a,#be123c); }
.sports-activity__swatch[data-swatch="bg-graphite"] { background: linear-gradient(135deg,#111827,#1f2937); }
.sports-activity__swatch[data-swatch="bg-obsidian"] { background: linear-gradient(135deg,#020617,#111827); }

.sports-activity__swatch[data-swatch="border-silver"] { background: rgba(255,255,255,0.35); }
.sports-activity__swatch[data-swatch="border-cyan"] { background: rgba(34,211,238,0.85); }
.sports-activity__swatch[data-swatch="border-violet"] { background: rgba(167,139,250,0.85); }
.sports-activity__swatch[data-swatch="border-emerald"] { background: rgba(52,211,153,0.85); }
.sports-activity__swatch[data-swatch="border-sunset"] { background: rgba(251,146,60,0.88); }
.sports-activity__swatch[data-swatch="border-gold"] { background: rgba(250,204,21,0.9); }
.sports-activity__swatch[data-swatch="border-rose"] { background: rgba(244,114,182,0.9); }

.sports-activity__swatch[data-swatch="text-clean"] { background: linear-gradient(135deg,#f8fafc,#cbd5e1); }
.sports-activity__swatch[data-swatch="text-neon"] { background: linear-gradient(135deg,#67e8f9,#a5b4fc); }
.sports-activity__swatch[data-swatch="text-mint"] { background: linear-gradient(135deg,#6ee7b7,#99f6e4); }
.sports-activity__swatch[data-swatch="text-sunset"] { background: linear-gradient(135deg,#fdba74,#fcd34d); }
.sports-activity__swatch[data-swatch="text-royal"] { background: linear-gradient(135deg,#a5b4fc,#c7d2fe); }

.sports-activity__ref-panel input[type="range"] {
      width: 100%;
      accent-color: #94a3b8;
    }

/* Keep print color slider visibly spectrum at default (all browsers). */
.sports-activity__ref-panel input[type="range"][data-ref-print-color] {
      -webkit-appearance: none;
      appearance: none;
      height: 14px;
      border-radius: 999px;
      background: linear-gradient(90deg,#ffffff 0%,#ff0000 16%,#ff8a00 30%,#ffd500 44%,#24d26a 58%,#00c2ff 72%,#4f46e5 86%,#d946ef 100%);
      border: 1px solid rgba(255, 255, 255, 0.22);
    }

.sports-activity__ref-panel input[type="range"][data-ref-print-color]::-webkit-slider-runnable-track {
      height: 14px;
      border-radius: 999px;
      background: transparent;
    }

.sports-activity__ref-panel input[type="range"][data-ref-print-color]::-moz-range-track {
      height: 14px;
      border-radius: 999px;
      background: transparent;
      border: 0;
    }

.sports-activity__ref-pay-modal {
      position: fixed;
      inset: 0;
      z-index: 5;
      display: grid;
      place-items: center;
      background: rgba(0, 0, 0, 0.62);
      padding: 1rem;
    }

.sports-activity__ref-pay-card {
      width: min(460px, 96vw);
      border-radius: 0.9rem;
      border: 1px solid rgba(255, 255, 255, 0.16);
      background: linear-gradient(165deg, rgba(12, 12, 12, 0.98), rgba(4, 4, 4, 0.98));
      box-shadow: 0 18px 48px rgba(0, 0, 0, 0.55);
      padding: 1rem 1rem 0.85rem;
      display: grid;
      gap: 0.65rem;
    }

.sports-activity__ref-pay-hero {
      display: flex;
      flex-direction: column;
      gap: 0.2rem;
      align-items: center;
      text-align: center;
      padding: 0.15rem 0 0.35rem;
    }

.sports-activity__ref-pay-kicker {
      font-size: 0.72rem;
      font-weight: 750;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: rgba(148, 163, 184, 0.95);
    }

.sports-activity__ref-pay-usd {
      margin: 0;
      font-size: clamp(1.35rem, 4.5vw, 1.75rem);
      font-weight: 900;
      font-variant-numeric: tabular-nums;
      letter-spacing: 0.02em;
      color: #ffffff;
      line-height: 1.15;
    }

.sports-activity__ref-pay-pick {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem 0.75rem;
      padding: 0.35rem 0 0;
    }

.sports-activity__ref-pay-pick-label {
      margin: 0;
      font-size: 0.82rem;
      font-weight: 750;
      color: rgba(248, 250, 252, 0.92);
    }

.sports-activity__ref-pay-input--asset {
      flex: 1 1 140px;
      min-width: min(200px, 100%);
      max-width: 280px;
      margin-left: auto;
      font-weight: 700;
    }

.sports-activity__ref-pay-min {
      margin: -0.15rem 0 0;
      font-size: 0.8rem;
      font-weight: 600;
      line-height: 1.35;
      color: rgba(203, 213, 225, 0.92);
    }

.sports-activity__ref-pay-cta {
      width: 100%;
      justify-content: center;
      margin-top: 0.15rem;
      padding: 0.62rem 1rem;
      font-size: 0.92rem;
      font-weight: 800;
      letter-spacing: 0.04em;
      border-color: rgba(94, 234, 212, 0.38);
      background: linear-gradient(165deg, rgba(45, 92, 82, 0.55), rgba(12, 38, 32, 0.92));
      color: #f8fafc;
      box-shadow: 0 8px 28px rgba(0, 0, 0, 0.38);
    }

.sports-activity__ref-pay-cta:hover {
      border-color: rgba(94, 234, 212, 0.55);
      background: linear-gradient(165deg, rgba(52, 110, 98, 0.62), rgba(14, 48, 40, 0.96));
      color: #ffffff;
    }

.sports-activity__ref-pay-status {
      margin: 0;
      min-height: 1.15em;
      font-size: 0.78rem;
      font-weight: 600;
      line-height: 1.35;
      color: rgba(148, 163, 184, 0.98);
      text-align: center;
    }

/* Collapsed extras — treasury line + manual verify */
.sports-activity__ref-pay-extra {
      margin-top: 0.15rem;
      padding: 0.45rem 0.55rem 0.55rem;
      border-radius: 0.72rem;
      border: 1px solid rgba(255, 255, 255, 0.09);
      background: rgba(6, 8, 12, 0.52);
    }

.sports-activity__ref-pay-extra summary {
      cursor: pointer;
      font-size: 0.78rem;
      font-weight: 650;
      line-height: 1.38;
      color: rgba(148, 163, 184, 0.98);
      padding: 0.12rem 0;
    }

.sports-activity__ref-pay-extra[open] summary {
      margin-bottom: 0.38rem;
      padding-bottom: 0.42rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    }

.sports-activity__ref-pay-dest {
      margin: 0 0 0.45rem;
      font-size: 0.74rem;
      font-weight: 600;
      line-height: 1.45;
      word-break: break-all;
      font-variant-numeric: tabular-nums;
      color: rgba(226, 232, 240, 0.92);
    }

.sports-activity__ref-pay-manual-label {
      display: block;
      margin: 0.35rem 0 0.28rem;
      font-size: 0.72rem;
      font-weight: 650;
      color: rgba(148, 163, 184, 0.95);
    }

/* Optional path — collapsed by default so “Pay with wallet” stays the main story */
.sports-activity__ref-pay-manual {
      margin-top: 0.1rem;
      padding: 0.45rem 0.55rem 0.55rem;
      border-radius: 0.72rem;
      border: 1px solid rgba(255, 255, 255, 0.09);
      background: rgba(6, 8, 12, 0.52);
    }

.sports-activity__ref-pay-manual summary {
      cursor: pointer;
      font-size: 0.8rem;
      font-weight: 600;
      line-height: 1.38;
      color: rgba(148, 163, 184, 0.98);
      padding: 0.12rem 0;
    }

.sports-activity__ref-pay-manual[open] summary {
      margin-bottom: 0.38rem;
      padding-bottom: 0.42rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    }

.sports-activity__ref-pay-manual-lede {
      margin: 0 0 0.45rem;
      font-size: 0.76rem;
      line-height: 1.38;
      font-weight: 550;
      color: rgba(203, 213, 225, 0.88);
    }

.sports-activity__ref-pay-fx-note {
      margin: 0;
      font-size: 0.72rem;
      line-height: 1.38;
      color: rgba(148, 163, 184, 0.92);
    }

.sports-activity__ref-pay-verify-inline {
      margin-top: 0.38rem;
      width: 100%;
    }

.sports-activity__ref-pay-input {
      width: 100%;
      border-radius: 0.5rem;
      border: 1px solid rgba(255, 255, 255, 0.2);
      background: rgba(8, 8, 8, 0.92);
      color: #f8fafc;
      font-size: 0.82rem;
      padding: 0.45rem 0.55rem;
    }

.sports-activity__row-tail--pay {
      justify-content: flex-end;
      margin-left: 0;
      padding-top: 0.2rem;
    }

/* Referral designer: footer + panel actions — near-black, no slate/blue-gray */
.sports-activity__ref-modal .sports-activity__ref-panel .sports-activity__btn,
.sports-activity__ref-modal .sports-activity__row-tail .sports-activity__btn {
      border-color: rgba(58, 58, 58, 0.72);
      background: linear-gradient(165deg, rgba(36, 36, 36, 0.97), rgba(8, 8, 8, 1));
      color: rgba(248, 250, 252, 0.96);
    }

.sports-activity__ref-modal .sports-activity__ref-panel .sports-activity__btn:hover,
.sports-activity__ref-modal .sports-activity__row-tail .sports-activity__btn:hover {
      border-color: rgba(130, 130, 130, 0.42);
      background: linear-gradient(165deg, rgba(52, 52, 52, 0.98), rgba(10, 10, 10, 1));
      color: rgba(255, 255, 255, 1);
    }

/** Mobile / narrow: stack positions as labeled cards (avoids crushed 5-col table) */
@media (max-width: 767px) {
      .sports-activity__list {
        overflow-x: visible;
      }

      .sports-activity__table {
        display: block;
        table-layout: auto;
        border: none;
        border-radius: 0;
        background: transparent;
        overflow: visible;
      }

      .sports-activity__table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
      }

      .sports-activity__table tbody {
        display: block;
      }

      .sports-activity__table tbody tr {
        display: block;
        margin-bottom: 0.75rem;
        border: 1px solid color-mix(in srgb, var(--hero-border) 92%, transparent);
        border-radius: 0.65rem;
        overflow: hidden;
        background: color-mix(in srgb, var(--bg-elevated) 90%, transparent);
      }

      .sports-activity__table tbody td {
        display: grid;
        grid-template-columns: minmax(4.6rem, 30%) 1fr;
        gap: 0.35rem 0.55rem;
        align-items: start;
        padding: 0.55rem 0.68rem;
        border-bottom: 1px solid color-mix(in srgb, var(--hero-border) 88%, transparent);
        vertical-align: top;
        word-break: break-word;
        overflow-wrap: anywhere;
      }

      .sports-activity__table tbody td:last-child {
        border-bottom: none;
      }

      .sports-activity__table tbody td::before {
        content: attr(data-label);
        font-weight: 800;
        font-size: 0.58rem;
        text-transform: uppercase;
        letter-spacing: 0.07em;
        color: var(--text-muted, #94a3b8);
        padding-top: 0.18em;
        line-height: 1.25;
      }

      .sports-activity__table tbody td.sports-activity__td-actions {
        grid-template-columns: 1fr;
      }

      .sports-activity__table tbody td.sports-activity__td-actions::before {
        margin-bottom: 0.12rem;
      }

      .sports-activity__table tbody td > * {
        min-width: 0;
      }

      .sports-activity__td-match,
      .sports-activity__td-pick,
      .sports-activity__td-stake,
      .sports-activity__td-status,
      .sports-activity__td-actions {
        width: auto;
      }

      .sports-activity__row-label {
        white-space: normal;
        overflow: visible;
        text-overflow: unset;
        font-size: 0.76rem;
        line-height: 1.38;
      }

      .sports-activity__row-sub {
        font-size: 0.63rem;
        line-height: 1.45;
      }

      .sports-activity__amt {
        font-size: 0.66rem;
        line-height: 1.42;
        display: block;
      }

      .sports-activity__pick {
        font-size: 0.68rem;
      }

      .sports-activity__row-tail {
        margin-left: 0;
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 0.36rem;
      }

      .sports-activity__btn {
        width: 100%;
        white-space: normal;
        text-align: center;
        padding: 0.42rem 0.5rem;
        line-height: 1.28;
      }

      .sports-activity__btn--share {
        text-transform: uppercase;
        letter-spacing: 0.08em;
        font-size: 0.58rem;
      }

      .sports-activity__btn-share-suffix {
        display: none;
      }
    }

.sports-match {
      position: relative;
    }

.sports-match__head {
      margin-bottom: clamp(0.75rem, 2vw, 1.15rem);
      padding-bottom: 0.65rem;
      border-bottom: 1px solid var(--hero-border, #1e293b);
    }

.sports-match__crumb {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.5rem;
      font-size: 0.72rem;
      font-weight: 650;
      margin-bottom: 0.55rem;
    }

.sports-match__crumb-link {
      color: color-mix(in srgb, var(--cyan, #22d3ee) 55%, var(--text-muted, #94a3b8));
      text-decoration: none;
      font-weight: 800;
    }

.sports-match__crumb-link:hover {
      text-decoration: underline;
    }

.sports-match__crumb-sep {
      color: var(--text-muted, #64748b);
      opacity: 0.85;
    }

.sports-match__crumb-here {
      color: var(--text-muted, #94a3b8);
      letter-spacing: 0.04em;
    }

.sports-match__eyebrow {
      margin: 0 0 0.35rem;
      font-size: 0.58rem;
      font-weight: 900;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 40%, var(--text-muted, #94a3b8));
    }

.sports-match__title:not(.pm-sr-only) {
      margin: 0.25rem 0 0;
      font-size: clamp(1.05rem, 2.8vw, 1.35rem);
      font-weight: 850;
      letter-spacing: -0.02em;
      line-height: 1.2;
      color: var(--text, #f8fafc);
    }

.sports-match__body {
      display: flex;
      flex-direction: column;
      gap: clamp(1rem, 2.2vw, 1.35rem);
    }

.sports-match__fixture-shell {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(260px, min(360px, 100%));
      gap: clamp(0.75rem, 2vw, 1.25rem);
      align-items: start;
    }

.sports-match__fixture-primary {
      min-width: 0;
    }

.sports-match__fixture-aside {
      position: sticky;
      top: clamp(0.75rem, 2vw, 1.25rem);
      min-width: 0;
      overflow: visible;
      /* Reserve column while stake script mounts the dialog into #rise-sports-match-stake-slot */
      min-height: min(22rem, 70vh);
    }

@media (max-width: 900px) {
  .sports-match__fixture-shell {
        grid-template-columns: 1fr;
      }

  .sports-match__fixture-aside {
        position: static;
        min-height: 0;
      }
    }

/** Chain ribbon above inline confirm bet card (fixture stake slot). */
#rise-sports-match-stake-slot {
      overflow: visible;
      min-width: 0;
    }

#rise-sports-match-stake-slot > .sports-pools__chain-strip {
      margin-bottom: 0.55rem;
    }

/**
 * Desktop fixture page: align inline Confirm bet with the comments panel on the right.
 * `.sports-pool-dlg__shell` default horizontal padding inset the card; flush the right side so
 * the card’s outer edge matches `.sports-match__panel--comments` (full-width row below).
 */
@media (min-width: 901px) {
  html[data-route="dashboard-sports-match"] #rise-sports-match-stake-slot .sports-pool-dlg__shell {
    padding-right: 0;
  }
}

/* Fixture page: sit team totals / registry closer under the scorestrip */
html[data-route="dashboard-sports-match"] .sports-match__body {
      gap: clamp(0.22rem, 0.75vw, 0.38rem);
    }

html[data-route="dashboard-sports-match"] .sports-match__scorestrip {
      padding-top: clamp(0.2rem, 0.85vw, 0.42rem);
      padding-bottom: clamp(0.1rem, 0.65vw, 0.35rem);
      gap: 0.45rem;
    }

html[data-route="dashboard-sports-match"] .sports-match__detail-wait-banner {
      margin: 0 0 clamp(0.35rem, 1vw, 0.55rem);
      padding: 0.72rem 1rem;
      border-radius: 12px;
      border: 1px solid rgba(148, 163, 184, 0.32);
      background: rgba(15, 23, 42, 0.72);
      color: var(--text, #e2e8f0);
      font-size: 0.875rem;
      line-height: 1.45;
      box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset;
    }

.sports-match__detail-wait-line {
      margin: 0;
    }

html[data-route="dashboard-sports-match"] .sports-match__shell-banner,
html[data-route="dashboard-sports-match"] .sports-match__detail-fallback-notice {
      margin: 0 0 clamp(0.35rem, 1vw, 0.55rem);
      padding: 0.62rem 0.92rem;
      border-radius: 10px;
      border: 1px solid color-mix(in srgb, var(--cyan, #22d3ee) 35%, rgba(148, 163, 184, 0.35));
      background: color-mix(in srgb, var(--cyan, #22d3ee) 8%, rgba(15, 23, 42, 0.85));
      color: var(--text, #e2e8f0);
      font-size: 0.78rem;
      line-height: 1.42;
      box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset;
    }

.sports-match__shell-banner-text,
.sports-match__detail-fallback-text {
      margin: 0;
      font-weight: 650;
    }

html[data-route="dashboard-sports-match"] .sports-match__detail-fallback-notice {
      border-color: color-mix(in srgb, var(--text-muted, #94a3b8) 45%, rgba(148, 163, 184, 0.35));
      background: rgba(15, 23, 42, 0.72);
    }

html[data-route="dashboard-sports-match"] .sports-match__fixture-primary > article.sports-match__panel:first-of-type {
      margin-top: clamp(0.65rem, 2.1vw, 1.2rem);
      padding-top: clamp(0.38rem, 1vw, 0.55rem);
    }

/* Fixture “bet context”: standings + form + H2H */
.sports-match__ctx {
      display: flex;
      flex-direction: column;
      gap: 0.85rem;
    }

.sports-match__ctx-intro,
.sports-match__ctx-status,
.sports-match__ctx-muted,
.sports-match__ctx-warn {
      margin: 0;
      font-size: 0.9rem;
      line-height: 1.45;
      color: var(--text-muted, #94a3b8);
    }

.sports-match__ctx-warn {
      color: color-mix(in srgb, var(--text, #e2e8f0) 88%, #fbbf24);
    }

.sports-match__ctx-subhead {
      margin: 0.35rem 0 0.2rem;
      font-size: 0.95rem;
      font-weight: 750;
      letter-spacing: 0.02em;
      color: var(--text, #e2e8f0);
    }

.sports-match__ctx-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.82rem;
    }

.sports-match__ctx-table th,
.sports-match__ctx-table td {
      padding: 0.35rem 0.42rem;
      text-align: left;
      border-bottom: 1px solid rgba(148, 163, 184, 0.18);
    }

.sports-match__ctx-table th {
      font-weight: 650;
      color: var(--text-muted, #94a3b8);
      font-size: 0.78rem;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }

.sports-match__ctx-row--home td {
      background: rgba(34, 211, 238, 0.08);
    }

.sports-match__ctx-row--away td {
      background: rgba(251, 191, 36, 0.07);
    }

.sports-match__ctx-snap {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: clamp(0.55rem, 2vw, 1rem);
    }

@media (max-width: 640px) {
  .sports-match__ctx-snap {
        grid-template-columns: 1fr;
      }
}

.sports-match__ctx-snap-card {
      padding: 0.55rem 0.65rem;
      border-radius: 0.65rem;
      border: 1px solid rgba(148, 163, 184, 0.22);
      background: rgba(15, 23, 42, 0.45);
    }

.sports-match__ctx-snap-title {
      margin: 0 0 0.25rem;
      font-size: 0.88rem;
      font-weight: 750;
    }

.sports-match__ctx-snap-pos {
      margin: 0 0 0.35rem;
      font-size: 0.84rem;
      color: var(--text-muted, #94a3b8);
    }

.sports-match__ctx-snap-form {
      margin: 0 0 0.4rem;
      font-size: 0.84rem;
    }

.sports-match__ctx-form-label {
      color: var(--text-muted, #94a3b8);
    }

.sports-match__ctx-form-seq {
      font-weight: 800;
      letter-spacing: 0.12em;
      color: var(--text, #f8fafc);
    }

.sports-match__ctx-mini-list {
      margin: 0;
      padding-left: 1rem;
      font-size: 0.8rem;
      color: var(--text-muted, #94a3b8);
    }

.sports-match__ctx-mini-res {
      display: inline-block;
      min-width: 1.1em;
      font-weight: 800;
      color: var(--text, #e2e8f0);
    }

.sports-match__ctx-mini-score {
      font-variant-numeric: tabular-nums;
    }

html[data-route="dashboard-sports-match"]
  .sports-match__fixture-primary
  > article.sports-match__panel:first-of-type
  .sports-match__panel-title {
      margin-bottom: 0.32rem;
    }

html[data-route="dashboard-sports-match"] .sports-match__facts-stats-grid {
      margin-top: 0;
      gap: clamp(0.55rem, 1.6vw, 0.92rem);
    }

/* Score row sits on the page surface — no panel/card chrome */
.sports-match__scorestrip {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 0.62rem;
      padding: clamp(0.45rem, 1.4vw, 0.72rem) 0;
      border-radius: 0;
      border: none;
      background: transparent;
      box-shadow: none;
    }

.sports-match__scorestrip-meta {
      width: 100%;
      display: flex;
      justify-content: center;
      text-align: center;
    }

.sports-match__scorestrip-five {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr) auto;
      align-items: stretch;
      column-gap: clamp(0.45rem, 2vw, 1.05rem);
      row-gap: 0.22rem;
      width: 100%;
      min-width: 0;
    }

.sports-match__scorestrip-crest {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      min-width: 0;
      min-height: 0;
    }

.sports-match__scorestrip-crest--home {
      justify-self: start;
      justify-content: flex-start;
    }

.sports-match__scorestrip-crest--away {
      justify-self: end;
      justify-content: flex-end;
    }

.sports-match__scorestrip-name {
      display: flex;
      align-items: center;
      min-width: 0;
      min-height: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      color: var(--text, #f1f5f9);
      font-size: clamp(0.88rem, 2.05vw, 1.12rem);
      font-weight: 800;
      line-height: 1.22;
    }

.sports-match__scorestrip-name--home,
.sports-match__scorestrip-name--away {
      justify-content: center;
      text-align: center;
      justify-self: stretch;
    }

.sports-match__scorestrip-mid {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      gap: 0.22rem;
      min-width: 0;
      padding: 0.22rem 0.28rem 0.08rem;
    }

.sports-match__scorestrip .sports-match__team-crest {
      border-radius: 0;
      object-fit: contain;
      background: transparent;
      border: none;
      box-shadow: none;
    }

.sports-match__scorestrip-live {
      margin: 0;
      font-size: 0.62rem;
      font-weight: 900;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: color-mix(in srgb, #f87171 75%, var(--text-muted, #94a3b8));
      display: inline-flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      gap: 0.28rem 0.45rem;
    }

.sports-match__scorestrip-live--pre {
      color: color-mix(in srgb, var(--cyan, #22d3ee) 55%, var(--text-muted, #94a3b8));
    }

.sports-match__scorestrip-live--post {
      color: var(--text-muted, #94a3b8);
    }

.sports-match__scorestrip-live--tbc {
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 82%, var(--text, #e2e8f0));
    }

.sports-match__phase-label {
      letter-spacing: 0.1em;
    }

.sports-match__sep {
      opacity: 0.65;
      font-weight: 800;
    }

.sports-match__match-clock {
      font-variant-numeric: tabular-nums;
      letter-spacing: 0.06em;
      min-width: 4.5rem;
      text-align: center;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 35%, var(--text, #f8fafc));
    }

.sports-match__stat-empty,
.sports-match__ev-empty {
      font-size: 0.78rem;
      font-weight: 600;
      line-height: 1.42;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 88%, var(--text, #e2e8f0));
      text-align: left;
    }

.sports-match__live-dot {
      width: 0.4rem;
      height: 0.4rem;
      border-radius: 50%;
      background: #f87171;
      box-shadow: 0 0 8px rgba(248, 113, 113, 0.65);
      flex-shrink: 0;
    }

.sports-match__live-dot--pulse {
      animation: rise-live-dot-pulse 1.25s ease-in-out infinite;
    }

@keyframes rise-live-dot-pulse {
      0%,
      100% {
        transform: scale(1);
        opacity: 1;
        box-shadow: 0 0 8px rgba(248, 113, 113, 0.65);
      }
      50% {
        transform: scale(1.35);
        opacity: 0.92;
        box-shadow: 0 0 14px rgba(248, 113, 113, 0.95);
      }
    }

.sports-match__scorestrip-live--pre .sports-match__live-dot {
      background: color-mix(in srgb, var(--cyan, #22d3ee) 65%, #64748b);
      box-shadow: 0 0 6px rgba(34, 211, 238, 0.35);
    }

.sports-match__scorestrip-live--post .sports-match__live-dot {
      background: #64748b;
      box-shadow: none;
    }

.sports-match__scorestrip-goals {
      margin: 0;
      font-size: clamp(1.18rem, 3.35vw, 1.72rem);
      font-weight: 900;
      letter-spacing: -0.035em;
      font-variant-numeric: tabular-nums;
      color: var(--text, #fff);
      line-height: 1;
    }

.sports-match__scorestrip-goals--goal-pop {
      animation: sports-score-goal-pop 0.9s ease-out 1;
    }

.sports-match__scorestrip-ht {
      margin: 0;
      font-size: 0.52rem;
      font-weight: 750;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--text-muted, #94a3b8);
      line-height: 1.25;
    }

.sports-match__scorestrip-ht-inner {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.28rem;
    }

.sports-match__scorestrip-ht-ico {
      display: flex;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 40%, var(--text-muted, #94a3b8));
    }

.sports-match__scorestrip-ht-ico .sports-match__svg--sm {
      width: 0.85rem;
      height: 0.85rem;
    }

.sports-match__panel {
      padding: clamp(0.85rem, 2vw, 1.1rem) clamp(0.85rem, 2vw, 1.15rem);
      border-radius: 0.75rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 88%, transparent);
      background: color-mix(in srgb, var(--bg-elevated, #0f172a) 88%, transparent);
    }

.sports-match__panel-title {
      margin: 0 0 0.65rem;
      font-size: 0.62rem;
      font-weight: 900;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 45%, var(--text-muted, #94a3b8));
    }

.sports-match__panel-title--with-ico {
      display: flex;
      align-items: center;
      gap: 0.45rem;
    }

.sports-match__panel-title-ico {
      display: flex;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 55%, var(--text-muted, #94a3b8));
      flex-shrink: 0;
    }

.sports-match__panel-title-text {
      letter-spacing: 0.14em;
    }

.sports-match__lineups {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: clamp(0.75rem, 2vw, 1.25rem);
      align-items: start;
    }

@media (max-width: 720px) {
      .sports-match__lineups {
        grid-template-columns: 1fr;
      }
    }

.sports-match__lineup-col {
      min-width: 0;
    }

.sports-match__lineup-team-title {
      margin: 0 0 0.35rem;
      font-size: clamp(0.85rem, 2.2vw, 1rem);
      font-weight: 800;
      color: var(--text, #e2e8f0);
    }

.sports-match__lineup-meta {
      margin: 0 0 0.65rem;
      font-size: 0.68rem;
      color: var(--text-muted, #94a3b8);
      line-height: 1.35;
    }

.sports-match__table--lineup {
      margin-bottom: 0.75rem;
    }

.sports-match__table--lineup td:first-child {
      width: 2.25rem;
      font-variant-numeric: tabular-nums;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 90%, var(--text, #e2e8f0));
    }

.sports-match__caption {
      caption-side: top;
      text-align: left;
      font-size: 0.68rem;
      font-weight: 750;
      color: var(--text-muted, #94a3b8);
      padding-bottom: 0.45rem;
    }

.sports-match__table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.78rem;
      line-height: 1.4;
    }

.sports-match__table th,
.sports-match__table td {
      padding: 0.5rem 0.55rem;
      border-bottom: 1px solid color-mix(in srgb, var(--hero-border, #334155) 75%, transparent);
      text-align: left;
      vertical-align: top;
    }

.sports-match__table thead th {
      font-size: 0.58rem;
      font-weight: 900;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 85%, var(--text, #e2e8f0));
      border-bottom-color: color-mix(in srgb, var(--cyan, #22d3ee) 35%, var(--hero-border, #334155));
    }

.sports-match__th-team {
      vertical-align: bottom;
      text-transform: none;
      letter-spacing: normal;
    }

.sports-match__th-team-inner {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.25rem;
      padding: 0.15rem 0 0.25rem;
      min-width: 0;
    }

.sports-match__th-team .sports-match__team-crest {
      border-radius: 0.35rem;
      object-fit: contain;
      background: color-mix(in srgb, var(--bg-page, #020617) 70%, transparent);
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 75%, transparent);
    }

.sports-match__th-team-name {
      font-size: clamp(0.58rem, 1.5vw, 0.72rem);
      font-weight: 800;
      line-height: 1.15;
      color: var(--text, #e2e8f0);
      text-align: center;
      max-width: 7.5rem;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

.sports-match__label-with-ico {
      display: inline-flex;
      align-items: center;
      gap: 0.4rem;
      min-width: 0;
      font-family: inherit;
      font-size: inherit;
      font-weight: inherit;
      line-height: inherit;
    }

.sports-match__label-text {
      font-family: inherit;
      font-size: inherit;
      font-weight: inherit;
      line-height: inherit;
    }

.sports-match__label-ico {
      display: flex;
      flex-shrink: 0;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 35%, var(--text-muted, #94a3b8));
    }

.sports-match__label-ico .sports-match__svg--sm {
      width: 1rem;
      height: 1rem;
    }

.sports-match__svg {
      display: block;
      color: color-mix(in srgb, #e2e8f0 88%, var(--cyan, #22d3ee));
    }

.sports-match__svg--sm {
      width: 1.05rem;
      height: 1.05rem;
    }

.sports-match__ev-picto {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

.sports-match__ev-picto .sports-match__svg {
      width: 1.35rem;
      height: 1.35rem;
    }

/* Lucide stroke icons in event Type column — color accents per Football semantics */
.sports-match__ev-picto .sports-match__svg--lucide {
      stroke-width: 1.85px;
      vector-effect: non-scaling-stroke;
    }

.sports-match__ev-picto .sports-match__svg--goal {
      color: color-mix(in srgb, #fef08a 25%, #e2e8f0);
    }

.sports-match__ev-picto .sports-match__svg--own {
      color: color-mix(in srgb, #f87171 35%, #e2e8f0);
    }

.sports-match__ev-picto .sports-match__svg--sub {
      color: color-mix(in srgb, var(--cyan, #22d3ee) 45%, #a5f3fc);
    }

.sports-match__ev-picto .sports-match__svg--var {
      color: color-mix(in srgb, #a78bfa 40%, #e2e8f0);
    }

.sports-match__ev-picto .sports-match__svg--pen {
      color: #fde68a;
    }

.sports-match__ev-picto .sports-match__svg--penmiss {
      color: color-mix(in srgb, #f87171 55%, #e2e8f0);
    }

.sports-match__ev-picto .sports-match__svg--flag {
      color: color-mix(in srgb, #f87171 40%, #e2e8f0);
    }

.sports-match__ev-picto .sports-match__svg--ev-caution {
      color: color-mix(in srgb, #eab308 55%, #facc15);
    }

.sports-match__ev-picto .sports-match__svg--ev-second-yellow {
      color: color-mix(in srgb, #f59e0b 45%, #fbbf24);
    }

.sports-match__ev-picto .sports-match__svg--ev-sendoff {
      color: color-mix(in srgb, #f87171 50%, #fecaca);
    }

.sports-match__ev-picto .sports-match__svg--note {
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 55%, var(--text, #e2e8f0));
    }

.sports-match__ev-type-inner {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      min-width: 0;
    }

.sports-match__ev-type-text {
      font-size: 0.78rem;
      font-weight: 800;
      letter-spacing: 0.02em;
      text-transform: none;
      color: var(--text, #e2e8f0);
    }

.sports-match__ev-clock {
      font-variant-numeric: tabular-nums;
      font-weight: 900;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 25%, var(--text-muted, #94a3b8));
      white-space: nowrap;
      box-sizing: border-box;
      width: 2.85rem;
      max-width: 3.5rem;
      min-width: 0;
      padding-left: 0;
      padding-right: 1.35rem;
      text-align: right;
    }

.sports-match__table--events thead th:first-child {
      width: 2.85rem;
      max-width: 3.55rem;
      white-space: nowrap;
      text-align: right;
      padding-right: 1.35rem;
    }

.sports-match__table--events thead th:nth-child(2),
.sports-match__table--events thead th:nth-child(3) {
      width: auto;
    }

/* Event log clock is <th scope="row"> — don’t inherit global tbody th { width: 32% }. */
.sports-match__table--events tbody th {
      width: auto;
      max-width: none;
    }

.sports-match__table--events tbody th.sports-match__ev-clock {
      width: 2.85rem;
      max-width: 3.5rem;
    }

.sports-match__table--events thead th:nth-child(2),
.sports-match__table--events thead th:nth-child(3),
.sports-match__table--events tbody td.sports-match__ev-type,
.sports-match__table--events tbody td.sports-match__ev-detail {
      padding-left: 0.65rem;
    }

.sports-match__ev-detail {
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 12%, var(--text, #e2e8f0));
    }

.sports-match__ev-row--goal,
.sports-match__ev-row--own-goal {
      box-shadow: inset 3px 0 0 color-mix(in srgb, #22c55e 65%, transparent);
    }

.sports-match__ev-row--yellow-card {
      box-shadow: inset 3px 0 0 #eab308;
    }

.sports-match__ev-row--second-yellow {
      box-shadow: inset 3px 0 0 #f59e0b;
    }

.sports-match__ev-row--red-card {
      box-shadow: inset 3px 0 0 #ef4444;
    }

.sports-match__ev-row--substitution {
      box-shadow: inset 3px 0 0 color-mix(in srgb, var(--cyan, #22d3ee) 55%, transparent);
    }

.sports-match__ev-row--var-review {
      box-shadow: inset 3px 0 0 #a78bfa;
    }

.sports-match__ev-row--penalty-goal {
      box-shadow: inset 3px 0 0 #eab308;
    }

.sports-match__ev-row--penalty-miss,
.sports-match__ev-row--offside {
      box-shadow: inset 3px 0 0 #94a3b8;
    }

.sports-match__ev-row--generic {
      box-shadow: inset 3px 0 0 color-mix(in srgb, var(--hero-border, #475569) 90%, transparent);
    }

.sports-match__stat-num {
      font-variant-numeric: tabular-nums;
      font-weight: 850;
      text-align: center;
      color: var(--text, #f1f5f9);
    }

.sports-match__table--events tbody th,
.sports-match__table--events tbody td {
      vertical-align: middle;
    }

.sports-match__caption--facts {
      caption-side: top;
      text-align: left;
      font-size: 0.68rem;
      font-weight: 650;
      letter-spacing: 0.04em;
      color: var(--text-muted, #94a3b8);
      padding-bottom: 0.35rem;
      margin: 0;
    }

.sports-match__table--facts-registry {
      font-family: inherit;
      font-size: 0.78rem;
      line-height: 1.45;
    }

.sports-match__table--facts-registry thead th {
      font-size: 0.62rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 88%, var(--text, #e2e8f0));
      vertical-align: top;
      padding-top: 0.3rem;
      padding-bottom: 0.34rem;
    }

.sports-match__table--facts-registry tbody th,
.sports-match__table--facts-registry tbody td {
      padding: 0.4rem 0.5rem;
      vertical-align: middle;
      font-size: 0.78rem;
      font-weight: 600;
      line-height: 1.45;
      font-family: inherit;
    }

.sports-match__table--facts-registry tbody td {
      color: var(--text, #f1f5f9);
      word-break: break-word;
    }

.sports-match__table--facts-registry tbody th {
      width: 38%;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 22%, var(--text, #e2e8f0));
    }

.sports-match__table--facts-registry .sports-match__label-with-ico {
      color: inherit;
    }

/* Match centre captions (multi-line) */
.sports-match__registry-cap {
      line-height: 1.42;
      text-align: left;
    }

.sports-match__registry-cap-line {
      display: inline-block;
      font-size: 0.68rem;
      font-weight: 800;
      letter-spacing: 0.06em;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 25%, var(--text, #e2e8f0));
    }

.sports-match__registry-cap-line--second {
      font-weight: 650;
      letter-spacing: 0.04em;
      opacity: 0.95;
    }

/* Fixture registry (left) | team totals (right); event log stacks full width beneath */
.sports-match__facts-stats-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: clamp(1rem, 2.4vw, 1.55rem);
      align-items: start;
      margin-top: 0.15rem;
    }

.sports-match__match-centre-lede {
      margin: clamp(0.85rem, 2vw, 1.15rem) 0 0.4rem;
    }

.sports-match__match-centre-col {
      min-width: 0;
    }

.sports-match__match-centre-col .sports-match__table {
      width: 100%;
    }

/* Drop the fixture registry (Field / Value) block slightly — breathing room vs panel title & right column */
html[data-route="dashboard-sports-match"] .sports-match__match-centre-col--registry {
      margin-top: clamp(0.85rem, 2.35vw, 1.35rem);
    }

@media (max-width: 720px) {
  .sports-match__facts-stats-grid {
    grid-template-columns: 1fr;
  }
}

/* Separate borders: thead (3 cols) + first tbody row with colspan can draw a thickened “double”
   rule under the team crest headers in border-collapse: collapse. */
.sports-match__table--stats {
  border-collapse: separate;
  border-spacing: 0;
}

.sports-match__table--stats tbody tr:first-child th,
.sports-match__table--stats tbody tr:first-child td {
  border-top: 0;
}

.sports-match__table--stats tbody th,
.sports-match__table--stats tbody td {
      font-size: 0.78rem;
      font-weight: 600;
      line-height: 1.45;
      font-family: inherit;
      vertical-align: middle;
    }

.sports-match__table--stats tbody th {
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 22%, var(--text, #e2e8f0));
    }

.sports-match__table--stats tbody td.sports-match__stat-num {
      font-weight: 600;
      color: var(--text, #f1f5f9);
      text-align: center;
      vertical-align: middle;
    }

.sports-match__table--stats thead th.sports-match__th-team {
      text-align: center;
      vertical-align: top;
    }

/* Shorter stats thead so first data row lines up with fixture registry (left). */
.sports-match__table--stats thead th {
      vertical-align: top;
      padding-top: 0.3rem;
      padding-bottom: 0.34rem;
    }

.sports-match__table--stats thead .sports-match__th-team-inner {
      gap: 0.1rem;
      padding: 0 0 0.02rem;
    }

.sports-match__table--stats thead .sports-match__th-team .sports-match__team-crest {
      width: 24px !important;
      height: 24px !important;
      max-width: 24px;
      max-height: 24px;
      border-radius: 0.28rem;
      object-fit: contain;
      background: transparent;
      border: none;
    }

.sports-match__table--stats thead .sports-match__th-team-name {
      font-size: clamp(0.52rem, 1.25vw, 0.62rem);
      line-height: 1.08;
}

/* Top-left stats header: visually empty (sr-only Statistic label). */
.sports-match__table--stats thead th.sports-match__stats-corner {
      position: relative;
      width: 0.001%;
      min-width: 0;
      max-width: 3rem;
      padding-top: 0.3rem;
      padding-right: 0.22rem;
      padding-bottom: 0.34rem;
      padding-left: 0.35rem;
      vertical-align: top;
      font-size: 0;
      letter-spacing: 0;
      line-height: 0;
      text-transform: none;
      border-bottom-color: inherit;
    }

.sports-match__table--stats thead th:first-child {
      text-align: left;
    }

.sports-match__table--officials {
      font-family: inherit;
      font-size: 0.78rem;
      line-height: 1.45;
    }

.sports-match__table--officials thead th {
      font-size: 0.62rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 88%, var(--text, #e2e8f0));
    }

.sports-match__table--officials tbody th,
.sports-match__table--officials tbody td {
      padding: 0.4rem 0.5rem;
      font-size: 0.78rem;
      font-weight: 600;
      line-height: 1.45;
      font-family: inherit;
      vertical-align: middle;
    }

.sports-match__table--officials tbody td {
      color: var(--text, #f1f5f9);
      word-break: break-word;
    }

.sports-match__table--officials tbody th {
      width: 22%;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 22%, var(--text, #e2e8f0));
    }

.sports-match__footnote-inner {
      display: flex;
      align-items: flex-start;
      gap: 0.5rem;
    }

.sports-match__footnote-ico {
      display: flex;
      flex-shrink: 0;
      margin-top: 0.12rem;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 40%, var(--text-muted, #94a3b8));
    }

.sports-match__footnote-ico .sports-match__svg--sm {
      width: 1rem;
      height: 1rem;
    }

.sports-match__table tbody th {
      font-weight: 800;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 25%, var(--text, #e2e8f0));
      width: 32%;
    }

.sports-match__table tbody tr:last-child th,
.sports-match__table tbody tr:last-child td {
      border-bottom: none;
    }

.sports-match__table--info tbody th {
      width: 38%;
    }

.sports-match__footnote {
      margin: 0;
      padding: 0.75rem 0.85rem;
      border-radius: 0.55rem;
      font-size: 0.72rem;
      line-height: 1.45;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 15%, var(--text, #e2e8f0));
      border: 1px dashed color-mix(in srgb, var(--hero-border, #475569) 90%, transparent);
      background: color-mix(in srgb, var(--bg-page, #020617) 60%, transparent);
    }

.sports-match__sync-note {
      margin: 0.35rem 0 0.85rem;
      padding: 0.65rem 0.85rem;
      font-size: 0.84rem;
      line-height: 1.5;
      color: var(--text-muted, #94a3b8);
      border-radius: 10px;
      border: 1px solid color-mix(in srgb, var(--hero-border, #475569) 75%, transparent);
      background: color-mix(in srgb, var(--bg-page, #020617) 55%, transparent);
    }

.sports-match__empty {
      margin: 0 0 0.75rem;
      font-size: 0.88rem;
      line-height: 1.45;
      color: var(--text-muted, #94a3b8);
    }

.sports-match__empty-link {
      display: inline-flex;
      font-weight: 800;
      font-size: 0.82rem;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 55%, var(--text, #e2e8f0));
    }

@media (max-width: 640px) {
  .sports-match__scorestrip-five {
    column-gap: 0.32rem;
  }

  .sports-match__scorestrip-name--home,
  .sports-match__scorestrip-name--away {
    font-size: clamp(0.78rem, 3.5vw, 0.98rem);
  }

  .sports-match__scorestrip-goals {
    font-size: clamp(1.05rem, 5vw, 1.38rem);
  }

  .sports-match__scorestrip .sports-match__team-crest {
    width: 44px;
    height: 44px;
    max-width: 44px;
    max-height: 44px;
  }

  .sports-match__table th,
  .sports-match__table td {
    padding: 0.42rem 0.35rem;
    font-size: 0.72rem;
  }
}

.rise-gate-modal[hidden] {
      display: none;
    }

.rise-gate-modal {
      position: fixed;
      inset: 0;
      z-index: 230;
      display: grid;
      place-items: center;
      padding: 1rem;
    }

.rise-gate-modal__backdrop {
      position: absolute;
      inset: 0;
      background: rgba(2, 6, 23, 0.68);
      backdrop-filter: blur(2px);
    }

.rise-gate-modal__card {
      position: relative;
      z-index: 1;
      width: min(30rem, calc(100vw - 2rem));
      border-radius: 12px;
      border: 1px solid var(--hero-border);
      background: var(--bg-elevated);
      box-shadow: 0 18px 52px rgba(0, 0, 0, 0.45);
      padding: 1rem 1rem 0.9rem;
    }

.rise-gate-modal__close {
      position: absolute;
      top: 0.4rem;
      right: 0.45rem;
      border: 0;
      background: transparent;
      color: var(--text-muted);
      font-size: 1.25rem;
      line-height: 1;
      cursor: pointer;
    }

.rise-gate-modal__title {
      margin: 0 0 0.35rem;
      font-size: 1.05rem;
      font-weight: 800;
      color: var(--text);
    }

.rise-gate-modal__msg {
      margin: 0;
      font-size: 0.92rem;
      line-height: 1.45;
      color: var(--text-muted);
    }

.rise-gate-modal__ok {
      margin-top: 0.8rem;
      width: 100%;
      min-height: 2.5rem;
      border-radius: 10px;
      border: 1px solid var(--hero-border);
      background: #00267a;
      color: #fff;
      font: inherit;
      font-weight: 700;
      cursor: pointer;
    }

body.rise-gate-modal-open {
      overflow: hidden;
    }

/* Match centre — event row entrance (goal flash, card shake) */
@keyframes rise-ev-goal-flash {
      0% {
        background-color: color-mix(in srgb, #22c55e 28%, transparent);
      }
      100% {
        background-color: transparent;
      }
    }

@keyframes rise-ev-shake-red {
      0%,
      100% {
        transform: translateX(0);
      }
      20% {
        transform: translateX(-4px);
      }
      40% {
        transform: translateX(4px);
      }
      60% {
        transform: translateX(-3px);
      }
      80% {
        transform: translateX(3px);
      }
    }

@keyframes rise-ev-shake-yellow {
      0%,
      100% {
        transform: translateX(0);
      }
      25% {
        transform: translateX(-3px);
      }
      75% {
        transform: translateX(3px);
      }
    }

.sports-match__ev-row--anim-goal {
      animation: rise-ev-goal-flash 1.1s ease-out 1;
    }

.sports-match__ev-row--anim-red {
      animation: rise-ev-shake-red 0.55s ease-out 1;
    }

.sports-match__ev-row--anim-second-yellow {
      animation: rise-ev-shake-red 0.48s ease-out 1;
    }

.sports-match__ev-row--anim-yellow {
      animation: rise-ev-shake-yellow 0.42s ease-out 1;
    }

/* Fixture comments */
.sports-match__panel--comments {
      margin-top: 0.35rem;
    }

.sports-match-comments__tabs {
      display: flex;
      flex-wrap: wrap;
      gap: 0.35rem 0.75rem;
      align-items: flex-end;
      border-bottom: 1px solid color-mix(in srgb, var(--hero-border, #334155) 88%, transparent);
      margin-bottom: 0.75rem;
    }

.sports-match-comments__tab {
      appearance: none;
      border: none;
      background: transparent;
      color: var(--text-muted, #94a3b8);
      font-size: 0.82rem;
      font-weight: 650;
      padding: 0.45rem 0.15rem 0.55rem;
      cursor: pointer;
      border-bottom: 2px solid transparent;
      margin-bottom: -1px;
      font-family: inherit;
    }

.sports-match-comments__tab:hover {
      color: var(--text, #f1f5f9);
    }

.sports-match-comments__tab.is-active {
      color: var(--text, #f8fafc);
      border-bottom-color: color-mix(in srgb, #38bdf8 85%, #0ea5e9);
    }

.sports-match-comments__tab-count {
      font-weight: 700;
      color: var(--text-muted, #94a3b8);
    }

.sports-match-comments__tab.is-active .sports-match-comments__tab-count {
      color: var(--text-muted, #cbd5e1);
    }

.sports-match-comments__panels {
      position: relative;
    }

.sports-match-comments__panel[hidden] {
      display: none !important;
    }

.sports-match-comments__toolbar {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 0.65rem;
      margin-bottom: 0.65rem;
    }

.sports-match-comments__toolbar-left {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.65rem 1rem;
    }

.sports-match-comments__sr {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

.sports-match-comments__select {
      font: inherit;
      font-size: 0.78rem;
      font-weight: 600;
      color: var(--text, #e2e8f0);
      background: color-mix(in srgb, var(--bg-page, #020617) 75%, transparent);
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 80%, transparent);
      border-radius: 0.45rem;
      padding: 0.28rem 1.75rem 0.28rem 0.45rem;
      cursor: pointer;
    }

.sports-match-comments__holders {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      font-size: 0.78rem;
      color: var(--text-muted, #94a3b8);
      cursor: pointer;
      user-select: none;
    }

.sports-match-comments__holders-input {
      accent-color: #38bdf8;
    }

.sports-match-comments__warn {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      font-size: 0.72rem;
      color: var(--text-muted, #94a3b8);
      padding: 0.25rem 0.55rem;
      border-radius: 999px;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 70%, transparent);
      background: color-mix(in srgb, var(--bg-page, #020617) 50%, transparent);
    }

.sports-match-comments__warn-ico {
      font-size: 0.85rem;
      opacity: 0.9;
    }

.sports-match-comments__composer {
      margin-bottom: 0.65rem;
    }

.sports-match-comments__reply-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      font-size: 0.75rem;
      color: var(--text-muted, #94a3b8);
      margin-bottom: 0.4rem;
    }

.sports-match-comments__reply-cancel {
      font: inherit;
      font-size: 0.72rem;
      font-weight: 600;
      color: #38bdf8;
      background: transparent;
      border: none;
      cursor: pointer;
      padding: 0.15rem 0.35rem;
    }

.sports-match-comments__composer-row {
      position: relative;
      display: flex;
      align-items: stretch;
      gap: 0.5rem;
      border-radius: 0.65rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 85%, transparent);
      background: color-mix(in srgb, var(--bg-page, #020617) 65%, transparent);
      padding: 0.45rem 0.55rem;
    }

.sports-match-comments__textarea {
      flex: 1 1 auto;
      min-width: 0;
      min-height: 2.75rem;
      max-height: 9rem;
      resize: vertical;
      border: none;
      background: transparent;
      color: var(--text, #f8fafc);
      font: inherit;
      font-size: 0.84rem;
      line-height: 1.45;
      padding: 0.15rem 0.25rem;
    }

.sports-match-comments__textarea:focus {
      outline: none;
    }

.sports-match-comments__textarea::placeholder {
      color: var(--text-muted, #64748b);
    }

.sports-match-comments__textarea:disabled {
      opacity: 0.55;
    }

.sports-match-comments__composer-actions {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      justify-content: flex-start;
      gap: 0.35rem;
      flex: 0 0 auto;
    }

.sports-match-comments__ico-btn {
      font: inherit;
      font-size: 1.05rem;
      line-height: 1;
      width: 2.1rem;
      height: 2.1rem;
      border-radius: 0.45rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 75%, transparent);
      background: color-mix(in srgb, var(--bg-elevated, #0f172a) 55%, transparent);
      cursor: pointer;
    }

.sports-match-comments__post {
      font: inherit;
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      color: #fff;
      background: linear-gradient(180deg, #38bdf8, #0ea5e9);
      border: none;
      border-radius: 0.45rem;
      padding: 0.42rem 0.85rem;
      cursor: pointer;
      min-width: 3.5rem;
    }

.sports-match-comments__post:disabled {
      opacity: 0.45;
      cursor: not-allowed;
    }

.sports-match-comments__emoji-pop {
      position: absolute;
      right: 0.55rem;
      bottom: calc(100% + 0.35rem);
      display: flex;
      flex-wrap: wrap;
      gap: 0.25rem;
      max-width: 12rem;
      padding: 0.45rem;
      border-radius: 0.55rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 88%, transparent);
      background: color-mix(in srgb, var(--bg-elevated, #0f172a) 96%, #000);
      box-shadow: 0 12px 32px color-mix(in srgb, #000 45%, transparent);
      z-index: 5;
    }

.sports-match-comments__emoji-pop[hidden] {
      display: none !important;
    }

.sports-match-comments__emoji-choice {
      font: inherit;
      font-size: 1.1rem;
      line-height: 1;
      border: none;
      background: transparent;
      cursor: pointer;
      padding: 0.12rem;
      border-radius: 0.3rem;
    }

.sports-match-comments__emoji-choice:hover {
      background: color-mix(in srgb, var(--text, #e2e8f0) 12%, transparent);
    }

.sports-match-comments__gate-hint {
      margin: 0 0 0.55rem;
      font-size: 0.76rem;
      line-height: 1.45;
      color: #fbbf24;
    }

.sports-match-comments__list-wrap {
      position: relative;
      max-height: min(52vh, 28rem);
      overflow-y: auto;
      margin-bottom: 0.65rem;
      border-radius: 0.55rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 75%, transparent);
      background: color-mix(in srgb, var(--bg-page, #020617) 40%, transparent);
      padding: 0.35rem 0.45rem 0.55rem;
    }

.sports-match-comments__list {
      display: flex;
      flex-direction: column;
      gap: 0.85rem;
    }

.sports-match-comments__empty {
      margin: 0.75rem 0.35rem;
      font-size: 0.82rem;
      color: var(--text-muted, #94a3b8);
    }

.sports-match-comments__item {
      display: flex;
      gap: 0.65rem;
      align-items: flex-start;
    }

.sports-match-comments__item--reply {
      margin-left: 1.5rem;
      padding-left: 0.65rem;
      border-left: 2px solid color-mix(in srgb, var(--hero-border, #334155) 70%, transparent);
    }

.sports-match-comments__avatar {
      flex: 0 0 auto;
      width: 40px;
      height: 40px;
      border-radius: 999px;
      overflow: hidden;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 70%, transparent);
    }

.sports-match-comments__avatar img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

.sports-match-comments__item-main {
      flex: 1 1 auto;
      min-width: 0;
    }

.sports-match-comments__item-top {
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 0.35rem 0.55rem;
      margin-bottom: 0.2rem;
    }

.sports-match-comments__name {
      font-size: 0.84rem;
      font-weight: 800;
      color: var(--text, #f8fafc);
    }

.sports-match-comments__badge {
      font-size: 0.68rem;
      font-weight: 750;
      padding: 0.12rem 0.38rem;
      border-radius: 0.35rem;
      background: color-mix(in srgb, #22c55e 22%, transparent);
      color: #bbf7d0;
      border: 1px solid color-mix(in srgb, #22c55e 45%, transparent);
      max-width: 100%;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

.sports-match-comments__time {
      font-size: 0.72rem;
      color: var(--text-muted, #94a3b8);
      margin-left: auto;
    }

.sports-match-comments__body {
      font-size: 0.82rem;
      line-height: 1.5;
      color: var(--text, #e2e8f0);
      white-space: pre-wrap;
      word-break: break-word;
    }

.sports-match-comments__item-actions {
      display: flex;
      align-items: center;
      gap: 0.85rem;
      margin-top: 0.35rem;
    }

.sports-match-comments__like,
.sports-match-comments__reply {
      font: inherit;
      font-size: 0.74rem;
      font-weight: 600;
      color: var(--text-muted, #94a3b8);
      background: transparent;
      border: none;
      cursor: pointer;
      padding: 0.1rem 0;
    }

.sports-match-comments__like:hover,
.sports-match-comments__reply:hover {
      color: var(--text, #e2e8f0);
    }

.sports-match-comments__back-top {
      position: sticky;
      bottom: 0.35rem;
      float: right;
      clear: both;
      margin-top: 0.35rem;
      font: inherit;
      font-size: 0.72rem;
      font-weight: 700;
      color: #38bdf8;
      background: color-mix(in srgb, var(--bg-elevated, #0f172a) 92%, transparent);
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 80%, transparent);
      border-radius: 999px;
      padding: 0.35rem 0.65rem;
      cursor: pointer;
      box-shadow: 0 4px 14px color-mix(in srgb, #000 35%, transparent);
    }

.sports-match-comments__back-top[hidden] {
      display: none;
    }

.sports-match-comments__placeholder {
      padding: 1rem 0.35rem 1.25rem;
    }

.sports-match-comments__placeholder-text {
      margin: 0 0 0.65rem;
      font-size: 0.82rem;
      line-height: 1.5;
      color: var(--text-muted, #94a3b8);
    }

.sports-match-comments__placeholder-link {
      font-size: 0.82rem;
      font-weight: 700;
      color: #38bdf8;
    }

/* Match chat: FAB pinned to viewport bottom; panel position:absolute stacks above FAB and slides up on open */
html[data-route="dashboard-sports-match"] .sports-match__chat-dock {
      position: fixed;
      z-index: 12070;
      right: max(0.625rem, env(safe-area-inset-right, 0px));
      bottom: calc(3.25rem + env(safe-area-inset-bottom, 0px));
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      justify-content: flex-end;
      width: max-content;
      max-width: min(100vw - 0.75rem, 60rem);
      pointer-events: none;
      box-sizing: border-box;
      overflow: visible;
    }

html[data-route="dashboard-sports-match"] .sports-match__chat-dock > * {
      pointer-events: auto;
    }

.sports-match__chat-panel {
      position: absolute;
      right: 0;
      bottom: calc(100% + 0.55rem);
      width: var(--sports-chat-panel-width, min(100vw - 0.95rem, 58rem));
      max-height: min(88vh, 52rem);
      display: flex;
      flex-direction: column;
      overflow: hidden;
      border-radius: 0.92rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 92%, transparent);
      background:
        linear-gradient(
          168deg,
          color-mix(in srgb, var(--bg-elevated, #0f172a) 94%, transparent),
          color-mix(in srgb, var(--bg-page, #020617) 93%, transparent)
        );
      box-shadow:
        0 26px 56px color-mix(in srgb, #000000 48%, transparent),
        0 0 1px color-mix(in srgb, var(--text, #e2e8f0) 8%, transparent);
      opacity: 0;
      visibility: hidden;
      transform-origin: bottom right;
      backface-visibility: hidden;
      /* Settles “into” the FAB corner when closed; springs out on open */
      transform: translate3d(18px, 48px, 0) scale(0.92);
      transition:
        opacity 0.32s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.44s cubic-bezier(0.34, 1.22, 0.48, 1),
        visibility 0.32s,
        filter 0.35s ease;
      filter: brightness(0.92) saturate(0.92);
      pointer-events: none;
      will-change: transform, opacity;
    }

.sports-match__chat-resize-handle {
      position: absolute;
      top: 0.42rem;
      bottom: 0.42rem;
      left: 0;
      width: 14px;
      cursor: ew-resize;
      z-index: 3;
      border-left: 1px solid color-mix(in srgb, var(--hero-border, #334155) 65%, transparent);
      background: linear-gradient(
        to right,
        color-mix(in srgb, var(--bg-page, #020617) 42%, transparent),
        transparent
      );
      opacity: 0.65;
      transition: opacity 0.2s ease;
    }

.sports-match__chat-panel:hover .sports-match__chat-resize-handle {
      opacity: 1;
    }

.sports-match__chat-panel--open {
      opacity: 1;
      visibility: visible;
      transform: translate3d(0, 0, 0) scale(1);
      filter: brightness(1) saturate(1);
      pointer-events: auto;
      min-height: min(42vh, 30rem);
    }

html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-panel {
      border-color: color-mix(in srgb, var(--hero-border) 88%, transparent);
      background:
        linear-gradient(
          168deg,
          color-mix(in srgb, var(--bg-elevated, #f4f4f5) 98%, transparent),
          color-mix(in srgb, var(--bg-page, #ffffff) 99%, transparent)
        );
      box-shadow:
        0 26px 56px color-mix(in srgb, var(--text, #0a0a0a) 12%, transparent),
        0 0 1px color-mix(in srgb, var(--text, #0a0a0a) 15%, transparent);
    }

html[data-theme="dark"][data-rise-scope="dashboard"] .sports-match__chat-panel {
      box-shadow:
        0 26px 56px color-mix(in srgb, #000000 65%, transparent),
        0 0 1px color-mix(in srgb, #ffffff 14%, transparent);
    }

@media (prefers-reduced-motion: reduce) {
  .sports-match__chat-panel {
        transition-duration: 0.01ms;
        will-change: auto;
        filter: none !important;
        transform: translate3d(0, calc(100% + 1rem), 0) scale(1) !important;
      }

  .sports-match__chat-panel--open {
        transform: translate3d(0, 0, 0) scale(1) !important;
        filter: none !important;
      }

  .sports-match__chat-panel-head,
      .sports-match__chat-panel-body {
        transition-duration: 0.01ms !important;
        transition-delay: 0ms !important;
        opacity: 1 !important;
        transform: none !important;
      }

  .sports-match__chat-fab:hover,
      .sports-match__chat-fab:active {
        transform: none;
      }

  .sports-match__chat-dock--open .sports-match__chat-fab {
        animation: none !important;
      }
    }

/* Staggered reveal: chrome then body — reduced-motion resets above */
.sports-match__chat-panel:not(.sports-match__chat-panel--open) .sports-match__chat-panel-head {
      opacity: 0;
      transform: translateY(-10px);
      transition-delay: 0ms;
    }

.sports-match__chat-panel:not(.sports-match__chat-panel--open) .sports-match__chat-panel-body {
      opacity: 0;
      transform: translateY(14px);
      transition-delay: 0ms;
    }

.sports-match__chat-panel--open .sports-match__chat-panel-head {
      opacity: 1;
      transform: translateY(0);
      transition-delay: 0.05s;
    }

.sports-match__chat-panel--open .sports-match__chat-panel-body {
      opacity: 1;
      transform: translateY(0);
      transition-delay: 0.12s;
    }

.sports-match__chat-panel-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.65rem;
      flex-shrink: 0;
      padding: 0.48rem 0.72rem;
      border-bottom: 1px solid color-mix(in srgb, var(--cyan, #38bdf8) 22%, var(--hero-border));
      background: color-mix(in srgb, var(--bg-page) 45%, transparent);
      transition:
        opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.36s cubic-bezier(0.34, 1.18, 0.52, 1);
    }

html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-panel-head {
      border-bottom-color: color-mix(in srgb, var(--cyan) 28%, var(--hero-border));
      background: color-mix(in srgb, var(--bg-elevated) 55%, var(--bg-page));
    }

.sports-match__chat-panel-title {
      display: flex;
      align-items: center;
      gap: 0.4rem;
      margin: 0;
      font-size: 0.62rem;
      font-weight: 900;
      letter-spacing: 0.13em;
      text-transform: uppercase;
      color: var(--text);
      line-height: 1.2;
      min-width: 0;
    }

html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-panel-title {
      color: #0a0a0a;
    }

html[data-theme="dark"][data-rise-scope="dashboard"] .sports-match__chat-panel-title {
      color: #fafafa;
    }

.sports-match__chat-panel-title-ico {
      display: flex;
      flex-shrink: 0;
      color: inherit;
    }

.sports-match__chat-panel-close {
      flex-shrink: 0;
      margin: 0;
      padding: 0;
      width: 2.15rem;
      height: 2.15rem;
      border-radius: 0.5rem;
      border: none;
      background: transparent;
      color: var(--text-muted);
      font-size: 1.45rem;
      font-weight: 300;
      line-height: 1;
      cursor: pointer;
      display: grid;
      place-items: center;
      transition:
        background 0.15s ease,
        color 0.15s ease;
    }

.sports-match__chat-panel-close:hover {
      background: color-mix(in srgb, var(--hero-border) 40%, transparent);
      color: var(--text);
    }

.sports-match__chat-panel-body {
      position: relative;
      display: flex;
      flex-direction: column;
      overflow-x: hidden;
      overflow-y: hidden;
      flex: 1 1 auto;
      min-height: 0;
      border: none !important;
      border-radius: 0 0 0.85rem 0.85rem;
      transition:
        opacity 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.39s cubic-bezier(0.34, 1.15, 0.52, 1);
    }

.sports-match__goal-confetti {
      position: absolute;
      inset: 0;
      pointer-events: none;
      overflow: hidden;
      z-index: 4;
    }

.sports-match__goal-confetti--chat {
      inset: 0.35rem;
      border-radius: 0.9rem;
    }

.sports-match__goal-confetti-piece {
      position: absolute;
      left: 50%;
      top: 18%;
      width: 0.4rem;
      height: 0.62rem;
      border-radius: 2px;
      background: hsl(var(--hue, 42) 82% 56%);
      opacity: 0;
      transform: translate(-50%, 0) rotate(0deg);
      animation: sports-goal-confetti-fall var(--dur, 980ms) ease-out var(--delay, 0ms) forwards;
    }

/* Tighter chrome when docked vs full-width panel stack */
.sports-match__chat-panel-body.sports-match__panel {
      padding: clamp(0.65rem, 2vw, 0.92rem);
    }

.sports-match__chat-kick-countdown {
      flex-shrink: 0;
      box-sizing: border-box;
      margin: 0 0 0.55rem;
      padding: 0.42rem 0.58rem;
      border-radius: 0.65rem;
      border: 1px solid color-mix(in srgb, var(--cyan, #22d3ee) 38%, var(--hero-border, #334155));
      background:
        linear-gradient(
          165deg,
          color-mix(in srgb, var(--cyan, #22d3ee) 12%, var(--bg-elevated, #0f172a)),
          color-mix(in srgb, var(--bg-page, #020617) 94%, transparent)
        );
      font-size: 0.72rem;
      font-weight: 780;
      line-height: 1.42;
      letter-spacing: 0.02em;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 22%, var(--text, #e2e8f0));
      text-align: center;
      font-variant-numeric: tabular-nums;
    }

html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-kick-countdown {
      color: color-mix(in srgb, var(--cyan, #0ea5e9) 38%, var(--text, #0a0a0a));
      border-color: color-mix(in srgb, var(--cyan, #0ea5e9) 45%, var(--hero-border));
    }

.sports-match__chat-panel-body .sports-match__chat-bubble {
      max-width: min(98%, 52rem);
    }

.sports-match__chat-fab {
      position: relative;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.45rem;
      min-height: 3rem;
      padding: 0.48rem 1.15rem;
      padding-right: 1.35rem;
      border-radius: 999px;
      border: 1px solid color-mix(in srgb, var(--hero-border, #3f3f46) 95%, transparent);
      background:
        linear-gradient(
          168deg,
          color-mix(in srgb, #27272a 45%, var(--bg-elevated, #18181b)),
          color-mix(in srgb, var(--bg-page, #09090b) 88%, var(--bg-elevated, #27272a))
        );
      color: #f4f4f5;
      font: inherit;
      font-size: 0.82rem;
      font-weight: 780;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      cursor: pointer;
      box-shadow:
        0 14px 34px rgba(0, 0, 0, 0.55),
        0 0 1px rgba(255, 255, 255, 0.06);
      transition:
        transform 0.15s ease,
        filter 0.15s ease,
        border-color 0.15s ease;
    }

.sports-match__chat-fab-unread {
      position: absolute;
      top: 0.22rem;
      right: 0.3rem;
      width: 0.58rem;
      height: 0.58rem;
      border-radius: 999px;
      background: #ef4444;
      box-shadow: 0 0 0 2px rgba(8, 10, 14, 0.94);
    }

html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-fab {
      border-color: color-mix(in srgb, var(--cyan) 72%, rgba(255, 255, 255, 0.2));
      background:
        radial-gradient(circle at 28% -18%, rgba(56, 189, 248, 0.25), transparent 58%),
        linear-gradient(
          165deg,
          color-mix(in srgb, var(--cyan) 94%, #0c4a6e),
          color-mix(in srgb, var(--cyan) 78%, #075985)
        );
      color: #ffffff;
      box-shadow:
        0 14px 32px color-mix(in srgb, var(--cyan) 22%, transparent),
        0 8px 20px rgba(15, 23, 42, 0.12);
}

.sports-match__chat-fab:hover {
      filter: brightness(1.08);
      transform: translateY(-1px);
    }

.sports-match__chat-fab:active {
      transform: translateY(1px);
    }

.sports-match__chat-fab-label {
      color: inherit;
}

.sports-match__chat-fab-ico {
      display: flex;
      opacity: 0.92;
      color: inherit;
    }

.sports-match__chat-dock--open .sports-match__chat-fab {
      border-color: color-mix(in srgb, var(--hero-border, #52525b) 92%, transparent);
    }

html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-dock--open .sports-match__chat-fab {
      border-color: color-mix(in srgb, var(--cyan) 85%, #ffffff);
    }

/* Message area grows above the input; stream uses margin-top:auto so newest bubbles sit above the field */
/* Single card; messages render as bubbles inside .sports-match__chat-stream */
.sports-match__chat-log {
      flex: 1 1 auto;
      min-height: 0;
      max-height: none;
      display: flex;
      flex-direction: column;
      overflow-x: hidden;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      padding: 0.72rem 0.62rem;
      border-radius: 0.82rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 88%, transparent);
      background:
        linear-gradient(
          168deg,
          color-mix(in srgb, var(--bg-elevated, #0f172a) 88%, transparent),
          color-mix(in srgb, var(--bg-page, #020617) 92%, transparent)
        );
      box-shadow: inset 0 1px 0 color-mix(in srgb, #fff 4%, transparent);
      margin-bottom: 0.65rem;
      font-size: 0.8rem;
    }

.sports-match__chat-stream {
      display: flex;
      flex-direction: column;
      gap: 0.52rem;
      margin-top: auto;
      width: 100%;
      min-height: min-content;
    }

.sports-match__chat-empty-state {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 1.5rem 1.1rem 1.25rem;
      min-height: 6.75rem;
      gap: 0.55rem;
      border-radius: 0.85rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #475569) 45%, transparent);
      box-shadow:
        inset 0 1px 0 color-mix(in srgb, #fff 5%, transparent),
        0 12px 28px color-mix(in srgb, #000 28%, transparent);
      background:
        radial-gradient(ellipse 100% 80% at 50% -10%, color-mix(in srgb, var(--cyan, #22d3ee) 18%, transparent) 0%, transparent 55%),
        linear-gradient(165deg, color-mix(in srgb, var(--bg-elevated, #0f172a) 35%, transparent), color-mix(in srgb, var(--bg-page, #020617) 65%, transparent));
    }

.sports-match__chat-empty-icon {
      color: color-mix(in srgb, var(--cyan, #22d3ee) 72%, var(--text-muted, #94a3b8));
      opacity: 0.92;
      filter: drop-shadow(0 2px 10px color-mix(in srgb, var(--cyan, #22d3ee) 22%, transparent));
    }

.sports-match__chat-empty-icon svg {
      display: block;
    }

.sports-match__chat-empty-lede {
      margin: 0;
      max-width: 17rem;
      font-size: 0.84rem;
      font-weight: 700;
      line-height: 1.5;
      letter-spacing: -0.015em;
    }

.sports-match__chat-empty-lede-strong {
      color: var(--text, #f1f5f9);
    }

.sports-match__chat-empty-lede-soft {
      color: var(--text-muted, #94a3b8);
      font-weight: 650;
    }

html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-empty-lede-soft {
      color: color-mix(in srgb, var(--text-muted, #71717a) 55%, var(--cyan, #22d3ee));
    }

.sports-match__chat-empty-hint {
      margin: 0;
      max-width: 16rem;
      font-size: 0.68rem;
      font-weight: 600;
      line-height: 1.48;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 92%, var(--text, #e2e8f0));
      opacity: 0.95;
    }

.sports-match__chat-bubble-wrap {
      display: flex;
      width: 100%;
      justify-content: flex-start;
    }

.sports-match__chat-bubble-wrap--me {
      justify-content: flex-end;
    }

.sports-match__chat-bubble {
      display: flex;
      flex-direction: column;
      max-width: min(92%, 20rem);
      padding: 0.48rem 0.72rem;
      border-radius: 1.05rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #475569) 55%, transparent);
      word-break: break-word;
    }

.sports-match__chat-bubble--them {
      border-bottom-left-radius: 0.32rem;
      background: color-mix(in srgb, var(--bg-page, #020617) 55%, transparent);
      color: var(--text, #f1f5f9);
    }

.sports-match__chat-bubble--me {
      border-bottom-right-radius: 0.32rem;
      background: color-mix(in srgb, #3f3f46 82%, var(--bg-elevated, #27272a));
      border-color: color-mix(in srgb, var(--hero-border, #52525b) 88%, transparent);
      color: #fafafa;
    }

html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-bubble--me {
      background: color-mix(in srgb, #e4e4e7 90%, var(--bg-elevated, #fafafa));
      border-color: color-mix(in srgb, var(--hero-border, #d4d4d8) 85%, transparent);
      color: #18181b;
    }

html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-bubble--me .sports-match__chat-bubble-name,
html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-bubble--me .sports-match__chat-bubble-time {
      color: color-mix(in srgb, #52525b 88%, transparent);
    }

/* Self (right bubble): top row = display name left, PFP right; bottom row = message flush left, time right */
.sports-match__chat-bubble-head--me {
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      gap: 0.65rem;
      margin-bottom: 0.28rem;
    }

.sports-match__chat-bubble-line--me {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 0.32rem;
    }

.sports-match__chat-bubble-line--me .sports-match__chat-bubble-text {
      flex: 1 1 auto;
      min-width: 0;
      text-align: left;
    }

.sports-match__chat-bubble-line--me .sports-match__chat-bubble-time {
      flex-shrink: 0;
      align-self: flex-end;
    }

/* Others (left): top row = PFP left, username right */
.sports-match__chat-bubble-head--them {
      display: flex;
      flex-direction: row;
      align-items: center;
      gap: 0.52rem;
      margin-bottom: 0.35rem;
    }

.sports-match__chat-bubble-line--them {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 0.32rem;
    }

.sports-match__chat-bubble-line--them .sports-match__chat-bubble-text {
      flex: 1 1 auto;
      min-width: 0;
      text-align: left;
    }

.sports-match__chat-bubble-line--them .sports-match__chat-bubble-time {
      flex-shrink: 0;
      align-self: flex-end;
    }

.sports-match__chat-bubble-reply {
      display: flex;
      flex-direction: column;
      gap: 0.12rem;
      padding: 0.38rem 0.46rem;
      border-radius: 0.52rem;
      border-left: 2px solid color-mix(in srgb, var(--p-gold, #d4af37) 70%, transparent);
      background: color-mix(in srgb, #000 44%, transparent);
      max-width: 100%;
      min-width: 0;
      transition: border-color 0.15s ease, background-color 0.15s ease;
    }

.sports-match__chat-bubble-reply:hover {
      border-left-color: color-mix(in srgb, var(--p-gold, #d4af37) 92%, transparent);
      background: color-mix(in srgb, #000 35%, transparent);
    }

.sports-match__chat-bubble-reply-who {
      font-size: 0.62rem;
      font-weight: 800;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--text, #e2e8f0) 75%, var(--text-muted, #94a3b8));
      line-height: 1.25;
    }

.sports-match__chat-bubble-reply-snippet {
      font-size: 0.72rem;
      font-weight: 600;
      line-height: 1.34;
      color: color-mix(in srgb, var(--text, #e2e8f0) 84%, var(--text-muted, #94a3b8));
      white-space: normal;
      overflow: hidden;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow-wrap: anywhere;
      min-width: 0;
    }

.sports-match__chat-bubble--flash {
      animation: sports-chat-bubble-flash 1.15s ease-out 1;
    }

@keyframes sports-chat-bubble-flash {
  0% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--p-gold, #d4af37) 62%, transparent);
      }

  35% {
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--p-gold, #d4af37) 48%, transparent);
      }

  100% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--p-gold, #d4af37) 0%, transparent);
      }
}

@keyframes sports-goal-confetti-fall {
  0% {
        opacity: 0;
        transform: translate(-50%, -10px) rotate(0deg);
      }

  12% {
        opacity: 0.95;
      }

  100% {
        opacity: 0;
        transform: translate(calc(-50% + var(--dx, 0px)), 122px) rotate(var(--rot, 320deg));
      }
}

@keyframes sports-score-goal-pop {
  0% {
        transform: scale(1);
        text-shadow: 0 0 0 rgba(0, 0, 0, 0);
      }

  28% {
        transform: scale(1.1);
        text-shadow: 0 0 16px color-mix(in srgb, var(--p-gold, #d4af37) 62%, transparent);
      }

  100% {
        transform: scale(1);
        text-shadow: 0 0 0 rgba(0, 0, 0, 0);
      }
}

.sports-match__chat-bubble-avatar {
      width: 2.5rem;
      height: 2.5rem;
      border-radius: 999px;
      object-fit: cover;
      flex-shrink: 0;
      border: 1px solid color-mix(in srgb, var(--hero-border, #475569) 45%, transparent);
    }

.sports-match__chat-bubble--me .sports-match__chat-bubble-avatar {
      border-color: color-mix(in srgb, var(--hero-border, #52525b) 72%, transparent);
    }

.sports-match__chat-bubble-name {
      font-size: 0.58rem;
      font-weight: 800;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 70%, var(--text, #e2e8f0));
      line-height: 1.25;
      min-width: 0;
    }

.sports-match__chat-bubble--me .sports-match__chat-bubble-name {
      color: color-mix(in srgb, var(--text-muted, #a1a1aa) 25%, #e4e4e7);
    }

.sports-match__chat-bubble-time {
      font-size: 0.58rem;
      font-weight: 750;
      letter-spacing: 0.04em;
      color: color-mix(in srgb, var(--text-muted, #94a3b8) 78%, var(--text, #e2e8f0));
      white-space: nowrap;
    }

.sports-match__chat-bubble--me .sports-match__chat-bubble-time {
      color: color-mix(in srgb, var(--text-muted, #a1a1aa) 35%, #d4d4d8);
    }

.sports-match__chat-bubble-text {
      margin: 0;
      font-size: 0.82rem;
      font-weight: 600;
      line-height: 1.38;
      direction: ltr;
      text-align: start;
      white-space: pre-wrap;
      overflow-wrap: anywhere;
      word-break: break-word;
    }

.sports-match__chat-reactions {
      width: 100%;
      justify-content: flex-start;
    }

.sports-match__chat-reactions--me {
      justify-content: flex-start;
    }

.sports-match__chat-reaction-chip {
      cursor: context-menu;
    }

.sports-match__chat-reaction-menu-title {
      margin: 0 0 0.32rem;
      font-size: 0.76rem;
      font-weight: 850;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: color-mix(in srgb, var(--text, #e2e8f0) 90%, var(--text-muted, #94a3b8));
    }

.sports-match__chat-reaction-menu-row {
      display: flex;
      align-items: center;
      gap: 0.46rem;
      padding: 0.26rem 0.16rem;
      border-radius: 0.44rem;
    }

.sports-match__chat-reaction-menu-row:hover {
      background: rgba(255, 255, 255, 0.05);
    }

.sports-match__chat-reaction-menu-avatar {
      width: 1.35rem;
      height: 1.35rem;
      border-radius: 999px;
      object-fit: cover;
      border: 1px solid rgba(255, 255, 255, 0.2);
      flex-shrink: 0;
    }

.sports-match__chat-reaction-menu-name {
      font-size: 0.8rem;
      font-weight: 700;
      line-height: 1.2;
      color: var(--text, #e2e8f0);
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

.sports-match__chat-form {
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      gap: 0.45rem;
    }

.sports-match__chat-newmsg {
      align-self: center;
      padding: 0.28rem 0.7rem;
      border-radius: 999px;
      border: 1px solid color-mix(in srgb, var(--p-gold, #d4af37) 60%, transparent);
      background: color-mix(in srgb, #111827 92%, transparent);
      color: color-mix(in srgb, var(--text, #e2e8f0) 94%, var(--p-gold, #d4af37));
      font: inherit;
      font-size: 0.72rem;
      font-weight: 800;
      letter-spacing: 0.03em;
      cursor: pointer;
    }

.sports-match__chat-newmsg:hover {
      filter: brightness(1.08);
    }

.sports-match__chat-msg-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.45rem;
    }

.sports-match__chat-form-status {
      margin: 0;
      min-height: 1.15rem;
      font-size: 0.68rem;
      line-height: 1.35;
      color: color-mix(in srgb, var(--cyan, #22d3ee) 25%, var(--text-muted, #94a3b8));
    }

.sports-match__chat-form-status--err {
      color: #fecaca;
    }

.sports-match__chat-input {
      flex: 1 1 12rem;
      min-width: 0;
      padding: 0.38rem 0.55rem;
      border-radius: 0.45rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #334155) 80%, transparent);
      background: var(--bg-elevated, #0f172a);
      color: var(--text, #e2e8f0);
      font: inherit;
      font-size: 0.82rem;
      outline: none;
      box-shadow: none;
      -webkit-appearance: none;
      appearance: none;
      transition: border-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
    }

.sports-match__chat-input:focus,
.sports-match__chat-input:focus-visible {
      outline: none;
      border-color: color-mix(in srgb, var(--p-gold, #d4af37) 58%, var(--hero-border, #52525b));
      box-shadow: 0 0 0 1px color-mix(in srgb, var(--p-gold, #d4af37) 38%, transparent);
      background: color-mix(in srgb, var(--bg-elevated, #0f172a) 92%, #000);
    }

.sports-match__chat-send {
      padding: 0.38rem 0.85rem;
      border-radius: 0.45rem;
      border: 1px solid color-mix(in srgb, var(--hero-border, #52525b) 90%, transparent);
      background: color-mix(in srgb, #52525b 72%, var(--bg-elevated, #27272a));
      color: #fafafa;
      font: inherit;
      font-weight: 750;
      font-size: 0.78rem;
      cursor: pointer;
    }

.sports-match__chat-send:hover:not(:disabled) {
      filter: brightness(1.08);
    }

html[data-theme="light"][data-rise-scope="dashboard"] .sports-match__chat-send {
      border-color: color-mix(in srgb, var(--cyan, #22d3ee) 48%, var(--hero-border, #d4d4d8));
      background: color-mix(in srgb, #0ea5e9 88%, var(--bg-elevated, #f4f4f5));
      color: #ffffff;
    }

.sports-match__chat-send:disabled {
      opacity: 0.65;
      cursor: not-allowed;
    }

@media (max-width: 520px) {
  .sports-match__chat-msg-row {
        flex-direction: column;
        align-items: stretch;
      }

  /*
   * In column layout the main axis is vertical — the shared flex: 1 1 12rem on
   * .sports-match__chat-input would otherwise grow the field to ~12rem+ tall.
   * Keep a single compact line + comfortable touch target only.
   */
  .sports-match__chat-input {
        flex: 0 1 auto;
        align-self: stretch;
        width: 100%;
        min-height: 2.5rem;
        max-height: 3rem;
        box-sizing: border-box;
      }

  .sports-match__chat-send {
        width: 100%;
      }
}

/* Sports home (/): hide matches panel until first featured hydrate — no staged hero, instant reveal (no transitions). */
html[data-route="dashboard-sports-betting"] .page-sports-pools .sports-pools:not([data-pools-live="1"]):not([data-sports-pools-manual="true"]) .sports-pools__panel--matches {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: none !important;
}
html[data-route="dashboard-sports-betting"] .page-sports-pools .sports-pools[data-pools-live="1"] .sports-pools__panel--matches,
html[data-route="dashboard-sports-betting"] .page-sports-pools .sports-pools[data-sports-pools-manual="true"] .sports-pools__panel--matches {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: none !important;
}
html[data-route="dashboard-sports-betting"] .page-sports-pools .sports-pools__card,
html[data-route="dashboard-sports-betting"] .page-sports-pools .sports-pools__main-event,
html[data-route="dashboard-sports-betting"] .page-sports-pools .sports-pools__filters,
html[data-route="dashboard-sports-betting"] .page-sports-pools .sports-pools__grid {
  transition: none !important;
}

/* ──────────────────────────────────────────────────────────────────────────
   Layout-shift reservations for /sports-betting
   These hosts populate from JS (relay payload + on-chain reads). Without min-heights
   the page snaps when content lands. Reserving space stops the jolt and lets the
   View Transitions API on tab switch crossfade cleanly. Same theme/colors — no visuals.
   See also static/js/sports-pools-live.js (SWR cache, hover-prefetch, idle warm-up).
   ────────────────────────────────────────────────────────────────────────── */

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .sports-pools__filters,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .sports-pools__recent-filters {
  min-height: 5rem;
}

/** Featured league chips + grid: clear vertical rhythm between toolbar and first card row. */
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__filters {
  min-height: 3.35rem;
  margin-bottom: clamp(0.65rem, 1.8vw, 1.1rem);
  gap: 0.4rem;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__board
  > .sports-pools__grid {
  margin-top: 0;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .sports-pools__main-odds {
  min-height: 11.25rem;
}

@media (min-width: 720px) {
  html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .sports-pools__main-odds {
    min-height: 13rem;
  }
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .sports-pools__grid {
  min-height: 18rem;
}

@media (min-width: 720px) {
  html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .sports-pools__grid {
    min-height: 24rem;
  }
}

/**
 * Hero LIVE pill mounts dynamically when a featured match goes in-play.
 * Reserve its slot inside .sports-pools__main-event so its appearance does
 * not push siblings down — instead it just becomes visible in the reserved spot.
 */
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .sports-pools__main-event {
  position: relative;
}

/**
 * Light mode — Polymarket-style cards: white surface, defined border,
 * darker diffuse shadow so edges read clearly against the page.
 */
html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__main-event {
  background: #ffffff;
  border: 1px solid #d1d5db;
  box-shadow:
    0 1px 3px rgba(15, 23, 42, 0.1),
    0 4px 14px rgba(15, 23, 42, 0.12),
    0 12px 36px rgba(15, 23, 42, 0.1);
  transition:
    box-shadow 0.22s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
}

html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__grid
  > .sports-pools__card {
  background: #ffffff;
  border: 1px solid #d1d5db;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.09),
    0 4px 12px rgba(15, 23, 42, 0.11),
    0 10px 28px rgba(15, 23, 42, 0.09);
  transition:
    border-color 0.22s ease,
    transform 0.2s ease,
    box-shadow 0.22s ease,
    background 0.24s ease;
}

html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__grid
  > .sports-pools__card:hover {
  background: #ffffff;
  border-color: #cbd5e1;
  box-shadow:
    0 2px 5px rgba(15, 23, 42, 0.12),
    0 8px 20px rgba(15, 23, 42, 0.14),
    0 16px 40px rgba(15, 23, 42, 0.12);
}

/** Dark mode — flat matte surfaces (no diagonal gradients) on main event shell, grid cards, and hero odds tiles. */
html[data-theme="dark"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__main-event {
  background: var(--bg-elevated);
}

html[data-theme="dark"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__grid
  > .sports-pools__card {
  background: var(--bg-elevated);
}

html[data-theme="dark"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__grid
  > .sports-pools__card:hover {
  background: color-mix(in srgb, var(--bg-elevated) 92%, #ffffff 8%);
}

html[data-theme="dark"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__main-odds
  .sports-pools__odd {
  background: color-mix(in srgb, var(--bg-elevated) 78%, var(--bg-page) 22%);
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .sports-pools__hero-live-pill {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
}

/**
 * Smaller fixture cards: hide the floating LIVE badge (ribbon already shows Live / Result).
 * Inline score under “vs” is shown again for grid cards (finished / live / “-  -” pre-kick).
 */
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__grid > .sports-pools__card .sports-pools__live-badge,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__grid > .sports-pools__card .sports-pools__matchup-score {
  display: none !important;
}

/**
 * Sports betting UI: Polymarket-style type scale (Inter-friendly).
 * Main-event headline (kicker) reads as the primary title for the featured fixture.
 */
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__main-kicker {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.45rem 0.85rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  font-size: clamp(1.28rem, 3.9vw, 2.5rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1.1;
  text-transform: none;
  color: var(--text);
  margin: 0 0 0.55rem;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__main-kicker-label {
  flex: 0 1 auto;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__main-kicker-countdown {
  flex: 0 0 auto;
  margin-left: auto;
  font-size: inherit;
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: inherit;
  text-transform: none;
  color: var(--text);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__recent-filters-label {
  font-weight: 600;
}

/** Section title above league chips — reads as a real header (not small caps meta). */
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__filters-heading {
  font-size: clamp(0.95rem, 1.65vw, 1.08rem);
  font-weight: 750;
  letter-spacing: 0.02em;
  text-transform: none;
  line-height: 1.25;
  color: var(--text);
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__main-title,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__hud-title,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__pool-mini-card__title,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__insights-title,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools-leaderboards__h {
  font-weight: 650;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__side-feed--rail-pro .sports-pools__side-h {
  font-weight: 650;
}

/** Light mode: rail + filters label — pure black copy (sidebar + “Featured leagues · live picks”). */
html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__filters-heading {
  color: #000000;
}

html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  .sports-pools__side-h,
html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  .sports-pools__side-h-link {
  color: #000000;
}

html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  .sports-pools__side-h-chev {
  color: #000000;
  opacity: 0.88;
}

html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  .sports-pools__side-h-link:hover {
  color: #000000;
}

html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  .sports-pools__side-idx,
html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  .sports-pools__side-title,
html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  .sports-pools__side-topic,
html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  .sports-pools__side-stat-main,
html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  .sports-pools__side-stat-sub {
  color: #000000;
}

html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  a.sports-pools__side-row,
html[data-theme="light"]:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"])
  .page-sports-pools
  .sports-pools__side-feed--rail-pro
  a.sports-pools__side-row:hover {
  color: #000000;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__main-when,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__main-meta-sep {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__pill {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-match.sports-pools__card-match--hero,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-match.sports-pools__card-match--hero .sports-pools__matchup-name--home,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-match.sports-pools__card-match--hero .sports-pools__matchup-name--away {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-match.sports-pools__card-match--hero .sports-pools__vs {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-match:not(.sports-pools__card-match--hero) {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-match:not(.sports-pools__card-match--hero) .sports-pools__matchup-name--home,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-match:not(.sports-pools__card-match--hero) .sports-pools__matchup-name--away {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__vs {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__matchup-inline-score {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__odd-label {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__odd-line {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__odd-pct {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__top-nav-btn {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__recent-empty-msg,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__grid-loading,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__board-empty {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__recent-head {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__recent-tag {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__recent-tag-when {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-tag {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__live-badge,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__hero-live-pill {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__result-badge {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__data-note {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-sub {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__chip {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__rise-callout-title {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__rise-callout-text {
  font-weight: 400;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__rise-callout-btn {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__chain-strip {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__hud-tagline,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__hud-cards-hint {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__hud-btn {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__hud-badge {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__hud-wallet-head {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__hud-stake-line__eth,
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__hud-estimate-eth {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-pool-strip__primary {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-pool-strip__split {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-pool-strip__meta {
  font-weight: 400;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-pool-strip .sports-pools__pool-mini-card__usd {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-pool-strip .sports-pools__pool-mini-card__usd[data-split-wei],
html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__card-pool-strip .sports-pools__pool-mini-card__usd[data-usd-split-label] {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__pool-mini-card__vs {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__pool-mini-card__fixture-id {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__pool-mini-card__stats dt {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__pool-mini-card__stats dd {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__pool-mini-card__usd {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__stake-row > .sports-pools__fixture-nav-btn {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__stake-row-kickoff {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__mini {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__insights-sub {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools-league-table thead th {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools-lt-pos {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools-lt-name {
  font-weight: 500;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools__guide-steps strong {
  font-weight: 600;
}

html:is([data-route="dashboard-sports-betting"], [data-route="dashboard-sports-match"], [data-route="dashboard-prediction-markets"]) .page-sports-pools .sports-pools-leaderboards__label {
  font-weight: 600;
}

/**
 * Stake / primer dialogs (`.sports-pool-dlg`): same type scale as the board — not under `.page-sports-pools`.
 */
html[data-route="dashboard-sports-betting"] .sports-pool-dlg__eyebrow,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__eyebrow {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__title,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__title {
  font-weight: 650;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__team-name,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__team-name {
  font-weight: 550;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__vs,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__vs {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__facts dt,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__facts dt {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__facts dd,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__facts dd {
  font-weight: 500;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__label-main,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__label-main {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__hint-mark,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__hint-mark {
  font-weight: 650;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__usd-prefix,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__usd-prefix {
  font-weight: 650;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__label,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__label {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__input,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__input {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__usd-gross,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__usd-gross {
  font-weight: 500;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__pill-usd,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__pill-usd {
  font-weight: 500;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__to-win-label,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__to-win-label {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__to-win-value,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__to-win-value {
  font-weight: 650;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__pill-k,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__pill-k {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__pill strong,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__pill strong {
  font-weight: 650;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__err,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__err {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__status,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__status {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__btn,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__btn {
  font-weight: 600;
}

html[data-route="dashboard-sports-betting"] .sports-pool-dlg__footnote,
html[data-route="dashboard-sports-match"] .sports-pool-dlg__footnote {
  font-weight: 400;
}

/**
 * View Transitions: cross-fade panels instead of snap. document.startViewTransition
 * (Chrome/Edge ≥ 111, Safari TP) wraps the hide/show in setSportsPoolsTab.
 * Honor reduced-motion users — skip the animation entirely.
 */
@media (prefers-reduced-motion: no-preference) {
  ::view-transition-old(root) {
    animation: rise-sports-vt-fade-out 140ms ease-out forwards;
  }

  ::view-transition-new(root) {
    animation: rise-sports-vt-fade-in 180ms ease-out forwards;
  }

  @keyframes rise-sports-vt-fade-out {
    from {
      opacity: 1;
    }
    to {
      opacity: 0;
    }
  }

  @keyframes rise-sports-vt-fade-in {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
}

/* ── Prediction markets · auto-section heads (engine-driven football grid + other markets) ── */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-section-head {
  margin: clamp(1.4rem, 3vw, 2.1rem) 0 clamp(0.6rem, 1.4vw, 0.95rem);
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-section-head:first-child {
  margin-top: clamp(0.6rem, 1.6vw, 1rem);
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-section-title {
  margin: 0;
  font-size: clamp(1.04rem, 2.2vw, 1.32rem);
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: var(--text);
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-section-sub {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--text-muted);
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-live-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 10px rgba(34, 197, 94, 0.55);
  animation: rise-pm-live-pulse 1.6s ease-in-out infinite;
  flex-shrink: 0;
}

@keyframes rise-pm-live-pulse {
  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.35);
    opacity: 0.78;
  }
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__grid[aria-busy="true"]:empty::before {
  content: "Loading football fixtures from Rise relay…";
  grid-column: 1 / -1;
  padding: 1.35rem 0.75rem;
  text-align: center;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--text-muted);
  letter-spacing: 0.02em;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card-engine-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  margin-left: 0.4rem;
  padding: 0.08rem 0.42rem;
  border-radius: 999px;
  font-size: 0.52rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: color-mix(in srgb, #22c55e 88%, var(--text));
  background: color-mix(in srgb, #22c55e 14%, var(--bg-elevated));
  border: 1px solid color-mix(in srgb, #22c55e 32%, var(--hero-border));
  vertical-align: 0.14em;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-question {
  margin: 0.15rem 0 0.1rem;
  text-align: center;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: var(--text);
  font-size: 0.86rem;
  line-height: 1.3;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__card[data-rise-pm-cat~="football"][hidden] {
  display: none !important;
}

/* ── Prediction markets · filter chrome inherits the sports-betting layout via shared :is(...) rules.
   Hover affordance for chips that only carry `data-rise-pm-filter` (the canonical sports-betting hover
   rule keys off `data-rise-grid-filter`; PM chips also expose that attribute, so this block is mainly
   a safety net keeping the chips interactive in case the dual-attribute pattern changes). */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__chip[data-rise-pm-filter]:not(.is-active):not(.sports-pools__chip--muted):hover {
  background: color-mix(in srgb, var(--text-muted) 14%, transparent);
  border-color: color-mix(in srgb, var(--text-muted) 32%, var(--hero-border));
}

/* ── Prediction markets · Yes (green) / No (red) outcome buttons — matte / solid (no gradient) ── */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="yes"] {
  border-color: color-mix(in srgb, #22c55e 55%, var(--hero-border));
  background: color-mix(in srgb, #16a34a 18%, var(--bg-elevated));
  color: color-mix(in srgb, #4ade80 92%, var(--text));
  background-image: none;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="yes"]:hover {
  border-color: color-mix(in srgb, #22c55e 80%, var(--hero-border));
  background: color-mix(in srgb, #16a34a 28%, var(--bg-elevated));
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="yes"] .sports-pools__odd-label,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="yes"] .sports-pools__odd-pct,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="yes"] .sports-pools__odd-line {
  color: inherit;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="no"] {
  border-color: color-mix(in srgb, #ef4444 55%, var(--hero-border));
  background: color-mix(in srgb, #dc2626 18%, var(--bg-elevated));
  color: color-mix(in srgb, #f87171 92%, var(--text));
  background-image: none;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="no"]:hover {
  border-color: color-mix(in srgb, #ef4444 80%, var(--hero-border));
  background: color-mix(in srgb, #dc2626 28%, var(--bg-elevated));
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="no"] .sports-pools__odd-label,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="no"] .sports-pools__odd-pct,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="no"] .sports-pools__odd-line {
  color: inherit;
}

/* Light theme tuning — solid pale fills for the matte look */
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="yes"] {
  background: #dcfce7;
  color: #166534;
  border-color: #86efac;
  background-image: none;
}
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="yes"]:hover {
  background: #bbf7d0;
  border-color: #4ade80;
}
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="no"] {
  background: #fee2e2;
  color: #991b1b;
  border-color: #fca5a5;
  background-image: none;
}
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__odd[data-side="no"]:hover {
  background: #fecaca;
  border-color: #f87171;
}

/* ── Prediction markets · drop the icon-vs-icon scaffold; cards are pure question / Yes / No ── */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__card .sports-pools__card-match,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__main-event .sports-pools__card-match {
  display: none !important;
}

/* Question text becomes the main card body */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-question {
  font-size: 0.98rem;
  font-weight: 750;
  line-height: 1.32;
  margin: 0.4rem 0 0.6rem;
  text-align: left;
  color: var(--text);
  min-height: 2.6rem;
  display: flex;
  align-items: flex-start;
}

/* Engine "Auto" pill — tighter spacing, no awkward overlap with the tag */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__card-tag {
  white-space: normal;
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.3rem;
  text-align: left;
}

/* ─────────────────────────────────────────────────────────────────────
   Prediction markets · HERO ("main card")
   Layout:  [crest | meta-stack]  ················································  [gauge]
            HUGE QUESTION
            [    Yes   44¢ · 44%    ]   [    No   56¢ · 56%    ]
   ───────────────────────────────────────────────────────────────────── */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__main-event.rise-pm-hero {
  display: grid;
  gap: clamp(0.95rem, 2vw, 1.3rem);
  padding: clamp(1.3rem, 3vw, 1.9rem);
  position: relative;
  overflow: hidden;
}
/* Subtle radial accent in the top-right — gives the hero a "featured" lift without being noisy. */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero::before {
  content: "";
  position: absolute;
  top: -45%;
  right: -12%;
  width: 65%;
  height: 150%;
  background: radial-gradient(circle, color-mix(in srgb, #22c55e 14%, transparent) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero > * {
  position: relative;
  z-index: 1;
}

/* Top chrome — crest + meta on the left, gauge on the right */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__chrome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__chrome-left {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
  flex: 1;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__crest {
  width: 58px;
  height: 58px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--text-muted) 8%, transparent);
  border: 1px solid var(--hero-border);
  padding: 6px;
  flex-shrink: 0;
  overflow: hidden;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__crest img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__crest-emoji {
  font-size: 1.95rem;
  line-height: 1;
}
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__crest {
  background: color-mix(in srgb, var(--bg-page) 60%, transparent);
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__chrome-text {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__pill {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: color-mix(in srgb, var(--text-muted) 12%, transparent);
  color: var(--text-muted);
  width: max-content;
  border: 1px solid var(--hero-border);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__pill--live {
  color: #ef4444;
  border-color: color-mix(in srgb, #ef4444 35%, var(--hero-border));
  background: color-mix(in srgb, #ef4444 10%, transparent);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__pill--live::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #ef4444;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__meta {
  font-size: clamp(0.84rem, 1.4vw, 0.92rem);
  font-weight: 600;
  color: var(--text-muted);
  letter-spacing: 0.01em;
  line-height: 1.3;
}

/* Hero gauge — bigger than the card gauge, wider arc */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__gauge {
  position: relative;
  width: 80px;
  height: 58px;
  flex-shrink: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__gauge svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__gauge .rise-pm-gauge__track {
  stroke-width: 5;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__gauge .rise-pm-gauge__fill {
  stroke-width: 5;
  transition: stroke-dashoffset 0.55s ease;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__gauge-value {
  position: absolute;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text);
  line-height: 1;
  z-index: 1;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__gauge-label {
  position: absolute;
  top: 42px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.52rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  line-height: 1;
  z-index: 1;
}

/* Headline question — extra big on the hero */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__question {
  margin: 0;
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  font-weight: 900;
  letter-spacing: -0.025em;
  line-height: 1.12;
  color: var(--text);
  max-width: 36rem;
}

/* Yes / No row — bigger, with side-stat (cents + percentage) right-aligned */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__odds .sports-pools__card-row--hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  max-width: min(100%, 38rem);
  width: 100%;
  margin: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__odd {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.55rem;
  padding: 1.05rem 1.25rem !important;
  min-height: 3.2rem;
  border-radius: 12px;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__odd-side {
  font-size: 1rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__odd-stat {
  display: inline-flex;
  align-items: baseline;
  gap: 0.45rem;
  font-variant-numeric: tabular-nums;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__odd-cents {
  font-size: 1.18rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero__odd-pct {
  font-size: 0.82rem;
  font-weight: 700;
  opacity: 0.78;
}

/* ─────────────────────────────────────────────────────────────────────
   Prediction markets · SPOTLIGHT HERO (WC 2026 race chart)
   Flat surface, design-token colours, no gradients / shadows / glows.
   ───────────────────────────────────────────────────────────────────── */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero--spotlight {
  gap: 0;
  padding: clamp(1.15rem, 2.4vw, 1.65rem);
  border-radius: 1.1rem;
  border: 1px solid var(--hero-border);
  background: var(--bg-elevated);
  background-image: none;
  box-shadow: none;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero--spotlight::before {
  display: none;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__head {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.1rem;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__brand {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  min-width: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__logo {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid var(--hero-border);
  background: color-mix(in srgb, var(--bg-page) 60%, var(--bg-elevated));
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__logo-fallback {
  width: 100%;
  height: 100%;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__titles {
  min-width: 0;
  flex: 1;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.45rem;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__live-pill {
  margin: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__sub {
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--text-muted);
  letter-spacing: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__title {
  margin: 0;
  font-size: clamp(1.15rem, 2.4vw, 1.65rem);
  font-weight: 900;
  letter-spacing: -0.015em;
  line-height: 1.12;
  color: var(--text);
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem 1rem;
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  background: color-mix(in srgb, var(--text-muted) 6%, transparent);
  border: 1px solid color-mix(in srgb, var(--text-muted) 10%, var(--hero-border));
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__stat {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__stat-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__stat-val {
  font-size: 1rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  color: var(--text);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__stat-val--yes {
  color: #4ade80;
}
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__stat-val--yes {
  color: #15803d;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__stat-val--clock {
  color: #f87171;
  font-size: 1.05rem;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__stat-delta {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(140px, 38%);
  gap: 1rem 1.25rem;
  align-items: stretch;
}
@media (max-width: 820px) {
  html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__body {
    grid-template-columns: 1fr;
  }
  html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__col--chart {
    min-height: 140px;
  }
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__col--actions {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__odds {
  margin: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btns {
  max-width: none;
  width: 100%;
  gap: 0.65rem;
}

/* Hero Yes/No — same matte fill as the smaller v2 card buttons, force-pinned with !important
   so the base `.sports-pools__odd { background: linear-gradient(...) }` from markets.css cannot win. */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0.95rem 1.1rem !important;
  min-height: 3rem;
  border-radius: 12px !important;
  font-size: 1.05rem;
  font-weight: 800;
  background-image: none !important;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn--yes,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn[data-side="yes"] {
  background: color-mix(in srgb, #16a34a 18%, var(--bg-elevated)) !important;
  background-image: none !important;
  border: 1px solid color-mix(in srgb, #22c55e 55%, var(--hero-border)) !important;
  color: color-mix(in srgb, #4ade80 92%, var(--text)) !important;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn--yes:hover,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn[data-side="yes"]:hover {
  background: color-mix(in srgb, #16a34a 28%, var(--bg-elevated)) !important;
  border-color: color-mix(in srgb, #22c55e 80%, var(--hero-border)) !important;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn--no,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn[data-side="no"] {
  background: color-mix(in srgb, #dc2626 18%, var(--bg-elevated)) !important;
  background-image: none !important;
  border: 1px solid color-mix(in srgb, #ef4444 55%, var(--hero-border)) !important;
  color: color-mix(in srgb, #f87171 92%, var(--text)) !important;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn--no:hover,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn[data-side="no"]:hover {
  background: color-mix(in srgb, #dc2626 28%, var(--bg-elevated)) !important;
  border-color: color-mix(in srgb, #ef4444 80%, var(--hero-border)) !important;
}
/* Light theme — match smaller cards exactly */
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn--yes,
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn[data-side="yes"] {
  background: #dcfce7 !important;
  color: #166534 !important;
  border-color: #86efac !important;
}
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn--yes:hover {
  background: #bbf7d0 !important;
  border-color: #4ade80 !important;
}
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn--no,
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn[data-side="no"] {
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-color: #fca5a5 !important;
}
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn--no:hover {
  background: #fecaca !important;
  border-color: #f87171 !important;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__btn .sports-pools__odd-label {
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: inherit !important;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__feed {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.55rem 0.65rem;
  border-radius: 10px;
  background: color-mix(in srgb, var(--text-muted) 5%, transparent);
  border: 1px solid color-mix(in srgb, var(--text-muted) 8%, var(--hero-border));
  max-height: 7.5rem;
  overflow: hidden;
  mask-image: linear-gradient(to bottom, #000 70%, transparent 100%);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__feed-row {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--text-muted);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__feed-row strong {
  color: var(--text);
  font-weight: 700;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__ava {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  flex-shrink: 0;
  background: conic-gradient(from 120deg, var(--ava, #22c55e), #0f172a, var(--ava, #22c55e));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--bg-elevated) 80%, transparent);
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__col--chart {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border-radius: 14px;
  padding: 0.55rem 0.65rem 0.45rem;
  background: color-mix(in srgb, #020617 40%, var(--bg-elevated));
  border: 1px solid color-mix(in srgb, var(--text-muted) 12%, var(--hero-border));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #fff 4%, transparent);
}
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__col--chart {
  background: #f1f5f9;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__chart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__chart-badge {
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--text-muted) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--text-muted) 18%, var(--hero-border));
  color: var(--text-muted);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__chart-hint {
  font-size: 0.62rem;
  font-weight: 600;
  color: var(--text-muted);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__chart-wrap {
  position: relative;
  flex: 1;
  min-height: 108px;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__chart-svg {
  width: 100%;
  height: 100%;
  display: block;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__chart-grid {
  stroke: color-mix(in srgb, var(--text-muted) 25%, transparent);
  stroke-width: 0.35;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__chart-fill {
  fill: color-mix(in srgb, #22c55e 16%, transparent);
  opacity: 0.95;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__chart-line {
  fill: none;
  stroke: #4ade80;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 42 200;
  animation: rise-pm-spot-chart-dash 2.8s ease-in-out infinite;
}
@keyframes rise-pm-spot-chart-dash {
  0% {
    stroke-dashoffset: 0;
    opacity: 0.85;
  }
  50% {
    stroke-dashoffset: -55;
    opacity: 1;
  }
  100% {
    stroke-dashoffset: -110;
    opacity: 0.85;
  }
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__chart-tag {
  position: absolute;
  top: 6px;
  right: 8px;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: #4ade80;
  text-shadow: 0 0 12px color-mix(in srgb, #22c55e 55%, transparent);
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid color-mix(in srgb, var(--text-muted) 12%, var(--hero-border));
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__vol {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__brand-foot {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text-muted);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__live-dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #ef4444;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-spot__brand-name {
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* ─────────────────────────────────────────────────────────────────────
   Prediction markets · WORLD CUP 2026 race-chart hero
   Flat surfaces only. Uses design tokens. No gradients / shadows / glows.
   Typography: Inter (inherited), sizes consistent with rest of the dashboard.
   ───────────────────────────────────────────────────────────────────── */

/* Head row: brand stack on the left, total vol pinned right */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.85rem;
  flex-wrap: wrap;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__total {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  padding: 0.5rem 0.7rem;
  border-radius: 0.55rem;
  background: color-mix(in srgb, var(--bg-page) 50%, var(--bg-elevated));
  border: 1px solid var(--hero-border);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__total-label {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__total-val {
  font-size: 1rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  color: var(--text);
}

/* Legend strip — colour dot + country + % */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__legend {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1rem;
  margin: 0 0 0.85rem;
  padding: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-muted);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__legend-name {
  color: var(--text-muted);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__legend-pct {
  color: var(--text);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__legend-skel,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-skel,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__pick-skel {
  color: var(--text-muted);
  font-size: 0.78rem;
}

/* Chart frame & SVG — flat surface, matches the side panels */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart {
  margin-bottom: 0.95rem;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-frame {
  position: relative;
  width: 100%;
  height: clamp(220px, 32vw, 320px);
  /* No border, same fill as the parent card — the chart reads as part of the card body. */
  background: var(--bg-elevated);
  border: 0;
  border-radius: 0;
  overflow: visible;
  /* Surface colour used by the end-of-line dot outline (matches the card fill in both themes). */
  --pm-chart-bg: var(--bg-elevated);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-svg {
  width: 100%;
  height: 100%;
  display: block;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-grid {
  stroke: var(--hero-border);
  stroke-width: 1;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-line {
  fill: none;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0;
  stroke-dasharray: 0 4000;
  animation: rise-pm-wc-draw 2s ease-out forwards;
}
@keyframes rise-pm-wc-draw {
  0%   { opacity: 0; stroke-dasharray: 0 4000; }
  20%  { opacity: 1; }
  100% { opacity: 1; stroke-dasharray: 4000 0; }
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-end {
  opacity: 0;
  animation: rise-pm-wc-dot-in 0.25s ease-out forwards;
  animation-delay: 1.6s;
}
@keyframes rise-pm-wc-dot-in {
  to { opacity: 1; }
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-yaxis-text {
  fill: var(--text-muted);
  font-family: var(--rise-font-sans, Inter, system-ui, sans-serif);
  font-size: 10px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-xaxis-text {
  fill: var(--text-muted);
  font-family: var(--rise-font-sans, Inter, system-ui, sans-serif);
  font-size: 10px;
  font-weight: 600;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-trade {
  font-family: var(--rise-font-sans, Inter, system-ui, sans-serif);
  font-size: 11px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  fill: var(--text-muted);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-trade[data-pos="1"] {
  fill: var(--text);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-trade[data-pos="0"] {
  fill: var(--text-muted);
}

/* Body grid — country list on the LEFT, chart on the RIGHT.
   Mirrors the layout in the reference Polymarket-style hero. */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__body {
  display: grid;
  grid-template-columns: minmax(180px, 22%) minmax(0, 1fr);
  gap: clamp(0.9rem, 2vw, 1.4rem);
  margin-bottom: 0.95rem;
  align-items: start;
}

/* Left list — vertical, name + %, separator lines between rows, no buttons. */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__list-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--hero-border);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__list-row:last-child {
  border-bottom: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__list-name {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.005em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__list-pct {
  font-size: 0.92rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
  color: var(--text);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__list-skel {
  font-size: 0.78rem;
  color: var(--text-muted);
  padding: 0.5rem 0;
}

/* Right column wraps the legend + chart so the legend sits directly above the chart. */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-col {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  min-width: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-col .rise-pm-hero-wc__legend {
  margin: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-col .rise-pm-hero-wc__chart {
  margin: 0;
}

/* Foot meta line on the right */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__foot-meta {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
  text-align: right;
}

@media (max-width: 820px) {
  html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__body {
    grid-template-columns: 1fr;
  }
  html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-frame {
    height: 220px;
  }
  html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__legend {
    gap: 0.4rem 0.8rem;
    font-size: 0.74rem;
  }
}

/* Filter logic helpers — when a non-"all" chip is active the engine sets data-rise-pm-active-filter on the page root.
   The "Other markets" section is hidden whenever we're filtering for a football-only slice. */
html[data-route="dashboard-prediction-markets"][data-rise-pm-active-filter]:not([data-rise-pm-active-filter="all"]) .page-sports-pools--pm [data-rise-pm-section="other"],
html[data-route="dashboard-prediction-markets"][data-rise-pm-active-filter]:not([data-rise-pm-active-filter="all"]) .page-sports-pools--pm .sports-pools__grid:not(.rise-pm-grid--football):not([data-rise-pm-engine-grid]) {
  display: none !important;
}

/* ─────────────────────────────────────────────────────────────────────
   Prediction markets · Polymarket-style v2 card
   Layout: [icon | question | %-gauge]  /  Yes | No  /  $vol · 🎁 🔖
   Used on every PM card (engine-generated + static "Other markets").
   ───────────────────────────────────────────────────────────────────── */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__card.rise-pm-card--v2 {
  display: grid;
  grid-template-rows: auto auto auto;
  gap: 0.8rem;
  padding: 0.95rem 1rem 0.85rem;
}

/* Legacy markup is hidden whenever v2 wraps the card — engine drops these blocks but the static cards
   started life with them; the rewrite leaves them stripped so this is mostly belt-and-braces. */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card--v2 .sports-pools__card-head-row,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card--v2 .sports-pools__card-match,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card--v2 .sports-pools__card-pool-strip,
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card--v2 > .rise-pm-question {
  display: none !important;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__top {
  display: grid;
  grid-template-columns: 46px 1fr auto;
  align-items: center;
  gap: 0.7rem;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.12);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
  flex-shrink: 0;
  padding: 4px;
  box-sizing: border-box;
}
html[data-theme="dark"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__icon {
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}
/* Competition crests are often landscape/text-based (LaLiga, Premier League).
   `contain` lets them sit fully inside the square slot without cropping. */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__icon-emoji {
  font-size: 1.55rem;
  line-height: 1;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__title-wrap {
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
  min-width: 0;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__tag {
  margin: 0;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  flex-wrap: wrap;
}

html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__question {
  margin: 0;
  font-weight: 750;
  font-size: 0.96rem;
  line-height: 1.28;
  color: var(--text);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Polymarket-style half-pie gauge — wider, thicker stroke, opens at the bottom */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__gauge {
  position: relative;
  width: 68px;
  height: 50px;
  flex-shrink: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-gauge {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  /* Path is already drawn as a semicircle — no rotation needed. */
  transform: none;
  overflow: visible;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-gauge__track {
  fill: none;
  stroke: color-mix(in srgb, var(--text-muted) 22%, transparent);
  stroke-width: 4.5;
  stroke-linecap: round;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-gauge__fill {
  fill: none;
  stroke-width: 4.5;
  stroke-linecap: round;
  transition: stroke-dashoffset 0.4s ease;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-gauge--green .rise-pm-gauge__fill {
  stroke: #22c55e;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-gauge--red .rise-pm-gauge__fill {
  stroke: #ef4444;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-gauge--neutral .rise-pm-gauge__fill {
  stroke: color-mix(in srgb, var(--text-muted) 70%, transparent);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__gauge-value {
  position: absolute;
  top: 19px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text);
  line-height: 1;
  z-index: 1;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__gauge-label {
  position: absolute;
  top: 34px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 0.5rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  line-height: 1;
  z-index: 1;
}

/* Yes/No row inside v2 — equal grid, no inline price (the gauge handles the chance) */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card--v2 .sports-pools__card-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem;
  margin: 0;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card--v2 .sports-pools__card-row .sports-pools__odd .sports-pools__odd-line {
  display: none;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card--v2 .sports-pools__card-row .sports-pools__odd {
  padding: 0.7rem 0.9rem;
  justify-content: center;
  min-height: 2.4rem;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card--v2 .sports-pools__card-row .sports-pools__odd-label {
  font-size: 0.92rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  font-weight: 700 !important;
}

/* Footer: vol + save/gift actions */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  border-top: 1px solid color-mix(in srgb, var(--hero-border) 60%, transparent);
  padding-top: 0.55rem;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__vol {
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--text-muted);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__actions {
  display: inline-flex;
  align-items: center;
  gap: 0.18rem;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__action {
  appearance: none;
  background: none;
  border: 0;
  padding: 0.3rem 0.35rem;
  border-radius: 6px;
  color: var(--text-muted);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
  font-size: 0.98rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__action:hover {
  background: color-mix(in srgb, var(--text-muted) 14%, transparent);
  color: var(--text);
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__action .sports-pools__toolbar-svg {
  width: 16px;
  height: 16px;
  display: block;
}
/* Saved bookmark — fill the path with the accent color so the icon reads as "saved". */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__action--save.is-saved {
  color: #22c55e;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__action--save.is-saved .sports-pools__toolbar-svg path {
  fill: currentColor;
  stroke: currentColor;
}
html[data-theme="light"][data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__action--save.is-saved {
  color: #16a34a;
}

/* Engine "Auto" pill stays compact inside the tiny tag line */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-card__tag .rise-pm-card-engine-pill {
  margin-left: 0.25rem;
  font-size: 0.5rem;
  padding: 0.04rem 0.32rem;
}

/* ======================================================================================
 * Prediction-market detail page — `/prediction-markets/<fixture_id>`
 *
 * Layout reference: Polymarket (https://polymarket.com/event/...). Visually we keep the
 * Rise design tokens — no gradients, no glows, no drop-shadows. Flat surfaces with the
 * same `--bg-elevated` / `--hero-border` / `--text` palette used across the dashboard.
 *
 * Structure:
 *   <section .page-prediction-market-detail>
 *     <div .rise-pmd>
 *       <nav .rise-pmd__crumb>
 *       <div #rise-pmd-root .rise-pmd__root>
 *         <header .rise-pmd__header>   (competition logo, question + kickoff)
 *         <div .rise-pmd__layout>
 *           <div .rise-pmd__main>      (tabs, chart, rules, activity)
 *           <aside .rise-pmd__buy>     (Buy/Sell panel, side picker, amount)
 *         </div>
 *       </div>
 *     </div>
 *   </section>
 * ====================================================================================== */

html[data-route="dashboard-prediction-market-detail"] .page-prediction-market-detail {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 1.4rem clamp(1rem, 3vw, 2.4rem) 4rem;
  box-sizing: border-box;
  color: var(--text);
}

.rise-pmd {
  display: grid;
  gap: 1rem;
}

.rise-pmd__sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.rise-pmd__crumb {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  color: var(--text-muted);
}
.rise-pmd__crumb-link {
  color: var(--text-muted);
  text-decoration: none;
  transition: color 0.15s ease;
}
.rise-pmd__crumb-link:hover {
  color: var(--text);
}
.rise-pmd__crumb-sep {
  color: var(--text-muted);
}
.rise-pmd__crumb-here {
  color: var(--text);
  font-weight: 500;
  max-width: 38rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rise-pmd__root {
  display: grid;
  gap: 1rem;
}

.rise-pmd__skel,
.rise-pmd__error {
  background: var(--bg-elevated);
  border: 1px solid var(--hero-border);
  border-radius: 0.85rem;
  padding: 2.5rem 1.5rem;
  text-align: center;
  color: var(--text-muted);
  font-size: 0.95rem;
}
.rise-pmd__error a {
  color: var(--text);
  text-decoration: underline;
}

/* Silent shells: no literal “Loading…” in HTML/JS before hydrators paint. */
.rise-shell-skel--silent {
  color: transparent !important;
  text-shadow: none !important;
  user-select: none;
  pointer-events: none;
  caret-color: transparent;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__list-skel.rise-shell-skel--silent {
  min-height: 2.35em;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__legend-skel.rise-shell-skel--silent {
  min-height: 1.65em;
  list-style: none;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .rise-pm-hero-wc__chart-skel.rise-shell-skel--silent {
  display: inline-block;
  min-height: 2.75rem;
  min-width: min(100%, 14rem);
}
.rise-pmd__skel.rise-shell-skel--silent {
  font-size: 0;
  line-height: 0;
}
.sports-match__loading-msg.rise-shell-skel--silent {
  min-height: clamp(2.5rem, 6vw, 3.75rem);
  margin: 0;
}
.sports-activity__loading-text--empty {
  display: none !important;
}

/* ── Header (competition logo + question + kickoff) ─────────────────────────────────── */

.rise-pmd__header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(0.85rem, 2vw, 1.4rem);
  padding: clamp(1rem, 2vw, 1.4rem);
  background: var(--bg-elevated);
  border: 1px solid var(--hero-border);
  border-radius: 0.85rem;
}

.rise-pmd__crests {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
/* Single league / competition logo (PM detail: white rounded tile, both themes). */
.rise-pmd__crests--competition {
  gap: 0;
}
.rise-pmd__crest {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--bg-page);
  border: 1px solid var(--hero-border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__crest.rise-pmd__crest--competition {
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.12);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}
html[data-theme="dark"][data-route="dashboard-prediction-market-detail"] .rise-pmd__crest.rise-pmd__crest--competition {
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}
.rise-pmd__crest img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 5px;
  box-sizing: border-box;
}
.rise-pmd__crest-emoji {
  font-size: 28px;
  line-height: 1;
}

.rise-pmd__title-wrap {
  min-width: 0;
}
.rise-pmd__question {
  margin: 0 0 0.35rem;
  font-size: clamp(1.25rem, 2.4vw, 1.85rem);
  line-height: 1.18;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text);
  /** Keep very long questions readable on small screens. */
  word-break: break-word;
}
.rise-pmd__kickoff {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--text-muted);
  font-weight: 500;
}

/* ── Two-column layout: main column + sticky buy panel ─────────────────────────────── */

.rise-pmd__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: clamp(1rem, 2vw, 1.4rem);
  align-items: start;
}
.rise-pmd__main {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

/* ── Market tabs (Match winner / BTTS / O2.5 / Draw) ───────────────────────────────── */

.rise-pmd__tabs {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  scrollbar-width: thin;
  background: var(--bg-elevated);
  border: 1px solid var(--hero-border);
  border-radius: 0.7rem;
  padding: 0.4rem;
}
.rise-pmd__tab {
  flex: 1 1 0;
  min-width: 9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.55rem 0.7rem;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 0.5rem;
  color: var(--text-muted);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.rise-pmd__tab:hover {
  background: color-mix(in srgb, var(--text-muted) 10%, transparent);
  color: var(--text);
}
.rise-pmd__tab.is-active {
  background: color-mix(in srgb, var(--text-muted) 16%, transparent);
  color: var(--text);
  border-color: var(--hero-border);
}
.rise-pmd__tab-pct {
  font-size: 0.78rem;
  color: var(--text-muted);
}
.rise-pmd__tab.is-active .rise-pmd__tab-pct {
  color: var(--text);
}

/* ── Chart frame ───────────────────────────────────────────────────────────────────── */

.rise-pmd__chart-frame {
  background: var(--bg-elevated);
  border: 1px solid var(--hero-border);
  border-radius: 0.85rem;
  padding: 0.65rem 0.75rem;
}
.rise-pmd__chart {
  display: block;
  width: 100%;
  height: clamp(180px, 30vw, 260px);
}
.rise-pmd__chart-grid {
  stroke: var(--hero-border);
  stroke-width: 1;
  opacity: 0.55;
}
.rise-pmd__chart-fill {
  fill: #22c55e;
  fill-opacity: 0.08;
}
.rise-pmd__chart-line {
  fill: none;
  stroke: #22c55e;
  stroke-width: 2.2;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.rise-pmd__chart-end {
  fill: #22c55e;
  stroke: var(--bg-elevated);
  stroke-width: 2;
}
.rise-pmd__chart-tick {
  fill: var(--text-muted);
  font-size: 10px;
  font-family: var(--rise-font-sans, "Inter"), system-ui, sans-serif;
}

/* ── Rules + facts ─────────────────────────────────────────────────────────────────── */

.rise-pmd__rules,
.rise-pmd__activity {
  background: var(--bg-elevated);
  border: 1px solid var(--hero-border);
  border-radius: 0.85rem;
  padding: clamp(0.9rem, 2vw, 1.2rem);
}
.rise-pmd__h3 {
  margin: 0 0 0.65rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
}
.rise-pmd__rules-body {
  margin: 0 0 0.9rem;
  color: var(--text);
  font-size: 0.92rem;
  line-height: 1.55;
}
.rise-pmd__facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 0.5rem 1.2rem;
  margin: 0;
}
.rise-pmd__fact {
  display: grid;
  gap: 0.1rem;
  font-size: 0.85rem;
}
.rise-pmd__fact dt {
  color: var(--text-muted);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.rise-pmd__fact dd {
  margin: 0;
  color: var(--text);
  font-weight: 500;
}

/* ── Comments / Activity bottom tabs (placeholders) ────────────────────────────────── */

.rise-pmd__tabs-sec {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-bottom: 0.85rem;
  border-bottom: 1px solid var(--hero-border);
  padding-bottom: 0.5rem;
}
.rise-pmd__tab-sec {
  background: transparent;
  border: 0;
  padding: 0.35rem 0.6rem;
  color: var(--text-muted);
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  border-radius: 0.4rem;
}
.rise-pmd__tab-sec.is-active {
  color: var(--text);
  background: color-mix(in srgb, var(--text-muted) 12%, transparent);
}
.rise-pmd__tab-sec:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.rise-pmd__activity-empty {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.88rem;
  line-height: 1.5;
}

/* ── Buy panel (right column / sticky on desktop) ──────────────────────────────────── */

.rise-pmd__buy {
  position: sticky;
  top: calc(var(--nav-h, 64px) + 0.85rem);
  display: grid;
  gap: 0.7rem;
  background: var(--bg-elevated);
  border: 1px solid var(--hero-border);
  border-radius: 0.95rem;
  padding: clamp(0.9rem, 2vw, 1.1rem);
}
.rise-pmd__buy-head {
  display: inline-flex;
  gap: 0.85rem;
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 0.15rem;
}
.rise-pmd__buy-mode {
  background: transparent;
  border: 0;
  padding: 0.2rem 0;
  color: var(--text-muted);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  border-bottom: 2px solid transparent;
}
.rise-pmd__buy-mode.is-active {
  color: var(--text);
  border-bottom-color: var(--text);
}
.rise-pmd__buy-mode:disabled {
  opacity: 0.92;
  cursor: not-allowed;
  border-bottom-color: transparent;
}

.rise-pmd__buy-row.sports-pools__card-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem;
  margin: 0;
}

/* PM detail buy — Yes/No match grid `.sports-pools__odd` on `/prediction-markets`. */
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__card-row .sports-pools__odd .sports-pools__odd-line {
  display: none;
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__card-row .sports-pools__odd {
  padding: 0.7rem 0.9rem;
  justify-content: center;
  align-items: center;
  min-height: 2.4rem;
  cursor: pointer;
  opacity: 1;
  background-image: none;
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__card-row .sports-pools__odd-label {
  font-size: 0.92rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  font-weight: 700 !important;
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__card-row .sports-pools__odd-pct.rise-pmd__buy-cents {
  font-size: 0.8rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  margin-top: 0.12rem;
  line-height: 1.1;
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="yes"] {
  border-color: color-mix(in srgb, #22c55e 55%, var(--hero-border));
  background: color-mix(in srgb, #16a34a 18%, var(--bg-elevated));
  color: color-mix(in srgb, #4ade80 92%, var(--text));
  background-image: none;
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="yes"]:hover {
  border-color: color-mix(in srgb, #22c55e 80%, var(--hero-border));
  background: color-mix(in srgb, #16a34a 28%, var(--bg-elevated));
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="yes"] .sports-pools__odd-label,
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="yes"] .sports-pools__odd-pct,
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="yes"] .sports-pools__odd-line {
  color: inherit;
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="no"] {
  border-color: color-mix(in srgb, #ef4444 55%, var(--hero-border));
  background: color-mix(in srgb, #dc2626 18%, var(--bg-elevated));
  color: color-mix(in srgb, #f87171 92%, var(--text));
  background-image: none;
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="no"]:hover {
  border-color: color-mix(in srgb, #ef4444 80%, var(--hero-border));
  background: color-mix(in srgb, #dc2626 28%, var(--bg-elevated));
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="no"] .sports-pools__odd-label,
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="no"] .sports-pools__odd-pct,
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="no"] .sports-pools__odd-line {
  color: inherit;
}
html[data-theme="light"][data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="yes"] {
  background: #dcfce7;
  color: #166534;
  border-color: #86efac;
  background-image: none;
}
html[data-theme="light"][data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="yes"]:hover {
  background: #bbf7d0;
  border-color: #4ade80;
}
html[data-theme="light"][data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="no"] {
  background: #fee2e2;
  color: #991b1b;
  border-color: #fca5a5;
  background-image: none;
}
html[data-theme="light"][data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="no"]:hover {
  background: #fecaca;
  border-color: #f87171;
}
/* No light outline on selection — `var(--text)` reads as a harsh white ring in dark mode. */
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd.is-active {
  outline: none;
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="yes"].is-active {
  border-color: color-mix(in srgb, #22c55e 85%, var(--hero-border));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #22c55e 35%, transparent);
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="no"].is-active {
  border-color: color-mix(in srgb, #ef4444 85%, var(--hero-border));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #ef4444 35%, transparent);
}
html[data-theme="light"][data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="yes"].is-active {
  border-color: #4ade80;
  box-shadow: inset 0 0 0 1px rgba(22, 101, 52, 0.2);
}
html[data-theme="light"][data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd[data-side="no"].is-active {
  border-color: #f87171;
  box-shadow: inset 0 0 0 1px rgba(153, 27, 27, 0.18);
}
/* Mouse click focus: drop browser default ring. Keyboard: keep a visible non-white focus ring. */
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd:focus:not(:focus-visible) {
  outline: none;
}
html[data-route="dashboard-prediction-market-detail"] .rise-pmd__buy .sports-pools__odd:focus-visible {
  outline: 2px solid color-mix(in srgb, #22c55e 55%, #38bdf8);
  outline-offset: 2px;
}

.rise-pmd__buy-amount {
  display: grid;
  gap: 0.3rem;
}
.rise-pmd__buy-amount-label {
  font-size: 0.78rem;
  color: var(--text-muted);
  font-weight: 600;
}
.rise-pmd__buy-amount-input {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.55rem 0.65rem;
  background: var(--bg-page);
  border: 1px solid var(--hero-border);
  border-radius: 0.5rem;
  color: var(--text);
  font-size: 1.1rem;
  font-weight: 600;
}
.rise-pmd__buy-amount-input input:disabled {
  opacity: 0.88;
  cursor: not-allowed;
}
.rise-pmd__buy-quick {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.rise-pmd__buy-chip {
  flex: 1 1 0;
  min-width: 3rem;
  background: var(--bg-page);
  border: 1px solid var(--hero-border);
  color: var(--text);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0.4rem 0.5rem;
  border-radius: 0.4rem;
  cursor: pointer;
}
.rise-pmd__buy-chip:hover {
  background: color-mix(in srgb, var(--text-muted) 12%, var(--bg-page));
}
.rise-pmd__buy-chip:disabled {
  opacity: 0.52;
  cursor: not-allowed;
}
.rise-pmd__buy-cta {
  margin-top: 0.2rem;
  background: var(--text);
  color: var(--bg-page);
  border: 0;
  padding: 0.7rem 1rem;
  border-radius: 0.55rem;
  font: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  transition: filter 0.15s ease;
}
.rise-pmd__buy-cta:hover {
  filter: brightness(1.06);
}
.rise-pmd__buy-cta:disabled {
  cursor: not-allowed;
  opacity: 0.72;
}
.rise-pmd__buy-fineprint {
  margin: 0;
  font-size: 0.72rem;
  color: var(--text-muted);
  line-height: 1.4;
}

/* ── Responsive — collapse two columns on small screens, drop sticky behavior. ──────── */

@media (max-width: 880px) {
  .rise-pmd__layout {
    grid-template-columns: 1fr;
  }
  .rise-pmd__buy {
    position: static;
    top: auto;
  }
}

/* ── Make grid prediction cards visibly clickable ──────────────────────────────────── */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__card[data-rise-pm-match-id] {
  cursor: pointer;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__card[data-rise-pm-match-id]:focus-visible {
  outline: 2px solid var(--text);
  outline-offset: 2px;
}

/*
 * Yes/No buttons inside prediction cards are interactive now (delegated click navigates to
 * the detail page). The base `.sports-pools__odd { cursor: not-allowed }` rule in markets.css
 * exists because those buttons are non-interactive on `/sports-betting` (pool view is read-
 * only). Override here so the Yes/No buttons get a proper pointer cursor on PM cards only.
 */
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__card[data-rise-pm-match-id] .sports-pools__odd[data-rise-pm-side] {
  cursor: pointer;
}
html[data-route="dashboard-prediction-markets"] .page-sports-pools--pm .sports-pools__card[data-rise-pm-match-id] .sports-pools__odd[data-rise-pm-side]:focus-visible {
  outline: 2px solid var(--text);
  outline-offset: 2px;
}
