/* Homepage-only post-hero intelligence blocks — v2.3.48.249 */
.n9-home-posthero{width:min(1480px,calc(100% - 48px));margin:16px auto 0;display:grid;gap:14px;color:#e7eef8;font-family:inherit}
.n9-posthero-section{background:linear-gradient(135deg,#061221 0%,#071426 55%,#07182a 100%);border:1px solid rgba(72,101,135,.34);border-radius:16px;box-shadow:0 18px 50px rgba(2,8,23,.18);overflow:hidden;padding:17px 18px 18px}
.n9-posthero-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:13px}.n9-posthero-heading>div:first-child{min-width:0}.n9-posthero-kicker{display:flex;align-items:center;gap:8px;color:#eaf2ff;font-size:12px;line-height:1.15;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.n9-posthero-kicker i{width:7px;height:7px;border-radius:999px;background:#2ce59e;box-shadow:0 0 14px rgba(44,229,158,.8)}.n9-posthero-heading p{margin:5px 0 0;color:#8496ad;font-size:11px;line-height:1.45}.n9-posthero-heading-actions{display:flex!important;align-items:center;gap:9px;flex:0 0 auto}.n9-posthero-outline{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:8px 13px;border:1px solid rgba(31,222,151,.62);border-radius:7px;color:#32e7a2!important;text-decoration:none!important;font-size:10px;font-weight:900;white-space:nowrap;background:rgba(15,54,49,.22)}.n9-posthero-outline:hover{background:rgba(29,199,137,.12);border-color:#2ce59e;color:#7af1c3!important}.n9-posthero-arrows{display:flex;gap:6px}.n9-posthero-arrows button{width:34px;height:34px;border:1px solid rgba(81,109,144,.45);border-radius:8px;background:#0b1728;color:#b9c8db;font-size:16px;font-weight:900;cursor:pointer}.n9-posthero-arrows button:hover:not(:disabled){border-color:#2ce59e;color:#2ce59e}.n9-posthero-arrows button:disabled{opacity:.3;cursor:default}
.n9-posthero-carousel{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain}.n9-posthero-carousel::-webkit-scrollbar{display:none}.n9-posthero-track{display:flex;gap:10px;width:max-content}.n9-posthero-prediction-card{scroll-snap-align:start;flex:0 0 clamp(240px,calc((min(1510px,100vw - 76px) - 84px)/4),355px);min-height:252px;padding:12px;border:1px solid rgba(58,83,116,.48);border-radius:11px;background:linear-gradient(180deg,rgba(9,25,44,.94),rgba(7,20,37,.96));display:flex;flex-direction:column;gap:10px}.n9-posthero-card-meta{display:flex;align-items:center;justify-content:space-between;gap:9px;color:#9babc0;font-size:9px;font-weight:850}.n9-posthero-card-meta span{display:flex;align-items:center;gap:5px;min-width:0;color:#c7d4e5}.n9-posthero-card-meta span img{width:15px;height:15px;object-fit:contain}.n9-posthero-card-meta time{white-space:nowrap;color:#9aa9bd}.n9-posthero-card-teams{display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);align-items:center;gap:5px;min-height:48px}.n9-posthero-card-teams>div{display:flex;align-items:center;gap:7px;min-width:0}.n9-posthero-card-teams>div.is-away{justify-content:flex-end;text-align:right}.n9-posthero-card-teams strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f2f6fc;font-size:11px}.n9-posthero-card-teams em{font-style:normal;text-align:center;color:#72839a;font-size:9px;font-weight:900;text-transform:uppercase}.n9-posthero-mini-crest{position:relative;display:grid;place-items:center;width:30px;height:30px;min-width:30px;border-radius:50%;background:#0c1b2f;border:1px solid rgba(77,105,140,.5);overflow:hidden}.n9-posthero-mini-crest img{position:absolute;inset:3px;width:24px;height:24px;object-fit:contain}.n9-posthero-mini-crest b{font-size:9px;color:#83a0bb}.n9-posthero-mini-crest:not(.is-fallback) b{opacity:0}.n9-posthero-mini-crest.is-fallback img{display:none}.n9-posthero-probs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.n9-posthero-probs span{position:relative;display:grid;gap:3px;min-width:0;padding-bottom:7px}.n9-posthero-probs small{color:#788ba4;font-size:8px;font-weight:850;text-transform:uppercase}.n9-posthero-probs strong{font-size:12px;color:#eef5ff}.n9-posthero-probs span:first-child strong{color:#2ce59e}.n9-posthero-probs i{display:block;height:3px;border-radius:99px;background:rgba(48,71,99,.55);overflow:hidden}.n9-posthero-probs i:after{content:"";display:block;width:var(--n9-p);height:100%;border-radius:inherit;background:#2ce59e}.n9-posthero-probs span:nth-child(2) i:after{background:#43a7ff}.n9-posthero-probs span:nth-child(3) i:after{background:#a56bf4}.n9-posthero-advice{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;padding-top:8px;border-top:1px solid rgba(57,80,109,.34)}.n9-posthero-advice small{grid-column:1;color:#7e91aa;font-size:8px}.n9-posthero-advice strong{grid-column:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2ce59e;font-size:10px}.n9-posthero-advice span{grid-column:2;grid-row:1/3;padding:4px 6px;border-radius:5px;background:rgba(31,222,151,.08);color:#2ce59e;font-size:8px;font-weight:850;white-space:nowrap}.n9-posthero-prediction-card footer{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:auto}.n9-posthero-prediction-card footer a{display:flex;align-items:center;justify-content:center;min-height:28px;padding:6px;border:1px solid rgba(72,95,125,.54);border-radius:6px;color:#b9c8dc!important;text-decoration:none!important;font-size:8px;font-weight:850}.n9-posthero-prediction-card footer a.is-odds{border-color:rgba(36,216,151,.52);color:#2ce59e!important;background:rgba(20,131,94,.08)}
.n9-posthero-odds-scroll{overflow:auto;border:1px solid rgba(58,83,116,.36);border-radius:10px;background:#071323}.n9-posthero-odds table{width:100%;min-width:1040px;border-collapse:collapse;table-layout:fixed}.n9-posthero-odds th,.n9-posthero-odds td{padding:8px 9px;border-bottom:1px solid rgba(55,78,106,.27);border-right:1px solid rgba(55,78,106,.17);text-align:center;vertical-align:middle}.n9-posthero-odds th:first-child,.n9-posthero-odds td:first-child{width:260px;text-align:left;position:sticky;left:0;z-index:2;background:#081526}.n9-posthero-odds th{color:#d9e5f4;font-size:9px;font-weight:900}.n9-posthero-odds th small{display:block;margin-top:3px;color:#61758e;font-size:7px;letter-spacing:.12em}.n9-posthero-odds tbody tr:last-child td{border-bottom:0}.n9-posthero-odds td:first-child{display:grid;grid-template-columns:37px minmax(0,1fr);align-items:center;gap:6px}.n9-posthero-odds td:first-child time{color:#8193a9;font-size:8px}.n9-posthero-odds td:first-child>a{display:flex;align-items:center;gap:6px;min-width:0;color:#dbe7f6!important;text-decoration:none!important;font-size:8px;font-weight:800}.n9-posthero-odds td:first-child>a span{display:flex;align-items:center;gap:4px;min-width:0;white-space:nowrap}.n9-posthero-odds td:first-child>a img{width:16px;height:16px;object-fit:contain}.n9-posthero-odds td:first-child>a em{font-style:normal;color:#5f728b;font-size:7px}.n9-posthero-price{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.n9-posthero-price b{font-size:8px;font-weight:850;color:#d6e1f0}.n9-posthero-price.is-empty{display:block;color:#53657b}.n9-posthero-odds-note{display:flex;align-items:center;gap:14px;padding:9px 2px 0;color:#7a8da5;font-size:8px}.n9-posthero-odds-note em{margin-left:auto;font-style:normal}.n9-posthero-odds-note b{color:#2ce59e;margin-left:6px}.n9-posthero-odds-note b:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#2ce59e;margin-right:4px;box-shadow:0 0 9px rgba(44,229,158,.7)}
.n9-posthero-tool-track{gap:10px}.n9-posthero-tool-card{scroll-snap-align:start;flex:0 0 clamp(245px,calc((min(1510px,100vw - 76px) - 84px)/4),355px);min-height:116px;padding:13px;border:1px solid rgba(58,83,116,.42);border-radius:10px;background:linear-gradient(180deg,#0a182a,#081425);display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto 29px;gap:8px 10px}.n9-posthero-tool-icon{grid-row:1;display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:rgba(30,222,151,.08);border:1px solid rgba(44,229,158,.2);color:#2ce59e;font-size:13px;font-weight:900}.n9-posthero-tool-card h3{margin:0 0 4px;color:#f0f5fb;font-size:11px}.n9-posthero-tool-card p{margin:0;color:#8799b0;font-size:8px;line-height:1.45}.n9-posthero-tool-card>a{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:6px 9px;border:1px solid rgba(44,229,158,.48);border-radius:5px;color:#2ce59e!important;text-decoration:none!important;font-size:8px;font-weight:900;background:rgba(31,222,151,.04)}.n9-posthero-empty{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;border:1px dashed rgba(78,104,137,.45);border-radius:10px;color:#a9bad0;font-size:11px}.n9-posthero-empty a{color:#2ce59e!important;text-decoration:none!important;font-weight:850}
html[data-n9-theme="light"] .n9-home-posthero{color:#102238}html[data-n9-theme="light"] .n9-posthero-section{background:linear-gradient(135deg,#f9fcff,#f3f8fc);border-color:#d7e3ee;box-shadow:0 14px 38px rgba(30,57,82,.08)}html[data-n9-theme="light"] .n9-posthero-kicker{color:#10263d}html[data-n9-theme="light"] .n9-posthero-heading p{color:#60758a}html[data-n9-theme="light"] .n9-posthero-arrows button{background:#fff;border-color:#cad8e5;color:#40566d}html[data-n9-theme="light"] .n9-posthero-prediction-card,html[data-n9-theme="light"] .n9-posthero-tool-card{background:#fff;border-color:#d9e4ed}html[data-n9-theme="light"] .n9-posthero-card-teams strong,html[data-n9-theme="light"] .n9-posthero-probs strong,html[data-n9-theme="light"] .n9-posthero-tool-card h3{color:#13283d}html[data-n9-theme="light"] .n9-posthero-card-meta span{color:#486176}html[data-n9-theme="light"] .n9-posthero-card-meta time,html[data-n9-theme="light"] .n9-posthero-probs small,html[data-n9-theme="light"] .n9-posthero-advice small,html[data-n9-theme="light"] .n9-posthero-tool-card p{color:#688096}html[data-n9-theme="light"] .n9-posthero-odds-scroll,html[data-n9-theme="light"] .n9-posthero-odds th:first-child,html[data-n9-theme="light"] .n9-posthero-odds td:first-child{background:#fff}html[data-n9-theme="light"] .n9-posthero-odds-scroll{border-color:#d9e4ed}html[data-n9-theme="light"] .n9-posthero-odds th,html[data-n9-theme="light"] .n9-posthero-odds td:first-child>a,html[data-n9-theme="light"] .n9-posthero-price b{color:#1b3349}html[data-n9-theme="light"] .n9-posthero-odds th,html[data-n9-theme="light"] .n9-posthero-odds td{border-color:#e6edf3}
@media(max-width:1100px){.n9-home-posthero{width:min(100% - 28px,1510px)}.n9-posthero-prediction-card,.n9-posthero-tool-card{flex-basis:calc((100vw - 70px)/3)}}
@media(max-width:820px){.n9-posthero-heading{align-items:flex-start}.n9-posthero-heading-actions{flex-wrap:wrap;justify-content:flex-end}.n9-posthero-prediction-card,.n9-posthero-tool-card{flex-basis:calc((100vw - 58px)/2)}.n9-posthero-odds-note{flex-wrap:wrap}.n9-posthero-odds-note em{width:100%;margin-left:0}}
@media(max-width:560px){.n9-home-posthero{width:calc(100% - 20px);gap:10px;margin-top:10px}.n9-posthero-section{padding:13px 12px;border-radius:13px}.n9-posthero-heading{gap:10px}.n9-posthero-heading-actions{gap:6px}.n9-posthero-outline{min-height:32px;padding-inline:9px}.n9-posthero-prediction-card,.n9-posthero-tool-card{flex-basis:calc(100vw - 48px)}.n9-posthero-card-teams strong{font-size:10px}.n9-posthero-odds th:first-child,.n9-posthero-odds td:first-child{position:static}.n9-posthero-empty{align-items:flex-start;flex-direction:column}}


/* v2.3.48.251 — homepage-only post-hero width/readability refinement. */
@media(min-width:1101px){
  .n9-home-posthero{width:min(1480px,calc(100% - 48px));}
  .n9-posthero-prediction-card,.n9-posthero-tool-card{flex-basis:clamp(245px,calc((min(1480px,100vw - 96px) - 84px)/4),350px)}
}
.n9-posthero-heading p{font-size:12px}
.n9-posthero-outline{font-size:11px}
.n9-posthero-card-meta{font-size:10px}
.n9-posthero-card-teams strong{font-size:12px}
.n9-posthero-card-teams em{font-size:10px}
.n9-posthero-mini-crest b{font-size:10px}
.n9-posthero-probs small{font-size:9px}
.n9-posthero-probs strong{font-size:13px}
.n9-posthero-advice small{font-size:9px}
.n9-posthero-advice strong{font-size:11px}
.n9-posthero-advice span{font-size:9px}
.n9-posthero-prediction-card footer a{font-size:9px}
.n9-posthero-odds th{font-size:10px}
.n9-posthero-odds th small{font-size:8px}
.n9-posthero-odds td:first-child time{font-size:9px}
.n9-posthero-odds td:first-child>a{font-size:9px}
.n9-posthero-odds td:first-child>a em{font-size:8px}
.n9-posthero-price b{font-size:9px}
.n9-posthero-odds-note{font-size:9px}
.n9-posthero-tool-card h3{font-size:12px}
.n9-posthero-tool-card p{font-size:9.5px;line-height:1.5}
.n9-posthero-tool-card>a{font-size:9px}
html[data-n9-theme="light"] .n9-posthero-heading p{color:#526b81}
html[data-n9-theme="light"] .n9-posthero-card-meta time,
html[data-n9-theme="light"] .n9-posthero-probs small,
html[data-n9-theme="light"] .n9-posthero-advice small,
html[data-n9-theme="light"] .n9-posthero-tool-card p,
html[data-n9-theme="light"] .n9-posthero-odds-note{color:#586f85}
@media(max-width:560px){
  .n9-posthero-heading p{font-size:11px}
  .n9-posthero-card-meta{font-size:9.5px}
  .n9-posthero-card-teams strong{font-size:11px}
  .n9-posthero-probs small,.n9-posthero-advice small,.n9-posthero-advice span,.n9-posthero-prediction-card footer a,.n9-posthero-odds td:first-child time,.n9-posthero-odds td:first-child>a,.n9-posthero-price b,.n9-posthero-odds-note,.n9-posthero-tool-card>a{font-size:9px}
  .n9-posthero-tool-card p{font-size:9.5px}
}


/* v2.3.48.260 — homepage-only visual refinement.
   1) Strengthen Compare Live Odds readability in light mode.
   2) Keep the page canvas outside homepage cards brand-neutral instead of inheriting
      the Prediction Market category tint. No data, API, routing or component logic. */
html[data-n9-theme="light"] .n9-posthero-odds th {
  color:#10263d !important;
}
html[data-n9-theme="light"] .n9-posthero-odds th small {
  color:#526b81 !important;
  opacity:1 !important;
}
html[data-n9-theme="light"] .n9-posthero-odds td:first-child time {
  color:#506981 !important;
  opacity:1 !important;
}
html[data-n9-theme="light"] .n9-posthero-odds td:first-child > a,
html[data-n9-theme="light"] .n9-posthero-odds td:first-child > a span {
  color:#132b42 !important;
  opacity:1 !important;
}
html[data-n9-theme="light"] .n9-posthero-odds td:first-child > a span {
  font-weight:850;
}
html[data-n9-theme="light"] .n9-posthero-odds td:first-child > a em {
  color:#60758a !important;
  opacity:1 !important;
}
html[data-n9-theme="light"] .n9-posthero-odds .n9-posthero-price b {
  color:#0d2a43 !important;
  opacity:1 !important;
}
html[data-n9-theme="light"] .n9-posthero-odds .n9-posthero-odds-note,
html[data-n9-theme="light"] .n9-posthero-odds .n9-posthero-odds-note span,
html[data-n9-theme="light"] .n9-posthero-odds .n9-posthero-odds-note em {
  color:#516a81 !important;
  opacity:1 !important;
}
html[data-n9-theme="light"] .n9-posthero-odds .n9-posthero-odds-note b {
  color:#079669 !important;
}
html[data-n9-theme="light"] .n9-posthero-odds tbody tr:hover td,
html[data-n9-theme="light"] .n9-posthero-odds tbody tr:hover td:first-child {
  background:#f6fafc !important;
}

/* The React dashboard previously inherited Sports/Trending/etc. category gradients,
   which could turn the homepage canvas brown/purple/blue outside the cards.
   Lock only the actual front page to the NaijaScore9 neutral football palette. */
body.n9-dashboard-page .n9-app[data-theme="dark"] {
  background-color:#040a09 !important;
  background-image:linear-gradient(180deg,#0b1a17 0%,#07121a 42%,#030706 100%) !important;
}
body.n9-dashboard-page .n9-app[data-theme="light"] {
  background-color:#f4f8f6 !important;
  background-image:linear-gradient(180deg,#e5efeb 0%,#f2f7f5 44%,#f8fafc 100%) !important;
}

/* v2.3.48.266 — homepage-only post-hero typography/readability refinement. */
.n9-posthero-kicker{font-size:13px}
.n9-posthero-heading p{font-size:13px;line-height:1.5}
.n9-posthero-outline{font-size:12px}
.n9-posthero-prediction-card{min-height:268px}
.n9-posthero-card-meta{font-size:11px}
.n9-posthero-card-teams strong{font-size:13px}
.n9-posthero-card-teams em{font-size:10px}
.n9-posthero-mini-crest b{font-size:10px}
.n9-posthero-probs small{font-size:10px}
.n9-posthero-probs strong{font-size:14px}
.n9-posthero-advice small{font-size:10px}
.n9-posthero-advice strong{font-size:12px}
.n9-posthero-advice span{font-size:10px}
.n9-posthero-prediction-card footer a{font-size:10px;min-height:31px}
.n9-posthero-odds th,.n9-posthero-odds td{padding-top:9px;padding-bottom:9px}
.n9-posthero-odds th{font-size:11px}
.n9-posthero-odds th small{font-size:9px}
.n9-posthero-odds td:first-child time{font-size:10px}
.n9-posthero-odds td:first-child>a{font-size:10px}
.n9-posthero-odds td:first-child>a em{font-size:9px}
.n9-posthero-price b{font-size:10px}
.n9-posthero-odds-note{font-size:10px;line-height:1.45}
.n9-posthero-tool-card{min-height:126px}
.n9-posthero-tool-card h3{font-size:13px}
.n9-posthero-tool-card p{font-size:10.5px;line-height:1.5}
.n9-posthero-tool-card>a{font-size:10px}

@media(max-width:560px){
  .n9-posthero-kicker{font-size:12px}
  .n9-posthero-heading p{font-size:12px}
  .n9-posthero-outline{font-size:11px}
  .n9-posthero-card-meta{font-size:10.5px}
  .n9-posthero-card-teams strong{font-size:12px}
  .n9-posthero-card-teams em{font-size:10px}
  .n9-posthero-probs small{font-size:10px}
  .n9-posthero-probs strong{font-size:13px}
  .n9-posthero-advice small,.n9-posthero-advice span,.n9-posthero-prediction-card footer a,.n9-posthero-odds td:first-child time,.n9-posthero-odds td:first-child>a,.n9-posthero-price b,.n9-posthero-odds-note,.n9-posthero-tool-card>a{font-size:10px}
  .n9-posthero-advice strong{font-size:11px}
  .n9-posthero-tool-card h3{font-size:12px}
  .n9-posthero-tool-card p{font-size:10.5px}
}

/* v2.3.48.267 — homepage post-hero readability pass 2. */
.n9-posthero-kicker{font-size:14px}
.n9-posthero-heading p{font-size:14px;line-height:1.52}
.n9-posthero-outline{font-size:12px;min-height:36px}
.n9-posthero-prediction-card{min-height:282px;padding:14px}
.n9-posthero-card-meta{font-size:12px}
.n9-posthero-card-teams strong{font-size:14px}
.n9-posthero-card-teams em{font-size:11px}
.n9-posthero-mini-crest b{font-size:11px}
.n9-posthero-probs small{font-size:11px}
.n9-posthero-probs strong{font-size:15px}
.n9-posthero-advice small{font-size:11px}
.n9-posthero-advice strong{font-size:13px}
.n9-posthero-advice span{font-size:11px}
.n9-posthero-prediction-card footer a{font-size:11px;min-height:34px}
.n9-posthero-odds th,.n9-posthero-odds td{padding-top:10px;padding-bottom:10px}
.n9-posthero-odds th{font-size:12px}
.n9-posthero-odds th small{font-size:10px}
.n9-posthero-odds td:first-child time{font-size:11px}
.n9-posthero-odds td:first-child>a{font-size:11px}
.n9-posthero-odds td:first-child>a em{font-size:10px}
.n9-posthero-price b{font-size:11px}
.n9-posthero-odds-note{font-size:11px;line-height:1.5}
.n9-posthero-tool-card{min-height:134px;padding:14px}
.n9-posthero-tool-card h3{font-size:14px}
.n9-posthero-tool-card p{font-size:11.5px;line-height:1.52}
.n9-posthero-tool-card>a{font-size:11px;min-height:31px}

@media(max-width:560px){
  .n9-posthero-kicker{font-size:13px}
  .n9-posthero-heading p{font-size:13px}
  .n9-posthero-outline{font-size:12px}
  .n9-posthero-card-meta{font-size:11px}
  .n9-posthero-card-teams strong{font-size:13px}
  .n9-posthero-card-teams em{font-size:11px}
  .n9-posthero-probs small{font-size:11px}
  .n9-posthero-probs strong{font-size:14px}
  .n9-posthero-advice small,.n9-posthero-advice span,.n9-posthero-prediction-card footer a,.n9-posthero-odds td:first-child time,.n9-posthero-odds td:first-child>a,.n9-posthero-price b,.n9-posthero-odds-note,.n9-posthero-tool-card>a{font-size:11px}
  .n9-posthero-advice strong{font-size:12px}
  .n9-posthero-tool-card h3{font-size:13px}
  .n9-posthero-tool-card p{font-size:11.5px}
}

/* v2.3.48.270 — Compare Live Odds match-column layout repair.
   Keep the larger readable typography introduced in v267; solve long-team-name
   collisions with a roomier match column, structured matchup grid and local
   horizontal scrolling when the viewport cannot comfortably hold seven books. */
.n9-posthero-odds-scroll{
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-gutter:stable;
  overscroll-behavior-inline:contain;
}
.n9-posthero-odds table{
  min-width:1420px;
}
.n9-posthero-odds th:first-child,
.n9-posthero-odds td:first-child{
  width:360px;
  min-width:360px;
}
.n9-posthero-odds td:first-child{
  grid-template-columns:46px minmax(0,1fr);
  gap:9px;
}
.n9-posthero-odds td:first-child > a.n9-posthero-matchup{
  display:grid;
  grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);
  align-items:center;
  gap:8px;
  min-width:0;
  width:100%;
}
.n9-posthero-odds .n9-posthero-match-team{
  display:grid;
  align-items:center;
  gap:6px;
  min-width:0;
  white-space:normal;
}
.n9-posthero-odds .n9-posthero-match-team.is-home{
  grid-template-columns:18px minmax(0,1fr);
}
.n9-posthero-odds .n9-posthero-match-team.is-away{
  grid-template-columns:minmax(0,1fr) 18px;
  text-align:right;
}
.n9-posthero-odds .n9-posthero-match-team strong{
  min-width:0;
  font:inherit;
  font-weight:850;
  line-height:1.22;
  white-space:normal;
  overflow-wrap:break-word;
}
.n9-posthero-odds td:first-child > a.n9-posthero-matchup em{
  text-align:center;
  white-space:nowrap;
}
.n9-posthero-odds .n9-posthero-match-team img{
  width:18px;
  height:18px;
}
.n9-posthero-odds-scroll::-webkit-scrollbar{height:8px}
.n9-posthero-odds-scroll::-webkit-scrollbar-track{background:transparent}
.n9-posthero-odds-scroll::-webkit-scrollbar-thumb{background:rgba(101,126,154,.38);border-radius:999px}
.n9-posthero-odds-scroll{scrollbar-width:thin;scrollbar-color:rgba(101,126,154,.38) transparent}
html[data-n9-theme="light"] .n9-posthero-odds-scroll::-webkit-scrollbar-thumb{background:rgba(72,102,132,.28)}
html[data-n9-theme="light"] .n9-posthero-odds-scroll{scrollbar-color:rgba(72,102,132,.28) transparent}

@media(max-width:1180px){
  .n9-posthero-odds table{min-width:1380px}
  .n9-posthero-odds th:first-child,.n9-posthero-odds td:first-child{width:340px;min-width:340px}
}
@media(max-width:560px){
  .n9-posthero-odds table{min-width:1280px}
  .n9-posthero-odds th:first-child,.n9-posthero-odds td:first-child{width:320px;min-width:320px}
  .n9-posthero-odds td:first-child{grid-template-columns:44px minmax(0,1fr)}
}



/* v2.3.48.272 — Compare Live Odds 30-match capacity + scroll ergonomics.
   Keep the readable v267 typography and v270 match-column widths intact.
   Thirty genuine rows may be present in the DOM, while a bounded local
   viewport prevents the homepage from becoming excessively tall. */
.n9-posthero-odds-scroll{
  max-height:820px;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
}
.n9-posthero-odds thead th{
  position:sticky;
  top:0;
  z-index:3;
  background:#081526;
  box-shadow:0 1px 0 rgba(55,78,106,.34);
}
.n9-posthero-odds thead th:first-child{
  left:0;
  z-index:6;
}
.n9-posthero-odds tbody td:first-child{
  z-index:2;
}
.n9-posthero-odds tbody tr:nth-child(even) td:not(:first-child){
  background:rgba(13,31,50,.22);
}
.n9-posthero-odds tbody tr:hover td:not(:first-child){
  background:rgba(31,222,151,.035);
}
html[data-n9-theme="light"] .n9-posthero-odds thead th{
  background:#f8fbfd !important;
  box-shadow:0 1px 0 #dbe6ee;
}
html[data-n9-theme="light"] .n9-posthero-odds tbody tr:nth-child(even) td:not(:first-child){
  background:#fbfdfe;
}
html[data-n9-theme="light"] .n9-posthero-odds tbody tr:hover td:not(:first-child){
  background:#f4faf7 !important;
}
@media(max-width:1180px){
  .n9-posthero-odds-scroll{max-height:760px}
}
@media(max-width:760px){
  .n9-posthero-odds-scroll{max-height:680px}
  .n9-posthero-odds th,.n9-posthero-odds td{padding-left:8px;padding-right:8px}
}
@media(max-width:560px){
  .n9-posthero-odds-scroll{max-height:620px}
}


/* v2.3.48.274 — homepage post-hero width alignment only.
   Match the visible width of the approved above-the-fold prediction hero instead
   of letting Top Predictions / Compare Live Odds / Popular Betting Tools span
   wider than the rest of the homepage. Typography and data logic stay intact. */
@media(min-width:1281px){
  .n9-home-posthero{
    width:min(1412px,calc(100% - 116px));
  }
  .n9-posthero-prediction-card,
  .n9-posthero-tool-card{
    flex-basis:clamp(245px,calc((min(1412px,100vw - 116px) - 66px)/4),336px);
  }
}
@media(min-width:761px) and (max-width:1280px){
  .n9-home-posthero{
    width:min(calc(100% - 24px),1180px);
  }
}
@media(max-width:760px){
  .n9-home-posthero{
    width:calc(100% - 18px);
  }
}
/* Preserve readable odds typography after the narrower desktop alignment.
   The table keeps its intrinsic width and scrolls locally rather than squeezing
   team names, bookmaker prices or labels into collisions. */
.n9-posthero-odds-scroll{
  max-width:100%;
}
.n9-posthero-odds table{
  width:max(100%,1420px);
}
.n9-posthero-odds .n9-posthero-match-team strong,
.n9-posthero-odds .n9-posthero-price b,
.n9-posthero-odds th,
.n9-posthero-odds td:first-child time{
  text-rendering:optimizeLegibility;
}

/* v2.3.48.275 — reference-led Compare Live Football Odds board.
   Homepage-only visual/UI layer. Keeps the genuine 1X2 feed, seven-bookmaker
   coverage and protected API/cache architecture; only the presentation and
   client-side filtering/progressive reveal are enhanced. */
.n9-live-odds-board{
  padding:18px 20px 16px;
  border-radius:18px;
  background:
    radial-gradient(circle at 84% 3%,rgba(25,235,161,.07),transparent 24%),
    linear-gradient(180deg,#03111f 0%,#041322 54%,#03101c 100%);
  border-color:rgba(74,111,143,.46);
  box-shadow:0 22px 58px rgba(0,8,20,.28),inset 0 1px 0 rgba(255,255,255,.025);
}
.n9-live-odds-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:15px}
.n9-live-odds-title-wrap{min-width:0}
.n9-live-odds-title-line{display:flex;align-items:center;gap:10px;min-width:0}
.n9-live-badge{display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:4px 8px;border:1px solid rgba(28,226,153,.45);border-radius:6px;background:rgba(17,190,129,.12);color:#22e6a0;font-size:11px;font-weight:900;letter-spacing:.04em}
.n9-live-odds-title-line h2{margin:0;color:#f5f8fc;font-size:24px;line-height:1.12;font-weight:900;letter-spacing:-.025em}
.n9-live-bolt{color:#24e8a1;font-size:25px;line-height:1;font-weight:900;transform:rotate(-8deg)}
.n9-live-odds-title-wrap>p{margin:6px 0 0;color:#9aaac0;font-size:13px;line-height:1.5}
.n9-live-odds-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 16px;border:1px solid #23e39d;border-radius:8px;background:linear-gradient(135deg,#20e39d,#17d993);color:#03140e!important;text-decoration:none!important;font-size:13px;font-weight:900;white-space:nowrap;box-shadow:0 9px 24px rgba(25,224,151,.14)}
.n9-live-odds-cta:hover{filter:brightness(1.05);transform:translateY(-1px)}

.n9-live-odds-controls{display:flex;align-items:stretch;justify-content:space-between;gap:14px;padding:9px;border:1px solid rgba(68,98,132,.38);border-radius:12px;background:#071627;margin-bottom:11px}
.n9-live-market-tabs{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));min-width:min(510px,48%);border:1px solid rgba(86,116,151,.5);border-radius:8px;overflow:hidden;background:#071424}
.n9-live-market-tabs button,.n9-live-market-tabs a{display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px 14px;border:0;border-right:1px solid rgba(79,107,139,.38);background:transparent;color:#c6d2e2!important;text-decoration:none!important;font:inherit;font-size:12px;font-weight:750;white-space:nowrap;cursor:pointer}
.n9-live-market-tabs>*:last-child{border-right:0}
.n9-live-market-tabs .is-active{background:linear-gradient(135deg,#24e6a0,#17d994);color:#04170f!important;font-weight:900}
.n9-live-market-tabs a:hover{background:rgba(39,230,160,.07);color:#57edb8!important}
.n9-live-odds-selectors{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:1;min-width:0}
.n9-live-odds-selectors label{position:relative;display:flex;align-items:center;gap:7px;min-width:0;height:42px;padding-left:11px;border:1px solid rgba(74,104,139,.48);border-radius:8px;background:#071424;color:#c8d4e3}
.n9-live-odds-selectors label>span{flex:0 0 auto;color:#9fb0c4;font-size:13px}
.n9-live-odds-selectors select{min-width:175px;height:40px;padding:0 28px 0 0;border:0;outline:0;background:transparent;color:#d8e4f2;font:inherit;font-size:12px;font-weight:760;cursor:pointer}
.n9-live-odds-selectors option{background:#0a1728;color:#e6eef8}

.n9-live-league-chips{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin:0 0 14px;padding:2px 0 1px;overflow-x:auto;scrollbar-width:none}
.n9-live-league-chips::-webkit-scrollbar{display:none}
.n9-live-league-chips button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:145px;min-height:48px;padding:8px 12px;border:1px solid rgba(54,78,108,.34);border-radius:9px;background:linear-gradient(180deg,#0b1a2d,#091728);color:#c9d6e5;font:inherit;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer;transition:.18s ease}
.n9-live-league-chips button img{width:24px;height:24px;object-fit:contain}
.n9-live-league-chips button:hover{border-color:rgba(34,229,158,.52);color:#ebfff7}
.n9-live-league-chips button.is-active{border-color:#22e39d;background:linear-gradient(135deg,#22e39d,#18d68e);color:#03160e;box-shadow:0 8px 20px rgba(31,223,153,.12)}

.n9-live-odds-insights{display:grid;grid-template-columns:1.25fr repeat(4,1fr);align-items:stretch;margin-bottom:14px;border:1px solid rgba(79,110,145,.48);border-radius:11px;background:rgba(4,18,31,.72);overflow:hidden}
.n9-live-odds-insights>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:58px;padding:9px 15px;border-right:1px solid rgba(72,99,130,.42)}
.n9-live-odds-insights>div:last-child{border-right:0}
.n9-live-odds-insights .n9-live-insights-label{flex-direction:row;justify-content:flex-start;gap:9px;color:#cbd7e6}
.n9-live-insights-label>span{display:grid;place-items:center;width:23px;height:23px;border-radius:6px;background:rgba(36,230,160,.08);color:#25e3a0}
.n9-live-insights-label strong{font-size:12px;color:#cbd7e6}
.n9-live-odds-insights>div>strong{font-size:16px;line-height:1.1;color:#28e4a0;font-weight:900}
.n9-live-odds-insights>div>span{font-size:10.5px;color:#9aabc0;font-weight:650}

.n9-live-odds-table-wrap{overflow:hidden;border:1px solid rgba(74,104,139,.52);border-radius:12px;background:#051321}
.n9-live-odds-board .n9-posthero-odds-scroll{max-height:none;overflow-x:auto;overflow-y:visible;border:0;border-radius:0;background:#051321;scrollbar-gutter:stable;overscroll-behavior-inline:contain}
.n9-live-odds-board.n9-posthero-odds table{width:max(100%,1510px);min-width:1510px;border-collapse:separate;border-spacing:0;table-layout:fixed}
.n9-live-odds-board.n9-posthero-odds th,.n9-live-odds-board.n9-posthero-odds td{padding:10px 9px;border-right:1px solid rgba(71,99,131,.34);border-bottom:1px solid rgba(71,99,131,.34);background:#061523;text-align:center;vertical-align:middle}
.n9-live-odds-board.n9-posthero-odds thead th{position:sticky;top:0;z-index:5;height:52px;background:#061523;color:#dfe8f4;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;box-shadow:none}
.n9-live-odds-board.n9-posthero-odds thead th small{display:block;margin-top:4px;color:#70849d;font-size:8.5px;letter-spacing:.13em}
.n9-live-odds-board.n9-posthero-odds tbody tr:last-child td{border-bottom:0}
.n9-live-odds-board.n9-posthero-odds tbody tr:hover td{background:#091b2b}
.n9-live-odds-board.n9-posthero-odds tbody tr[hidden]{display:none!important}
.n9-live-odds-board.n9-posthero-odds .n9-live-time-head,.n9-live-odds-board.n9-posthero-odds td.n9-live-ko{position:sticky;left:0;width:94px;min-width:94px;z-index:7;background:#061523;text-align:left}
.n9-live-odds-board.n9-posthero-odds .n9-live-match-head,.n9-live-odds-board.n9-posthero-odds td.n9-live-match{position:sticky;left:94px;width:310px;min-width:310px;z-index:7;background:#061523;text-align:left}
.n9-live-odds-board.n9-posthero-odds thead .n9-live-time-head,.n9-live-odds-board.n9-posthero-odds thead .n9-live-match-head{z-index:10}
.n9-live-odds-board.n9-posthero-odds .n9-live-best-head,.n9-live-odds-board.n9-posthero-odds td.n9-live-best{width:205px;min-width:205px}
.n9-live-ko{display:table-cell!important}
.n9-live-ko time{display:block;color:#e4edf7!important;font-size:11px!important;font-weight:850;line-height:1.1}
.n9-live-ko small{display:block;margin-top:4px;color:#7f93ab;font-size:9px;font-weight:650}
.n9-live-match>a.n9-posthero-matchup{display:grid!important;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)!important;align-items:center;gap:7px;width:100%;color:#e5edf7!important;text-decoration:none!important;font-size:11px!important;font-weight:800}
.n9-live-match .n9-posthero-match-team{display:flex!important;align-items:center;gap:7px;min-width:0;white-space:normal}
.n9-live-match .n9-posthero-match-team.is-away{justify-content:flex-start;text-align:left}
.n9-live-match .n9-posthero-match-team img{width:23px!important;height:23px!important;min-width:23px;object-fit:contain}
.n9-live-match .n9-posthero-match-team strong{min-width:0;color:#e7eef8;font-size:11px;line-height:1.22;font-weight:850;white-space:normal;overflow-wrap:anywhere}
.n9-live-match>a.n9-posthero-matchup em{color:#6f8299!important;font-size:9px!important;font-style:normal;text-align:center;text-transform:lowercase}

.n9-live-odds-board .n9-posthero-price{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;align-items:center}
.n9-live-odds-board .n9-posthero-price>span{display:grid;grid-template-columns:auto 1fr;align-items:center;justify-items:center;gap:2px;min-height:31px;padding:3px 3px;border:1px solid transparent;border-radius:7px}
.n9-live-odds-board .n9-posthero-price>span small{color:#71859c;font-size:8px;font-weight:850}
.n9-live-odds-board .n9-posthero-price>span b{color:#dce6f2;font-size:11px!important;font-weight:900;white-space:nowrap}
.n9-live-odds-board .n9-posthero-price>span.is-best{border-color:rgba(31,226,154,.56);background:rgba(20,202,135,.08);box-shadow:inset 0 0 0 1px rgba(26,226,151,.03)}
.n9-live-odds-board .n9-posthero-price>span.is-best b{color:#2ce5a0!important}
.n9-live-best>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.n9-live-best>div>span{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;gap:0 3px;min-width:0}
.n9-live-best small{grid-row:1/3;color:#6e8299;font-size:8px;font-weight:900}
.n9-live-best b{color:#2ce5a0;font-size:11px;font-weight:900}
.n9-live-best em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8fa1b6;font-size:7.5px;font-style:normal;font-weight:750}

.n9-live-odds-more{display:flex;justify-content:center;border-top:1px solid rgba(72,99,130,.34);background:#061421}
.n9-live-odds-more button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 18px;border:0;background:transparent;color:#93a5bb;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.n9-live-odds-more button:hover{color:#2ce5a0}
.n9-live-odds-more button[hidden]{display:none!important}
.n9-live-odds-board .n9-posthero-odds-note{padding:11px 2px 0;font-size:10.5px;line-height:1.45}

/* One bookmaker selected: keep the same design but avoid a needlessly wide table. */
.n9-live-odds-board.is-single-bookmaker .n9-posthero-odds table{width:820px;min-width:820px}

html[data-n9-theme="light"] .n9-live-odds-board{background:linear-gradient(180deg,#f8fbfe,#f3f8fb);border-color:#cddbe6;box-shadow:0 16px 40px rgba(26,56,82,.08)}
html[data-n9-theme="light"] .n9-live-odds-title-line h2{color:#10263d}
html[data-n9-theme="light"] .n9-live-odds-title-wrap>p{color:#60758a}
html[data-n9-theme="light"] .n9-live-badge{background:#e7fbf3;border-color:#8ee6c4;color:#087c59}
html[data-n9-theme="light"] .n9-live-bolt{color:#08a773}
html[data-n9-theme="light"] .n9-live-odds-controls,html[data-n9-theme="light"] .n9-live-market-tabs,html[data-n9-theme="light"] .n9-live-odds-selectors label{background:#fff;border-color:#cfdee9}
html[data-n9-theme="light"] .n9-live-market-tabs button,html[data-n9-theme="light"] .n9-live-market-tabs a{color:#334e66!important;border-color:#d8e3eb}
html[data-n9-theme="light"] .n9-live-market-tabs .is-active{color:#062b20!important}
html[data-n9-theme="light"] .n9-live-odds-selectors label>span{color:#627b91}
html[data-n9-theme="light"] .n9-live-odds-selectors select{color:#233d54}
html[data-n9-theme="light"] .n9-live-odds-selectors option{background:#fff;color:#20394f}
html[data-n9-theme="light"] .n9-live-league-chips button{background:#fff;border-color:#d7e3ec;color:#304b63}
html[data-n9-theme="light"] .n9-live-league-chips button.is-active{color:#05271d}
html[data-n9-theme="light"] .n9-live-odds-insights{background:#fff;border-color:#d4e1ea}
html[data-n9-theme="light"] .n9-live-odds-insights>div{border-color:#dde7ee}
html[data-n9-theme="light"] .n9-live-insights-label strong{color:#304a61}
html[data-n9-theme="light"] .n9-live-odds-insights>div>span{color:#647b8f}
html[data-n9-theme="light"] .n9-live-odds-table-wrap,html[data-n9-theme="light"] .n9-live-odds-board .n9-posthero-odds-scroll{background:#fff;border-color:#d4e1ea}
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds th,html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds td{background:#fff!important;border-color:#e0e9ef;color:#183249}
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds tbody tr:hover td{background:#f6fbf8!important}
html[data-n9-theme="light"] .n9-live-ko time{color:#25435b!important}
html[data-n9-theme="light"] .n9-live-ko small{color:#71889b}
html[data-n9-theme="light"] .n9-live-match .n9-posthero-match-team strong{color:#173149!important}
html[data-n9-theme="light"] .n9-live-odds-board .n9-posthero-price>span b{color:#173149!important}
html[data-n9-theme="light"] .n9-live-best em{color:#667e92}
html[data-n9-theme="light"] .n9-live-odds-more{background:#f9fbfd;border-color:#dde7ee}
html[data-n9-theme="light"] .n9-live-odds-more button{color:#587086}

@media(max-width:1280px){
  .n9-live-odds-controls{overflow-x:auto;align-items:center}
  .n9-live-market-tabs{min-width:500px;flex:0 0 500px}
  .n9-live-odds-selectors{min-width:610px;justify-content:flex-start}
  .n9-live-league-chips{grid-template-columns:repeat(7,150px)}
}
@media(max-width:900px){
  .n9-live-odds-board{padding:15px 14px}
  .n9-live-odds-head{align-items:center}
  .n9-live-odds-title-line h2{font-size:21px}
  .n9-live-odds-insights{grid-template-columns:repeat(4,1fr)}
  .n9-live-odds-insights .n9-live-insights-label{grid-column:1/-1;min-height:42px;border-right:0;border-bottom:1px solid rgba(72,99,130,.42)}
  .n9-live-odds-board.n9-posthero-odds table{width:1480px;min-width:1480px}
}
@media(max-width:640px){
  .n9-live-odds-head{align-items:flex-start}
  .n9-live-odds-title-line{gap:7px;flex-wrap:wrap}
  .n9-live-odds-title-line h2{font-size:19px}
  .n9-live-odds-title-wrap>p{font-size:12px}
  .n9-live-odds-cta{min-height:39px;padding:8px 10px;font-size:11px}
  .n9-live-market-tabs{min-width:465px;flex-basis:465px}
  .n9-live-market-tabs button,.n9-live-market-tabs a{min-height:39px;padding:7px 10px;font-size:11px}
  .n9-live-odds-selectors{min-width:565px}
  .n9-live-odds-selectors select{min-width:160px;font-size:11px}
  .n9-live-odds-insights{grid-template-columns:repeat(2,1fr)}
  .n9-live-odds-insights .n9-live-insights-label{grid-column:1/-1}
  .n9-live-odds-insights>div:nth-child(3){border-right:0}
  .n9-live-odds-insights>div>strong{font-size:15px}
  .n9-live-odds-board.n9-posthero-odds table{width:1450px;min-width:1450px}
  .n9-live-odds-board.n9-posthero-odds .n9-live-match-head,.n9-live-odds-board.n9-posthero-odds td.n9-live-match{width:285px;min-width:285px}
  .n9-live-match .n9-posthero-match-team strong{font-size:10.5px}
  .n9-live-odds-board .n9-posthero-odds-note{flex-wrap:wrap;gap:8px 12px}
  .n9-live-odds-board .n9-posthero-odds-note em{width:100%;margin-left:0}
}


/* v2.3.48.276 — Compare Live Football Odds layout repair.
   The section element itself owns both .n9-live-odds-board and .n9-posthero-odds.
   v275 accidentally used descendant selectors for several table rules, so the
   old compact table widths kept winning and compressed team names/1X2 values.
   Keep all feed/data/filter logic intact; repair only the homepage board layout. */
.n9-live-odds-board.n9-posthero-odds .n9-posthero-odds-scroll{
  max-height:760px;
  overflow:auto;
  border:0;
  border-radius:0;
  background:#051321;
  scrollbar-gutter:stable both-edges;
  overscroll-behavior:contain;
}
.n9-live-odds-board.n9-posthero-odds table{
  width:1780px;
  min-width:1780px;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
}
.n9-live-odds-board.n9-posthero-odds th,
.n9-live-odds-board.n9-posthero-odds td{
  display:table-cell;
  box-sizing:border-box;
  padding:10px 9px;
  vertical-align:middle;
  text-align:center;
  border-right:1px solid rgba(71,99,131,.34);
  border-bottom:1px solid rgba(71,99,131,.34);
  background:#061523;
}
.n9-live-odds-board.n9-posthero-odds thead th{
  position:sticky;
  top:0;
  z-index:5;
  height:54px;
  background:#061523;
  color:#dfe8f4;
  font-size:11px;
  line-height:1.2;
  font-weight:900;
  text-transform:none;
  letter-spacing:0;
}
.n9-live-odds-board.n9-posthero-odds thead th small{
  display:block;
  margin-top:4px;
  color:#70849d;
  font-size:9px;
  line-height:1;
  letter-spacing:.12em;
}
.n9-live-odds-board.n9-posthero-odds .n9-live-time-head,
.n9-live-odds-board.n9-posthero-odds td.n9-live-ko{
  position:sticky;
  left:0;
  width:92px;
  min-width:92px;
  max-width:92px;
  z-index:7;
  background:#061523;
  text-align:left;
}
.n9-live-odds-board.n9-posthero-odds .n9-live-match-head,
.n9-live-odds-board.n9-posthero-odds td.n9-live-match{
  position:sticky;
  left:92px;
  width:360px;
  min-width:360px;
  max-width:360px;
  z-index:7;
  background:#061523;
  text-align:left;
}
.n9-live-odds-board.n9-posthero-odds thead .n9-live-time-head,
.n9-live-odds-board.n9-posthero-odds thead .n9-live-match-head{z-index:10}
.n9-live-odds-board.n9-posthero-odds th[data-n9-book-col],
.n9-live-odds-board.n9-posthero-odds td[data-n9-book-col]{
  width:155px;
  min-width:155px;
  max-width:155px;
}
.n9-live-odds-board.n9-posthero-odds .n9-live-best-head,
.n9-live-odds-board.n9-posthero-odds td.n9-live-best{
  width:220px;
  min-width:220px;
  max-width:220px;
}
.n9-live-odds-board.n9-posthero-odds td.n9-live-ko{
  display:table-cell!important;
  grid-template-columns:none!important;
}
.n9-live-odds-board .n9-live-ko time{
  display:block;
  color:#e4edf7!important;
  font-size:11px!important;
  line-height:1.15;
  font-weight:850;
  white-space:nowrap;
}
.n9-live-odds-board .n9-live-ko small{
  display:block;
  margin-top:4px;
  color:#7f93ab;
  font-size:9px;
  line-height:1.1;
  font-weight:650;
  white-space:nowrap;
}
.n9-live-odds-board .n9-live-match>a.n9-posthero-matchup{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr)!important;
  align-items:center;
  gap:8px;
  width:100%;
  min-width:0;
  color:#e5edf7!important;
  text-decoration:none!important;
}
.n9-live-odds-board .n9-live-match .n9-posthero-match-team,
.n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-home,
.n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-away{
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr)!important;
  align-items:center;
  gap:7px;
  min-width:0;
  text-align:left;
}
.n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-away{
  grid-template-columns:24px minmax(0,1fr)!important;
}
.n9-live-odds-board .n9-live-match .n9-posthero-match-team img{
  grid-column:1;
  grid-row:1;
  width:22px!important;
  height:22px!important;
  min-width:22px;
  object-fit:contain;
}
.n9-live-odds-board .n9-live-match .n9-posthero-match-team strong{
  grid-column:2;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  color:#e7eef8;
  font-size:11px!important;
  line-height:1.25;
  font-weight:850;
}
.n9-live-odds-board .n9-live-match>a.n9-posthero-matchup em{
  color:#6f8299!important;
  font-size:9px!important;
  line-height:1;
  font-style:normal;
  text-align:center;
  white-space:nowrap;
}
.n9-live-odds-board .n9-posthero-price{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:4px;
  align-items:center;
  width:100%;
  min-width:0;
}
.n9-live-odds-board .n9-posthero-price>span{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3px;
  min-width:0;
  min-height:32px;
  padding:4px 3px;
  border:1px solid transparent;
  border-radius:7px;
  white-space:nowrap;
}
.n9-live-odds-board .n9-posthero-price>span small{
  flex:0 0 auto;
  color:#71859c;
  font-size:8px;
  line-height:1;
  font-weight:850;
}
.n9-live-odds-board .n9-posthero-price>span b{
  flex:0 0 auto;
  color:#dce6f2;
  font-size:11px!important;
  line-height:1;
  font-weight:900;
  white-space:nowrap;
}
.n9-live-odds-board .n9-posthero-price>span.is-best{
  border-color:rgba(31,226,154,.56);
  background:rgba(20,202,135,.08);
}
.n9-live-odds-board .n9-posthero-price>span.is-best b{color:#2ce5a0!important}
.n9-live-odds-board .n9-live-best>div{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
}
.n9-live-odds-board .n9-live-best>div>span{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  align-items:center;
  gap:1px 4px;
  min-width:0;
}
.n9-live-odds-board .n9-live-best small{grid-row:1/3;font-size:8px;line-height:1;color:#6e8299;font-weight:900}
.n9-live-odds-board .n9-live-best b{font-size:11px;line-height:1.05;color:#2ce5a0;font-weight:900;white-space:nowrap}
.n9-live-odds-board .n9-live-best em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8fa1b6;font-size:7.5px;line-height:1.15;font-style:normal;font-weight:750}
.n9-live-odds-board.n9-posthero-odds tbody tr[hidden]{display:none!important}
.n9-live-odds-board.n9-posthero-odds tbody tr:hover td{background:#091b2b}
.n9-live-odds-board.n9-posthero-odds tbody tr:hover td.n9-live-ko,
.n9-live-odds-board.n9-posthero-odds tbody tr:hover td.n9-live-match{background:#091b2b}

html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds th,
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds td{background:#fff!important;border-color:#e0e9ef;color:#183249}
html[data-n9-theme="light"] .n9-live-odds-board .n9-live-match .n9-posthero-match-team strong{color:#173149!important}
html[data-n9-theme="light"] .n9-live-odds-board .n9-posthero-price>span b{color:#173149!important}
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds tbody tr:hover td{background:#f6fbf8!important}

@media(max-width:1280px){
  .n9-live-odds-board.n9-posthero-odds table{width:1740px;min-width:1740px}
  .n9-live-odds-board.n9-posthero-odds .n9-live-match-head,
  .n9-live-odds-board.n9-posthero-odds td.n9-live-match{width:340px;min-width:340px;max-width:340px}
}
@media(max-width:900px){
  .n9-live-odds-board.n9-posthero-odds .n9-posthero-odds-scroll{max-height:700px}
  .n9-live-odds-board.n9-posthero-odds table{width:1700px;min-width:1700px}
  .n9-live-odds-board.n9-posthero-odds .n9-live-match-head,
  .n9-live-odds-board.n9-posthero-odds td.n9-live-match{width:330px;min-width:330px;max-width:330px}
}
@media(max-width:640px){
  .n9-live-odds-board.n9-posthero-odds .n9-posthero-odds-scroll{max-height:620px}
  .n9-live-odds-board.n9-posthero-odds table{width:1660px;min-width:1660px}
  .n9-live-odds-board.n9-posthero-odds .n9-live-time-head,
  .n9-live-odds-board.n9-posthero-odds td.n9-live-ko{width:86px;min-width:86px;max-width:86px}
  .n9-live-odds-board.n9-posthero-odds .n9-live-match-head,
  .n9-live-odds-board.n9-posthero-odds td.n9-live-match{left:86px;width:310px;min-width:310px;max-width:310px}
}

/* v2.3.48.277 — horizontal swipe integrity repair for Compare Live Football Odds.
   The two frozen body columns could visually collide with bookmaker cells while the
   wide table was panned in Chromium. Keep the vertical header sticky, but let every
   column participate in the same horizontal scroll plane. This removes any layer
   crossover without shrinking typography or changing odds/data logic. */
.n9-live-odds-board.n9-posthero-odds .n9-posthero-odds-scroll{
  position:relative;
  isolation:isolate;
  overflow-x:auto;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.n9-live-odds-board.n9-posthero-odds tbody td.n9-live-ko,
.n9-live-odds-board.n9-posthero-odds tbody td.n9-live-match{
  position:static!important;
  left:auto!important;
  z-index:auto!important;
  overflow:hidden;
  background:#061523;
}
.n9-live-odds-board.n9-posthero-odds thead th.n9-live-time-head,
.n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head{
  position:sticky!important;
  top:0!important;
  left:auto!important;
  z-index:12!important;
  overflow:hidden;
  background:#061523;
}
.n9-live-odds-board.n9-posthero-odds th[data-n9-book-col],
.n9-live-odds-board.n9-posthero-odds td[data-n9-book-col],
.n9-live-odds-board.n9-posthero-odds th.n9-live-best-head,
.n9-live-odds-board.n9-posthero-odds td.n9-live-best{
  overflow:hidden;
}
.n9-live-odds-board .n9-live-match>a.n9-posthero-matchup,
.n9-live-odds-board .n9-live-match .n9-posthero-match-team{
  overflow:hidden;
}
.n9-live-odds-board .n9-live-match .n9-posthero-match-team strong{
  max-width:100%;
}
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds tbody td.n9-live-ko,
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds tbody td.n9-live-match,
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds thead th.n9-live-time-head,
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head{
  background:#fff!important;
}

/* v2.3.48.278 — frozen KO Time + Match pane with independent odds swipe.
   Keep the first two columns anchored for context while bookmaker / Best Odds
   columns pan horizontally underneath.  The frozen cells are fully opaque,
   isolated paint layers so moving prices can never bleed over team names. */
.n9-live-odds-board{
  --n9-ko-w:96px;
  --n9-match-w:330px;
}
.n9-live-odds-board.n9-posthero-odds .n9-posthero-odds-scroll{
  position:relative;
  isolation:isolate;
  overflow-x:auto;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
  touch-action:pan-x pan-y;
}
.n9-live-odds-board.n9-posthero-odds table{
  border-collapse:separate!important;
  border-spacing:0!important;
}
/* Non-frozen cells stay below the frozen context pane. */
.n9-live-odds-board.n9-posthero-odds th[data-n9-book-col],
.n9-live-odds-board.n9-posthero-odds td[data-n9-book-col],
.n9-live-odds-board.n9-posthero-odds th.n9-live-best-head,
.n9-live-odds-board.n9-posthero-odds td.n9-live-best{
  position:relative;
  z-index:1;
  overflow:hidden;
}
/* Freeze KO Time. */
.n9-live-odds-board.n9-posthero-odds thead th.n9-live-time-head,
.n9-live-odds-board.n9-posthero-odds tbody td.n9-live-ko{
  position:sticky!important;
  left:0!important;
  width:var(--n9-ko-w)!important;
  min-width:var(--n9-ko-w)!important;
  max-width:var(--n9-ko-w)!important;
  background:#061523!important;
  background-clip:padding-box!important;
  overflow:hidden!important;
  isolation:isolate;
  transform:translateZ(0);
}
/* Freeze Match immediately after KO Time. */
.n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head,
.n9-live-odds-board.n9-posthero-odds tbody td.n9-live-match{
  position:sticky!important;
  left:var(--n9-ko-w)!important;
  width:var(--n9-match-w)!important;
  min-width:var(--n9-match-w)!important;
  max-width:var(--n9-match-w)!important;
  background:#061523!important;
  background-clip:padding-box!important;
  overflow:hidden!important;
  isolation:isolate;
  transform:translateZ(0);
  box-shadow:12px 0 18px -16px rgba(0,0,0,.95),1px 0 0 rgba(72,99,130,.52);
}
/* Frozen body cells must paint above all moving bookmaker cells. */
.n9-live-odds-board.n9-posthero-odds tbody td.n9-live-ko{z-index:30!important}
.n9-live-odds-board.n9-posthero-odds tbody td.n9-live-match{z-index:29!important}
/* Header remains vertically sticky AND horizontally frozen. */
.n9-live-odds-board.n9-posthero-odds thead th.n9-live-time-head{top:0!important;z-index:52!important}
.n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head{top:0!important;z-index:51!important}
.n9-live-odds-board.n9-posthero-odds thead th[data-n9-book-col],
.n9-live-odds-board.n9-posthero-odds thead th.n9-live-best-head{z-index:20!important}
/* Nothing inside the fixed match cell may paint outside its own box. */
.n9-live-odds-board .n9-live-match>a.n9-posthero-matchup{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  contain:paint;
}
.n9-live-odds-board .n9-live-match .n9-posthero-match-team{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.n9-live-odds-board .n9-live-match .n9-posthero-match-team strong{
  display:block;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
/* Preserve solid frozen layers during hover. */
.n9-live-odds-board.n9-posthero-odds tbody tr:hover td.n9-live-ko,
.n9-live-odds-board.n9-posthero-odds tbody tr:hover td.n9-live-match{
  background:#091b2b!important;
}
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds thead th.n9-live-time-head,
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head,
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds tbody td.n9-live-ko,
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds tbody td.n9-live-match{
  background:#fff!important;
}
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds tbody tr:hover td.n9-live-ko,
html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds tbody tr:hover td.n9-live-match{
  background:#f6fbf8!important;
}
/* Tablet: retain both frozen columns but reclaim space for the first odds column. */
@media(max-width:900px){
  .n9-live-odds-board{--n9-ko-w:82px;--n9-match-w:258px}
  .n9-live-odds-board .n9-live-match>a.n9-posthero-matchup{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)!important;gap:5px}
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team,
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-home,
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-away{grid-template-columns:21px minmax(0,1fr)!important;gap:5px}
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team img{width:20px!important;height:20px!important;min-width:20px}
}
/* Phone: keep both context columns fixed, compact by width—not by tiny type. */
@media(max-width:640px){
  .n9-live-odds-board{--n9-ko-w:72px;--n9-match-w:220px}
  .n9-live-odds-board.n9-posthero-odds th,
  .n9-live-odds-board.n9-posthero-odds td{padding-left:7px!important;padding-right:7px!important}
  .n9-live-odds-board .n9-live-ko time{font-size:11px!important}
  .n9-live-odds-board .n9-live-ko small{font-size:9px!important}
  .n9-live-odds-board .n9-live-match>a.n9-posthero-matchup{grid-template-columns:minmax(0,1fr) 15px minmax(0,1fr)!important;gap:4px}
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team,
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-home,
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-away{grid-template-columns:19px minmax(0,1fr)!important;gap:4px}
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team img{width:18px!important;height:18px!important;min-width:18px}
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team strong{font-size:11px!important}
  /* Visual edge communicates that the odds area can be swiped horizontally. */
  .n9-live-odds-board.n9-posthero-odds tbody td.n9-live-match,
  .n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head{
    box-shadow:14px 0 18px -15px rgba(0,0,0,.92),2px 0 0 rgba(34,227,157,.22);
  }
}
@media(max-width:420px){
  .n9-live-odds-board{--n9-ko-w:68px;--n9-match-w:204px}
}
@media(max-width:480px){
  .n9-live-odds-board{--n9-ko-w:66px;--n9-match-w:194px}
}
@media(max-width:380px){
  .n9-live-odds-board{--n9-ko-w:64px;--n9-match-w:184px}
}

/* v2.3.48.279 — mobile-only odds table usability refinement.
   Keep KO Time + Match frozen for context, but make the frozen pane materially
   narrower on phones.  On mobile the two teams stack vertically inside Match,
   giving names room to breathe while leaving a useful viewport for bookmaker
   prices. Desktop/tablet behavior is intentionally unchanged. */
@media (max-width:640px){
  .n9-live-odds-board{
    --n9-ko-w:58px;
    --n9-match-w:172px;
  }

  .n9-live-odds-board.n9-posthero-odds .n9-posthero-odds-scroll{
    scroll-padding-left:calc(var(--n9-ko-w) + var(--n9-match-w));
    scrollbar-gutter:stable;
  }

  /* Reclaim horizontal room without shrinking the readable odds type. */
  .n9-live-odds-board.n9-posthero-odds th[data-n9-book-col],
  .n9-live-odds-board.n9-posthero-odds td[data-n9-book-col]{
    width:140px!important;
    min-width:140px!important;
    max-width:140px!important;
  }
  .n9-live-odds-board.n9-posthero-odds th.n9-live-best-head,
  .n9-live-odds-board.n9-posthero-odds td.n9-live-best{
    width:172px!important;
    min-width:172px!important;
    max-width:172px!important;
  }

  .n9-live-odds-board.n9-posthero-odds th,
  .n9-live-odds-board.n9-posthero-odds td{
    padding-left:6px!important;
    padding-right:6px!important;
  }

  .n9-live-odds-board .n9-live-ko time{
    font-size:11px!important;
    line-height:1.1!important;
  }
  .n9-live-odds-board .n9-live-ko small{
    margin-top:3px!important;
    font-size:9px!important;
  }

  /* Mobile match identity: one team per line instead of squeezing two teams
     side-by-side into the frozen pane. */
  .n9-live-odds-board .n9-live-match>a.n9-posthero-matchup{
    position:relative;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    gap:6px!important;
    align-content:center;
    min-height:46px;
    padding:1px 0!important;
  }
  .n9-live-odds-board .n9-live-match>a.n9-posthero-matchup>em{
    display:none!important;
  }
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team,
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-home,
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-away{
    display:grid!important;
    grid-template-columns:20px minmax(0,1fr)!important;
    gap:7px!important;
    width:100%;
    min-width:0;
    align-items:center;
  }
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team img{
    width:20px!important;
    height:20px!important;
    min-width:20px!important;
  }
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team strong{
    font-size:11px!important;
    line-height:1.15!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  /* Make it obvious that the frozen pane is context and prices continue right. */
  .n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head{
    padding-right:36px!important;
  }
  .n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head::after{
    content:'Odds →';
    position:absolute;
    right:7px;
    top:50%;
    transform:translateY(-50%);
    color:#2ce5a0;
    font-size:8px;
    line-height:1;
    font-weight:850;
    letter-spacing:.02em;
    white-space:nowrap;
    opacity:.92;
  }
  html[data-n9-theme="light"] .n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head::after{
    color:#0aa86f;
  }
}

@media (max-width:480px){
  .n9-live-odds-board{
    --n9-ko-w:56px;
    --n9-match-w:166px;
  }
  .n9-live-odds-board.n9-posthero-odds th[data-n9-book-col],
  .n9-live-odds-board.n9-posthero-odds td[data-n9-book-col]{
    width:138px!important;
    min-width:138px!important;
    max-width:138px!important;
  }
}

@media (max-width:380px){
  .n9-live-odds-board{
    --n9-ko-w:54px;
    --n9-match-w:158px;
  }
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team,
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-home,
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team.is-away{
    grid-template-columns:19px minmax(0,1fr)!important;
    gap:6px!important;
  }
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team img{
    width:19px!important;
    height:19px!important;
    min-width:19px!important;
  }
}

/* v2.3.48.280 — mobile-only full-table horizontal swipe.
   On phones KO Time + Match now travel with the bookmaker columns instead of
   remaining frozen. Desktop/tablet retain the v278 frozen-context behaviour.
   This gives the mobile viewport access to the full odds board without a large
   fixed pane consuming most of the screen. */
@media (max-width:640px){
  .n9-live-odds-board{
    --n9-ko-w:64px;
    --n9-match-w:210px;
  }

  .n9-live-odds-board.n9-posthero-odds .n9-posthero-odds-scroll{
    overflow-x:auto!important;
    overflow-y:auto!important;
    scroll-padding-left:0!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y;
    overscroll-behavior-x:contain;
  }

  /* Body: all columns belong to one horizontal scroll plane on mobile. */
  .n9-live-odds-board.n9-posthero-odds tbody td.n9-live-ko,
  .n9-live-odds-board.n9-posthero-odds tbody td.n9-live-match{
    position:static!important;
    left:auto!important;
    z-index:auto!important;
    transform:none!important;
    isolation:auto!important;
    box-shadow:none!important;
    width:auto!important;
    max-width:none!important;
  }
  .n9-live-odds-board.n9-posthero-odds tbody td.n9-live-ko{
    width:var(--n9-ko-w)!important;
    min-width:var(--n9-ko-w)!important;
    max-width:var(--n9-ko-w)!important;
  }
  .n9-live-odds-board.n9-posthero-odds tbody td.n9-live-match{
    width:var(--n9-match-w)!important;
    min-width:var(--n9-match-w)!important;
    max-width:var(--n9-match-w)!important;
  }

  /* Header stays sticky vertically only; it must pan horizontally with body. */
  .n9-live-odds-board.n9-posthero-odds thead th.n9-live-time-head,
  .n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head{
    position:sticky!important;
    top:0!important;
    left:auto!important;
    transform:none!important;
    isolation:auto!important;
    box-shadow:none!important;
    z-index:20!important;
  }
  .n9-live-odds-board.n9-posthero-odds thead th.n9-live-time-head{
    width:var(--n9-ko-w)!important;
    min-width:var(--n9-ko-w)!important;
    max-width:var(--n9-ko-w)!important;
  }
  .n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head{
    width:var(--n9-match-w)!important;
    min-width:var(--n9-match-w)!important;
    max-width:var(--n9-match-w)!important;
    padding-right:42px!important;
  }
  .n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head::after{
    content:'Swipe →'!important;
    right:7px!important;
  }

  /* Keep the readable two-line match identity from v279. */
  .n9-live-odds-board .n9-live-match>a.n9-posthero-matchup{
    min-width:0!important;
    max-width:100%!important;
  }
  .n9-live-odds-board .n9-live-match .n9-posthero-match-team strong{
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  /* Removing the frozen pane means no divider/shadow should remain. */
  .n9-live-odds-board.n9-posthero-odds tbody tr:hover td.n9-live-ko,
  .n9-live-odds-board.n9-posthero-odds tbody tr:hover td.n9-live-match{
    box-shadow:none!important;
  }
}

/* v2.3.48.299 — one complete horizontal rail on every viewport.
   KO Time and Match no longer form a frozen pane. They retain their readable
   widths and vertically sticky header cells, but travel horizontally with all
   bookmaker and Best Odds columns from the table's natural first-column origin. */
.n9-live-odds-board.n9-posthero-odds .n9-posthero-odds-scroll{
  scroll-padding-left:0!important;
  scroll-behavior:smooth;
  overscroll-behavior-x:contain;
  touch-action:pan-x pan-y;
  -webkit-overflow-scrolling:touch;
}
.n9-live-odds-board.n9-posthero-odds tbody td.n9-live-ko,
.n9-live-odds-board.n9-posthero-odds tbody td.n9-live-match{
  position:static!important;
  left:auto!important;
  z-index:auto!important;
  transform:none!important;
  isolation:auto!important;
  box-shadow:none!important;
}
.n9-live-odds-board.n9-posthero-odds thead th.n9-live-time-head,
.n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head{
  position:sticky!important;
  top:0!important;
  left:auto!important;
  z-index:20!important;
  transform:none!important;
  isolation:auto!important;
  box-shadow:none!important;
}
.n9-live-odds-board.n9-posthero-odds thead th.n9-live-match-head::after{
  content:none!important;
  display:none!important;
}

@media (max-width:480px){
  .n9-live-odds-board{
    --n9-ko-w:60px;
    --n9-match-w:202px;
  }
}

@media (max-width:380px){
  .n9-live-odds-board{
    --n9-ko-w:58px;
    --n9-match-w:194px;
  }
}


/* v2.3.48.281 — mobile league-chip carousel integrity.
   Keep desktop/tablet unchanged. On phones the dynamic league buttons use one
   independent horizontal flex rail so long league names never collide or paint
   into neighboring cards while the user swipes. */
@media (max-width:640px){
  .n9-live-odds-board .n9-live-league-chips{
    display:flex!important;
    grid-template-columns:none!important;
    align-items:stretch;
    gap:8px!important;
    width:100%;
    max-width:100%;
    margin:0 0 14px!important;
    padding:2px 4px 5px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x proximity;
    scroll-padding-inline:4px;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x;
    scrollbar-width:none;
  }
  .n9-live-odds-board .n9-live-league-chips::-webkit-scrollbar{display:none!important}
  .n9-live-odds-board .n9-live-league-chips button{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:128px!important;
    max-width:min(78vw,250px)!important;
    min-height:46px!important;
    padding:8px 12px!important;
    gap:7px!important;
    overflow:hidden!important;
    scroll-snap-align:start;
    scroll-snap-stop:normal;
    contain:paint;
  }
  .n9-live-odds-board .n9-live-league-chips button img{
    flex:0 0 22px!important;
    width:22px!important;
    height:22px!important;
    min-width:22px!important;
    object-fit:contain;
  }
  .n9-live-odds-board .n9-live-league-chips button span{
    display:block;
    min-width:0;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    line-height:1.2;
  }
  .n9-live-odds-board .n9-live-league-chips button[data-n9-odds-league="all"]{
    min-width:112px!important;
  }
}
@media (max-width:420px){
  .n9-live-odds-board .n9-live-league-chips button{
    min-width:122px!important;
    max-width:76vw!important;
    padding-inline:10px!important;
  }
  .n9-live-odds-board .n9-live-league-chips button[data-n9-odds-league="all"]{
    min-width:104px!important;
  }
}


/* v2.3.48.282 — clean filtered-state layout for Compare Live Football Odds.
   Filtering must collapse the table to the columns the user actually selected,
   instead of leaving the full seven-bookmaker canvas behind.  No odds/feed logic
   changes: this only improves the presentation of the already-filtered rows. */

.n9-live-odds-board.n9-posthero-odds [data-n9-book-col][hidden]{display:none!important}
.n9-live-odds-board .n9-live-odds-selectors label.is-active-filter{
  border-color:rgba(24,214,146,.62);
  box-shadow:0 0 0 1px rgba(24,214,146,.10);
}
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-posthero-odds-scroll{
  overflow-x:hidden;
  scrollbar-gutter:auto;
}
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker table{
  width:100%!important;
  min-width:100%!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-live-time-head,
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td.n9-live-ko{
  width:96px!important;
  min-width:96px!important;
  max-width:96px!important;
}
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-live-match-head,
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td.n9-live-match{
  width:43%!important;
  min-width:360px!important;
  max-width:none!important;
}
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker th[data-n9-book-col]:not([hidden]),
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td[data-n9-book-col]:not([hidden]){
  width:24%!important;
  min-width:210px!important;
  max-width:none!important;
}
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-live-best-head,
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td.n9-live-best{
  width:24%!important;
  min-width:220px!important;
  max-width:none!important;
}
/* With one bookmaker visible the context pane no longer needs a heavy frozen-edge shadow. */
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-live-match-head,
.n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td.n9-live-match{
  box-shadow:none!important;
}
html[data-n9-theme="light"] .n9-live-odds-board .n9-live-odds-selectors label.is-active-filter{
  border-color:#6edbb5;
  box-shadow:0 0 0 1px rgba(14,168,111,.08);
}

/* Tablet keeps the compact filtered table readable without recreating the huge
   all-bookmaker horizontal canvas. */
@media (max-width:900px) and (min-width:641px){
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-posthero-odds-scroll{overflow-x:auto}
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker table{
    width:980px!important;
    min-width:980px!important;
    max-width:none!important;
  }
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-live-match-head,
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td.n9-live-match{
    width:390px!important;
    min-width:390px!important;
  }
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker th[data-n9-book-col]:not([hidden]),
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td[data-n9-book-col]:not([hidden]){
    width:235px!important;
    min-width:235px!important;
  }
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-live-best-head,
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td.n9-live-best{
    width:255px!important;
    min-width:255px!important;
  }
}

/* Mobile already uses the v280 full-table swipe model.  When a bookmaker is
   filtered, shrink the scroll canvas to four useful columns so users do not pan
   through blank space left by the hidden bookmakers. */
@media (max-width:640px){
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-posthero-odds-scroll{
    overflow-x:auto!important;
  }
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker table{
    width:690px!important;
    min-width:690px!important;
    max-width:none!important;
  }
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-live-time-head,
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td.n9-live-ko{
    width:64px!important;
    min-width:64px!important;
    max-width:64px!important;
  }
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-live-match-head,
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td.n9-live-match{
    width:238px!important;
    min-width:238px!important;
    max-width:238px!important;
  }
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker th[data-n9-book-col]:not([hidden]),
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td[data-n9-book-col]:not([hidden]){
    width:168px!important;
    min-width:168px!important;
    max-width:168px!important;
  }
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker .n9-live-best-head,
  .n9-live-odds-board.n9-posthero-odds.is-single-bookmaker td.n9-live-best{
    width:220px!important;
    min-width:220px!important;
    max-width:220px!important;
  }
}
