/**
 * exchange-odds.bundle.css — concatenated exchange CSS (no minify).
 * Rebuild: php scripts/build-exchange-css-bundles.php
 * Source order is the cascade order from style-account.
 */

/* ===== exchange-ladder.css ===== */
/* ─────────────────────────────────────────────────────────────────────────
   Match Odds + Sessions + Fancy ladder — single back / single lay per runner.
   Scoped under .ex-market--ladder. One real price per side from the existing
   data model; no fabricated depth rows. Multi-level ladders need a future
   order-book feed.
   Must load AFTER exchange.css (see exchange.css:492-538 for base grid rules).
   ───────────────────────────────────────────────────────────────────────── */

.ex-market--ladder .ex-market__header {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.125rem;
}

.ex-market--ladder .ex-market__header-main {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
    width: 100%;
}

.ex-market--ladder .ex-market__meta {
    font-size: var(--theme-text-xs, 0.6875rem);
    color: var(--ex-muted);
    font-variant-numeric: tabular-nums;
}

.ex-market--ladder .ex-market__volume {
    font-variant-numeric: tabular-nums;
}

.ex-market--ladder .ex-market__runner-volume {
    font-variant-numeric: tabular-nums;
}

.ex-market--ladder .ex-market__price-col {
    padding: 0.25rem;
    align-items: stretch;
}

/* Bordered frame around the one live price cell per side. */
.ex-ladder {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    border: 1px solid var(--ex-border);
    border-radius: var(--ex-panel-radius, 6px);
    overflow: hidden;
}

.ex-ladder__cell {
    flex: 1 1 auto;
    min-height: 0;
    border-radius: 0 !important;
}

/* Live cell reuses .ex-price visuals — flush inside the shared frame. */
.ex-market--ladder .ex-ladder__cell--live.ex-price {
    min-height: var(--theme-odds-h-desktop, 36px);
    width: 100%;
    border: none;
}

.ex-market--ladder .ex-price--unavailable.ex-ladder__cell {
    /* gray + lock owned by exchange-odds-cell.css */
    pointer-events: none;
}

.ex-market--ladder .ex-price--unavailable.ex-ladder__cell .ex-price__value {
    /* hidden by exchange-odds-cell.css — no dash */
}

/* Event list — border between match header and markets (title bar styled in exchange-indian-grid.css). */
.ex-event .ex-market--inline-list {
    border-top: 1px solid var(--ex-border);
    margin: 0;
}

.ex-event .ex-market--inline-list + .ex-market--inline-list {
    border-top: none;
}

/* Large odds — legacy 3-col fallback if old markup is cached */
@media (max-width: 575.98px) {
    .exchange-app .ex-market--ladder .ex-market__head-row,
    .exchange-app .ex-market--ladder .ex-market__runner-row,
    .exchange-app .ex-market--ladder .ex-market__head-row--fancy,
    .exchange-app .ex-market--ladder .ex-market__runner-row--fancy {
        grid-template-columns: minmax(0, 1fr) minmax(3.25rem, 4.25rem) minmax(3.25rem, 4.25rem);
    }

    .exchange-app .ex-market--ladder .ex-market__price-col {
        padding: 0.15rem;
        min-width: 0;
    }

    .exchange-app .ex-market--ladder .ex-price {
        min-height: var(--theme-odds-h-mobile, 40px);
        padding: 0.1rem 0.08rem;
    }

    .exchange-app .ex-market--ladder .ex-price__value {
        font-size: var(--theme-odds-font-size, var(--theme-text-base, 0.875rem));
        font-weight: var(--theme-odds-font-weight, var(--theme-weight-bold, 700));
        line-height: 1.1;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

@media (max-width: 399.98px) {
    .exchange-app .ex-market--ladder .ex-market__head-row,
    .exchange-app .ex-market--ladder .ex-market__runner-row,
    .exchange-app .ex-market--ladder .ex-market__head-row--fancy,
    .exchange-app .ex-market--ladder .ex-market__runner-row--fancy {
        grid-template-columns: minmax(0, 1fr) minmax(3rem, 3.75rem) minmax(3rem, 3.75rem);
    }

    .exchange-app .ex-market--ladder .ex-price__value {
        font-size: var(--theme-odds-font-size, var(--theme-text-base, 0.875rem));
    }
}

/* ===== exchange-indian-grid.css ===== */
/**
 * Indian exchange grid — symmetric Runner | Back | Lay on every screen.
 * Sky / Diamond / local exchange standard single-depth table.
 */

/* Flat tiles on indian markets — no ladder frame wrapper */
.ex-market--indian.ex-market--ladder .ex-ladder {
    border: none;
    border-radius: 0;
    overflow: visible;
}

.ex-market--indian.ex-market--ladder .ex-ladder__cell--live.ex-price,
.ex-market--indian.ex-market--ladder .ex-price--unavailable.ex-ladder__cell {
    min-height: var(--ex-xch-cell-h, 2.125rem);
    border-radius: var(--theme-radius-chip, 4px);
}

.ex-market--indian .ex-market__grid {
    border: 1px solid var(--ex-border);
    background: var(--ex-market-bg, var(--ex-surface));
}

/* Market title strip on list cards */
.ex-market--indian.ex-market--inline-list .ex-market__list-title {
    margin: 0;
    padding: 0.4rem 0.625rem;
    background: var(--ex-surface-section-head, var(--ex-surface-table-head));
    color: var(--ex-schedule-section-head-text, var(--ex-text-strong));
    font-size: var(--theme-text-xs, 0.6875rem);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--ex-schedule-section-head-border, var(--ex-border));
}

.ex-market--indian .ex-market__header {
    background: var(--ex-surface-table-head, var(--ex-surface-head));
    border-bottom: 1px solid var(--ex-border);
}

.ex-market--indian .ex-market__header .ex-market__title {
    color: var(--ex-text-strong, var(--ex-runner-text));
    font-size: var(--theme-text-sm, 0.75rem);
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.ex-market--indian .ex-market__header .ex-market__meta {
    color: var(--ex-muted);
    font-size: var(--theme-text-xs, 0.6875rem);
}

/* ─── 3-column grid: runner | back | lay ─────────────────────────────────── */
.ex-indian-grid__head,
.ex-indian-grid__row {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(5.5rem, 8rem) minmax(5.5rem, 8rem);
    align-items: stretch;
    min-height: 2.125rem;
}

.ex-indian-grid__head {
    border-bottom: 1px solid var(--ex-border);
    font-size: var(--theme-text-xs, 0.6875rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ex-indian-grid__head-runner {
    display: flex;
    align-items: center;
    padding: 0.35rem 0.5rem;
    background: var(--ex-surface-head);
    color: var(--ex-muted);
    border-right: 1px solid var(--ex-border);
}

.ex-indian-grid__head-back,
.ex-indian-grid__head-lay {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.35rem 0.25rem;
    border-right: 1px solid rgba(0, 0, 0, 0.08);
}

.ex-indian-grid__head-back {
    background: var(--ex-back);
    color: var(--ex-back-text);
}

.ex-indian-grid__head-lay {
    background: var(--ex-lay);
    color: var(--ex-lay-text);
    border-right: none;
}

.ex-indian-grid__head-hint {
    display: block;
    font-size: var(--theme-text-xs, 0.6875rem);
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    opacity: 0.9;
    line-height: 1.1;
}

/* Match detail — compact sessions / fancy (same as match odds header) */
.ex-market--compact-detail {
    position: relative;
}

.ex-market--compact-detail > .market-suspended-badge {
    position: absolute;
    top: 0.35rem;
    right: 0.5rem;
    z-index: 2;
}

.ex-indian-grid--compact-detail {
    border: none;
}

.ex-indian-grid--compact-detail .ex-indian-grid__market-title {
    padding: 0.28rem 0.4rem;
    font-family: var(--theme-font-sans, "Inter", system-ui, sans-serif);
    font-size: var(--theme-text-sm, 0.75rem);
    font-weight: var(--theme-type-label-weight, var(--theme-weight-semibold, 600));
    letter-spacing: 0.05em;
    line-height: 1.25;
    text-transform: uppercase;
    color: var(--ex-text-strong, var(--ex-runner-text));
    background: var(--ex-surface-subhead);
    border-bottom: 1px solid var(--theme-match-list-columns-border, var(--ex-border));
}

.ex-markets-wrap--unified .ex-market--compact-detail .ex-market__grid {
    border: none;
}

.ex-markets-wrap--unified .ex-market--compact-detail + .ex-market--compact-detail {
    border-top: 1px solid var(--ex-border);
}

.ex-markets-panel__title {
    border-radius: 0;
}

.ex-markets-wrap--unified .ex-markets-panel__title {
    border-top: none;
}

.ex-markets-wrap--unified .ex-markets-panel__title + .ex-market--compact-detail .ex-market__grid {
    border-top: none;
}

.ex-indian-grid--yes-no {
    /* Sacred exchange grammar: Yes→Back, No→Lay (ink on pastel). */
    --ex-yes: var(--ex-back);
    --ex-yes-hover: var(--ex-back-hover, var(--ex-back));
    --ex-yes-text: var(--ex-back-text, #1a1a1a);
    --ex-no: var(--ex-lay);
    --ex-no-hover: var(--ex-lay-hover, var(--ex-lay));
    --ex-no-text: var(--ex-lay-text, #1a1a1a);
}

html.theme-dark .ex-indian-grid--yes-no,
.theme-dark .ex-indian-grid--yes-no {
    --ex-yes: var(--ex-back);
    --ex-yes-hover: var(--ex-back-hover, var(--ex-back));
    --ex-yes-text: var(--ex-back-text, #1a1a1a);
    --ex-no: var(--ex-lay);
    --ex-no-hover: var(--ex-lay-hover, var(--ex-lay));
    --ex-no-text: var(--ex-lay-text, #1a1a1a);
}

.ex-indian-grid--yes-no .ex-indian-grid__cell--labeled {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    gap: 0.15rem;
    padding: 0;
}

.ex-indian-grid--yes-no .ex-indian-grid__side-label {
    display: block;
    font-size: var(--theme-text-xs, 0.6875rem);
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ex-indian-grid--yes-no .ex-indian-grid__cell--back .ex-indian-grid__side-label {
    color: var(--ex-yes);
}

.ex-indian-grid--yes-no .ex-indian-grid__cell--lay .ex-indian-grid__side-label {
    color: var(--ex-no);
}

.ex-indian-grid--yes-no .ex-indian-grid__cell--labeled .ex-ladder {
    width: 100%;
}

.ex-markets-section__empty--unified {
    padding: 0.75rem 0.5rem 1rem;
    text-align: center;
}

.ex-markets-section__empty--unified .ex-markets-section__empty-text {
    margin: 0;
}

.ex-market--placeholder {
    pointer-events: none;
    user-select: none;
}

.ex-market--placeholder .ex-market__grid {
    border: none;
    border-bottom: 1px solid var(--ex-border);
}

.ex-indian-grid__row--placeholder .ex-indian-grid__placeholder-value {
    font-size: var(--theme-text-md, 0.8125rem);
    font-weight: 700;
    color: var(--ex-muted);
    opacity: 0.65;
}

.ex-indian-grid__row--placeholder .ex-indian-grid__placeholder-hint {
    font-size: var(--theme-text-xs, 0.6875rem);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ex-muted);
    opacity: 0.55;
}

.ex-indian-grid__row--placeholder .ex-price--placeholder {
    opacity: 0.45;
}

.ex-indian-grid__row {
    border-bottom: 1px solid var(--ex-border);
}

.ex-indian-grid__row:last-child {
    border-bottom: none;
}

.ex-indian-grid__row:nth-child(even) {
    background: var(--ex-surface-row-alt, var(--ex-row-alt));
}

.ex-indian-grid__row:nth-child(odd) {
    background: var(--ex-surface-row, transparent);
}

.ex-indian-grid__runner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.28rem 0.4rem;
    border-right: 1px solid var(--ex-border);
    min-width: 0;
}

.ex-indian-grid__runner-name {
    color: var(--ex-runner-text);
    font-size: var(--theme-text-md, 0.8125rem);
    font-weight: 500;
    line-height: 1.25;
    word-break: break-word;
}

.ex-indian-grid__runner-meta {
    color: var(--ex-muted);
    font-size: var(--theme-text-xs, 0.6875rem);
    margin-top: 0.1rem;
    font-variant-numeric: tabular-nums;
}

.ex-indian-grid__cell {
    display: flex;
    align-items: stretch;
    justify-content: center;
    padding: 0;
    border-right: 1px solid var(--ex-border);
    min-height: var(--theme-odds-h-desktop, 36px);
}

.ex-indian-grid__cell--lay {
    border-right: none;
}

.ex-indian-grid__cell .ex-ladder {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 0;
}

.ex-market--indian .ex-indian-grid__cell {
    padding: 0;
}

.ex-market--indian .ex-indian-grid__cell .ex-price {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: var(--theme-odds-h-desktop, 36px);
    height: 100%;
    border-radius: var(--theme-radius-odds, 0);
    border: none;
    flex-direction: column;
    gap: 0.05rem;
    padding: 0;
    transition: background-color 0.12s ease;
}

.ex-market--indian .ex-indian-grid__cell--back .ex-price--back:not(.ex-price--unavailable) {
    background: var(--ex-back) !important;
    color: var(--ex-back-text) !important;
    box-shadow: none;
}

.ex-market--indian .ex-indian-grid__cell--lay .ex-price--lay:not(.ex-price--unavailable) {
    background: var(--ex-lay) !important;
    color: var(--ex-lay-text) !important;
    box-shadow: none;
}

.ex-indian-grid--yes-no .ex-indian-grid__cell .ex-price--yes:not(.ex-price--unavailable) {
    background: var(--ex-yes) !important;
    border-color: var(--ex-yes) !important;
    color: var(--ex-yes-text) !important;
}

.ex-indian-grid--yes-no .ex-indian-grid__cell .ex-price--no:not(.ex-price--unavailable) {
    background: var(--ex-no) !important;
    border-color: var(--ex-no) !important;
    color: var(--ex-no-text) !important;
}

.ex-market--indian .ex-indian-grid__cell .ex-price__value {
    font-size: var(--theme-type-odds-size, var(--theme-text-md, 0.8125rem));
    font-weight: var(--theme-type-odds-weight, var(--theme-weight-bold, 700));
    line-height: var(--theme-leading-tight, 1.1);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    letter-spacing: var(--theme-type-odds-tracking, -0.01em);
}

.ex-market--indian .ex-indian-grid__cell .ex-price__size {
    font-size: var(--theme-type-odds-size-liquidity, var(--theme-text-xs, 0.6875rem));
    font-weight: var(--theme-weight-medium, 500);
    line-height: 1;
    opacity: 0.8;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 991.98px) {
    .ex-indian-grid__cell,
    .ex-market--indian .ex-indian-grid__cell .ex-price {
        min-height: var(--theme-odds-h-mobile, 40px);
    }
}

.ex-market--indian .ex-indian-grid__cell .ex-price--unavailable {
    /* gray + lock owned by exchange-odds-cell.css */
    opacity: 1;
    box-shadow: none;
}

.ex-event .ex-market--indian.ex-market--inline-list {
    border-top: 1px solid var(--ex-border);
}

.ex-event .ex-market--indian.ex-market--inline-list + .ex-market--indian.ex-market--inline-list {
    border-top: none;
}

@media (min-width: 1200px) {
    .ex-indian-grid__head,
    .ex-indian-grid__row {
        grid-template-columns: minmax(0, 1.5fr) minmax(6rem, 8.5rem) minmax(6rem, 8.5rem);
    }

    .ex-market--indian .ex-indian-grid__cell .ex-price {
        min-width: 3.25rem;
        min-height: 2.375rem;
    }
}

@media (max-width: 575.98px) {
    .ex-indian-grid__head,
    .ex-indian-grid__row {
        grid-template-columns: minmax(0, 1fr) minmax(5.1rem, 6.75rem) minmax(5.1rem, 6.75rem);
    }

    .ex-market--indian .ex-indian-grid__cell .ex-price {
        min-width: 2.875rem;
        min-height: 2rem;
    }

    .ex-market--indian .ex-indian-grid__cell .ex-price__value {
        font-size: clamp(var(--theme-text-xs, 0.6875rem), 3.2vw, var(--theme-text-md, 0.8125rem));
    }
}

@media (max-width: 399.98px) {
    .ex-indian-grid__head,
    .ex-indian-grid__row {
        grid-template-columns: minmax(0, 1fr) minmax(4.25rem, 5.5rem) minmax(4.25rem, 5.5rem);
    }
}

/* Sportsbook match-odds: Runner | Odds (no Lay) */
.ex-market--sportsbook .ex-indian-grid__head,
.ex-market--sportsbook .ex-indian-grid__row {
    grid-template-columns: minmax(0, 1.4fr) minmax(5.5rem, 9rem);
}

.ex-market--sportsbook .ex-indian-grid__head-back {
    background: var(--ex-back, #72BBEF);
    color: var(--ex-back-text, #1a1a1a);
    border-right: none;
}

.ex-market--sportsbook .ex-indian-grid__cell--back .ex-price--back:not(.ex-price--unavailable) {
    background: var(--ex-back, #72BBEF) !important;
    color: var(--ex-back-text, #1a1a1a) !important;
    font-weight: var(--theme-weight-bold, 700);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.ex-market--sportsbook .ex-indian-grid__cell--back .ex-price--back:not(.ex-price--unavailable):hover,
.ex-market--sportsbook .ex-indian-grid__cell--back .ex-price--back:not(.ex-price--unavailable):focus {
    background: var(--ex-back-hover, #5AACF0) !important;
    color: var(--ex-back-text, #1a1a1a) !important;
}

.ex-market--sportsbook .ex-indian-grid__cell--back .ex-price--draw:not(.ex-price--unavailable),
.ex-market--sportsbook .ex-indian-grid__row--draw .ex-price--draw:not(.ex-price--unavailable),
.ex-market--sportsbook .ex-indian-grid__row--draw .ex-price:not(.ex-price--unavailable) {
    background: var(--ex-draw, #F59E0B) !important;
    color: var(--ex-draw-text, #1a1a1a) !important;
    font-weight: var(--theme-weight-bold, 700);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.ex-market--sportsbook .ex-indian-grid__cell--back .ex-price--draw:not(.ex-price--unavailable):hover,
.ex-market--sportsbook .ex-indian-grid__cell--back .ex-price--draw:not(.ex-price--unavailable):focus,
.ex-market--sportsbook .ex-indian-grid__row--draw .ex-price--draw:not(.ex-price--unavailable):hover,
.ex-market--sportsbook .ex-indian-grid__row--draw .ex-price--draw:not(.ex-price--unavailable):focus,
.ex-market--sportsbook .ex-indian-grid__row--draw .ex-price:not(.ex-price--unavailable):hover,
.ex-market--sportsbook .ex-indian-grid__row--draw .ex-price:not(.ex-price--unavailable):focus {
    background: var(--ex-draw-hover, #FBBF24) !important;
    color: var(--ex-draw-text, #1a1a1a) !important;
}

/* Away row — Betfair Lay pink */
.ex-market--sportsbook .ex-indian-grid__row--away .ex-price:not(.ex-price--unavailable),
.ex-market--sportsbook .ex-indian-grid__row--away .ex-price--lay:not(.ex-price--unavailable),
.ex-market--sportsbook .ex-indian-grid__row--away .ex-price--back:not(.ex-price--unavailable) {
    background: var(--ex-lay, #FAA9BA) !important;
    color: var(--ex-lay-text, #1a1a1a) !important;
    font-weight: var(--theme-weight-bold, 700);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.ex-market--sportsbook .ex-indian-grid__row--away .ex-price:not(.ex-price--unavailable):hover,
.ex-market--sportsbook .ex-indian-grid__row--away .ex-price:not(.ex-price--unavailable):focus {
    background: var(--ex-lay-hover, #F896A8) !important;
    color: var(--ex-lay-text, #1a1a1a) !important;
}

.ex-market--sportsbook .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.ex-market--indian .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling) {
    background: var(--ex-odds-flash-up, #15803D) !important;
    color: #fff !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28) !important;
}

.ex-market--sportsbook .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.ex-market--indian .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling) {
    background: var(--ex-odds-flash-down, #DD3E42) !important;
    color: #fff !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28) !important;
}

@media (min-width: 1200px) {
    .ex-market--sportsbook .ex-indian-grid__head,
    .ex-market--sportsbook .ex-indian-grid__row {
        grid-template-columns: minmax(0, 1.6fr) minmax(6rem, 9.5rem);
    }
}

@media (max-width: 575.98px) {
    .ex-market--sportsbook .ex-indian-grid__head,
    .ex-market--sportsbook .ex-indian-grid__row {
        grid-template-columns: minmax(0, 1fr) minmax(4.75rem, 7rem);
    }
}

/* ===== exchange-indian-list.css ===== */
/**
 * Exchange match list — compact Betfair / Fun88 / Indibet hybrid.
 * One row per match · 1 | X | 2 · blue Back + pink Lay · all screen sizes.
 */

/* ─── Panel & grid tokens ─────────────────────────────────────────────────── */
.ex-inplay-group__list--indibet {
    --ex-xch-info: minmax(5.5rem, 1.35fr);
    --ex-xch-outcome: minmax(6.25rem, 7.75rem);
    --ex-xch-tail: 2rem;
    --ex-xch-gap: var(--theme-space-odds-gap, 0.25rem);
    --ex-xch-pair-gap: 2px;
    --ex-xch-radius: var(--theme-radius-odds);
    --ex-xch-cell-h: var(--theme-odds-h-desktop, 36px);
    --ex-xch-cell-min-w: 2.875rem;
    padding: 0;
    background: var(--ex-market-bg);
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.ex-inplay-group__list--indibet .ex-indibet-list__columns,
.ex-inplay-group__list--indibet .ex-indibet-row {
    min-width: 0;
    width: 100%;
}

.ex-inplay-group__list--indibet .ex-event--indibet {
    margin: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}

.ex-inplay-group__list--indibet .ex-event--indibet:last-child .ex-indibet-row {
    border-bottom: none;
}

/* Column templates — no tail column (markets count / favourite removed) */
.ex-inplay-group__list--indibet.ex-inplay-group__list--3way .ex-indibet-list__columns,
.ex-inplay-group__list--indibet.ex-inplay-group__list--3way .ex-indibet-row {
    grid-template-columns:
        var(--ex-xch-info)
        var(--ex-xch-outcome) var(--ex-xch-outcome) var(--ex-xch-outcome);
}

.ex-inplay-group__list--indibet.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-list__columns,
.ex-inplay-group__list--indibet.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row {
    grid-template-columns:
        var(--ex-xch-info)
        var(--ex-xch-outcome) var(--ex-xch-outcome);
}

/* Goal Line: info | Over | Under — matches Fancy's own 2-column track
   (no dummy middle column; both dropped it together). */
.ex-inplay-group__list--goal-line.ex-inplay-group__list--2way .ex-indibet-list__columns,
.ex-inplay-group__list--goal-line.ex-inplay-group__list--2way .ex-indibet-row {
    grid-template-columns:
        var(--ex-xch-info)
        var(--ex-xch-outcome) var(--ex-xch-outcome);
}

.ex-inplay-group__list--indibet.ex-inplay-group__list--has-fancy.ex-inplay-group__list--3way .ex-indibet-list__columns,
.ex-inplay-group__list--indibet.ex-inplay-group__list--has-fancy.ex-inplay-group__list--3way .ex-indibet-row {
    grid-template-columns:
        var(--ex-xch-info)
        var(--ex-xch-outcome) var(--ex-xch-outcome) var(--ex-xch-outcome)
        var(--ex-xch-outcome);
}

.ex-inplay-group__list--indibet.ex-inplay-group__list--has-fancy.ex-inplay-group__list--2way .ex-indibet-list__columns,
.ex-inplay-group__list--indibet.ex-inplay-group__list--has-fancy.ex-inplay-group__list--2way .ex-indibet-row {
    grid-template-columns:
        var(--ex-xch-info)
        var(--ex-xch-outcome) var(--ex-xch-outcome)
        var(--ex-xch-outcome);
}

/* Match detail — no tail column (no star / market count) */
.ex-inplay-group__list--match-detail.ex-inplay-group__list--3way .ex-indibet-list__columns,
.ex-inplay-group__list--match-detail.ex-inplay-group__list--3way .ex-indibet-row {
    grid-template-columns:
        var(--ex-xch-info)
        var(--ex-xch-outcome) var(--ex-xch-outcome) var(--ex-xch-outcome);
}

.ex-inplay-group__list--match-detail.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-list__columns,
.ex-inplay-group__list--match-detail.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row {
    grid-template-columns:
        var(--ex-xch-info)
        var(--ex-xch-outcome) var(--ex-xch-outcome);
}

.ex-market--match-list .ex-inplay-group__list--indibet {
    border: none;
    border-radius: 0;
    border-top: 1px solid var(--ex-border);
}

.ex-market--match-list .ex-market__header {
    border-bottom: none;
}

.ex-markets-section .ex-market--match-list {
    border: 1px solid var(--ex-border);
    border-radius: 0 0 var(--ex-panel-radius, 6px) var(--ex-panel-radius, 6px);
    overflow: hidden;
    background: var(--ex-market-bg-3d, var(--ex-market-bg));
    box-shadow: var(--ex-market-3d-shadow, var(--ex-shadow));
}

.ex-markets-section .ex-market--match-list + .ex-market--match-list,
.ex-markets-section .ex-market--match-list + .ex-market--indian:not(.ex-market--match-list) {
    margin-top: 0.5rem;
}

/* ─── Header (MATCH / 1 / X / 2 strip) ───────────────────────────────────── */
.ex-indibet-list__columns {
    --ex-list-columns-pad-x: 0.45rem;
    display: grid;
    align-items: center;
    column-gap: var(--ex-xch-gap);
    /* Compact density (promoted from home) */
    padding: 0.28rem var(--ex-list-columns-pad-x) 0.25rem;
    min-height: 0;
    height: auto;
    line-height: 1;
    box-sizing: border-box;
    /* Distinct from sport category head and match rows. */
    background: var(--ex-surface-subhead);
    border: 0;
    border-top: 0;
    border-bottom: 1px solid var(--theme-match-list-columns-border, var(--ex-border));
    border-radius: 0;
    box-shadow: none;
}

.theme-dark .ex-indibet-list__columns,
html.theme-dark .ex-indibet-list__columns {
    background: var(--ex-surface-subhead);
    border: 0;
    border-top: 0;
    border-bottom: 1px solid var(--theme-match-list-columns-border, var(--ex-border));
    box-shadow: none;
}

.theme-dark .ex-indibet-list__match-hd,
.theme-dark .ex-indibet-list__outcome-label,
.theme-dark .ex-indibet-list__outcome-sublabel,
html.theme-dark .ex-indibet-list__match-hd,
html.theme-dark .ex-indibet-list__outcome-label,
html.theme-dark .ex-indibet-list__outcome-sublabel {
    color: var(--bp-slate-100);
}

.theme-dark .ex-indibet-list__col--draw .ex-indibet-list__outcome-label,
html.theme-dark .ex-indibet-list__col--draw .ex-indibet-list__outcome-label {
    /* Match the other dark outcome labels; pink only reached 3.93:1 here. */
    color: var(--bp-slate-100);
}

.theme-dark .ex-indibet-list__col--outcome,
html.theme-dark .ex-indibet-list__col--outcome {
    border-left-color: var(--bp-alpha-white-12);
}

.ex-indibet-list__col--info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.ex-indibet-list__match-hd {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: var(--theme-text-sm); /* 12px micro-label — below team */
    font-weight: var(--theme-type-league-weight, var(--theme-weight-semibold));
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1;
    color: var(--ex-text-strong);
}

.ex-indibet-list__live-badge {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    gap: 0.28rem;
    flex-shrink: 0;
    /* Micro LIVE — 16×10; exchange-badges.css reinforces */
    height: 1rem;
    min-height: 1rem;
    max-height: 1rem;
    padding: 0 0.4rem 0 0.32rem;
    box-sizing: border-box;
    border-radius: var(--theme-radius-chip);
    /* Keep every LIVE badge on the same base-brand fill across surfaces. */
    background: var(--theme-primary) !important;
    color: var(--bp-white) !important;
    font-size: 0.625rem;
    font-weight: var(--theme-weight-bold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1;
    text-shadow: none;
    box-shadow: none;
    animation: none;
}

.ex-indibet-list__live-badge::after {
    content: "";
    position: absolute;
    z-index: 0;
    inset: -40% auto -40% -50%;
    width: 48%;
    pointer-events: none;
    background: linear-gradient(
        105deg,
        transparent 0%,
        rgba(255, 255, 255, 0.2) 22%,
        rgba(255, 255, 255, 0.95) 50%,
        rgba(255, 255, 255, 0.2) 78%,
        transparent 100%
    );
    transform: skewX(-18deg) translateX(-180%);
    animation: ex-live-badge-shine 1.8s ease-in-out infinite;
}

.ex-indibet-list__live-badge > * {
    position: relative;
    z-index: 1;
}

.ex-indibet-list__live-badge .ex-live-dot,
.ex-indibet-list__live-dot {
    width: 0.35rem !important;
    height: 0.35rem !important;
    min-width: 0.35rem !important;
    border-radius: 50%;
    background: var(--bp-white) !important;
    border: 1px solid var(--bp-white) !important;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.28),
        0 0 6px rgba(255, 255, 255, 0.5) !important;
    animation: ex-live-dot-micro-pulse 0.9s ease-in-out infinite !important;
}

@media (prefers-reduced-motion: reduce) {
    .ex-indibet-list__live-badge,
    .ex-indibet-list__live-badge::after,
    .ex-indibet-list__live-badge .ex-live-dot,
    .ex-indibet-list__live-dot {
        animation: none !important;
    }
}

.ex-indibet-list__match-hd-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    color: var(--theme-primary);
}

.ex-indibet-list__match-hd-icon .ex-cat-icon,
.ex-indibet-list__match-hd-icon svg.ex-cat-icon,
.ex-indibet-list__match-hd-icon i.ex-cat-icon {
    width: 1rem !important;
    height: 1rem !important;
    min-width: 1rem !important;
    margin: 0 !important;
    font-size: var(--theme-text-base) !important;
    line-height: 1;
    color: var(--theme-primary) !important;
}

.ex-indibet-list__match-hd-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: inherit;
    font-weight: inherit;
}

.ex-inplay-group__list--indibet .ex-indibet-list__live-badge {
    margin-inline-start: calc(-1 * var(--ex-list-columns-pad-x, 0.45rem));
}

.ex-inplay-group__list--match-detail .ex-indibet-list__col--info {
    flex-direction: row;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
}

/* Layout only — type inherits home MATCH micro-label (12/600 UPPER). */
.ex-inplay-group__list--match-detail .ex-indibet-list__match-hd {
    flex: 1 1 auto;
    min-width: 0;
    color: var(--ex-text-strong, var(--ex-runner-text));
}

.ex-market--match-list {
    position: relative;
}

.ex-market--match-list > .market-suspended-badge,
.ex-market--match-list > .market-locked-badge,
.ex-market--match-list > .ex-market-lock-badge,
.ex-market--match-list > .ex-market-suspend-badge {
    position: absolute;
    top: 0.35rem;
    right: 0.5rem;
    z-index: 2;
}

.ex-market--match-list.market-locked > .market-suspended-badge,
.ex-market--match-list.market-locked > .ex-market-suspend-badge {
    right: calc(0.5rem + 1.6rem);
}

/* Goal Line list: Goals | Over | Under — keep Over/Under tones in sportsbook mode. */
.ex-inplay-group__list--goal-line .ex-indibet-row {
    position: relative;
}

.ex-inplay-group__list--goal-line .ex-indibet-row__info {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.ex-inplay-group__list--goal-line .ex-indibet-row .market-suspended-badge,
.ex-inplay-group__list--goal-line .ex-indibet-row .market-locked-badge,
.ex-inplay-group__list--goal-line .ex-indibet-row .ex-market-lock-badge,
.ex-inplay-group__list--goal-line .ex-indibet-row .ex-market-suspend-badge {
    position: static;
    flex-shrink: 0;
}

/* Soft Over/Under — match Fancy Yes/No pastels (not neon green/red). */
.ex-inplay-group__list--goal-line.ex-inplay-group__list--sportsbook .ex-indibet-outcome--sportsbook .ex-price--yes:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down) {
    background: var(--ex-fancy-yes-soft, color-mix(in srgb, var(--ex-yes, #16A34A) 28%, var(--bp-white, #FFFFFF))) !important;
    color: var(--ex-ink, #0F172A) !important;
    box-shadow: none;
}

.ex-inplay-group__list--goal-line.ex-inplay-group__list--sportsbook .ex-indibet-outcome--sportsbook .ex-price--yes:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-inplay-group__list--goal-line.ex-inplay-group__list--sportsbook .ex-indibet-outcome--sportsbook .ex-price--yes:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible {
    background: color-mix(in srgb, var(--ex-yes, #16A34A) 38%, var(--bp-white, #FFFFFF)) !important;
    color: var(--ex-ink, #0F172A) !important;
}

.ex-inplay-group__list--goal-line.ex-inplay-group__list--sportsbook .ex-indibet-outcome--sportsbook .ex-price--no:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down) {
    background: var(--ex-fancy-no-soft, color-mix(in srgb, var(--bp-danger-strong, #DC2626) 24%, var(--ex-danger-soft-bg, #FEF2F2))) !important;
    color: var(--ex-ink, #0F172A) !important;
    box-shadow: none;
}

.ex-inplay-group__list--goal-line.ex-inplay-group__list--sportsbook .ex-indibet-outcome--sportsbook .ex-price--no:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-inplay-group__list--goal-line.ex-inplay-group__list--sportsbook .ex-indibet-outcome--sportsbook .ex-price--no:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible {
    background: color-mix(in srgb, var(--bp-danger-strong, #DC2626) 34%, var(--ex-danger-soft-bg, #FEF2F2)) !important;
    color: var(--ex-ink, #0F172A) !important;
}

.ex-indibet-list__legend {
    display: inline-flex;
    gap: 0.2rem;
    width: fit-content;
}

.ex-indibet-list__legend-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    padding: 0.1rem 0.35rem;
    border-radius: var(--theme-radius-chip);
    font-size: var(--theme-text-xs);
    font-weight: var(--theme-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.2;
}

.ex-indibet-list__legend-item--back {
    background: color-mix(in srgb, var(--ex-back) 85%, transparent);
    color: var(--ex-back-text);
}

.ex-indibet-list__legend-item--lay {
    background: color-mix(in srgb, var(--ex-lay) 85%, transparent);
    color: var(--ex-lay-text);
}

.ex-indibet-list__col--outcome {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    min-width: 0;
    padding-bottom: 0;
    border-left: 1px solid color-mix(in srgb, var(--ex-border) 65%, transparent);
}

.ex-indibet-list__col--outcome:first-of-type {
    border-left: none;
}

.ex-indibet-list__outcome-label {
    font-size: var(--theme-text-sm);
    font-weight: var(--theme-weight-semibold);
    color: var(--ex-text-strong);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.ex-indibet-list__outcome-sublabel {
    font-size: var(--theme-text-xs);
    font-weight: var(--theme-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--ex-text-strong);
    line-height: 1;
}

/* ─── Match row ─────────────────────────────────────────────────────────── */
.ex-indibet-row {
    display: grid;
    align-items: center;
    column-gap: var(--ex-xch-gap);
    /* Compact density (promoted from home) */
    padding: 0.22rem 0.4rem;
    border-bottom: 1px solid color-mix(in srgb, var(--ex-border) 80%, transparent);
    background: var(--ex-surface-row, var(--ex-market-bg));
    transition: background-color 0.12s ease, box-shadow 0.12s ease;
}

.ex-indibet-row:hover,
.ex-inplay-group__list--indibet .ex-event--indibet:nth-child(even) .ex-indibet-row:hover,
.ex-inplay-group__list--indibet .ex-event--indibet .ex-indibet-row:hover {
    background: var(--ex-surface-row-hover) !important;
    box-shadow: inset 3px 0 0 var(--theme-primary);
}

.ex-inplay-group__list--indibet .ex-event--indibet:nth-child(even) .ex-indibet-row {
    background: var(--ex-surface-row-alt, var(--ex-row-alt));
}

/* Light: zebra was nearly invisible (#FCFCFD ≈ #F5F7FA) — match dark’s clearer row separation */
html.theme-light .ex-inplay-group__list--indibet .ex-indibet-row,
.theme-light .ex-inplay-group__list--indibet .ex-indibet-row {
    border-bottom-color: var(--theme-table-border, #E5EAF1);
}

html.theme-light .ex-inplay-group__list--indibet .ex-event--indibet:nth-child(even) .ex-indibet-row,
.theme-light .ex-inplay-group__list--indibet .ex-event--indibet:nth-child(even) .ex-indibet-row {
    background: #EEF2F7;
}

html.theme-light .ex-inplay-group__list--indibet .ex-event--indibet:nth-child(odd) .ex-indibet-row,
.theme-light .ex-inplay-group__list--indibet .ex-event--indibet:nth-child(odd) .ex-indibet-row {
    background: #FFFFFF;
}

.ex-indibet-row:hover .ex-indibet-row__team,
.ex-indibet-row:hover .ex-indibet-row__vs,
.ex-indibet-row__match-link:hover .ex-indibet-row__team,
.ex-indibet-row__match-link:hover .ex-indibet-row__vs {
    color: var(--ex-text-strong);
    font-weight: var(--theme-weight-bold);
}

.theme-dark .ex-indibet-row:hover,
.theme-dark .ex-inplay-group__list--indibet .ex-event--indibet:nth-child(even) .ex-indibet-row:hover,
html.theme-dark .ex-indibet-row:hover,
html.theme-dark .ex-inplay-group__list--indibet .ex-event--indibet:nth-child(even) .ex-indibet-row:hover {
    background: var(--ex-surface-row-hover) !important;
    box-shadow: inset 3px 0 0 var(--theme-primary);
}

.theme-dark .ex-indibet-row:hover .ex-indibet-row__team,
.theme-dark .ex-indibet-row:hover .ex-indibet-row__vs,
html.theme-dark .ex-indibet-row:hover .ex-indibet-row__team,
html.theme-dark .ex-indibet-row:hover .ex-indibet-row__vs {
    color: var(--bp-slate-100);
    font-weight: var(--theme-weight-bold);
}

.ex-indibet-row__info {
    min-width: 0;
    padding-right: 0.2rem;
}

.ex-indibet-row__info-inner {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
}

.ex-indibet-row__info-inner > .ex-event-favorite {
    flex: 0 0 auto;
    align-self: center;
    display: inline-grid;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: var(--theme-radius-chip);
}

.ex-indibet-row__info-inner > .ex-event-favorite svg {
    width: 1rem;
    height: 1rem;
}

.ex-indibet-row__info-inner > .ex-event-favorite:hover,
.ex-indibet-row__info-inner > .ex-event-favorite.is-active:hover {
    color: var(--bp-white);
    background: var(--theme-primary);
}

.ex-indibet-row__info-inner > .ex-event-favorite:hover svg,
.ex-indibet-row__info-inner > .ex-event-favorite.is-active:hover svg {
    stroke: var(--bp-white);
    fill: var(--bp-white);
}

.ex-indibet-row__info-inner > .ex-indibet-row__match-link {
    flex: 1 1 auto;
    min-width: 0;
}

.ex-indibet-row__match-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.ex-indibet-row__match-link:hover .ex-indibet-row__team,
.ex-indibet-row__match-link:hover .ex-indibet-row__vs {
    color: var(--ex-text-strong);
    font-weight: var(--theme-weight-bold);
}

.ex-indibet-row__meta {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.3rem;
    margin-bottom: 0.15rem;
    color: var(--bp-slate-500);
    font-size: var(--theme-text-xs);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
    opacity: 1;
}

.ex-indibet-row__time {
    font-weight: 600;
    flex-shrink: 0;
    min-width: 4.75rem;
    color: inherit;
    letter-spacing: 0.01em;
    opacity: 1;
}

html.theme-light .ex-indibet-row__meta,
.theme-light .ex-indibet-row__meta,
html.theme-light .ex-indibet-row__time,
.theme-light .ex-indibet-row__time {
    color: var(--bp-slate-600);
}

html.theme-dark .ex-indibet-row__meta,
.theme-dark .ex-indibet-row__meta,
html.theme-dark .ex-indibet-row__time,
.theme-dark .ex-indibet-row__time {
    color: var(--bp-slate-300);
}

.ex-indibet-row__flags {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    flex-shrink: 0;
    margin-left: 0.1rem;
}

.ex-indibet-row__flag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.05rem;
    height: 0.875rem;
    min-height: 0.875rem;
    max-height: 0.875rem;
    padding: 0 0.22rem;
    border-radius: var(--theme-radius-chip);
    font-family: "Inter", sans-serif;
    /* Micro flag — 14×10; exchange-badges.css reinforces */
    font-size: 0.625rem;
    font-weight: var(--theme-weight-medium);
    letter-spacing: 0.04em;
    line-height: 1;
    text-transform: uppercase;
}

.ex-indibet-row__flag--bm,
.ex-indibet-row__flag--fancy,
.ex-indibet-row__flag--gl {
    min-width: 1.05rem;
    height: 0.875rem;
    min-height: 0.875rem;
    max-height: 0.875rem;
    padding: 0 0.22rem;
    font-size: 0.625rem;
    letter-spacing: 0.04em;
    background: var(--bp-slate-500);
    color: var(--bp-slate-100);
}

.ex-indibet-row__flag--fancy,
.ex-indibet-row__flag--gl {
    font-weight: var(--theme-weight-medium);
}

/* BM — regular weight (never inherit meta 600 / parity bold). */
.ex-indibet-row__flag--bm,
.ex-indibet-row__flag--bm.is-on,
.ex-indibet-row__flag--bm.is-off {
    font-weight: 400 !important;
}

.ex-indibet-row__flag--bm.is-on,
.ex-indibet-row__flag--fancy.is-on,
.ex-indibet-row__flag--gl.is-on {
    background: var(--theme-flag-on-bg);
    color: var(--theme-flag-on-text);
    opacity: 1;
    box-shadow: none;
}

.ex-indibet-row__flag--bm.is-off,
.ex-indibet-row__flag--fancy.is-off,
.ex-indibet-row__flag--gl.is-off {
    background: var(--theme-flag-off-bg);
    color: var(--bp-slate-600);
    opacity: 1;
    box-shadow: none;
    filter: none;
}

.ex-indibet-row__flag--tv,
.ex-indibet-row__flag--mic {
    min-width: 1.05rem;
    padding: 0 0.22rem;
    background: var(--bp-slate-800);
    color: var(--bp-white);
}

.ex-indibet-row__flag--tv svg,
.ex-indibet-row__flag--mic svg {
    width: 0.65rem;
    height: 0.65rem;
    stroke-width: 2.5;
}

html.theme-light .ex-indibet-row__flag--bm.is-off,
html.theme-light .ex-indibet-row__flag--fancy.is-off,
html.theme-light .ex-indibet-row__flag--gl.is-off,
.theme-light .ex-indibet-row__flag--bm.is-off,
.theme-light .ex-indibet-row__flag--fancy.is-off,
.theme-light .ex-indibet-row__flag--gl.is-off {
    background: var(--theme-flag-off-bg);
    /* Solid slate-600 text (no opacity) so the "off" badge clears WCAG AA;
       layer opacity previously blended it to ~2.2:1. */
    color: var(--bp-slate-600);
    opacity: 1;
    filter: none;
}

html.theme-dark .ex-indibet-row__flag--bm.is-off,
html.theme-dark .ex-indibet-row__flag--fancy.is-off,
html.theme-dark .ex-indibet-row__flag--gl.is-off,
.theme-dark .ex-indibet-row__flag--bm.is-off,
.theme-dark .ex-indibet-row__flag--fancy.is-off,
.theme-dark .ex-indibet-row__flag--gl.is-off {
    background: var(--theme-flag-off-bg);
    /* Solid slate-200 text on the dark off-badge → ~5:1. */
    color: var(--bp-slate-200);
    opacity: 1;
    filter: none;
}

html.theme-dark .ex-indibet-row__flag--bm.is-on,
html.theme-dark .ex-indibet-row__flag--fancy.is-on,
html.theme-dark .ex-indibet-row__flag--gl.is-on,
.theme-dark .ex-indibet-row__flag--bm.is-on,
.theme-dark .ex-indibet-row__flag--fancy.is-on,
.theme-dark .ex-indibet-row__flag--gl.is-on {
    background: var(--theme-flag-on-bg);
    color: var(--theme-flag-on-text);
}

.theme-dark .ex-indibet-row__flag--tv,
.theme-dark .ex-indibet-row__flag--mic,
html.theme-dark .ex-indibet-row__flag--tv,
html.theme-dark .ex-indibet-row__flag--mic {
    background: var(--bp-slate-700);
    color: var(--bp-slate-50);
}

.ex-indibet-row__teams-stack {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.ex-indibet-row__team {
    display: inline-flex;
    align-items: center;
    gap: 0;
    min-width: 0;
    max-width: 100%;
    color: var(--ex-text-strong, var(--h-color, var(--bp-slate-800)));
    font-family: "Inter", sans-serif;
    /* Team role — live home contract (13px / 600); exchange-typography reinforces */
    font-size: var(--theme-type-team-size, var(--theme-text-md));
    font-weight: var(--theme-type-team-weight, var(--theme-weight-semibold));
    letter-spacing: 0;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

html.theme-dark .ex-indibet-row__team,
.theme-dark .ex-indibet-row__team,
html.theme-dark .ex-indibet-row__vs,
.theme-dark .ex-indibet-row__vs {
    color: var(--ex-text-strong);
}

.ex-indibet-row__vs {
    display: none;
    color: var(--ex-text-strong, var(--h-color, var(--bp-slate-800)));
    font-family: "Inter", sans-serif;
    font-size: var(--theme-type-team-size, var(--theme-text-md));
    font-weight: var(--theme-type-team-weight, var(--theme-weight-semibold));
    letter-spacing: 0;
    line-height: 1.25;
    text-transform: none;
    flex-shrink: 0;
}

/* ─── Outcome pair (Back | Lay per 1 / X / 2) ───────────────────────────── */
.ex-indibet-outcome {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ex-xch-pair-gap);
    min-width: 0;
    padding: 0.1rem;
    border-radius: var(--theme-radius-odds);
    background: color-mix(in srgb, var(--ex-border) 35%, transparent);
    border-left: 1px solid color-mix(in srgb, var(--ex-border) 50%, transparent);
}

.ex-indibet-outcome:first-of-type {
    border-left: none;
}

.ex-indibet-outcome__back,
.ex-indibet-outcome__lay {
    display: flex;
    min-width: 0;
}

.ex-indibet-outcome .ex-price,
.ex-indibet-outcome > a.ex-price {
    display: flex;
    width: 100%;
    min-width: var(--ex-xch-cell-min-w, 2.875rem);
    min-height: var(--ex-xch-cell-h);
    margin: 0;
    padding: 0.1rem;
    border: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.05rem;
    text-align: center;
    border-radius: var(--ex-xch-radius);
    transition: background-color 0.12s ease, box-shadow 0.12s ease, transform 0.1s ease;
}

.ex-indibet-outcome__back .ex-price--back:not(.ex-price--unavailable) {
    background: var(--ex-back) !important;
    color: var(--ex-back-text) !important;
}

.ex-indibet-outcome__back .ex-price--back:not(.ex-price--unavailable):hover,
.ex-indibet-outcome__back .ex-price--back:not(.ex-price--unavailable):focus-visible {
    background: var(--ex-back-hover) !important;
}

.ex-indibet-outcome__lay .ex-price--lay:not(.ex-price--unavailable) {
    background: var(--ex-lay) !important;
    color: var(--ex-lay-text) !important;
}

.ex-indibet-outcome__lay .ex-price--lay:not(.ex-price--unavailable):hover,
.ex-indibet-outcome__lay .ex-price--lay:not(.ex-price--unavailable):focus-visible {
    background: var(--ex-lay-hover) !important;
}

.ex-indibet-outcome__back .ex-price--unavailable,
.ex-indibet-outcome__back .ex-price--back.ex-price--unavailable,
.ex-indibet-outcome__lay .ex-price--unavailable,
.ex-indibet-outcome__lay .ex-price--lay.ex-price--unavailable {
    /* gray + lock owned by exchange-odds-cell.css */
    opacity: 1;
    pointer-events: none;
}

.ex-market--match-list.ex-market--placeholder .ex-indibet-row--placeholder .ex-price--unavailable {
    opacity: 0.85;
}

.ex-indibet-outcome .ex-price__value {
    font-size: var(--theme-odds-font-size, var(--theme-type-odds-size, var(--theme-text-md)));
    font-weight: var(--theme-odds-font-weight, var(--theme-type-odds-weight, var(--theme-weight-bold)));
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    letter-spacing: var(--theme-type-odds-tracking);
}

.ex-indibet-outcome .ex-price__size {
    font-size: var(--theme-type-odds-size-liquidity, var(--theme-text-xs));
    font-weight: var(--theme-weight-medium);
    opacity: 0.75;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

/* ─── Tail (markets count + favourite) ──────────────────────────────────── */
.ex-indibet-row__tail {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    min-width: 0;
}

.ex-indibet-row__more {
    display: inline-flex;
    align-items: center;
    gap: 0.05rem;
    padding: 0.15rem 0.25rem;
    border-radius: var(--theme-radius-chip);
    color: var(--ex-muted);
    font-size: var(--theme-text-xs);
    font-weight: 600;
    text-decoration: none;
    background: color-mix(in srgb, var(--ex-border) 40%, transparent);
}

.ex-indibet-row__more:hover {
    color: var(--color-primary, var(--ex-back));
    background: color-mix(in srgb, var(--color-primary, var(--ex-back)) 12%, transparent);
}

.ex-indibet-row__more-count {
    font-variant-numeric: tabular-nums;
}

.ex-indibet-row__more-chevron {
    font-size: var(--theme-text-base);
    line-height: 1;
}

.ex-indibet-row__tail .ex-event-favorite {
    width: 1.75rem;
    height: 1.75rem;
    opacity: 0.7;
}

.ex-indibet-row__tail .ex-event-favorite:hover {
    opacity: 1;
    color: var(--bp-white);
    background: var(--theme-primary);
}

/* Standalone list cards */
.ex-event-list:not(.ex-inplay-group__list) .ex-event--indibet {
    border: 1px solid var(--ex-border);
    border-radius: var(--theme-radius-control, 8px);
    margin-bottom: 0.5rem;
    overflow: hidden;
    box-shadow: var(--ex-shadow);
}

.ex-event-list:not(.ex-inplay-group__list) .ex-event--list-expandable.ex-event--list-expanded {
    /* Keep the same soft rounded shell as the in-play expand. */
    overflow: hidden;
}

/* ─── Tablet / desktop ──────────────────────────────────────────────────── */
@media (min-width: 480px) {
    .ex-indibet-row__teams-stack {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.25rem 0.35rem;
    }

    .ex-indibet-row__vs {
        display: inline;
    }

    .ex-indibet-row__team {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

@media (min-width: 576px) {
    .ex-inplay-group__list--indibet {
        --ex-xch-info: minmax(6.5rem, 1.45fr);
        --ex-xch-outcome: minmax(6.75rem, 8.25rem);
        --ex-xch-cell-h: var(--theme-odds-h-desktop, 36px);
        --ex-xch-cell-min-w: 3.125rem;
        --ex-xch-gap: var(--theme-space-odds-gap, 0.25rem);
    }

    .ex-indibet-row__team,
    .ex-indibet-row__vs {
        font-size: var(--theme-type-team-size, var(--theme-text-md));
        font-weight: var(--theme-type-team-weight, var(--theme-weight-semibold));
    }

    .ex-indibet-outcome .ex-price__value {
        font-size: var(--theme-odds-font-size, var(--theme-type-odds-size, var(--theme-text-md)));
    }
}

@media (min-width: 992px) {
    .ex-inplay-group__list--indibet {
        --ex-xch-outcome: minmax(7.25rem, 8.75rem);
        --ex-xch-cell-h: var(--theme-odds-h-desktop, 36px);
        --ex-xch-cell-min-w: 3.25rem;
        overflow-x: visible;
    }

    .ex-indibet-row {
        padding: 0.25rem 0.5rem;
    }

    .ex-indibet-list__columns {
        --ex-list-columns-pad-x: 0.5rem;
        padding: 0.28rem var(--ex-list-columns-pad-x) 0.25rem;
    }
}

/* ─── Mobile: 3 cells = Back | Draw | Lay (home back / draw / home lay) ───── */
@media (max-width: 991.98px) {
    .ex-inplay-group__list--indibet,
    .exchange-app .ex-inplay-group__list--indibet {
        --ex-xch-info: minmax(0, 1fr);
        --ex-xch-outcome: 3.5rem;
        --ex-xch-gap: 0; /* flush odds cells on mobile */
        /* Mobile tap target — keep odds ≥ theme mobile floor */
        --ex-xch-cell-h: var(--theme-odds-h-mobile);
        --ex-xch-cell-min-w: 0;
        --ex-xch-radius: var(--theme-radius-odds);
        overflow-x: hidden;
    }

    .ex-inplay-group__list--indibet .ex-indibet-row,
    .ex-inplay-group__list--indibet .ex-indibet-list__columns {
        column-gap: 0;
        padding-right: 0;
    }

    .ex-inplay-group__list--indibet.ex-inplay-group__list--3way .ex-indibet-list__columns,
    .ex-inplay-group__list--indibet.ex-inplay-group__list--3way .ex-indibet-row,
    .ex-inplay-group__list--match-detail.ex-inplay-group__list--3way .ex-indibet-list__columns,
    .ex-inplay-group__list--match-detail.ex-inplay-group__list--3way .ex-indibet-row {
        grid-template-columns:
            minmax(0, 1fr)
            repeat(3, var(--ex-xch-outcome));
        grid-template-rows: auto;
    }

    .ex-inplay-group__list--indibet.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-list__columns,
    .ex-inplay-group__list--indibet.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row,
    .ex-inplay-group__list--match-detail.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-list__columns,
    .ex-inplay-group__list--match-detail.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row {
        grid-template-columns:
            minmax(0, 1fr)
            repeat(2, var(--ex-xch-outcome));
        grid-template-rows: auto;
    }

    .ex-inplay-group__list--goal-line.ex-inplay-group__list--2way .ex-indibet-list__columns,
    .ex-inplay-group__list--goal-line.ex-inplay-group__list--2way .ex-indibet-row {
        grid-template-columns:
            minmax(0, 1fr)
            repeat(3, var(--ex-xch-outcome));
        grid-template-rows: auto;
    }

    .ex-inplay-group__list--indibet.ex-inplay-group__list--has-fancy.ex-inplay-group__list--3way .ex-indibet-list__columns,
    .ex-inplay-group__list--indibet.ex-inplay-group__list--has-fancy.ex-inplay-group__list--3way .ex-indibet-row {
        grid-template-columns:
            minmax(0, 1fr)
            repeat(4, var(--ex-xch-outcome));
    }

    .ex-inplay-group__list--indibet.ex-inplay-group__list--has-fancy.ex-inplay-group__list--2way .ex-indibet-list__columns,
    .ex-inplay-group__list--indibet.ex-inplay-group__list--has-fancy.ex-inplay-group__list--2way .ex-indibet-row {
        grid-template-columns:
            minmax(0, 1fr)
            repeat(3, var(--ex-xch-outcome));
    }

    .ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-row__info,
    .ex-inplay-group__list--2way .ex-indibet-row > .ex-indibet-row__info {
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
    }

    /*
     * Home spans Back|Draw|Lay tracks: [back][spacer][lay].
     * Draw overlays the middle track so all three stay on one row
     * (display:contents caused Draw to wrap to a second row).
     */
    .ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(2),
    .ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(1) {
        grid-column: 2 / 5;
        grid-row: 1;
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        column-gap: var(--ex-xch-gap);
        row-gap: 0;
        padding: 0;
        background: transparent;
        border-left: none;
        min-width: 0;
        align-self: stretch;
    }

    .ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(2) > .ex-indibet-outcome__back,
    .ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(1) > .ex-indibet-outcome__back {
        grid-column: 1;
        min-width: 0;
    }

    .ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(2) > .ex-indibet-outcome__lay,
    .ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(1) > .ex-indibet-outcome__lay {
        grid-column: 3;
        min-width: 0;
    }

    .ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(3),
    .ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(2) {
        grid-column: 3;
        grid-row: 1;
        z-index: 1;
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
        padding: 0;
        background: transparent;
        border-left: none;
        min-width: 0;
        align-self: stretch;
    }

    .ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(3) > .ex-indibet-outcome__lay,
    .ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(2) > .ex-indibet-outcome__lay,
    .ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(4):not(.ex-indibet-outcome--fancy),
    .ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(3):not(.ex-indibet-outcome--fancy) {
        display: none !important;
    }

    .ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome--fancy,
    .ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome--fancy {
        grid-column: 5;
        grid-row: 1;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        border-left-color: transparent;
        min-width: 0;
    }

    .ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome--fancy .ex-indibet-outcome__lay,
    .ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome--fancy .ex-indibet-outcome__lay {
        display: none !important;
    }

    /* 2-way → Back | Lay (home only). Goal Line keeps Over | dummy | Under. */
    .ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line):not(.ex-inplay-group__list--fancy-lines) .ex-indibet-row > .ex-indibet-outcome:nth-child(2),
    .ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line):not(.ex-inplay-group__list--fancy-lines) .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(1) {
        grid-column: 2 / 4;
        grid-row: 1;
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: var(--ex-xch-gap);
        row-gap: 0;
        padding: 0;
        background: transparent;
        border-left: none;
        min-width: 0;
        align-self: stretch;
    }

    .ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line):not(.ex-inplay-group__list--fancy-lines) .ex-indibet-row > .ex-indibet-outcome:nth-child(3):not(.ex-indibet-outcome--fancy),
    .ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line):not(.ex-inplay-group__list--fancy-lines) .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(2):not(.ex-indibet-outcome--fancy) {
        display: none !important;
    }

    .ex-inplay-group__list--2way .ex-indibet-row > .ex-indibet-outcome--fancy,
    .ex-inplay-group__list--2way .ex-indibet-row__odds > .ex-indibet-outcome--fancy {
        grid-column: 4;
        grid-row: 1;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        border-left-color: transparent;
        min-width: 0;
    }

    .ex-inplay-group__list--2way .ex-indibet-row > .ex-indibet-outcome--fancy .ex-indibet-outcome__lay,
    .ex-inplay-group__list--2way .ex-indibet-row__odds > .ex-indibet-outcome--fancy .ex-indibet-outcome__lay {
        display: none !important;
    }

    .ex-indibet-outcome .ex-price,
    .ex-indibet-outcome > a.ex-price {
        min-width: 0 !important;
        min-height: var(--ex-xch-cell-h);
        height: var(--ex-xch-cell-h);
        width: 100%;
        padding: 0.1rem 0.12rem;
    }

    .ex-indibet-outcome .ex-price__size,
    .ex-indibet-outcome .ex-price__liability,
    .ex-indibet-outcome .ex-price__vol {
        display: none;
    }

    .ex-indibet-list__columns {
        --ex-list-columns-pad-x: 0.3rem;
        padding: 0.12rem 0 0.12rem var(--ex-list-columns-pad-x);
        min-height: 24px;
        height: 24px;
        align-items: center;
        box-sizing: border-box;
    }

    .ex-indibet-list__col--outcome {
        justify-content: center;
        padding-bottom: 0;
        gap: 0;
    }

    .ex-indibet-list__match-hd {
        font-size: var(--theme-text-sm); /* 12px micro-label */
        gap: 0.22rem;
        line-height: 1;
    }

    .ex-indibet-list__match-hd-text {
        font-size: var(--theme-text-sm);
        font-weight: var(--theme-type-league-weight, var(--theme-weight-semibold));
        line-height: 1;
    }

    .ex-indibet-list__live-badge {
        height: 1rem;
        min-height: 1rem;
        max-height: 1rem;
        padding: 0 0.34rem 0 0.28rem;
        font-size: 0.625rem;
    }

    .ex-indibet-row {
        padding: 0.32rem 0 0.32rem 0.35rem; /* flush odds to right edge */
        min-height: calc(var(--ex-xch-cell-h) + 0.4rem);
        align-items: center;
    }

    /* Mobile: hide list star — full info width for team names */
    .ex-inplay-group__list--indibet .ex-indibet-row__info-inner > button.ex-event-favorite,
    .ex-inplay-group__list--indibet .ex-indibet-row__info-inner > .ex-event-favorite {
        display: none !important;
    }

    /* Match info — date/time + BM/F on one row */
    .ex-inplay-group__list--indibet .ex-indibet-row__meta {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        margin-bottom: 0.12rem;
        gap: 0.25rem;
        font-size: var(--theme-text-xs);
        font-weight: 600;
        opacity: 1;
    }

    .ex-inplay-group__list--indibet .ex-indibet-row__flags {
        display: inline-flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.2rem;
        width: auto;
        flex: 0 0 auto;
    }

    html.theme-light .ex-inplay-group__list--indibet .ex-indibet-row__meta,
    .theme-light .ex-inplay-group__list--indibet .ex-indibet-row__meta {
        color: var(--bp-slate-600);
    }

    html.theme-dark .ex-inplay-group__list--indibet .ex-indibet-row__meta,
    .theme-dark .ex-inplay-group__list--indibet .ex-indibet-row__meta {
        color: var(--bp-slate-300);
    }

    .ex-inplay-group__list--indibet .ex-indibet-row__time {
        display: inline-block;
        width: auto;
        min-width: 0;
        flex: 0 0 auto;
        font-weight: 600;
        opacity: 1;
        color: inherit;
        white-space: nowrap;
        line-height: 1.3;
    }

    .ex-inplay-group__list--indibet .ex-indibet-row__flag--bm,
    .ex-inplay-group__list--indibet .ex-indibet-row__flag--fancy,
    .ex-inplay-group__list--indibet .ex-indibet-row__flag--gl {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        min-width: 1.05rem;
        height: 0.875rem;
        min-height: 0.875rem;
        max-height: 0.875rem;
        padding: 0 0.22rem;
        font-size: 0.625rem;
        font-weight: var(--theme-weight-medium);
        letter-spacing: 0.04em;
        line-height: 1;
    }

    .ex-inplay-group__list--indibet .ex-indibet-row__flag--bm,
    .ex-inplay-group__list--indibet .ex-indibet-row__flag--bm.is-on,
    .ex-inplay-group__list--indibet .ex-indibet-row__flag--bm.is-off {
        font-weight: 400 !important;
    }

    /* Team names — single row: Team1 v Team2 */
    .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: flex-start;
        gap: 0.25rem 0.35rem;
        min-width: 0;
        max-width: 100%;
        width: 100%;
    }

    .ex-inplay-group__list--indibet .ex-indibet-row__vs {
        display: inline;
        flex: 0 0 auto;
        font-size: 12px;
    }

    .ex-inplay-group__list--indibet .ex-indibet-row__team {
        flex: 0 1 auto;
        min-width: 0;
        max-width: 100%;
        width: auto;
        display: block;
        font-size: 12px;
        font-weight: 700;
        line-height: 1.2;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        -webkit-line-clamp: unset;
        -webkit-box-orient: unset;
        color: var(--ex-text-strong);
    }

    /* Headers: keep 1 / X / 2 on mobile (not Back / Draw / Lay) */
    .ex-inplay-group__list--3way .ex-indibet-list__col--outcome .ex-indibet-list__outcome-label,
    .ex-inplay-group__list--2way .ex-indibet-list__col--outcome .ex-indibet-list__outcome-label {
        font-size: var(--theme-text-md); /* same as .ex-price__value on mobile */
        font-weight: var(--theme-weight-bold);
        letter-spacing: 0.02em;
        line-height: 1;
    }

    .ex-inplay-group__list--3way .ex-indibet-list__col--outcome .ex-indibet-list__outcome-label::before,
    .ex-inplay-group__list--2way .ex-indibet-list__col--outcome .ex-indibet-list__outcome-label::before {
        content: none !important;
        display: none !important;
    }

    .ex-inplay-group__list--3way .ex-indibet-list__col--draw .ex-indibet-list__outcome-sublabel,
    .ex-inplay-group__list--2way .ex-indibet-list__col--outcome .ex-indibet-list__outcome-sublabel {
        display: none;
    }

    .ex-indibet-list__legend {
        display: none;
    }

    .ex-indibet-outcome .ex-price__value {
        font-size: var(--theme-odds-font-size, var(--theme-type-odds-size, var(--theme-text-md)));
        font-weight: var(--theme-odds-font-weight, var(--theme-type-odds-weight, var(--theme-weight-bold)));
        line-height: 1.1;
    }

    .ex-inplay-group__list--indibet .ex-indibet-list__columns {
        position: sticky;
        top: 0;
        z-index: 2;
        box-shadow: 0 1px 0 var(--ex-border);
    }
}

/* ─── Narrow phones: keep tap targets, pack meta tighter ─────────────────── */
@media (max-width: 575.98px) {
    .ex-inplay-group__list--indibet,
    .exchange-app .ex-inplay-group__list--indibet {
        --ex-xch-info: minmax(0, 1fr);
        --ex-xch-outcome: 3.35rem;
        --ex-xch-gap: 0; /* flush odds cells on mobile */
        --ex-xch-cell-h: var(--theme-odds-h-mobile);
        --ex-xch-radius: var(--theme-radius-odds);
    }

    .ex-indibet-list__columns {
        --ex-list-columns-pad-x: 0.28rem;
        padding: 0.12rem 0 0.12rem var(--ex-list-columns-pad-x);
        min-height: 24px;
        height: 24px;
        box-sizing: border-box;
    }

    .ex-indibet-row {
        padding: 0.32rem 0 0.32rem 0.3rem; /* flush odds to right edge */
        min-height: calc(var(--ex-xch-cell-h) + 0.4rem);
    }

    .ex-indibet-outcome .ex-price__value {
        font-size: var(--theme-odds-font-size, var(--theme-type-odds-size, var(--theme-text-md)));
    }

    .ex-inplay-group__list--indibet .ex-indibet-row__team {
        font-size: 12px;
        font-weight: 700;
    }

    .ex-inplay-group__list--indibet .ex-indibet-row__meta {
        font-size: var(--theme-text-xs);
        font-weight: 600;
        opacity: 1;
    }

    .ex-inplay-group__list--indibet .ex-indibet-row__flag--bm,
    .ex-inplay-group__list--indibet .ex-indibet-row__flag--fancy,
    .ex-inplay-group__list--indibet .ex-indibet-row__flag--gl {
        min-width: 1rem;
        height: 0.875rem;
        padding: 0 0.22rem;
        font-size: 0.625rem;
    }

    .ex-indibet-row__tail .ex-event-favorite {
        width: 1.75rem;
        height: 1.75rem;
    }
}

.ex-indibet-list__col--draw .ex-indibet-list__outcome-label {
    /* Draw label uses strong text (not brand fill) so 1/X/2 share one readable weight. */
    color: var(--ex-text-strong);
    font-weight: var(--theme-weight-semibold);
}

/* Hide legacy Draw sublabel if any fragment still emits it */
.ex-indibet-list__col--draw .ex-indibet-list__outcome-sublabel {
    display: none !important;
}

.ex-indibet-outcome--fancy {
    border-left: 1px solid color-mix(in srgb, var(--color-primary, var(--ex-back)) 25%, var(--ex-border));
}

.ex-indibet-list__col--fancy {
    border-left: 1px solid color-mix(in srgb, var(--color-primary, var(--ex-back)) 25%, var(--ex-border));
}

.ex-indibet-row__meta .ex-event__badge-live,
.ex-indibet-row__meta .ex-live-dots,
.ex-event__teams .ex-event__badge-live,
.ex-trending-strip__live-dot {
    display: none !important;
}

@media (max-width: 359.98px) {
    .ex-indibet-list__legend {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ex-indibet-outcome .ex-price,
    .ex-indibet-outcome > a.ex-price,
    .ex-indibet-row {
        transition: none;
    }
}

/* ─── Sportsbook mode: single decimal per outcome (Bet365-like) ─────────── */
.ex-indibet-outcome--sportsbook {
    grid-template-columns: 1fr;
    background: transparent;
    border-left-color: color-mix(in srgb, var(--ex-border) 55%, transparent);
    padding: 0.08rem;
}

.ex-indibet-outcome--sportsbook .ex-indibet-outcome__lay {
    display: none !important;
}

.ex-indibet-outcome--sportsbook .ex-price,
.ex-indibet-outcome--sportsbook > a.ex-price {
    min-width: var(--ex-xch-cell-min-w, 3.25rem);
    min-height: calc(var(--ex-xch-cell-h) + 0.15rem);
}

/* Sportsbook single price — Betfair Back blue for Home */
.ex-indibet-outcome--sportsbook .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down) {
    background: var(--ex-back) !important;
    color: var(--ex-back-text) !important;
    font-weight: var(--theme-weight-bold);
    box-shadow: inset 0 1px 0 var(--bp-alpha-white-35);
}

.ex-indibet-outcome--sportsbook .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-indibet-outcome--sportsbook .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible {
    background: var(--ex-back-hover) !important;
    color: var(--ex-back-text) !important;
    transform: translateY(-1px);
}

/* Draw / X odds — keep amber (header X stays theme-pink) */
.ex-indibet-outcome--sportsbook .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.ex-indibet-outcome--draw .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.ex-indibet-outcome--draw .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.ex-indibet-outcome--sportsbook.ex-indibet-outcome--draw .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down) {
    background: var(--ex-draw) !important;
    color: var(--ex-draw-text) !important;
    font-weight: var(--theme-weight-bold);
    box-shadow: inset 0 1px 0 var(--bp-alpha-white-35);
}

.ex-indibet-outcome--sportsbook .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-indibet-outcome--sportsbook .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible,
.ex-indibet-outcome--draw .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-indibet-outcome--draw .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible,
.ex-indibet-outcome--draw .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-indibet-outcome--draw .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible,
.ex-indibet-outcome--sportsbook.ex-indibet-outcome--draw .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-indibet-outcome--sportsbook.ex-indibet-outcome--draw .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible {
    background: var(--ex-draw-hover) !important;
    color: var(--ex-draw-text) !important;
    transform: translateY(-1px);
}

/* Away (sportsbook) — Betfair Lay pink */
.ex-indibet-outcome--sportsbook.ex-indibet-outcome--away .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.ex-indibet-outcome--sportsbook.ex-indibet-outcome--away .ex-price--lay:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.ex-indibet-outcome--sportsbook.ex-indibet-outcome--away .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down) {
    background: var(--ex-lay) !important;
    color: var(--ex-lay-text) !important;
    font-weight: var(--theme-weight-bold);
    box-shadow: inset 0 1px 0 var(--bp-alpha-white-35);
}

.ex-indibet-outcome--sportsbook.ex-indibet-outcome--away .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-indibet-outcome--sportsbook.ex-indibet-outcome--away .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible {
    background: var(--ex-lay-hover) !important;
    color: var(--ex-lay-text) !important;
    transform: translateY(-1px);
}

.ex-indibet-outcome--sportsbook .ex-price--unavailable,
.ex-indibet-outcome--sportsbook .ex-price--draw.ex-price--unavailable,
.ex-indibet-outcome--draw .ex-price--unavailable,
.ex-indibet-outcome--sportsbook.ex-indibet-outcome--draw .ex-price--unavailable,
.ex-indibet-outcome--sportsbook.ex-indibet-outcome--away .ex-price--unavailable {
    /* gray + lock owned by exchange-odds-cell.css */
}

/* Odds flash — up = mid BM green, down = theme pink */
.ex-indibet-outcome .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.ex-indibet-outcome--sportsbook .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.ex-indibet-outcome--draw .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling) {
    background: var(--ex-odds-flash-up) !important;
    color: var(--bp-white) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28) !important;
}

.ex-indibet-outcome .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.ex-indibet-outcome--sportsbook .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.ex-indibet-outcome--draw .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling) {
    background: var(--ex-odds-flash-down, var(--theme-primary)) !important;
    color: var(--bp-white) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28) !important;
}

/* Desktop: keep 1 | X | 2 columns, one yellow cell each */
.ex-inplay-group__list--sportsbook .ex-indibet-outcome--sportsbook .ex-price__value {
    font-size: var(--theme-text-md);
    font-weight: var(--theme-weight-bold);
    letter-spacing: 0.01em;
}

/*
 * Mobile sportsbook: show real 1 | X | 2 (not home-back / draw / home-lay).
 * Override the exchange compression rules above.
 */
@media (max-width: 991.98px) {
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(2),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(1),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(3),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(2),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(4):not(.ex-indibet-outcome--fancy),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(3):not(.ex-indibet-outcome--fancy) {
        grid-column: auto;
        grid-row: 1;
        display: grid !important;
        grid-template-columns: 1fr !important;
        column-gap: 0;
        padding: 0.06rem;
        background: transparent;
        border-left: none;
        z-index: auto;
        align-self: stretch;
        min-width: 0;
    }

    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(2),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(1) {
        grid-column: 2;
    }

    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(3),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(2) {
        grid-column: 3;
    }

    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(4):not(.ex-indibet-outcome--fancy),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(3):not(.ex-indibet-outcome--fancy) {
        grid-column: 4;
        display: grid !important;
    }

    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(3) .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(2) .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down) {
        background: var(--ex-draw) !important;
        color: var(--ex-draw-text) !important;
        box-shadow: inset 0 1px 0 var(--bp-alpha-white-35);
    }

    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(3) .ex-price--back:not(.ex-price--unavailable):hover,
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome:nth-child(3) .ex-price--back:not(.ex-price--unavailable):focus-visible,
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(2) .ex-price--back:not(.ex-price--unavailable):hover,
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(2) .ex-price--back:not(.ex-price--unavailable):focus-visible {
        background: var(--ex-draw-hover) !important;
        color: var(--ex-draw-text) !important;
    }

    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row > .ex-indibet-outcome--fancy,
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--3way .ex-indibet-row__odds > .ex-indibet-outcome--fancy {
        grid-column: 5;
    }

    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row > .ex-indibet-outcome:nth-child(2),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(1),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row > .ex-indibet-outcome:nth-child(3):not(.ex-indibet-outcome--fancy),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(2):not(.ex-indibet-outcome--fancy) {
        grid-column: auto;
        display: grid !important;
        grid-template-columns: 1fr !important;
        padding: 0.06rem;
        background: transparent;
        border-left: none;
    }

    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row > .ex-indibet-outcome:nth-child(2),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(1) {
        grid-column: 2;
    }

    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row > .ex-indibet-outcome:nth-child(3):not(.ex-indibet-outcome--fancy),
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--2way:not(.ex-inplay-group__list--goal-line) .ex-indibet-row__odds > .ex-indibet-outcome:nth-child(2):not(.ex-indibet-outcome--fancy) {
        grid-column: 3;
    }

    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--2way .ex-indibet-row > .ex-indibet-outcome--fancy,
    .ex-inplay-group__list--sportsbook.ex-inplay-group__list--2way .ex-indibet-row__odds > .ex-indibet-outcome--fancy {
        grid-column: 4;
    }

}

/* ─── Cricket list inline expand: Name | Scorecard | Odds ───────────────── */
.ex-indibet-row__odds {
    display: contents;
}

/*
 * Collapsed cricket rows wrap the 1|X|2 cells in .ex-list-betting-row__prices--match
 * (needed for the expanded "Market Odds" lane). That wrapper breaks the group's
 * `.ex-indibet-row__odds > .ex-indibet-outcome` child-combinator placement, so the
 * cells lose their grid columns and wrap onto a second row. Re-anchor the odds
 * container as a single spanning grid and let the cells auto-flow into one row.
 */
.ex-event--list-expandable:not(.ex-event--list-expanded) .ex-indibet-row__odds {
    display: grid;
    grid-column: 2 / -1;
    grid-row: 1;
    align-self: stretch;
    align-items: stretch;
    min-width: 0;
}

/* Prices wrapper is the actual 1|X|2 row — flex never wraps by default,
   so cells stay on a single line regardless of the parent grid span. */
.ex-event--list-expandable:not(.ex-event--list-expanded) .ex-list-betting-row__prices--match {
    display: flex;
    gap: var(--ex-xch-gap);
    align-items: stretch;
    width: 100%;
    min-width: 0;
}

.ex-event--list-expandable:not(.ex-event--list-expanded) .ex-list-betting-row__prices--match > .ex-indibet-outcome {
    flex: 1 1 0;
    min-width: 0;
}

.ex-event--list-expandable:not(.ex-event--list-expanded) .ex-list-betting-row__head--match {
    display: none;
}

/* Collapsed only — expanded rules re-show these (do not hide globally). */
.ex-event--list-expandable:not(.ex-event--list-expanded) .ex-list-betting-row__head--match,
.ex-event--list-expandable:not(.ex-event--list-expanded) .ex-list-betting-stack {
    display: none;
}

/* Collapsed: prices wrapper must not break list-row odds grid. */
.ex-list-betting-row__prices--match {
    display: contents;
}

/* Pitch shell — theme-matched expand (light→light / dark→dark).
   Attractive wash uses --theme-primary (brand pink); odds cells stay on
   --ex-back / --ex-lay / --ex-draw / --ex-yes / --ex-no (unchanged).

   TL corner = same contract as .ex-inplay-group + __head:
   - Same radius token as group (--theme-radius-control).
   - Full-bleed in list (no centered max-width inset on phone).
   - No primary box-shadow ring (that inset the scoop vs sports head).
   - Primary underpaint on header band so radius AA fringe is red, not page grey.
   - Top line + scoop = one header ::before; card overflow clips TL flush.
*/
.ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded,
.ex-event--list-expandable.ex-event--list-expanded {
    --ex-list-expand-max: 100%;
    --ex-list-expand-radius: var(--theme-radius-control, 8px);
    --ex-list-expand-corner: 2.5rem;
    --ex-list-expand-scoop: 0.65rem;
    --ex-list-expand-top-rail: 1px;
    --ex-list-expand-head-h: 2.25rem;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    justify-content: stretch;
    justify-items: stretch;
    justify-self: stretch;
    align-items: stretch;
    align-self: start;
    gap: 0;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin-block: 0 var(--theme-space-3, 0.75rem);
    margin-inline: 0;
    border: 0;
    border-radius: var(--ex-list-expand-radius);
    color: var(--ex-text, var(--theme-text-body));
    /* Header-band primary underpaint → TL curve AA matches sports head (solid red) */
    background-color: var(--ex-surface-row, var(--ex-market-bg));
    background-image: linear-gradient(
        to bottom,
        var(--theme-primary, #DD3E42) 0,
        var(--theme-primary, #DD3E42) var(--ex-list-expand-head-h),
        var(--ex-surface-row, var(--ex-market-bg)) var(--ex-list-expand-head-h)
    );
    background-repeat: no-repeat;
    box-shadow: none;
    overflow: hidden;
    isolation: isolate;
    transform: none;
    font-family: var(--theme-font-sans);
    scroll-margin-top: var(--ex-site-header-height, 7.5rem);
}

/* Focused card width only on larger viewports (not phone — keep flush with sports head) */
@media (min-width: 768px) {
    .ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded,
    .ex-event--list-expandable.ex-event--list-expanded {
        --ex-list-expand-max: 32rem;
        width: min(100%, var(--ex-list-expand-max));
        max-width: min(100%, var(--ex-list-expand-max));
        margin-inline: auto;
        justify-self: center;
    }
}

@media (min-width: 992px) {
    .ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded,
    .ex-event--list-expandable.ex-event--list-expanded {
        --ex-list-expand-max: 34rem;
    }
}

@media (min-width: 1200px) {
    .ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded,
    .ex-event--list-expandable.ex-event--list-expanded {
        --ex-list-expand-max: 36rem;
    }
}

@media (min-width: 1400px) {
    .ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded,
    .ex-event--list-expandable.ex-event--list-expanded {
        --ex-list-expand-max: 38rem;
    }
}

/* No card pseudo chrome — top line + scoop live on header ::before */
.ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded::before,
.ex-event--list-expandable.ex-event--list-expanded::before,
.ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded::after,
.ex-event--list-expandable.ex-event--list-expanded::after {
    content: none !important;
    display: none !important;
}

/*
 * Phone/tablet landscape — use full width so inline header can stay
 * single-row (time · teams) instead of staying capped at portrait max.
 */
@media (orientation: landscape) and (max-width: 991.98px) {
    .ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded,
    .ex-event--list-expandable.ex-event--list-expanded {
        --ex-list-expand-max: 100%;
        width: 100%;
        max-width: 100%;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info,
    .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info {
        min-height: 2.25rem;
        height: 2.25rem;
        max-height: 2.25rem;
        align-items: center;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link,
    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info-inner > .ex-indibet-row__match-link,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link:link,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link:visited {
        flex-wrap: nowrap; /* landscape width → keep inline */
        flex-direction: row;
        align-items: center;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__meta {
        flex: 0 0 auto;
        width: auto;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__teams-stack {
        flex: 1 1 auto;
        min-width: 0; /* grow into landscape width; ellipsis only if still tight */
        max-width: none;
        flex-wrap: nowrap;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__team {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

.ex-event--list-expandable.ex-event--list-expanded > .ex-indibet-row {
    display: contents;
}

/*
 * Match-ticket header — same height/density + chrome contract as .ex-inplay-group__head.
 * Elevated wash fill; one ::before = top pink line + scoop tab (parent clips TL).
 */
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info {
    --ex-head-corner: var(--ex-list-expand-corner, 2.5rem);
    --ex-head-scoop: var(--ex-list-expand-scoop, 0.65rem);
    --ex-head-top-line: var(--ex-list-expand-top-rail, 1px);
    --ex-ticket-head-fill: color-mix(
        in srgb,
        var(--theme-primary, #DD3E42) 12%,
        var(--theme-bg-elevated, var(--ex-market-bg, #1A2332))
    );
    position: relative;
    top: auto;
    display: flex;
    align-items: center;
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    width: 100%;
    /* Match .ex-inplay-group__head — fixed single-row height */
    min-height: var(--ex-list-expand-head-h, 2.25rem);
    height: var(--ex-list-expand-head-h, 2.25rem);
    max-height: var(--ex-list-expand-head-h, 2.25rem);
    justify-self: stretch;
    align-self: start;
    padding: 0.25rem 2.25rem 0.25rem calc(var(--ex-head-corner) + 0.45rem);
    box-sizing: border-box;
    color: var(--ex-text-strong, var(--theme-text-strong, #F3F4F6));
    background: var(--ex-ticket-head-fill);
    background-color: var(--ex-ticket-head-fill);
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--theme-primary, #DD3E42) 22%, var(--ex-border, #3A4558));
    border-radius: 0;
    font-family: var(--theme-font-sans);
    font-size: var(--theme-text-base, 0.875rem);
    font-weight: var(--theme-weight-semibold, 600);
    line-height: 1.15;
    letter-spacing: 0;
    box-shadow: none;
    overflow: hidden;
    z-index: 2;
}

/* Top line + scoop — same merged mask as .ex-inplay-group__head::before */
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info::before,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info::before {
    content: "" !important;
    position: absolute;
    inset: 0;
    background: var(--theme-primary, #DD3E42);
    border-radius: 0;
    -webkit-mask:
        linear-gradient(#000 0 0) 0 0 / 100% var(--ex-head-top-line) no-repeat,
        radial-gradient(
            circle var(--ex-head-scoop) at 100% 100%,
            transparent 98%,
            #000 99%
        ) 0 0 / var(--ex-head-corner) 100% no-repeat;
    mask:
        linear-gradient(#000 0 0) 0 0 / 100% var(--ex-head-top-line) no-repeat,
        radial-gradient(
            circle var(--ex-head-scoop) at 100% 100%,
            transparent 98%,
            #000 99%
        ) 0 0 / var(--ex-head-corner) 100% no-repeat;
    -webkit-mask-composite: source-over;
    mask-composite: add;
    pointer-events: none;
    z-index: 0;
}

/* No second bar — top line is in ::before mask above */
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info::after,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info::after {
    content: none !important;
}

@media (max-width: 991.98px) {
    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info,
    .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info {
        box-shadow: none;
    }
}

/* Expanded inline header — kill list-row hover (inset primary bar / bg flash) */
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row,
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row:hover,
.ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row:hover,
.ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded:nth-child(even) .ex-indibet-row:hover,
html.theme-dark .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row:hover,
.theme-dark .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row:hover {
    background: transparent !important;
    box-shadow: none !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info:hover,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info:hover {
    background: var(--ex-ticket-head-fill) !important;
    background-color: var(--ex-ticket-head-fill) !important;
    box-shadow: none !important;
    filter: none;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link:hover .ex-indibet-row__team,
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link:hover .ex-indibet-row__vs,
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row:hover .ex-indibet-row__team,
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row:hover .ex-indibet-row__vs {
    color: var(--ex-text-strong, var(--theme-text-strong, #F3F4F6));
    font-weight: 700;
}

/* Stake icon — same slot as .ex-inplay-group__icon */
.ex-event--list-expandable:not(.ex-event--list-expanded) .ex-list-expand-stake {
    display: none;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-expand-stake,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-list-expand-stake {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: var(--ex-head-corner, 2.5rem);
    height: 100%;
    margin: 0;
    padding: 0;
    color: var(--bp-white, #fff);
    pointer-events: none;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-expand-stake__icon,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-expand-stake svg,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-expand-stake svg :is(path, line, circle, ellipse, polyline, polygon, rect) {
    display: block;
    width: 1.375rem;
    height: 1.375rem;
    color: var(--bp-white, #FFFFFF) !important;
    fill: none !important;
    stroke: var(--bp-white, #FFFFFF) !important;
    stroke-width: 1.75;
}

/* ★ · time · Team v Team · × — always single row */
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info-inner {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.25rem;
    width: 100%;
    min-width: 0;
    height: 100%;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link,
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info-inner > .ex-indibet-row__match-link,
.ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link,
.ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link:link,
.ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link:visited {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
    flex: 1 1 auto;
    color: var(--ex-text-strong, var(--theme-text-strong));
    text-decoration: none;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__meta {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex: 0 0 auto;
    margin: 0;
    gap: 0.3rem;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__time {
    min-width: 0;
    white-space: nowrap;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__teams-stack {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.25rem 0.35rem;
    min-width: 0;
    flex: 1 1 auto;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__vs {
    display: inline !important;
    flex: 0 0 auto;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__team {
    display: inline !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__team,
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__vs,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__team,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__vs,
.ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__team,
.ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__vs {
    color: var(--ex-text-strong, var(--theme-text-strong, #F3F4F6)) !important;
    -webkit-text-fill-color: var(--ex-text-strong, var(--theme-text-strong, #F3F4F6)) !important;
    font-family: var(--theme-font-sans);
    font-size: 0.9375rem; /* 15px — slightly stronger than sport league label */
    font-weight: 700;
    line-height: 1.15;
}

/* Date/time — smaller + lighter than team names. */
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__time,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__time {
    color: var(--ex-muted, var(--theme-text-muted, #9CA3AF));
    -webkit-text-fill-color: var(--ex-muted, var(--theme-text-muted, #9CA3AF));
    font-family: var(--theme-font-sans);
    font-size: 0.6875rem; /* 11px */
    font-weight: var(--theme-weight-medium, 500);
    letter-spacing: 0.01em;
    line-height: 1.15;
}

/* Expanded inline: hide BM / F badges (keep TV/mic if present). */
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--bm,
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--fancy,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__flag--bm,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__flag--fancy {
    display: none !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flags:not(:has(.ex-indibet-row__flag--tv, .ex-indibet-row__flag--mic)) {
    display: none !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--tv,
.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--mic,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__flag--tv,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__flag--mic {
    color: var(--ex-muted, var(--theme-text-muted, #9CA3AF));
    border-color: color-mix(in srgb, var(--ex-border, #3A4558) 80%, transparent);
}

.ex-event--list-expandable.ex-event--list-expanded .ex-event-favorite,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-event-favorite {
    color: var(--ex-muted, var(--theme-text-muted, #9CA3AF));
    width: 1.5rem;
    height: 1.5rem;
}

/* Cricket never shows Goal Line (football) badge */
.ex-event--list-expandable .ex-indibet-row__flag--gl,
.ex-event[data-cricket="1"] .ex-indibet-row__flag--gl {
    display: none !important;
}

/* Close control — top-right corner of active inline header. */
.ex-list-expand-close {
    display: none;
    position: absolute;
    top: 50%;
    right: var(--theme-space-2, 0.5rem);
    z-index: 6;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    margin: 0;
    padding: 0;
    border: 1px solid var(--ex-border, #3A4558);
    border-radius: var(--theme-radius-chip, 4px);
    background: color-mix(in srgb, var(--ex-text-strong, #F3F4F6) 8%, transparent);
    color: var(--ex-text-strong, var(--theme-text-strong, #F3F4F6));
    font-family: var(--theme-font-sans);
    font-size: var(--theme-text-base, 0.875rem);
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    transform: translateY(-50%);
}

.ex-list-expand-close span {
    display: block;
    margin-top: -0.05rem;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-expand-close,
.ex-event--list-expandable.ex-event--list-expanded.is-active .ex-list-expand-close {
    display: inline-flex;
}

.ex-list-expand-close:hover,
.ex-list-expand-close:focus-visible,
html.theme-light .ex-list-expand-close:hover,
html.theme-light .ex-list-expand-close:focus-visible,
html.theme-dark .ex-list-expand-close:hover,
html.theme-dark .ex-list-expand-close:focus-visible,
.theme-light .ex-list-expand-close:hover,
.theme-light .ex-list-expand-close:focus-visible,
.theme-dark .ex-list-expand-close:hover,
.theme-dark .ex-list-expand-close:focus-visible {
    color: #FFFFFF !important;
    border-color: var(--theme-primary) !important;
    background: var(--theme-primary) !important;
    outline: none;
}

.ex-list-expand-close:hover:active,
.ex-list-expand-close:focus-visible:active {
    background: var(--theme-primary-hover, var(--theme-primary)) !important;
    border-color: var(--theme-primary-hover, var(--theme-primary)) !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-event__list-scorecard,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard {
    display: contents;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard__footer {
    grid-column: 1;
    grid-row: 6;
    display: flex;
    align-items: center;
    justify-content: center;
    justify-self: stretch;
    align-self: stretch;
    width: 100%;
    min-height: 2.25rem;
    margin: 0;
    padding: 0.4rem 0.55rem;
    box-sizing: border-box;
    background: var(--theme-bg-elevated, var(--ex-market-bg, #1A2332));
    background-color: var(--theme-bg-elevated, var(--ex-market-bg, #1A2332));
    border-top: 1px solid var(--ex-border, #3A4558);
    box-shadow: none;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__odds {
    display: flex;
    flex-direction: column;
    grid-column: 1;
    grid-row: 3;
    gap: 0;
    align-self: stretch;
    width: 100%;
    min-width: 0;
    padding: 0;
    background: var(--ex-surface-row, var(--ex-market-bg));
    border-bottom: 1px solid color-mix(in srgb, var(--ex-border) 80%, transparent);
}

/* Stack title above 1|X|2 so labels share the same track as price cells. */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--match {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid var(--theme-match-list-columns-border, var(--ex-border));
    background: var(--ex-surface-subhead);
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--match > strong {
    display: block;
    padding: 0.28rem 0.4rem 0.12rem;
    color: var(--ex-text-strong);
    font-size: var(--theme-type-label-size, var(--theme-text-sm));
    font-weight: var(--theme-type-label-weight, var(--theme-weight-semibold, 600));
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__outcome-labels {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    min-width: 0;
    align-items: center;
    width: 100%;
    padding: 0.12rem 0 0.25rem;
    box-sizing: border-box;
}

.ex-event--list-expandable.ex-event--list-expanded.ex-event--2way .ex-list-betting-row__outcome-labels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__outcome-labels > span {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-label-size, var(--theme-text-sm));
    font-weight: var(--theme-type-label-weight, var(--theme-weight-semibold, 600));
    letter-spacing: 0.05em;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    align-items: stretch;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.ex-event--list-expandable.ex-event--list-expanded.ex-event--2way .ex-list-betting-row__prices--match {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match > .ex-indibet-outcome {
    display: flex;
    align-items: stretch;
    justify-content: center;
    min-width: 0;
    min-height: var(--theme-odds-h-desktop, var(--ex-xch-cell-h));
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    gap: 0;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match > .ex-indibet-outcome--sportsbook {
    display: grid;
    grid-template-columns: 1fr;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome__back,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome__lay {
    display: flex;
    flex: 1 1 auto;
    align-items: stretch;
    justify-content: center;
    min-width: 0;
    width: 100%;
    margin: 0;
    padding: 0;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match > .ex-indibet-outcome:not(:first-child),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane > .ex-indibet-outcome:not(:first-child) {
    border-left: 1px solid color-mix(in srgb, var(--ex-border) 55%, transparent);
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match a.ex-price,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match span.ex-price {
    display: flex !important;
    flex: 1 1 auto;
    align-items: center !important;
    justify-content: center !important;
    width: 100%;
    min-width: 0;
    min-height: var(--theme-odds-h-desktop, var(--ex-xch-cell-h));
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    text-align: center;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price__value {
    display: block;
    width: 100%;
    text-align: center;
    font-size: var(--theme-type-odds-size, var(--theme-text-md));
    font-weight: var(--theme-type-odds-weight, var(--theme-weight-bold));
    line-height: var(--theme-leading-tight);
    letter-spacing: var(--theme-type-odds-tracking);
    font-variant-numeric: tabular-nums;
}

/* Expanded odds cells: flat sacred Back / Draw / Lay (no inset chrome / lift).
   Never strip shadow/transform while a flash pulse is active. */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price:not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane .ex-price:not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing) {
    box-shadow: none !important;
    transform: none !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome--sportsbook:not(.ex-indibet-outcome--draw):not(.ex-indibet-outcome--away) .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down) {
    background: var(--ex-back) !important;
    color: var(--ex-back-text) !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome--draw .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down) {
    background: var(--ex-draw) !important;
    color: var(--ex-draw-text) !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price--lay:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome--away .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down) {
    background: var(--ex-lay) !important;
    color: var(--ex-lay-text) !important;
}

/*
 * Fancy / Session — Yes | spacer | No
 * Soft green / red (pastel mix of project --ex-yes / --ex-no) for inline pulse.
 */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session {
    --ex-inline-lane-cell-h: var(--theme-odds-h-desktop, var(--ex-xch-cell-h, 36px));
    --ex-inline-lane-label-h: calc(var(--ex-inline-lane-cell-h) * 0.5);
    /* Soft pastel chips + dark ink (never white-on-loud) */
    --ex-inline-yes-soft: color-mix(in srgb, var(--ex-yes) 28%, var(--bp-white, #FFFFFF));
    /* Soft red (not brand pink) */
    --ex-inline-no-soft: color-mix(in srgb, var(--bp-danger-strong, #DC2626) 24%, var(--ex-danger-soft-bg, #FEF2F2));
    --ex-inline-yes-ink: var(--bp-odds-ink, #0F172A);
    --ex-inline-no-ink: var(--bp-odds-ink, #0F172A);
}

html.theme-dark .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy,
html.theme-dark .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session,
.theme-dark .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy,
.theme-dark .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session {
    --ex-inline-yes-soft: color-mix(in srgb, var(--ex-yes) 42%, var(--ex-inline-soft-dark-bg, #243044));
    --ex-inline-no-soft: color-mix(in srgb, var(--bp-danger-strong, #DC2626) 36%, var(--ex-danger-soft-bg-dark, #2A1A1C));
    --ex-inline-yes-ink: #F8FAFC;
    --ex-inline-no-ink: #F8FAFC;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-labels,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-labels,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__head--lane .ex-list-betting-row__outcome-labels,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__head--lane .ex-list-betting-row__outcome-labels {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    align-items: stretch;
    justify-items: stretch;
    width: 100% !important;
    height: var(--ex-inline-lane-label-h) !important;
    min-height: var(--ex-inline-lane-label-h) !important;
    max-height: var(--ex-inline-lane-label-h) !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box;
    background: transparent;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-labels > span,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-labels > span,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__head--lane .ex-list-betting-row__outcome-labels > span,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__head--lane .ex-list-betting-row__outcome-labels > span {
    display: flex !important;
    align-items: center;
    justify-content: center;
    justify-self: stretch;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100% !important;
    min-height: var(--ex-inline-lane-label-h) !important;
    max-height: var(--ex-inline-lane-label-h) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    border-radius: var(--theme-radius-chip, 4px) var(--theme-radius-chip, 4px) 0 0 !important;
    box-sizing: border-box;
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-odds-size-liquidity, var(--theme-text-xs, 0.6875rem));
    font-weight: var(--theme-type-label-weight, var(--theme-weight-semibold, 600));
    letter-spacing: 0.05em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: none !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-labels > span:not(:first-child),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-labels > span:not(:first-child) {
    border-left: 1px solid color-mix(in srgb, var(--ex-border) 70%, transparent);
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-label--yes,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-label--yes,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-labels > span:first-child,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-labels > span:first-child {
    background: var(--ex-inline-yes-soft) !important;
    background-color: var(--ex-inline-yes-soft) !important;
    color: var(--ex-inline-yes-ink) !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-label--no,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-label--no,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-labels > span:last-child,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-labels > span:last-child {
    background: var(--ex-inline-no-soft) !important;
    background-color: var(--ex-inline-no-soft) !important;
    color: var(--ex-inline-no-ink) !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-label--spacer,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-label--spacer {
    background: var(--ex-surface-subhead, var(--ex-surface-row)) !important;
    background-color: var(--ex-surface-subhead, var(--ex-surface-row)) !important;
    color: var(--ex-muted) !important;
    opacity: 0.55;
}

/* Fancy / Session odds cells — soft Yes green / No red.
   Must NOT paint over odds-price-flash-* / ex-odds-flashing. */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane .ex-price--yes:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane .ex-price--yes:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane > .ex-indibet-outcome:first-child .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane > .ex-indibet-outcome:first-child .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing) {
    background: var(--ex-inline-yes-soft) !important;
    color: var(--ex-inline-yes-ink) !important;
    -webkit-text-fill-color: var(--ex-inline-yes-ink) !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane .ex-price--yes:not(.ex-price--unavailable) .ex-price__value,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane .ex-price--yes:not(.ex-price--unavailable) .ex-price__value,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane > .ex-indibet-outcome:first-child .ex-price:not(.ex-price--unavailable) .ex-price__value,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane > .ex-indibet-outcome:first-child .ex-price:not(.ex-price--unavailable) .ex-price__value {
    color: var(--ex-inline-yes-ink) !important;
    -webkit-text-fill-color: var(--ex-inline-yes-ink) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane .ex-price--no:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane .ex-price--no:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane > .ex-indibet-outcome:last-child .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane > .ex-indibet-outcome:last-child .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing) {
    background: var(--ex-inline-no-soft) !important;
    color: var(--ex-inline-no-ink) !important;
    -webkit-text-fill-color: var(--ex-inline-no-ink) !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane .ex-price--no:not(.ex-price--unavailable) .ex-price__value,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane .ex-price--no:not(.ex-price--unavailable) .ex-price__value,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane > .ex-indibet-outcome:last-child .ex-price:not(.ex-price--unavailable) .ex-price__value,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane > .ex-indibet-outcome:last-child .ex-price:not(.ex-price--unavailable) .ex-price__value {
    color: var(--ex-inline-no-ink) !important;
    -webkit-text-fill-color: var(--ex-inline-no-ink) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price:not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price:not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane .ex-price:not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane .ex-price:not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible {
    transform: none !important;
    box-shadow: none !important;
}

/* Match Odds hover — same strength for Back (blue) / Draw / Lay (pink). */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome--sportsbook:not(.ex-indibet-outcome--draw):not(.ex-indibet-outcome--away) .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome--sportsbook:not(.ex-indibet-outcome--draw):not(.ex-indibet-outcome--away) .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible {
    background: var(--ex-back-hover, var(--ex-back)) !important;
    color: var(--ex-back-text) !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome--draw .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome--draw .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible {
    background: var(--ex-draw-hover, var(--ex-draw)) !important;
    color: var(--ex-draw-text) !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price--lay:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price--lay:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome--away .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):hover,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-indibet-outcome--away .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down):not(.ex-odds-flashing):focus-visible {
    background: var(--ex-lay-hover, var(--ex-lay)) !important;
    color: var(--ex-lay-text) !important;
}

/*
 * Expanded-list flash pulse — must beat later Fancy/Session rest !important fills.
 * (indian-list can load after odds-cell.css via deferred media=print onload.)
 */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane .ex-price--yes.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane .ex-price--yes.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane .ex-price--no.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane .ex-price--no.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling) {
    background: var(--ex-odds-flash-up, #15803D) !important;
    background-color: var(--ex-odds-flash-up, #15803D) !important;
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    border-color: var(--ex-odds-flash-up, #15803D) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28) !important;
    animation: ex-odds-flash-pulse-up 0.35s ease-out 1;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane .ex-price--yes.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane .ex-price--yes.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__prices--lane .ex-price--no.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__prices--lane .ex-price--no.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling) {
    background: var(--ex-odds-flash-down, var(--theme-primary, #DD3E42)) !important;
    background-color: var(--ex-odds-flash-down, var(--theme-primary, #DD3E42)) !important;
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    border-color: var(--ex-odds-flash-down, var(--theme-primary, #DD3E42)) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28) !important;
    animation: ex-odds-flash-pulse-down 0.35s ease-out 1;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-price.odds-price-flash-up:not(.is-settling) .ex-price__value,
.ex-event--list-expandable.ex-event--list-expanded .ex-price.odds-price-flash-up:not(.is-settling) .ex-odds-figure,
.ex-event--list-expandable.ex-event--list-expanded .ex-price.odds-price-flash-down:not(.is-settling) .ex-price__value,
.ex-event--list-expandable.ex-event--list-expanded .ex-price.odds-price-flash-down:not(.is-settling) .ex-odds-figure {
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match > .ex-indibet-outcome--fancy {
    display: none !important;
}

/* Fancy / Session — no accent rail / amber bleed from Match Odds. */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session {
    box-shadow: none;
    outline: none;
    border-left: 0;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-stack {
    display: contents !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session {
    display: flex;
    flex-direction: column;
    grid-column: 1;
    width: 100%;
    min-width: 0;
    padding: 0;
    background: var(--ex-surface-row, var(--ex-market-bg));
    border-bottom: 1px solid color-mix(in srgb, var(--ex-border) 80%, transparent);
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy {
    grid-row: 4;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session {
    grid-row: 5;
}

/* Fancy / Session heads: title strip + flush Yes|spacer|No labels (no gap above locks). */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--lane {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    border-bottom: 0;
    background: var(--ex-surface-subhead);
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__title-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 0.35rem;
    padding: 0.22rem 0.4rem;
    min-width: 0;
    min-height: 1.5rem;
    border-bottom: 1px solid var(--theme-match-list-columns-border, var(--ex-border));
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__title-row > strong,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--lane > strong {
    display: inline;
    flex: 0 0 auto;
    min-width: 0;
    padding: 0;
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-label-size, var(--theme-text-sm));
    font-weight: var(--theme-type-label-weight, var(--theme-weight-semibold, 600));
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__title-row .market-locked-badge,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__title-row .ex-market-lock-badge {
    position: static;
    flex: 0 0 auto;
    margin: 0 0 0 auto;
}

/* Closed Fancy/Session lane — same gray lock cells as match detail (Yes/No only). */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row.market-locked .ex-price:not(.ex-price--spacer),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row.market-locked .ex-price:not(.ex-price--unavailable):not(.ex-price--spacer),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row.market-locked a.ex-price:not(.ex-price--spacer),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy.market-locked .ex-list-betting-row__prices--lane .ex-price--yes:not(.ex-price--unavailable),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session.market-locked .ex-list-betting-row__prices--lane .ex-price--yes:not(.ex-price--unavailable),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy.market-locked .ex-list-betting-row__prices--lane .ex-price--no:not(.ex-price--unavailable),
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session.market-locked .ex-list-betting-row__prices--lane .ex-price--no:not(.ex-price--unavailable) {
    background: #6B7280 !important;
    background-color: #6B7280 !important;
    color: #F9FAFB !important;
    -webkit-text-fill-color: #F9FAFB !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row.market-locked .ex-price:not(.ex-price--spacer) .ex-price__value,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row.market-locked .ex-price:not(.ex-price--spacer) .ex-price__size {
    opacity: 0 !important;
    visibility: hidden !important;
}

/* Market name / unavailable status — same row as Fancy|Session label */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__title-row .ex-list-betting-row__market-name {
    display: inline-block;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    color: var(--ex-muted);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-text-xs, 0.6875rem); /* 11px */
    font-weight: var(--theme-weight-medium, 500);
    letter-spacing: 0;
    line-height: 1.2;
    text-align: left;
    text-overflow: ellipsis;
    text-transform: none;
    white-space: nowrap;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__title-row .ex-list-betting-row__market-name--status {
    flex: 0 1 auto;
    font-size: var(--theme-text-xs, 0.6875rem); /* 11px status */
    font-weight: var(--theme-weight-medium, 500);
    letter-spacing: 0.01em;
    text-transform: none;
}

/* Lane prices — Yes | spacer | No (same 3-col track as Match Odds 1|X|2). */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    width: 100%;
    margin: 0;
    padding: 0;
    gap: 0;
    box-sizing: border-box;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane > .ex-indibet-outcome {
    display: flex;
    align-items: stretch;
    justify-content: center;
    min-width: 0;
    min-height: var(--theme-odds-h-desktop, var(--ex-xch-cell-h));
    padding: 0;
    border: 0;
    border-radius: 0;
    gap: 0;
}

/* Middle spacer — muted dash, never a lock cell (even when Fancy/Session locked). */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane > .ex-indibet-outcome--spacer .ex-price,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane > .ex-indibet-outcome--spacer .ex-price--spacer {
    background: var(--ex-surface-subhead, var(--ex-surface-row)) !important;
    background-color: var(--ex-surface-subhead, var(--ex-surface-row)) !important;
    color: var(--ex-muted) !important;
    opacity: 0.55 !important;
    pointer-events: none !important;
    cursor: default !important;
    box-shadow: none !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane > .ex-indibet-outcome--spacer .ex-price::before,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane > .ex-indibet-outcome--spacer .ex-price::after,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row.market-locked .ex-list-betting-row__prices--lane > .ex-indibet-outcome--spacer .ex-price::before,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row.market-locked .ex-list-betting-row__prices--lane > .ex-indibet-outcome--spacer .ex-price::after {
    content: none !important;
    display: none !important;
    background: none !important;
    -webkit-mask: none !important;
    mask: none !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row.market-locked .ex-list-betting-row__prices--lane > .ex-indibet-outcome--spacer .ex-price,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row.market-locked .ex-list-betting-row__prices--lane > .ex-indibet-outcome--spacer .ex-price--spacer {
    background: var(--ex-surface-subhead, var(--ex-surface-row)) !important;
    background-color: var(--ex-surface-subhead, var(--ex-surface-row)) !important;
    color: var(--ex-muted) !important;
    opacity: 0.55 !important;
    cursor: default !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row.market-locked .ex-list-betting-row__prices--lane > .ex-indibet-outcome--spacer .ex-price .ex-price__value {
    opacity: 1 !important;
    visibility: visible !important;
    color: inherit !important;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane > .ex-indibet-outcome--sportsbook {
    display: grid;
    grid-template-columns: 1fr;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane .ex-indibet-outcome__back,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane .ex-indibet-outcome__lay {
    display: flex;
    flex: 1 1 auto;
    align-items: stretch;
    justify-content: center;
    min-width: 0;
    width: 100%;
    margin: 0;
    padding: 0;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane .ex-price,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane a.ex-price,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane span.ex-price {
    display: flex !important;
    flex: 1 1 auto;
    align-items: center !important;
    justify-content: center !important;
    width: 100%;
    min-width: 0;
    min-height: var(--theme-odds-h-desktop, var(--ex-xch-cell-h));
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    text-align: center;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane .ex-price__value {
    display: block;
    width: 100%;
    text-align: center;
    font-size: var(--theme-type-odds-size, var(--theme-text-md));
    font-weight: var(--theme-type-odds-weight, var(--theme-weight-bold));
    line-height: var(--theme-leading-tight);
    letter-spacing: var(--theme-type-odds-tracking);
    font-variant-numeric: tabular-nums;
}

/* Legacy generic fancy/session head (non-lane) — keep flat if still present. */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head:not(.ex-list-betting-row__head--lane):not(.ex-list-betting-row__head--match) {
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid var(--theme-match-list-columns-border, var(--ex-border));
    background: var(--ex-surface-subhead);
    padding: 0.28rem 0.4rem 0.25rem;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head:not(.ex-list-betting-row__head--lane):not(.ex-list-betting-row__head--match) strong {
    color: var(--ex-text-strong);
    font-size: var(--theme-type-label-size, var(--theme-text-sm));
    font-weight: var(--theme-type-label-weight, var(--theme-weight-semibold, 600));
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table {
    display: flex;
    flex-direction: column;
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--ex-border) 80%, transparent);
    background: var(--ex-surface-row, var(--ex-market-bg));
    overflow: visible;
}

/* Match Info title — same subhead recipe as Market Odds / Fancy / Session. */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__head {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid var(--theme-match-list-columns-border, var(--ex-border));
    background: var(--ex-surface-subhead);
    color: var(--ex-text-strong);
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__head > strong {
    display: block;
    padding: 0.28rem 0.4rem 0.12rem;
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-label-size, var(--theme-text-sm));
    font-weight: var(--theme-type-label-weight, var(--theme-weight-semibold, 600));
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__toolbar {
    display: flex !important;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.25rem;
    min-height: 0;
    padding: 0.28rem 0.4rem;
    border-bottom: 1px solid color-mix(in srgb, var(--ex-border) 70%, transparent);
    background: var(--ex-surface-row, var(--ex-market-bg));
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__toolbar > .ex-one-click-toggle {
    align-self: flex-start;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__toolbar > .ex-list-current-over {
    display: flex;
    flex: 0 0 auto;
    width: 100%;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.3rem;
    min-width: 0;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__score,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__meta-row,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__batters,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__empty {
    padding-inline: 0.4rem;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__facts > div {
    padding-inline: 0.4rem;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-one-click-toggle {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex: 0 1 auto;
    align-items: center;
    gap: 0.4rem;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--ex-text-strong, var(--theme-text-strong));
    font-family: var(--theme-font-sans);
    font-size: 11px;
    font-weight: var(--theme-type-badge-weight, var(--theme-weight-semibold));
    letter-spacing: 0.03em;
    line-height: var(--theme-leading-tight, 1.1);
    text-transform: uppercase;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-one-click-toggle__label {
    display: inline !important;
    max-width: none;
    overflow: visible;
    color: inherit;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-one-click-toggle.is-on,
.ex-event--list-expandable.ex-event--list-expanded .ex-one-click-toggle:hover {
    color: var(--ex-text-strong, var(--theme-text-strong));
    border: 0;
    background: transparent;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__line {
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-team-size, var(--theme-text-md));
    font-weight: var(--theme-type-team-weight, var(--theme-weight-semibold));
    line-height: var(--theme-leading-snug);
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__code,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__meta-row,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__facts dt,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__facts dd,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-current-over__label,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-current-over__runs,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__batter {
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-caption-size, var(--theme-text-sm));
    font-weight: var(--theme-weight-medium);
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__code,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-current-over__label {
    font-weight: var(--theme-weight-semibold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__facts dd {
    font-weight: var(--theme-weight-semibold);
    color: var(--ex-text-strong);
}

.ex-list-betting-row {
    min-width: 0;
}

.ex-list-betting-row__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    min-height: 1.75rem;
    padding: 0.28rem 0.4rem;
    border: 0;
    border-bottom: 1px solid var(--theme-match-list-columns-border, var(--ex-border));
    border-radius: 0;
    background: var(--ex-surface-subhead);
}

.ex-list-betting-row__head strong {
    flex: 0 0 auto;
    color: var(--ex-text-strong);
    font-size: var(--theme-text-xs);
    font-weight: var(--theme-weight-bold);
    font-family: var(--theme-font-sans);
}

.ex-list-betting-row__head span {
    min-width: 0;
    overflow: hidden;
    color: var(--ex-muted);
    font-size: var(--theme-text-xs);
    font-weight: var(--theme-weight-medium);
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ex-list-betting-row__prices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ex-xch-gap);
}

.ex-list-betting-row__prices .ex-indibet-outcome {
    min-width: 0;
}

.ex-list-match-table {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--ex-border);
    border-radius: 0;
    background: var(--ex-surface-row, var(--ex-surface));
}

.ex-list-match-table__head {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-height: 0;
    padding: 0;
    background: var(--ex-surface-subhead);
    border-bottom: 1px solid var(--theme-match-list-columns-border, var(--ex-border));
}

.ex-list-betting-stack--sports .ex-list-match-table__head {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem 0.5rem;
    padding: 0.28rem 0.4rem;
}

/* Expanded override zeros head padding for cricket title strip — keep sports
   Match Info chips inset so SET / points never kiss the pink frame edge. */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-stack--sports .ex-list-match-table__head {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem 0.55rem;
    padding: 0.28rem 0.65rem 0.28rem 0.5rem;
}

.ex-list-betting-stack--sports .ex-list-match-table__head > strong {
    padding: 0;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-stack--sports .ex-list-match-table__head > strong {
    padding: 0;
}

/* Prematch countdown on cricket (and any) Match Info head — same inset as sports chips. */
.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__head:has(.ex-list-match-table__clock) {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem 0.55rem;
    padding: 0.28rem 0.65rem 0.28rem 0.5rem;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__head:has(.ex-list-match-table__clock) > strong {
    padding: 0;
}

.ex-list-match-table__head > strong {
    display: block;
    padding: 0.28rem 0.4rem 0.12rem;
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-label-size, var(--theme-text-sm));
    font-weight: var(--theme-type-label-weight, var(--theme-weight-semibold, 600));
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ex-list-match-table__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem 0.65rem;
    padding: 0.35rem 0.4rem;
    border-bottom: 1px solid color-mix(in srgb, var(--ex-border) 70%, transparent);
    background: var(--ex-surface-row, var(--ex-surface));
}

.ex-list-match-table__title {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.ex-list-match-table__title > strong {
    flex: 0 0 auto;
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-label-size, var(--theme-text-sm));
    font-weight: var(--theme-type-label-weight, var(--theme-weight-semibold, 600));
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

/* Single-click bet control — checkbox tick (UI preference — no backend change). */
.ex-one-click-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--ex-text-strong, var(--theme-text-strong));
    font-family: var(--theme-font-sans);
    font-size: 11px;
    font-weight: var(--theme-type-badge-weight, var(--theme-weight-semibold));
    letter-spacing: 0.03em;
    line-height: 1.2;
    text-transform: uppercase;
    cursor: pointer;
    user-select: none;
}

.ex-one-click-toggle:hover,
.ex-one-click-toggle.is-on {
    color: var(--ex-text-strong, var(--theme-text-strong));
    border: 0;
    background: transparent;
}

.ex-one-click-toggle__label {
    flex: 0 0 auto;
}

.ex-one-click-toggle__box {
    position: relative;
    flex: 0 0 auto;
    box-sizing: border-box;
    width: 1rem;
    height: 1rem;
    border: 1.75px solid var(--bp-slate-400, #94a3b8);
    border-radius: 0.22rem;
    /* Off — empty gray checkbox (real unchecked feel) */
    background: var(--ex-surface, var(--theme-bg-elevated, transparent));
    transition:
        background-color 0.15s ease,
        border-color 0.15s ease;
}

html.theme-dark .ex-one-click-toggle__box,
.theme-dark .ex-one-click-toggle__box {
    border-color: var(--bp-slate-500, #64748b);
    background: var(--ex-surface, var(--theme-bg-elevated, transparent));
}

.ex-one-click-toggle.is-on .ex-one-click-toggle__box {
    border-color: var(--theme-primary, #DD3E42);
    background: var(--theme-primary, #DD3E42);
}

.ex-one-click-toggle.is-on .ex-one-click-toggle__box::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 46%;
    width: 0.28rem;
    height: 0.52rem;
    margin: 0;
    border: solid var(--theme-icon-on-brand, var(--bp-white, #FFFFFF));
    border-width: 0 2px 2px 0;
    transform: translate(-50%, -50%) rotate(45deg);
}

/* Legacy track/thumb/state hidden if any fragment still ships them */
.ex-one-click-toggle__track,
.ex-one-click-toggle__thumb,
.ex-one-click-toggle__state {
    display: none !important;
}

.ex-list-match-table__body {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ex-list-match-table__score {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    padding: 0.4rem 0.5rem;
}

.ex-list-match-table__score--sports {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
}

.ex-list-match-table__vs {
    flex: 0 0 auto;
    color: var(--ex-muted);
    font-size: var(--theme-text-sm, 0.75rem);
    font-weight: var(--theme-weight-semibold, 600);
    line-height: 1;
    opacity: 0.75;
}

.ex-list-match-table__clock {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem 0.35rem;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    padding-inline-end: 0.1rem;
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-text-xs, 0.6875rem);
    font-weight: var(--theme-weight-semibold, 600);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    overflow: visible;
}

.ex-list-match-table__period {
    display: inline-flex;
    align-items: center;
    min-height: 1.1rem;
    padding: 0.08rem 0.35rem;
    border-radius: var(--theme-radius-chip, 4px);
    background: var(--theme-primary, #dd3e42);
    color: var(--theme-icon-on-brand, var(--bp-white, #fff));
    font-size: 0.625rem;
    font-weight: var(--theme-weight-bold, 700);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ex-list-match-table__format {
    display: inline-flex;
    align-items: center;
    min-height: 1.1rem;
    padding: 0.08rem 0.35rem;
    border-radius: var(--theme-radius-chip, 4px);
    background: color-mix(in srgb, var(--ex-text-muted, #64748b) 28%, transparent);
    color: var(--ex-text-strong);
    font-size: 0.625rem;
    font-weight: var(--theme-weight-bold, 700);
    letter-spacing: 0.03em;
    font-variant-numeric: tabular-nums;
}

.ex-list-match-table__minute,
.ex-list-match-table__points {
    font-variant-numeric: tabular-nums;
}

.ex-list-match-table__points {
    color: var(--theme-primary, #dd3e42);
    font-weight: var(--theme-weight-bold, 700);
}

.ex-list-match-table__countdown {
    display: inline-flex;
    align-items: center;
    position: relative;
    gap: 0;
    /* Text drives strip height — clock is absolute and can sit beside without growing the head */
    min-height: 0;
    height: auto;
    line-height: 1.2;
    padding: 0 0 0 1.05rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    /* Dial (::before/::after) uses currentColor with the label */
    color: var(--ex-countdown-gt1h, #1DADFC);
    font-size: 0.625rem;
    font-weight: var(--theme-weight-bold, 700);
    letter-spacing: 0.02em;
    white-space: nowrap;
    overflow: visible;
}

/* Remaining ≥1h: blue · <1h: amber · <30m: theme pink · <5m: pink + blink */
.ex-list-match-table__countdown--gt1h {
    color: var(--ex-countdown-gt1h, #1DADFC);
}

.ex-list-match-table__countdown--lt1h {
    color: var(--ex-countdown-lt1h, #FFBF00);
}

.ex-list-match-table__countdown--lt30m {
    color: var(--theme-primary, #dd3e42);
}

.ex-list-match-table__countdown--lt15m {
    color: var(--theme-primary, #dd3e42);
}

/* Last 5 minutes — dial only blinks on/off; label text stays solid */
.ex-list-match-table__countdown--lt5m {
    color: var(--theme-primary, #dd3e42);
}

.ex-list-match-table__countdown--lt5m::before {
    animation: ex-countdown-urgent-blink 1s steps(1, end) infinite;
}

.ex-list-match-table__countdown--lt5m::after {
    animation:
        ex-countdown-sec-hand 60s steps(20, end) infinite,
        ex-countdown-urgent-blink 1s steps(1, end) infinite;
}

@keyframes ex-countdown-urgent-blink {
    0%,
    49.9% {
        opacity: 1;
    }
    50%,
    100% {
        opacity: 0;
    }
}

/* Analog clock face — compact dial, vertically centered in the strip */
.ex-list-match-table__countdown::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    box-sizing: border-box;
    width: 0.875rem;
    height: 0.875rem;
    margin-top: -0.4375rem;
    border: 1.75px solid currentColor;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 50%, currentColor 1.1px, transparent 1.25px);
    opacity: 1;
    pointer-events: none;
}

/* Seconds hand — ticks around the dial (no opacity pulse) */
.ex-list-match-table__countdown::after {
    content: "";
    position: absolute;
    left: 0.4375rem;
    top: 50%;
    width: 1.6px;
    height: 0.29rem;
    border-radius: 1px;
    background: currentColor;
    opacity: 1;
    transform-origin: 50% 100%;
    transform: translate(-50%, -100%) rotate(0deg);
    animation: ex-countdown-sec-hand 60s steps(20, end) infinite;
    pointer-events: none;
}

@keyframes ex-countdown-sec-hand {
    to {
        transform: translate(-50%, -100%) rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ex-list-match-table__countdown::after {
        animation: none;
        opacity: 1;
        transform: translate(-50%, -100%) rotate(0deg);
    }

    .ex-list-match-table__countdown--lt5m::before,
    .ex-list-match-table__countdown--lt5m::after {
        animation: none;
        opacity: 1;
    }
}

.ex-list-match-table__momentum {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
    min-width: 0;
    max-width: 100%;
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-text-xs, 0.6875rem);
    font-weight: var(--theme-weight-semibold, 600);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

.ex-list-match-table__live-dot {
    flex: 0 0 auto;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: var(--theme-primary, #dd3e42);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--theme-primary, #dd3e42) 55%, transparent);
    animation: ex-list-live-pulse 1.4s ease-out infinite;
}

@keyframes ex-list-live-pulse {
    0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--theme-primary, #dd3e42) 45%, transparent); }
    70% { box-shadow: 0 0 0 0.35rem transparent; }
    100% { box-shadow: 0 0 0 0 transparent; }
}

.ex-list-betting-stack--sports .ex-list-match-table__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.55rem;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-stack--sports .ex-list-match-table__toolbar {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
}

.ex-list-scorecard__teasers {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.3rem 0.4rem;
    padding: 0.35rem 0.55rem 0;
}

.ex-list-scorecard__teaser {
    display: inline-flex;
    align-items: center;
    min-height: 1.15rem;
    padding: 0.1rem 0.45rem;
    border: 1px solid color-mix(in srgb, var(--ex-border) 80%, transparent);
    border-radius: var(--theme-radius-pill, 999px);
    background: var(--ex-surface-raised, var(--ex-surface));
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: 0.625rem;
    font-weight: var(--theme-weight-semibold, 600);
    letter-spacing: 0.02em;
    line-height: 1.2;
    white-space: nowrap;
}

.ex-list-scorecard__teaser--hot {
    border-color: color-mix(in srgb, var(--theme-primary, #dd3e42) 45%, transparent);
    background: color-mix(in srgb, var(--theme-primary, #dd3e42) 12%, transparent);
    color: var(--theme-primary, #dd3e42);
}

.ex-list-scorecard__teaser--vol {
    color: var(--ex-muted, #64748b);
}

.ex-list-scorecard__details-cta-meta {
    margin-left: 0.2rem;
    opacity: 0.92;
    font-weight: var(--theme-weight-semibold, 600);
    font-variant-numeric: tabular-nums;
}

.ex-list-match-table__sets {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.25rem 0.35rem;
    padding: 0 0.5rem 0.4rem;
}

.ex-list-match-table__set {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.1rem;
    min-height: 1.35rem;
    padding: 0.12rem 0.4rem;
    border: 1px solid color-mix(in srgb, var(--ex-border) 85%, transparent);
    border-radius: var(--theme-radius-chip, 4px);
    background: var(--ex-surface-raised, var(--ex-surface));
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-text-xs, 0.6875rem);
    font-weight: var(--theme-weight-semibold, 600);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.ex-list-match-table__set.is-current {
    border-color: var(--theme-primary, #dd3e42);
    color: var(--theme-primary, #dd3e42);
}

.ex-list-betting-stack--sports .ex-list-match-table__line {
    font-size: clamp(0.875rem, 0.4vw + 0.75rem, 1.05rem);
    font-weight: var(--theme-weight-bold, 700);
}

@media (max-width: 575.98px) {
    .ex-list-match-table__score--sports {
        padding: 0.35rem 0.4rem;
        gap: 0.3rem;
    }

    .ex-list-match-table__clock {
        max-width: min(55%, calc(100% - 0.5rem));
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-stack--sports .ex-list-match-table__head {
        padding-inline-end: 0.75rem;
    }
}

.ex-list-match-table__team {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    min-width: 0;
}

.ex-list-match-table__team--away {
    justify-content: flex-end;
    text-align: right;
}

.ex-list-match-table__code {
    flex: 0 0 auto;
    color: var(--ex-muted);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-text-xs);
    font-weight: var(--theme-weight-semibold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ex-list-match-table__line {
    min-width: 0;
    overflow: hidden;
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-team-size, var(--theme-text-md));
    font-weight: var(--theme-type-team-weight, var(--theme-weight-semibold));
    font-variant-numeric: tabular-nums;
    line-height: var(--theme-leading-snug);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ex-list-match-table__meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.75rem;
    padding: 0.2rem 0.5rem 0.35rem;
    border-top: 1px solid color-mix(in srgb, var(--ex-border) 65%, transparent);
    color: var(--ex-muted);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-caption-size, var(--theme-text-sm));
    font-weight: var(--theme-weight-medium);
}

.ex-list-match-table__meta-row strong {
    color: var(--ex-text-strong);
    font-weight: var(--theme-weight-semibold);
    font-variant-numeric: tabular-nums;
}

.ex-list-match-table__status {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ex-list-match-table__empty {
    margin: 0;
    padding: 0.35rem 0.5rem 0.45rem;
    border-top: 1px solid color-mix(in srgb, var(--ex-border) 65%, transparent);
    color: var(--ex-muted);
    font-size: var(--theme-type-caption-size, var(--theme-text-sm));
    font-weight: var(--theme-weight-medium);
}

.ex-list-match-table__batters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.85rem;
    padding: 0.25rem 0.5rem 0.4rem;
    border-top: 1px solid color-mix(in srgb, var(--ex-border) 65%, transparent);
}

.ex-list-match-table__batter {
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-caption-size, var(--theme-text-sm));
    font-weight: var(--theme-weight-medium);
    white-space: nowrap;
}

.ex-list-match-table__batter strong {
    font-weight: var(--theme-weight-semibold);
    font-variant-numeric: tabular-nums;
}

.ex-list-match-table__batter span {
    color: var(--ex-muted);
}

.ex-list-match-table__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0;
    border-top: 1px solid color-mix(in srgb, var(--ex-border) 65%, transparent);
}

.ex-list-match-table__facts > div {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr);
    gap: 0.35rem;
    min-width: 0;
    padding: 0.22rem 0.5rem;
    background: var(--ex-surface-row, transparent);
}

.ex-list-match-table__facts > div:nth-child(odd) {
    border-right: 1px solid color-mix(in srgb, var(--ex-border) 65%, transparent);
}

.ex-list-match-table__facts > div:nth-child(n + 3) {
    border-top: 1px solid color-mix(in srgb, var(--ex-border) 65%, transparent);
}

.ex-list-match-table__facts dt,
.ex-list-match-table__facts dd {
    min-width: 0;
    margin: 0;
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-caption-size, var(--theme-text-sm));
}

.ex-list-match-table__facts dt {
    color: var(--ex-muted);
    font-weight: var(--theme-weight-medium);
}

.ex-list-match-table__facts dd {
    overflow: hidden;
    color: var(--ex-text-strong);
    font-weight: var(--theme-weight-semibold);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ex-list-current-over {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    flex: 1 1 auto;
    gap: 0.3rem;
    min-width: 0;
}

.ex-list-current-over__label {
    flex: 0 0 auto;
    color: var(--ex-muted);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-text-xs);
    font-weight: var(--theme-weight-semibold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.ex-list-current-over__runs {
    flex: 0 0 auto;
    color: var(--ex-text-strong);
    font-family: var(--theme-font-sans);
    font-size: var(--theme-type-caption-size, var(--theme-text-sm));
    font-weight: var(--theme-weight-medium);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ex-list-current-over__balls {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.2rem;
    min-width: 0;
    padding: 0;
    overflow: hidden;
}

.ex-list-current-over__balls .ex-dlx-ball {
    width: 1.25rem;
    height: 1.25rem;
    min-width: 1.25rem;
    font-size: 0.625rem;
}

.ex-list-current-over__empty {
    min-width: 0;
    overflow: hidden;
    color: var(--ex-muted);
    font-size: var(--theme-type-caption-size, var(--theme-text-sm));
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ex-event--list-expandable.ex-event--list-expanded .ex-event__list-scorecard[hidden],
.ex-event--list-expandable.ex-event--list-expanded .ex-event__list-scorecard,
.ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard {
    display: contents !important;
}

.ex-event__list-scorecard[hidden] {
    display: none !important;
}

.ex-list-scorecard__col {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: var(--ex-surface-row, var(--ex-surface));
    box-shadow: none;
}

.ex-list-scorecard__overview {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: var(--ex-surface-row, var(--ex-surface));
    box-shadow: none;
}

.ex-list-scorecard {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 0;
}

.ex-list-scorecard__meta {
    list-style: none;
    margin: 0;
    padding: 0.05rem 0.65rem;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    font-size: var(--theme-text-xs);
    color: var(--ex-text-strong);
    line-height: 1.35;
}

.ex-list-scorecard__meta li {
    margin: 0;
    min-width: 0;
    overflow-wrap: anywhere;
}

.ex-list-scorecard__rates {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0 0.65rem;
    font-size: var(--theme-text-xs);
    color: var(--ex-muted);
}

.ex-list-scorecard__rates strong {
    color: var(--ex-text-strong);
    font-variant-numeric: tabular-nums;
}

.ex-list-scorecard__rates > span:not(.ex-list-scorecard__note) {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    min-height: 1.45rem;
    padding: 0.1rem 0.45rem;
    border: 1px solid var(--ex-border);
    border-radius: var(--theme-radius-chip);
    background: var(--ex-surface-raised);
}

.ex-list-scorecard__note {
    flex: 1 1 100%;
    padding-top: 0.05rem;
}

.ex-list-scorecard__players {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.75rem;
    font-size: var(--theme-text-xs);
    padding: 0.35rem 0.65rem;
    background: var(--ex-surface-raised);
    border-top: 1px solid var(--ex-border);
    border-bottom: 1px solid var(--ex-border);
}

.ex-list-scorecard__player {
    color: var(--ex-text-strong);
}

.ex-list-scorecard__player strong {
    margin-left: 0.2rem;
    font-variant-numeric: tabular-nums;
}

.ex-list-scorecard__balls {
    color: var(--ex-muted);
    margin-left: 0.1rem;
}

.ex-list-scorecard__balls-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    padding: 0 0.65rem;
}

.ex-list-scorecard__balls-row .ex-dlx-ball {
    width: 1.45rem;
    height: 1.45rem;
    min-width: 1.45rem;
    font-size: 0.75rem;
}

.ex-list-scorecard__full {
    min-width: 0;
    border-top: 1px solid var(--ex-border);
}

.ex-list-scorecard__full > summary {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-height: 2rem;
    padding: 0.35rem 2rem 0.35rem 0.65rem;
    cursor: pointer;
    font-family: var(--theme-font-sans);
    font-size: var(--theme-text-xs);
    font-weight: var(--theme-weight-bold);
    color: var(--ex-text-strong);
    list-style: none;
    background: var(--ex-surface-row, var(--ex-surface));
}

.ex-list-scorecard__full > summary::-webkit-details-marker {
    display: none;
}

.ex-list-scorecard__full > summary::after {
    content: "+";
    position: absolute;
    right: 0.65rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ex-muted);
    font-size: 1rem;
    font-weight: var(--theme-weight-medium);
}

.ex-list-scorecard__full[open] > summary::after {
    content: "−";
}

.ex-list-scorecard__full > summary small {
    color: var(--ex-muted);
    font-size: var(--theme-text-xs);
    font-weight: var(--theme-weight-medium);
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.ex-list-scorecard__full[open] > summary {
    background: color-mix(in srgb, var(--ex-surface-head) 45%, var(--ex-surface));
    border-bottom: 1px solid var(--ex-border);
}

.ex-list-score-module {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--ex-border);
    border-radius: var(--theme-radius-sm);
    background: var(--ex-surface);
}

.ex-list-score-module__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-height: 1.9rem;
    padding: 0.35rem 0.5rem;
    background: color-mix(in srgb, var(--ex-surface-head) 72%, var(--ex-surface));
    border-bottom: 1px solid var(--ex-border);
}

.ex-list-score-module__head strong {
    color: var(--ex-text-strong);
    font-size: 0.6875rem;
}

.ex-list-score-module__head span {
    color: var(--ex-muted);
    font-size: 0.5625rem;
    font-weight: var(--theme-weight-semibold);
    letter-spacing: 0.04em;
}

.ex-list-score-module__row {
    display: grid;
    grid-template-columns: minmax(6rem, 1fr) auto;
    gap: 0.5rem;
    align-items: center;
    min-height: 2.65rem;
    padding: 0.35rem 0.5rem;
}

.ex-list-score-module__row + .ex-list-score-module__row {
    border-top: 1px solid color-mix(in srgb, var(--ex-border) 70%, transparent);
}

.ex-list-score-module__row:nth-child(odd) {
    background: color-mix(in srgb, var(--ex-surface-raised) 70%, transparent);
}

.ex-list-score-module__identity {
    min-width: 0;
}

.ex-list-score-module__identity strong,
.ex-list-score-module__identity small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ex-list-score-module__identity strong {
    color: var(--ex-text-strong);
    font-size: 0.6875rem;
    font-weight: var(--theme-weight-semibold);
}

.ex-list-score-module__identity small {
    margin-top: 0.08rem;
    color: var(--ex-muted);
    font-size: 0.5625rem;
}

.ex-list-score-module__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(1.8rem, auto));
    gap: 0.3rem;
    margin: 0;
}

.ex-list-score-module__stats--bowling {
    grid-template-columns: repeat(4, minmax(1.7rem, auto));
}

.ex-list-score-module__stats div {
    min-width: 0;
    text-align: right;
}

.ex-list-score-module__stats dt {
    color: var(--ex-muted);
    font-size: 0.5rem;
    font-weight: var(--theme-weight-semibold);
    line-height: 1;
}

.ex-list-score-module__stats dd {
    margin: 0.15rem 0 0;
    color: var(--ex-text-strong);
    font-size: 0.6875rem;
    font-weight: var(--theme-weight-bold);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.ex-list-score-module__empty {
    margin: 0;
    padding: 0.75rem 0.5rem;
    color: var(--ex-muted);
    font-size: var(--theme-text-xs);
    text-align: center;
}

.ex-list-scorecard__full .ex-cricket-scorecard {
    min-width: 0;
    max-height: 20rem;
    padding: 0;
    overflow: auto;
}

.ex-list-scorecard__full .ex-cricket-scorecard__inning {
    margin-bottom: 0.4rem;
}

.ex-list-scorecard__full .ex-cricket-scorecard__inning-head {
    min-height: 1.8rem;
    padding: 0.35rem 0.55rem;
    background: var(--ex-surface-raised);
}

.ex-list-scorecard__full .ex-cricket-scorecard__table-wrap {
    margin: 0;
    max-width: 100%;
    overflow-x: auto;
}

.ex-list-scorecard__full .ex-cricket-scorecard__table {
    min-width: 28rem;
    font-size: 0.6875rem;
}

.ex-list-scorecard__full .ex-cricket-scorecard__table th,
.ex-list-scorecard__full .ex-cricket-scorecard__table td {
    padding: 0.35rem 0.45rem;
    white-space: nowrap;
}

.ex-list-scorecard__full--lineups .ex-cricket-xi {
    max-height: 17rem;
    margin: 0;
    padding: 0.65rem;
    overflow: auto;
}

.ex-list-scorecard__full--lineups .ex-cricket-xi__grid {
    gap: 0.65rem;
}

.ex-list-scorecard__full--lineups .ex-cricket-xi__grid--single {
    grid-template-columns: minmax(0, 1fr);
}

.ex-list-scorecard__full--lineups .ex-cricket-xi__team {
    margin: 0 0 0.35rem;
    padding: 0.3rem 0.45rem;
}

.ex-list-scorecard__full--lineups .ex-cricket-xi__list {
    font-size: 0.6875rem;
    line-height: 1.45;
}

.ex-list-scorecard__empty {
    margin: 0;
    padding: 0 0.65rem 0.35rem;
    font-size: var(--theme-text-xs);
    color: var(--ex-muted);
}

.ex-list-scorecard__more {
    align-self: flex-start;
    margin: 0 0.65rem 0.55rem;
}

/* View more details — default compact CTA. */
.ex-list-scorecard__details-cta.ex-load-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    width: auto;
    min-width: 11rem;
    max-width: 14rem;
    margin: 0.45rem auto 0.55rem;
    padding: 0.4rem 1.1rem;
    border: 0;
    border-radius: var(--theme-radius-control, 8px);
    text-transform: none;
    letter-spacing: 0.01em;
    box-sizing: border-box;
}

.ex-list-scorecard__details-cta-chevron {
    font-size: var(--theme-text-base);
    line-height: 1;
}

/*
 * Expanded inline CTA — default flips with theme (light↔dark), pink hover, no soft shadow.
 */
.exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard__details-cta.ex-load-more-btn,
.exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn,
html.theme-light .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn,
.theme-light .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 1.75rem;
    height: auto;
    margin: 0 !important;
    padding: 0.28rem 0.95rem !important;
    gap: 0;
    border: 0 !important;
    border-radius: var(--theme-radius-pill, 999px) !important;
    /* Light theme default → dark plate */
    background: var(--bp-slate-900, #0f172a) !important;
    background-color: var(--bp-slate-900, #0f172a) !important;
    color: var(--bp-white, #FFFFFF) !important;
    -webkit-text-fill-color: var(--bp-white, #FFFFFF) !important;
    font-family: var(--theme-font-sans);
    font-size: var(--theme-text-xs, 0.75rem);
    font-weight: var(--theme-weight-semibold, 600);
    letter-spacing: 0.02em;
    line-height: 1.2;
    text-transform: none;
    white-space: nowrap;
    box-shadow: none !important;
    transition:
        background-color 0.15s ease,
        color 0.15s ease;
}

html.theme-dark .exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard__details-cta.ex-load-more-btn,
html.theme-dark .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn,
.theme-dark .exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard__details-cta.ex-load-more-btn,
.theme-dark .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn {
    /* Dark theme default → light plate */
    background: var(--bp-white, #FFFFFF) !important;
    background-color: var(--bp-white, #FFFFFF) !important;
    color: var(--bp-slate-900, #0f172a) !important;
    -webkit-text-fill-color: var(--bp-slate-900, #0f172a) !important;
    box-shadow: none !important;
}

.exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard__details-cta.ex-load-more-btn:hover,
.exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard__details-cta.ex-load-more-btn:focus-visible,
.exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:hover,
.exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:focus-visible,
html.theme-light .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:hover,
html.theme-light .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:focus-visible,
html.theme-dark .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:hover,
html.theme-dark .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:focus-visible,
.theme-light .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:hover,
.theme-light .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:focus-visible,
.theme-dark .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:hover,
.theme-dark .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:focus-visible {
    background: var(--theme-primary, #DD3E42) !important;
    background-color: var(--theme-primary, #DD3E42) !important;
    color: var(--theme-icon-on-brand, var(--bp-white, #FFFFFF)) !important;
    -webkit-text-fill-color: var(--theme-icon-on-brand, var(--bp-white, #FFFFFF)) !important;
    box-shadow: none !important;
    outline: none;
}

.exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard__details-cta.ex-load-more-btn:active,
.exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:active,
html.theme-light .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:active,
html.theme-dark .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:active,
.theme-light .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:active,
.theme-dark .exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-list-scorecard__details-cta.ex-load-more-btn:active {
    background: var(--theme-primary-hover, var(--theme-primary, #DD3E42)) !important;
    background-color: var(--theme-primary-hover, var(--theme-primary, #DD3E42)) !important;
    color: var(--theme-icon-on-brand, var(--bp-white, #FFFFFF)) !important;
    -webkit-text-fill-color: var(--theme-icon-on-brand, var(--bp-white, #FFFFFF)) !important;
    box-shadow: none !important;
}

.ex-indibet-row__match-link--expand {
    cursor: pointer;
}

/* Dark / light — solid surfaces; keep header-band primary underpaint; no frame ring */
html.theme-dark .ex-event--list-expandable.ex-event--list-expanded,
.theme-dark .ex-event--list-expandable.ex-event--list-expanded {
    border: 0;
    background-color: var(--ex-surface-row, var(--ex-market-bg));
    background-image: linear-gradient(
        to bottom,
        var(--theme-primary, #DD3E42) 0,
        var(--theme-primary, #DD3E42) var(--ex-list-expand-head-h, 2.25rem),
        var(--ex-surface-row, var(--ex-market-bg)) var(--ex-list-expand-head-h, 2.25rem)
    );
    background-repeat: no-repeat;
    box-shadow: none;
}

html.theme-dark .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info,
html.theme-dark .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info,
.theme-dark .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info,
.theme-dark .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info {
    --ex-ticket-head-fill: color-mix(
        in srgb,
        var(--theme-primary, #DD3E42) 14%,
        var(--theme-bg-elevated, #1A2332)
    );
    color: var(--ex-text-strong, #F3F4F6);
    background: var(--ex-ticket-head-fill);
    background-color: var(--ex-ticket-head-fill);
    border-bottom-color: color-mix(in srgb, var(--theme-primary, #DD3E42) 28%, var(--ex-border, #3A4558));
}

html.theme-dark .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info:hover,
html.theme-dark .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info:hover,
.theme-dark .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info:hover,
.theme-dark .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info:hover {
    background: var(--ex-ticket-head-fill) !important;
    background-color: var(--ex-ticket-head-fill) !important;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded,
.theme-light .ex-event--list-expandable.ex-event--list-expanded {
    border: 0;
    background-color: var(--theme-bg-elevated, #FFFFFF);
    background-image: linear-gradient(
        to bottom,
        var(--theme-primary, #DD3E42) 0,
        var(--theme-primary, #DD3E42) var(--ex-list-expand-head-h, 2.25rem),
        var(--theme-bg-elevated, #FFFFFF) var(--ex-list-expand-head-h, 2.25rem)
    );
    background-repeat: no-repeat;
    box-shadow: none;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info,
.theme-light .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info {
    --ex-ticket-head-fill: color-mix(
        in srgb,
        var(--theme-primary, #DD3E42) 7%,
        var(--theme-bg-elevated, #FFFFFF)
    );
    color: var(--ex-text-strong, #111827);
    background: var(--ex-ticket-head-fill);
    background-color: var(--ex-ticket-head-fill);
    background-image: none;
    border-bottom-color: color-mix(in srgb, var(--theme-primary, #DD3E42) 18%, var(--ex-border, #E5EAF1));
    box-shadow: none;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info:hover,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info:hover,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info:hover,
.theme-light .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info:hover {
    background: var(--ex-ticket-head-fill) !important;
    background-color: var(--ex-ticket-head-fill) !important;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link:link,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link:visited,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link:link,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link:visited {
    color: var(--ex-text-strong, #111827);
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__team,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__vs,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__team,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__vs,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__team,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__vs,
.theme-light .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__team,
.theme-light .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__vs {
    color: var(--ex-text-strong, #111827) !important;
    -webkit-text-fill-color: var(--ex-text-strong, #111827) !important;
    font-size: 0.9375rem;
    font-weight: 700;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__time,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__time {
    color: var(--ex-muted, #6B7280);
    font-size: 0.6875rem;
    font-weight: var(--theme-weight-medium, 500);
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard__footer,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard__footer {
    background: var(--theme-bg-elevated, #FFFFFF);
    background-color: var(--theme-bg-elevated, #FFFFFF);
    border-top-color: var(--ex-border, #E5EAF1);
    box-shadow: none;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__head,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--match,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--lane,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__head,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--match,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--lane {
    background: var(--theme-table-head-bg, #F1F5F9) !important;
    background-color: var(--theme-table-head-bg, #F1F5F9) !important;
    border-bottom-color: var(--ex-border, #E5EAF1);
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__odds,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__toolbar,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__body,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__odds,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__toolbar,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__body {
    background: var(--theme-bg-elevated, #FFFFFF) !important;
    background-color: var(--theme-bg-elevated, #FFFFFF) !important;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-event-favorite,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-expand-close,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--tv,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--mic,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-event-favorite,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-expand-close,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--tv,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--mic {
    color: var(--ex-muted, #6B7280);
    border-color: var(--ex-border, #E5EAF1);
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-expand-close,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-expand-close {
    color: var(--ex-text-strong, #111827);
    background: color-mix(in srgb, var(--ex-text-strong, #111827) 6%, transparent);
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--bm.is-on,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--fancy.is-on,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--bm.is-on,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--fancy.is-on {
    background: var(--theme-flag-on-bg) !important;
    color: var(--theme-flag-on-text, #FFFFFF) !important;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--bm.is-off,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--fancy.is-off,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--bm.is-off,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flag--fancy.is-off {
    background: color-mix(in srgb, var(--ex-text-strong, #111827) 10%, transparent);
    color: var(--ex-muted, #6B7280);
    opacity: 0.55;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__odds,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__odds,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session {
    background: var(--theme-bg-elevated, #FFFFFF) !important;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__head,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--match,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--lane,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__head,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--match,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--lane {
    background: var(--theme-table-head-bg, #F1F5F9) !important;
    border-bottom-color: var(--ex-border, #E5EAF1);
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__toolbar,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table__toolbar {
    background: var(--theme-bg-elevated, #FFFFFF) !important;
    border-bottom-color: color-mix(in srgb, var(--ex-border) 70%, transparent);
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--lane .ex-list-betting-row__outcome-labels > span,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--lane .ex-list-betting-row__outcome-labels > span {
    color: var(--ex-text-strong);
}

/* Fancy/Session Yes/No title ink — soft pastel labels use dark ink (not white). */
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-label--yes,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-label--yes,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-label--yes,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-label--yes {
    color: var(--ex-inline-yes-ink) !important;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-label--no,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-label--no,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-label--no,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-label--no {
    color: var(--ex-inline-no-ink) !important;
}

html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-label--spacer,
html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-label--spacer,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy .ex-list-betting-row__outcome-label--spacer,
.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session .ex-list-betting-row__outcome-label--spacer {
    color: var(--ex-muted) !important;
}

@media (max-width: 991.98px) {
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy,
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session {
        --ex-inline-lane-cell-h: var(--theme-odds-h-mobile, 40px);
        --ex-inline-lane-label-h: calc(var(--ex-inline-lane-cell-h) * 0.5);
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match > .ex-indibet-outcome,
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match .ex-price,
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match a.ex-price,
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match span.ex-price,
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane > .ex-indibet-outcome,
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane .ex-price,
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane a.ex-price,
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane span.ex-price {
        min-height: var(--theme-odds-h-mobile);
    }

    .ex-event--list-expandable.ex-event--list-expanded {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "identity"
            "matchinfo"
            "odds"
            "fancy"
            "session"
            "details";
        gap: 0;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info {
        grid-area: identity;
        grid-column: auto;
        grid-row: auto;
        width: 100%;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__odds {
        grid-area: odds;
        grid-column: auto;
        grid-row: auto;
        width: 100%;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--match {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--fancy {
        grid-area: fancy;
        grid-column: auto;
        grid-row: auto;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row--session {
        grid-area: session;
        grid-column: auto;
        grid-row: auto;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-match-table {
        grid-area: matchinfo;
        grid-column: auto;
        grid-row: auto;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-scorecard__footer {
        grid-area: details;
        grid-column: auto;
        grid-row: auto;
    }

    .ex-list-match-table__toolbar {
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 0.2rem;
        padding: 0.22rem 0.35rem;
        min-height: 0;
    }

    .ex-list-current-over {
        flex: 0 0 auto;
        width: 100%;
        justify-content: flex-start;
        gap: 0.25rem;
    }

    .ex-list-current-over__balls .ex-dlx-ball {
        width: 1.125rem;
        height: 1.125rem;
        min-width: 1.125rem;
        font-size: 0.5625rem;
    }

    .ex-one-click-toggle__label {
        max-width: 9.5rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* One-click — keep normal text size on mobile */
    .ex-one-click-toggle,
    .ex-event--list-expandable.ex-event--list-expanded .ex-one-click-toggle {
        gap: 0.4rem;
        min-height: 0;
        height: auto;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        font-size: 11px;
        letter-spacing: 0.03em;
        line-height: 1.2;
    }

    .ex-one-click-toggle__label,
    .ex-event--list-expandable.ex-event--list-expanded .ex-one-click-toggle__label {
        font-size: inherit;
        line-height: inherit;
    }

    .ex-list-match-table__facts {
        grid-template-columns: 1fr;
    }

    .ex-list-match-table__facts > div:nth-child(odd) {
        border-right: 0;
    }

    .ex-list-match-table__facts > div + div {
        border-top: 1px solid color-mix(in srgb, var(--ex-border) 65%, transparent);
    }

    .ex-event--list-expandable.ex-event--list-expanded.ex-event--2way .ex-list-betting-row__prices--match {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ex-list-scorecard {
        border: none;
    }

    /*
     * Mobile inline header — always single row (ellipsis if names overflow).
     * Same 2.25rem height as .ex-inplay-group__head.
     */
    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info,
    .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info {
        min-height: 2.25rem;
        height: 2.25rem;
        max-height: 2.25rem;
        padding-top: 0.25rem;
        padding-bottom: 0.25rem;
        align-items: center;
        font-size: 12px;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info-inner {
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.2rem;
        height: 100%;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link,
    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info-inner > .ex-indibet-row__match-link,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link:link,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link:visited {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.25rem;
        width: auto;
        min-width: 0;
        flex: 1 1 auto;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__meta {
        display: flex;
        flex-direction: row;
        align-items: center;
        flex: 0 0 auto;
        width: auto;
        gap: 0.2rem;
        margin: 0;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__time {
        display: inline;
        width: auto;
        min-width: 0;
        white-space: nowrap;
        line-height: 1.15;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__flags {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.2rem;
        width: auto;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__teams-stack {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        flex: 1 1 auto;
        min-width: 0;
        max-width: none;
        width: auto;
        gap: 0.15rem 0.25rem;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__vs {
        display: inline;
        flex: 0 0 auto;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__team {
        flex: 0 1 auto;
        min-width: 0;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow-wrap: normal;
        word-break: normal;
    }

    /* Expanded ticket header — 12px on mobile (team / vs) */
    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__team,
    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__vs,
    .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__team,
    .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__vs,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__team,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__vs,
    html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__team,
    html.theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__vs,
    .theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__team,
    .theme-light .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__vs,
    html.theme-light .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__team,
    html.theme-light .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__vs,
    .theme-light .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__team,
    .theme-light .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link .ex-indibet-row__vs {
        font-size: 12px;
        line-height: 1.15;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__title-row {
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.3rem;
        padding: 0.18rem 0.35rem;
        min-height: 1.35rem;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__title-row > strong,
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--lane > strong {
        flex: 0 0 auto;
        white-space: nowrap;
        font-size: var(--theme-text-sm, 0.75rem); /* 12px */
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__title-row .ex-list-betting-row__market-name,
    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__title-row .ex-list-betting-row__market-name--status {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        word-break: normal;
        font-size: var(--theme-text-xs, 0.6875rem); /* 11px status */
        line-height: 1.2;
        padding: 0;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__head--lane .ex-list-betting-row__outcome-labels > span {
        overflow: visible;
        text-overflow: unset;
        white-space: normal;
        word-break: break-word;
        line-height: 1.15;
        letter-spacing: 0.02em;
    }

    .ex-list-match-table__score {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .ex-list-match-table__team,
    .ex-list-match-table__team--away {
        justify-content: flex-start;
        text-align: left;
        flex-wrap: wrap;
        align-items: flex-start;
    }

    .ex-list-match-table__line {
        overflow: visible;
        text-overflow: unset;
        white-space: normal;
        word-break: break-word;
    }

    .ex-list-match-table__status {
        overflow: visible;
        text-overflow: unset;
        white-space: normal;
        word-break: break-word;
        flex: 1 1 100%;
    }

    .ex-list-match-table__batter {
        white-space: normal;
        word-break: break-word;
    }

    .ex-one-click-toggle__label {
        max-width: none;
        overflow: visible;
        text-overflow: unset;
        white-space: nowrap;
        font-size: inherit;
    }
}

/*
 * Landscape after mobile rules — wins cascade so header stays inline
 * and card uses full width when phone is rotated horizontal.
 */
@media (orientation: landscape) and (max-width: 991.98px) {
    .ex-inplay-group__list--indibet .ex-event--list-expandable.ex-event--list-expanded,
    .ex-event--list-expandable.ex-event--list-expanded {
        --ex-list-expand-max: 100%;
        width: 100%;
        max-width: 100%;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info,
    .ex-event--list-expandable.ex-event--list-expanded.is-active .ex-indibet-row__info {
        min-height: 2.25rem;
        height: 2.25rem;
        max-height: 2.25rem;
        padding-top: 0.25rem;
        padding-bottom: 0.25rem;
        align-items: center;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info-inner {
        flex-wrap: nowrap;
        align-items: center;
        height: 100%;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__match-link,
    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__info-inner > .ex-indibet-row__match-link,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link:link,
    .ex-event--list-expandable.ex-event--list-expanded a.ex-indibet-row__match-link:visited {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        column-gap: 0.3rem;
        row-gap: 0;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__meta {
        flex-direction: row;
        flex: 0 0 auto;
        width: auto;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__time {
        display: inline;
        width: auto;
        white-space: nowrap;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__teams-stack {
        flex: 1 1 auto;
        min-width: 0;
        max-width: none;
        width: auto;
        flex-wrap: nowrap;
    }

    .ex-event--list-expandable.ex-event--list-expanded .ex-indibet-row__team {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/* Results list — slim FT rows (no odds columns) */
.ex-inplay-group__list--results .ex-indibet-row--result {
    display: flex;
    align-items: center;
    width: 100%;
}
.ex-indibet-row__score {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    opacity: 0.92;
}
.ex-indibet-row__flag--result {
    font-size: 0.7rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.75;
}

/* ============================================================
 * HOME PAGE — Mobile/Tablet card reflow (max-width: 991.98px)
 *
 * Scoped to .ex-inplay-page--home-live / --home-upcoming ONLY.
 * Those wrapper classes exist solely in home-page-list.blade.php,
 * so nothing here can affect the match-detail page or any other
 * consumer of the shared .ex-indibet-row / .ex-inplay-group__list
 * components — they keep today's dense single-line mobile row
 * completely unchanged (see the max-width:991.98px block above,
 * ~line 986, which this does not modify or delete).
 *
 * Turning the row's own `display` from grid to flex (below) makes
 * every existing grid-column/grid-row/grid-template-columns rule
 * on its descendants a no-op automatically (those properties only
 * do anything inside an actual grid container) — that's why this
 * block is short relative to the rules it's overriding: most of
 * that existing per-outcome column-overlay logic simply stops
 * applying once the parent stops being a grid, rather than needing
 * to be individually cancelled.
 *
 * Desktop (>=992px) is untouched by definition — everything here
 * lives inside this one media query.
 * ============================================================ */
@media (max-width: 991.98px) {
    /* Cards within one sport group now sit flush against each other
       (no per-card margin/radius/shadow/border) — .ex-inplay-group
       itself already has border-radius + overflow:hidden (see
       exchange.css), which clips the header+list to one rounded panel,
       so individual rows don't need their own rounding for the group's
       true outer corners to still look correct. Separation between
       matches now comes from zebra-striped background color (below)
       and the row's own hairline border-bottom, not a gap — the gap
       stays only between different sport groups
       (.ex-inplay-group + .ex-inplay-group margin, untouched). */
    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-event--indibet,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-event--indibet {
        margin: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        background: transparent;
    }

    /* Zebra stripe made clearly visible (a real tinted blend of the
       heading color into the row background, same technique as the
       bet-slip's own selection-row stripe) instead of swapping between
       two near-identical neutral surface tokens — self-adapts to both
       themes without separate light/dark literal overrides. !important
       needed: the pre-existing html.theme-light ...:nth-child(even)
       rule (desktop table zebra, not media-query-scoped) ties on class
       count and wins on its extra `html` type selector otherwise. */
    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-event--indibet:nth-child(even) .ex-indibet-row,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-event--indibet:nth-child(even) .ex-indibet-row {
        background: color-mix(in srgb, var(--h-color, #0f172a) 8%, var(--ex-market-bg, var(--card-bg))) !important;
    }

    .ex-inplay-page--home-live .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row:hover,
    .ex-inplay-page--home-upcoming .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row:hover {
        box-shadow: none; /* no lingering inset highlight after a tap on touch devices */
    }

    /* Row: horizontal grid -> vertical stack (meta/teams, then odds).
     *
     * Every selector below is scoped :not(.ex-event--list-expanded) —
     * when a card IS expanded ("+N Markets" inline view), the existing
     * (pre-mobile-optimization) CSS turns .ex-indibet-row itself into
     * display:contents (see ~line 1856) so its children can join the
     * expanded "ticket header" grid on the <article> instead. An
     * earlier version of this block applied display:flex !important
     * unconditionally, which defeated that display:contents and broke
     * the expanded layout (overlapping team-name/header text) — this
     * exclusion is the fix, verified via a real headless-browser
     * screenshot of the expanded state after the bug was reported.
     */
    .ex-inplay-page--home-live .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row,
    .ex-inplay-page--home-upcoming .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row {
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
        gap: var(--theme-space-1);
        padding: var(--theme-space-2) var(--theme-space-3) !important;
        min-height: 0 !important;
        /* border-bottom no longer forced off — the card no longer has
           its own border (removed above), so the row's own hairline
           divider (base .ex-indibet-row rule, already suppressed on
           :last-child by the existing base rule) is what now separates
           consecutive matches within the same sport group. */
    }

    .ex-inplay-page--home-live .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__info,
    .ex-inplay-page--home-upcoming .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__info,
    .ex-inplay-page--home-live .ex-event--list-expandable:not(.ex-event--list-expanded) .ex-indibet-row__odds,
    .ex-inplay-page--home-upcoming .ex-event--list-expandable:not(.ex-event--list-expanded) .ex-indibet-row__odds {
        width: 100%;
        padding: 0;
    }

    .ex-inplay-page--home-live .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__info-inner,
    .ex-inplay-page--home-upcoming .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__info-inner {
        flex-wrap: wrap;
        width: 100%;
    }

    /* A card has room — restore the favorite star the existing
       dense mobile row hides to save width. */
    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__info-inner > .ex-event-favorite,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__info-inner > .ex-event-favorite {
        display: inline-grid !important;
        order: 2;
        margin-left: auto;
    }

    /* Teams stack vertically (Team 1 above Team 2), replacing the
       existing "Team1 v Team2" single line. */
    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__teams-stack,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__teams-stack {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 2px !important;
        width: 100%;
    }

    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__vs,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__vs {
        display: none;
    }

    /* Team name font-size/weight matched exactly to the sport-header
       title's own tokens (--theme-type-league-size/--weight, the same
       ones .ex-inplay-group__head itself uses) — font-family is
       already identical since neither element sets its own, both
       inheriting the same base font-family.

       display/align-items restore the base .ex-indibet-row__team rule's
       own inline-flex + align-items:center (exchange-indian-list.css
       line ~735) — a more specific pre-existing mobile rule for the
       older dense single-line row
       (.ex-inplay-group__list--indibet .ex-indibet-row__team, line
       ~1315) sets display:block, which silently made align-items:center
       a no-op (it only does anything on a flex/grid container) and left
       the team icon vertically aligned by default inline baseline rules
       instead of centered against the team name text. */
    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__team,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-event--indibet:not(.ex-event--list-expanded) .ex-indibet-row__team {
        display: inline-flex !important;
        align-items: center !important;
        font-size: var(--theme-type-league-size, var(--theme-text-base, 0.875rem)) !important;
        font-weight: var(--theme-type-league-weight, var(--theme-weight-semibold, 600)) !important;
        white-space: normal !important;
        max-width: 100% !important;
    }

    /* Home/away tone-coding — same accent colors the bet-slip's own
       odds badge already uses per side (home=blue/--ex-back,
       away=pink/--ex-lay), blended with the normal heading color so
       team names read as tinted rather than full pastel (which would
       be too low-contrast as body text on a neutral card). team_1 is
       always the first .ex-indibet-row__team in the stack, team_2 the
       second — matches the home/away order used everywhere else. */
    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack .ex-indibet-row__team:first-of-type,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack .ex-indibet-row__team:first-of-type {
        color: color-mix(in srgb, var(--ex-back, #72BBEF) 75%, var(--h-color));
    }

    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack .ex-indibet-row__team:last-of-type,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack .ex-indibet-row__team:last-of-type {
        color: color-mix(in srgb, var(--ex-lay, #FAA9BA) 75%, var(--h-color));
    }

    /* Placeholder team-badge icon (no real flag/logo on file) — a
       shield/crest shape reads as "team" rather than the globe glyph,
       which specifically signals "country" and is misleading for
       club-style team names. Tinted with the same home/away tone as
       the name text next to it; real flag-icon sprites are untouched
       (they're actual national flags, not a stylable placeholder). */
    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack .ex-flag-placeholder,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack .ex-flag-placeholder {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l8 3v6c0 5-3.5 8.5-8 11-4.5-2.5-8-6-8-11V5z'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l8 3v6c0 5-3.5 8.5-8 11-4.5-2.5-8-6-8-11V5z'/%3E%3C/svg%3E");
    }

    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack .ex-indibet-row__team:first-of-type .ex-flag-placeholder,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack .ex-indibet-row__team:first-of-type .ex-flag-placeholder {
        background-color: color-mix(in srgb, var(--ex-back, #72BBEF) 75%, var(--h-color));
    }

    .ex-inplay-page--home-live .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack .ex-indibet-row__team:last-of-type .ex-flag-placeholder,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet .ex-indibet-row__teams-stack .ex-indibet-row__team:last-of-type .ex-flag-placeholder {
        background-color: color-mix(in srgb, var(--ex-lay, #FAA9BA) 75%, var(--h-color));
    }

    /* Odds prices wrapper already becomes display:flex in this
       collapsed state (see the ex-event--list-expandable rule
       above, ~line 1682) — just widen the gap and let it fill
       the card's width instead of the desktop's fixed column. */
    .ex-inplay-page--home-live .ex-event--list-expandable:not(.ex-event--list-expanded) .ex-list-betting-row__prices--match,
    .ex-inplay-page--home-upcoming .ex-event--list-expandable:not(.ex-event--list-expanded) .ex-list-betting-row__prices--match {
        gap: var(--theme-space-2) !important;
        width: 100%;
    }

    /* The "MATCH / 1 / X / 2" column-header row belongs to the
       table metaphor being replaced — each card now carries its
       own labeling context via its odds cells directly. */
    .ex-inplay-page--home-live .ex-indibet-list__columns,
    .ex-inplay-page--home-upcoming .ex-indibet-list__columns {
        display: none !important;
    }

    /* ...the "own labeling context" the comment above promised — a
       small 1/X/2 label above each odds cell, reusing the outcome
       wrapper's own existing home/draw/away class (already set per
       column in market-block-list.blade.php/event-card.blade.php) so
       no new markup is needed, just a ::before label. Reserves a
       little padding-top for it rather than absolutely-positioning
       over the card above, so it never overlaps the team names. */
    .ex-inplay-page--home-live .ex-indibet-outcome,
    .ex-inplay-page--home-upcoming .ex-indibet-outcome {
        position: relative;
        padding-top: 1.2rem;
    }

    .ex-inplay-page--home-live .ex-indibet-outcome::before,
    .ex-inplay-page--home-upcoming .ex-indibet-outcome::before {
        content: '1';
        position: absolute;
        top: 0.05rem;
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        text-align: center;
        font-size: 0.75rem;
        font-weight: 700;
        letter-spacing: 0.02em;
        line-height: 1;
        color: var(--ex-muted, var(--para-color));
        pointer-events: none;
    }

    .ex-inplay-page--home-live .ex-indibet-outcome--draw::before,
    .ex-inplay-page--home-upcoming .ex-indibet-outcome--draw::before {
        content: 'X';
    }

    .ex-inplay-page--home-live .ex-indibet-outcome--away::before,
    .ex-inplay-page--home-upcoming .ex-indibet-outcome--away::before {
        content: '2';
    }

    /* Phase 3 — 52px minimum odds touch target, home page only.
     *
     * --ex-xch-cell-h drives every .ex-price min-height/height rule
     * in this file (see ~line 799, ~1168, ~1217) via inheritance, so
     * overriding just this one custom property on the home-scoped
     * list container raises the effective height everywhere those
     * rules read it, for every outcome/state (selected, locked,
     * flash-up/down all key off color/box-shadow only — none of them
     * set their own height), without touching the shared
     * --theme-odds-h-mobile token (still 40px) used by match-detail,
     * ladder, and every other non-home consumer.
     */
    .ex-inplay-page--home-live .ex-inplay-group__list--indibet,
    .ex-inplay-page--home-upcoming .ex-inplay-group__list--indibet {
        --ex-xch-cell-h: 52px;
    }
}

/* ===== exchange-odds-cell.css ===== */
/**
 * Odds cell motion + suspended lock.
 * Flash: hybrid BM solid + bet365 timing — hold mid-green/pink + ▲/▼, then fade.
 * Suspended / locked / unavailable: gray locked cell.
 */

:root {
    /* Up = BM-family mid green (better mobile than #006400); down = brand pink */
    --ex-odds-flash-up: #15803D;
    --ex-odds-flash-down: var(--theme-primary, #DD3E42);
    --ex-odds-flash-hold-ms: 550ms;
    --ex-odds-flash-fade-ms: 400ms;
    --ex-odds-flash-cycle-ms: 950ms;
    --ex-odds-suspended: #6B7280;
    --ex-odds-suspended-text: #F3F4F6;
}

/* ── Cell layout during flash ────────────────────────────────────────────── */
.ex-price {
    position: relative;
}

.ex-price.ex-odds-flashing,
.ex-price.odds-price-flash-up,
.ex-price.odds-price-flash-down,
.ex-price--draw.ex-odds-flashing,
.ex-indibet-outcome--draw .ex-price.ex-odds-flashing,
.ex-indibet-outcome .ex-price.ex-odds-flashing,
.ex-indibet-outcome > a.ex-price.ex-odds-flashing,
.exchange-app a.ex-price.ex-odds-flashing {
    display: inline-flex !important;
    flex-direction: row !important; /* override column cells so ▲/▼ sit beside the figure */
    align-items: center !important;
    justify-content: center !important;
    gap: 0.2rem;
    overflow: visible;
    min-width: 3.5rem;
}

/* Keep the figure + arrow on one horizontal line even if size/vol sits below */
.ex-price.ex-odds-flashing > .ex-price__value,
.ex-price.ex-odds-flashing > .odds-price,
.ex-price.ex-odds-flashing > .fancy-price,
.ex-price.ex-odds-flashing > .odds-price-lay,
.ex-price.ex-odds-flashing > .fancy-price-lay {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center;
    gap: 0.18rem;
    white-space: nowrap;
}

.ex-price.ex-odds-flashing > .ex-price__value,
.ex-price.ex-odds-flashing > .odds-price,
.ex-price.ex-odds-flashing > .fancy-price,
.ex-price.ex-odds-flashing > .odds-price-lay,
.ex-price.ex-odds-flashing > .fancy-price-lay,
.ex-price.ex-odds-flashing > .ex-odds-dir {
    position: relative;
    z-index: 2;
}

.ex-price.ex-odds-flashing .ex-odds-figure {
    display: inline;
}

.ex-price.ex-odds-flashing > .ex-price__value,
.ex-price.ex-odds-flashing > .odds-price,
.ex-price.ex-odds-flashing > .fancy-price,
.ex-price.ex-odds-flashing > .odds-price-lay,
.ex-price.ex-odds-flashing > .fancy-price-lay {
    order: 1;
}

/* White text while solid flash is held (before settle) */
.ex-price.ex-odds-flashing:not(.is-settling) {
    color: #fff !important;
}

.ex-price.ex-odds-flashing:not(.is-settling) > .ex-price__value,
.ex-price.ex-odds-flashing:not(.is-settling) > .odds-price,
.ex-price.ex-odds-flashing:not(.is-settling) > .fancy-price,
.ex-price.ex-odds-flashing:not(.is-settling) > .odds-price-lay,
.ex-price.ex-odds-flashing:not(.is-settling) > .fancy-price-lay {
    color: #fff !important;
}

/* While settling, let rest cell colors show through as overlay fades */
.ex-price.ex-odds-flashing.is-settling {
    color: inherit;
    transition: color var(--ex-odds-flash-fade-ms, 400ms) ease;
}

/* ── Flash color overlay (fades out after hold) ──────────────────────────── */
.ex-price .ex-odds-flash-overlay {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    z-index: 1;
    opacity: 1;
    transition: opacity var(--ex-odds-flash-fade-ms, 400ms) ease;
}

.ex-price .ex-odds-flash-overlay--up {
    background: var(--ex-odds-flash-up, #15803D);
}

.ex-price .ex-odds-flash-overlay--down {
    background: var(--ex-odds-flash-down, #DD3E42);
}

.ex-price .ex-odds-flash-overlay.is-fading {
    opacity: 0;
}

/* ── Direction cone arrows beside the figure ─────────────────────────────── */
.ex-price .ex-odds-dir {
    display: none;
    flex-shrink: 0;
    font-size: 0.72em;
    line-height: 1;
    font-weight: var(--theme-weight-bold, 700);
    speak: never;
    pointer-events: none;
    opacity: 1;
    transition: opacity var(--ex-odds-flash-fade-ms, 400ms) ease;
    animation: ex-odds-dir-pop 280ms ease-out;
}

/* ▲ left of number */
.ex-price .ex-odds-dir--up {
    order: 0;
    margin-right: 0.12rem;
    margin-left: 0;
}

/* ▼ right of number */
.ex-price .ex-odds-dir--down {
    order: 2;
    margin-left: 0.12rem;
    margin-right: 0;
}

.ex-price.ex-odds-flashing .ex-odds-dir,
.ex-price.odds-price-flash-up .ex-odds-dir,
.ex-price.odds-price-flash-down .ex-odds-dir,
.ex-price--draw.ex-odds-flashing .ex-odds-dir,
.ex-indibet-outcome--draw .ex-price.ex-odds-flashing .ex-odds-dir,
.ex-indibet-outcome--sportsbook.ex-indibet-outcome--draw .ex-price.ex-odds-flashing .ex-odds-dir,
.ex-indibet-outcome--away .ex-price.ex-odds-flashing .ex-odds-dir,
.ex-indibet-outcome--sportsbook .ex-price.ex-odds-flashing .ex-odds-dir,
.ex-price__value .ex-odds-dir,
.odds-price .ex-odds-dir {
    display: inline-block !important;
}

.ex-price.odds-price-flash-up .ex-odds-dir,
.ex-price .ex-odds-dir[data-dir="up"],
.ex-price .ex-odds-dir--up {
    color: #ffffff !important;
    text-shadow: none;
}

.ex-price.odds-price-flash-down .ex-odds-dir,
.ex-price .ex-odds-dir[data-dir="down"],
.ex-price .ex-odds-dir--down {
    color: #ffffff !important;
    text-shadow: none;
}

.ex-price .ex-odds-dir.is-fading {
    opacity: 0;
}

@keyframes ex-odds-dir-pop {
    0% { opacity: 0; transform: translateY(1px); }
    100% { opacity: 1; transform: translateY(0); }
}

/* Legacy hard flash fills — overlay handles color now; keep classes for hooks */
.exchange-app .ex-price.odds-price-flash-up:not(.ex-price--unavailable),
.ex-indibet-outcome .ex-price.odds-price-flash-up:not(.ex-price--unavailable),
.ex-market--sportsbook .ex-price.odds-price-flash-up:not(.ex-price--unavailable),
.exchange-app .ex-price.odds-price-flash-down:not(.ex-price--unavailable),
.ex-indibet-outcome .ex-price.odds-price-flash-down:not(.ex-price--unavailable),
.ex-market--sportsbook .ex-price.odds-price-flash-down:not(.ex-price--unavailable) {
    /* Solid tint + overlay — must beat sportsbook rest !important fills */
    box-shadow: none;
}

/* ── Force-visible flash fills (beat sportsbook/list rest colors) ───────── */
.exchange-app a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-indibet-outcome a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-indibet-outcome--sportsbook a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-indibet-outcome--draw a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-indibet-outcome--away a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-market--sportsbook a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-price--yes.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-price--no.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling) {
    background: var(--ex-odds-flash-up, #15803D) !important;
    background-color: var(--ex-odds-flash-up, #15803D) !important;
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    border-color: var(--ex-odds-flash-up, #15803D) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28) !important;
    animation: ex-odds-flash-pulse-up 0.35s ease-out 1;
    position: relative !important;
    overflow: visible !important;
}

.exchange-app a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-indibet-outcome a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-indibet-outcome--sportsbook a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-indibet-outcome--draw a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-indibet-outcome--away a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-market--sportsbook a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-list-betting-row__prices--lane a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-price--yes.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
.exchange-app .ex-event--list-expandable.ex-event--list-expanded .ex-price--no.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling) {
    background: var(--ex-odds-flash-down, #DD3E42) !important;
    background-color: var(--ex-odds-flash-down, #DD3E42) !important;
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    border-color: var(--ex-odds-flash-down, #DD3E42) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28) !important;
    animation: ex-odds-flash-pulse-down 0.35s ease-out 1;
    position: relative !important;
    overflow: visible !important;
}

.exchange-app a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling) .ex-price__value,
.exchange-app a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling) .ex-odds-figure,
.exchange-app a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling) .ex-price__value,
.exchange-app a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling) .ex-odds-figure,
.exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-price.odds-price-flash-up:not(.is-settling) .ex-price__value,
.exchange-app .ex-event--list-expandable.ex-event--list-expanded a.ex-price.odds-price-flash-down:not(.is-settling) .ex-price__value {
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
}

/* Brightness only — no cell scale (bet365-class restraint). */
@keyframes ex-odds-flash-pulse-up {
    0% { filter: brightness(1.18); }
    100% { filter: brightness(1); }
}

@keyframes ex-odds-flash-pulse-down {
    0% { filter: brightness(1.18); }
    100% { filter: brightness(1); }
}

/* ── No odds / unavailable — gray cell + centered lock ───────────────────── */
.exchange-app .ex-price--unavailable,
.exchange-app span.ex-price.ex-price--unavailable,
.exchange-app a.ex-price.ex-price--unavailable,
.ex-indibet-outcome .ex-price--unavailable,
.ex-indibet-outcome__back .ex-price--unavailable,
.ex-indibet-outcome__lay .ex-price--unavailable,
.ex-indibet-outcome--sportsbook .ex-price--unavailable,
.ex-indibet-outcome--draw .ex-price--unavailable,
.ex-indibet-outcome--away .ex-price--unavailable,
.ex-market--indian .ex-indian-grid__cell .ex-price--unavailable,
.ex-market--sportsbook .ex-price--unavailable {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #6B7280 !important;
    background-color: #6B7280 !important;
    color: #F9FAFB !important;
    box-shadow: none !important;
    border: none !important;
    border-color: transparent !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

html.theme-dark .exchange-app .ex-price--unavailable,
html.theme-dark .ex-indibet-outcome .ex-price--unavailable,
.theme-dark .exchange-app .ex-price--unavailable {
    background: #4B5563 !important;
    background-color: #4B5563 !important;
    color: #F3F4F6 !important;
}

/* Hide dash / empty odds text — lock replaces it */
.exchange-app .ex-price--unavailable .ex-price__value,
.exchange-app .ex-price--unavailable .odds-price,
.exchange-app .ex-price--unavailable .fancy-price,
.exchange-app .ex-price--unavailable .ex-price__size,
.ex-indibet-outcome .ex-price--unavailable .ex-price__value,
.ex-indibet-outcome .ex-price--unavailable .odds-price,
.ex-market--ladder .ex-price--unavailable .ex-price__value {
    opacity: 0 !important;
    color: transparent !important;
    font-size: 0 !important;
    visibility: hidden !important;
    line-height: 0 !important;
}

/* Compact lock icon — visible without overpowering the odds figure. */
.exchange-app .ex-price--unavailable::before,
.ex-indibet-outcome .ex-price--unavailable::before,
.ex-market.market-locked .ex-price::before {
    content: none !important;
}

.exchange-app .ex-price--unavailable::after,
.ex-indibet-outcome .ex-price--unavailable::after,
.ex-market.market-locked .ex-price::after,
.ex-market.market-locked a.ex-price::after,
.ex-indibet-row.market-locked .ex-price::after,
.ex-list-betting-row.market-locked .ex-price::after {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    margin: auto !important;
    width: 0.875rem !important;
    height: 0.875rem !important;
    display: block !important;
    flex-shrink: 0;
    background-color: #F9FAFB !important;
    opacity: 1 !important;
    z-index: 3;
    pointer-events: none;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") center / contain no-repeat !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") center / contain no-repeat !important;
}

html.theme-dark .exchange-app .ex-price--unavailable::after,
html.theme-dark .ex-market.market-locked .ex-price::after,
.theme-dark .ex-market.market-locked .ex-price::after {
    background-color: #F3F4F6 !important;
}

/* Layout spacer under X — never a lockable odds cell */
.ex-indibet-outcome--spacer .ex-price::before,
.ex-indibet-outcome--spacer .ex-price::after,
.ex-indibet-row.market-locked .ex-indibet-outcome--spacer .ex-price::before,
.ex-indibet-row.market-locked .ex-indibet-outcome--spacer .ex-price::after,
.ex-list-betting-row.market-locked .ex-indibet-outcome--spacer .ex-price::before,
.ex-list-betting-row.market-locked .ex-indibet-outcome--spacer .ex-price::after,
.ex-market.market-locked .ex-indibet-outcome--spacer .ex-price::before,
.ex-market.market-locked .ex-indibet-outcome--spacer .ex-price::after,
.ex-event.market-locked .ex-indibet-outcome--spacer .ex-price::before,
.ex-event.market-locked .ex-indibet-outcome--spacer .ex-price::after {
    content: none !important;
    display: none !important;
    background: none !important;
    -webkit-mask: none !important;
    mask: none !important;
}

.ex-indibet-row.market-locked .ex-indibet-outcome--spacer .ex-price,
.ex-list-betting-row.market-locked .ex-indibet-outcome--spacer .ex-price,
.ex-market.market-locked .ex-indibet-outcome--spacer .ex-price,
.ex-event.market-locked .ex-indibet-outcome--spacer .ex-price {
    background: var(--ex-surface-subhead, var(--ex-surface-row, #e5e7eb)) !important;
    background-color: var(--ex-surface-subhead, var(--ex-surface-row, #e5e7eb)) !important;
    color: var(--ex-muted) !important;
    opacity: 0.55 !important;
    cursor: default !important;
}

.ex-indibet-row.market-locked .ex-indibet-outcome--spacer .ex-price .ex-price__value,
.ex-list-betting-row.market-locked .ex-indibet-outcome--spacer .ex-price .ex-price__value,
.ex-market.market-locked .ex-indibet-outcome--spacer .ex-price .ex-price__value,
.ex-event.market-locked .ex-indibet-outcome--spacer .ex-price .ex-price__value {
    opacity: 1 !important;
    visibility: visible !important;
    color: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
}

/* Locked market cells — same gray treatment as no-odds */
.ex-market.market-locked .ex-price,
.ex-market.market-locked a.ex-price,
.ex-indibet-row.market-locked .ex-price,
.ex-list-betting-row.market-locked .ex-price {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #6B7280 !important;
    background-color: #6B7280 !important;
    color: #F9FAFB !important;
    box-shadow: none !important;
    border: none !important;
    border-color: transparent !important;
    outline: none !important;
    text-decoration: none !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

html.theme-dark .ex-market.market-locked .ex-price,
.theme-dark .ex-market.market-locked .ex-price {
    background: #4B5563 !important;
    background-color: #4B5563 !important;
    color: #F3F4F6 !important;
}

.ex-market.market-locked .ex-price .ex-price__value,
.ex-market.market-locked .ex-price .odds-price,
.ex-market.market-locked .ex-price .fancy-price,
.ex-market.market-locked .ex-price .odds-price-lay,
.ex-market.market-locked .ex-price .fancy-price-lay,
.ex-market.market-locked .ex-price .ex-price__size,
.ex-market.market-locked .ex-price .ex-odds-figure,
.ex-market.market-locked .ex-price .ex-odds-dir,
.ex-market.market-locked .ex-price * {
    opacity: 0 !important;
    color: transparent !important;
    visibility: hidden !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    text-decoration: none !important;
}

/* Suspended: force gray over sportsbook H/D/A fills + clock (not lock)
   Note: home list adds .market-suspended on .ex-indibet-row / .odds-option, not always .ex-market */
.ex-market.market-suspended:not(.market-locked) .ex-price,
.ex-market.market-suspended:not(.market-locked) a.ex-price,
.ex-market.market-suspended:not(.market-locked) .ex-price--back,
.ex-market.market-suspended:not(.market-locked) .ex-price--lay,
.ex-market.market-suspended:not(.market-locked) .ex-price--draw,
.ex-indibet-row.market-suspended .ex-price,
.ex-indibet-row.market-suspended a.ex-price,
.ex-indibet-row.market-suspended .ex-price--back,
.ex-indibet-row.market-suspended .ex-price--lay,
.ex-indibet-row.market-suspended .ex-price--draw,
.odds-market-row.market-suspended .ex-price,
.odds-market-row.market-suspended .ex-price--back,
.odds-market-row.market-suspended .ex-price--lay,
.odds-market-row.market-suspended .ex-price--draw,
.ex-price.odds-option.market-suspended,
.ex-price.fancy-option.market-suspended,
.ex-price--back.odds-option.market-suspended,
.ex-price--lay.odds-option.market-suspended,
.ex-price--draw.odds-option.market-suspended,
.exchange-app .ex-indibet-row.market-suspended .ex-indibet-outcome--sportsbook .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.exchange-app .ex-indibet-row.market-suspended .ex-indibet-outcome--sportsbook .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.exchange-app .ex-indibet-row.market-suspended .ex-indibet-outcome--sportsbook.ex-indibet-outcome--draw .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.exchange-app .ex-indibet-row.market-suspended .ex-indibet-outcome--away .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.exchange-app .ex-indibet-row.market-suspended .ex-indibet-outcome--draw .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.exchange-app .ex-indibet-row.market-suspended .ex-indibet-outcome__back .ex-price--back:not(.ex-price--unavailable),
.exchange-app .ex-indibet-row.market-suspended .ex-indibet-outcome__lay .ex-price--lay:not(.ex-price--unavailable),
.exchange-app .ex-market.market-suspended:not(.market-locked) .ex-indibet-outcome--sportsbook .ex-price--back:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.exchange-app .ex-market.market-suspended:not(.market-locked) .ex-indibet-outcome--sportsbook .ex-price--draw:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.exchange-app .ex-market.market-suspended:not(.market-locked) .ex-indibet-outcome--away .ex-price:not(.ex-price--unavailable):not(.odds-price-flash-up):not(.odds-price-flash-down),
.exchange-app .ex-market.market-suspended:not(.market-locked) .ex-indian-grid__cell .ex-price:not(.ex-price--unavailable),
.exchange-app .ex-price.ex-price--back.odds-option.market-suspended:not(.ex-price--unavailable),
.exchange-app .ex-price.ex-price--lay.odds-option.market-suspended:not(.ex-price--unavailable),
.exchange-app .ex-price.ex-price--draw.odds-option.market-suspended:not(.ex-price--unavailable) {
    background: #6B7280 !important;
    background-color: #6B7280 !important;
    color: #F9FAFB !important;
    box-shadow: none !important;
    border-color: transparent !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
    filter: none !important;
}

html.theme-dark .ex-indibet-row.market-suspended .ex-price,
html.theme-dark .odds-market-row.market-suspended .ex-price,
html.theme-dark .ex-price.odds-option.market-suspended,
html.theme-dark .ex-market.market-suspended:not(.market-locked) .ex-price,
.theme-dark .ex-indibet-row.market-suspended .ex-price,
.theme-dark .ex-price.odds-option.market-suspended {
    background: #4B5563 !important;
    background-color: #4B5563 !important;
    color: #F3F4F6 !important;
}

.ex-market.market-suspended:not(.market-locked) .ex-price .ex-price__value,
.ex-market.market-suspended:not(.market-locked) .ex-price .odds-price,
.ex-market.market-suspended:not(.market-locked) .ex-price .fancy-price,
.ex-market.market-suspended:not(.market-locked) .ex-price .ex-price__size,
.ex-market.market-suspended:not(.market-locked) .ex-price .ex-odds-figure,
.ex-indibet-row.market-suspended .ex-price .ex-price__value,
.ex-indibet-row.market-suspended .ex-price .odds-price,
.ex-indibet-row.market-suspended .ex-price .ex-price__size,
.odds-market-row.market-suspended .ex-price .ex-price__value,
.odds-option.market-suspended .ex-price__value,
.odds-option.market-suspended .odds-price,
.fancy-option.market-suspended .ex-price__value {
    opacity: 0 !important;
    color: transparent !important;
    visibility: hidden !important;
}

/* Suspended: do not paint lock over the clock hands */
.ex-market.market-suspended:not(.market-locked) .ex-price:not(.ex-price--unavailable)::after,
.ex-indibet-row.market-suspended .ex-price:not(.ex-price--unavailable)::after,
.odds-option.market-suspended:not(.market-locked)::after,
.fancy-option.market-suspended:not(.market-locked)::after {
    -webkit-mask: none !important;
    mask: none !important;
}

.ex-market.market-suspended .ex-price,
.ex-indibet-row.market-suspended .ex-price,
.ex-market.market-locked .ex-price,
.odds-option.market-suspended,
.fancy-option.market-suspended {
    position: relative !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

.ex-price--unavailable .ex-odds-dir,
.ex-price--unavailable .ex-odds-flash-overlay,
.ex-market.market-suspended .ex-odds-dir,
.ex-indibet-row.market-suspended .ex-odds-dir,
.ex-market.market-locked .ex-odds-dir,
.ex-market.market-suspended .ex-odds-flash-overlay,
.ex-market.market-locked .ex-odds-flash-overlay {
    display: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .ex-price .ex-odds-dir {
        animation: none;
    }

    .exchange-app a.ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
    .exchange-app .ex-price.odds-price-flash-up:not(.ex-price--unavailable):not(.is-settling),
    .exchange-app a.ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling),
    .exchange-app .ex-price.odds-price-flash-down:not(.ex-price--unavailable):not(.is-settling) {
        animation: none !important;
        filter: none !important;
    }

    .ex-price .ex-odds-flash-overlay,
    .ex-price .ex-odds-dir,
    .ex-price.ex-odds-flashing.is-settling {
        transition-duration: 0.01ms !important;
    }
}

/* Mobile — hide ▲/▼ direction cones (flash color still shows) */
@media (max-width: 991.98px) {
    .ex-price .ex-odds-dir,
    .ex-price.ex-odds-flashing .ex-odds-dir,
    .ex-price.odds-price-flash-up .ex-odds-dir,
    .ex-price.odds-price-flash-down .ex-odds-dir,
    .ex-price--draw.ex-odds-flashing .ex-odds-dir,
    .ex-indibet-outcome--draw .ex-price.ex-odds-flashing .ex-odds-dir,
    .ex-indibet-outcome--sportsbook.ex-indibet-outcome--draw .ex-price.ex-odds-flashing .ex-odds-dir,
    .ex-indibet-outcome--away .ex-price.ex-odds-flashing .ex-odds-dir,
    .ex-indibet-outcome--sportsbook .ex-price.ex-odds-flashing .ex-odds-dir,
    .ex-price__value .ex-odds-dir,
    .odds-price .ex-odds-dir {
        display: none !important;
    }
}

/* Selected cell: keep Home/Draw/Away colors (no theme-pink override).
   Outline only so the active pick is clear without changing outcome tone. */
.exchange-app a.ex-price.is-selected:not(.ex-price--unavailable),
.exchange-app a.ex-price.odds-option.is-selected:not(.ex-price--unavailable),
.exchange-app .ex-indibet-outcome a.ex-price.is-selected:not(.ex-price--unavailable),
.exchange-app .ex-indibet-outcome--draw a.ex-price.is-selected:not(.ex-price--unavailable),
.exchange-app .ex-indibet-outcome--away a.ex-price.is-selected:not(.ex-price--unavailable),
.exchange-app .ex-indibet-outcome--sportsbook a.ex-price.is-selected:not(.ex-price--unavailable) {
    box-shadow: inset 0 0 0 2px rgba(15, 23, 42, 0.35) !important;
    outline: none;
}


/* ===== exchange-odds-flash.css ===== */
/* Flash overlay + settle fade live in exchange-odds-cell.css. */

/* ===== exchange-odds.css ===== */
/**
 * WP14 — Odds cell geometry contract
 * Load AFTER indian-list / ladder / odds-cell (money-path applied layer).
 * Desktop 36 · Mobile 40 · figure 13/700 · radius 0 · flat (no soft elevation).
 * Does NOT change Back/Lay/Draw hues (WP05).
 */

.exchange-app,
.exchange-app .ex-inplay-group__list--indibet {
  --ex-xch-cell-h: var(--theme-odds-h-desktop, 36px);
  --ex-xch-radius: var(--theme-radius-odds, 0);
}

.exchange-app .ex-price,
.exchange-app a.ex-price,
.exchange-app .ex-indibet-outcome .ex-price,
.exchange-app .ex-indibet-outcome > a.ex-price,
.exchange-app .ex-market--ladder .ex-price,
.exchange-app .ex-market--ladder .ex-ladder__cell--live.ex-price {
  min-height: var(--ex-xch-cell-h, var(--theme-odds-h-desktop, 36px));
  border-radius: var(--theme-radius-odds, 0);
}

/* Flat cells — kill soft inset highlights from list CSS */
.exchange-app .ex-price:not(:focus-visible):not(.is-selected):not(.ex-price--selected),
.exchange-app .ex-indibet-outcome .ex-price:not(:focus-visible):not(.is-selected):not(.ex-price--selected),
.exchange-app .ex-indibet-outcome > a.ex-price:not(:focus-visible):not(.is-selected):not(.ex-price--selected) {
  box-shadow: none !important;
}

.exchange-app .ex-price__value,
.exchange-app .ex-odds-figure,
.exchange-app .ex-indibet-outcome .ex-price__value,
.exchange-app .ex-market--ladder .ex-price__value {
  font-size: var(--theme-odds-font-size, var(--theme-type-odds-size, var(--theme-text-md, 0.8125rem)));
  font-weight: var(--theme-odds-font-weight, var(--theme-type-odds-weight, var(--theme-weight-bold, 700)));
  font-variant-numeric: tabular-nums;
  line-height: var(--theme-leading-tight, 1.1);
  letter-spacing: var(--theme-type-odds-tracking, -0.01em);
}

.exchange-app .ex-price__size,
.exchange-app .ex-odds-cell__size,
.exchange-app .ex-indibet-outcome .ex-price__size {
  font-size: var(--theme-type-odds-size-liquidity, var(--theme-text-xs, 0.6875rem));
  font-weight: var(--theme-weight-medium, 500);
  line-height: var(--theme-leading-snug, 1.25);
}

.exchange-app .ex-market__head-row,
.exchange-app .ex-market__runner-row {
  min-height: var(--theme-odds-h-desktop, 36px);
}

@media (max-width: 991.98px) {
  .exchange-app,
  .exchange-app .ex-inplay-group__list--indibet {
    --ex-xch-cell-h: var(--theme-odds-h-mobile, 40px);
  }

  .exchange-app .ex-price,
  .exchange-app a.ex-price,
  .exchange-app .ex-indibet-outcome .ex-price,
  .exchange-app .ex-indibet-outcome > a.ex-price,
  .exchange-app .ex-market--ladder .ex-price {
    min-height: var(--theme-odds-h-mobile, 40px);
  }

  .exchange-app .ex-indibet-outcome .ex-price,
  .exchange-app .ex-indibet-outcome > a.ex-price {
    height: var(--theme-odds-h-mobile, 40px);
  }
}
