.csbw {
  --csbw-bg: #fff;
  --csbw-soft: #f7f8fa;
  --csbw-text: #111827;
  --csbw-dim: #64748b;
  --csbw-line: #e4e8f0;
  --csbw-accent: #c8102e;
  --csbw-win: #0fae5e;
  --csbw-draw: #8a94ad;
  --csbw-loss: #d64545;
  container-type: inline-size;
  background: var(--csbw-bg);
  color: var(--csbw-text);
  border: 1px solid var(--csbw-line);
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .035);
  overflow: hidden;
  font-size: 14px;
  line-height: 1.4;
  margin: 0 0 1.25rem;
  min-width: 0;
}
.csbw__head {
  position: relative;
  background: linear-gradient(90deg, #fff 0%, #fdf3f4 100%);
  color: #111827;
  font-weight: 700;
  padding: 11px 16px;
  border-bottom: 1px solid #f0e3e5;
}
/* On the live match page the hero title is the page's h1: keep the box title's look. */
.csbw h1.csbw__head--h1 { margin: 0; font-family: inherit; font-size: 1em; line-height: inherit; letter-spacing: normal; text-transform: none; }
.csbw__body { padding: 8px 14px; }
.csbw__foot {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  border-top: 1px solid var(--csbw-line);
  padding: 8px 14px;
  font-size: 12px;
  color: var(--csbw-dim);
}
.csbw__credit { color: var(--csbw-accent); font-weight: 600; text-decoration: none; margin-left: auto; }
.csbw__notice { color: var(--csbw-dim); margin: 8px 0; }

/* Teams */
.csbw-team { display: inline-flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%; }
.csbw-team img { flex: none; object-fit: contain; width: 18px; height: 18px; margin: 0; }
.csbw-team span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.csbw-team--lg { flex-direction: column; gap: 8px; text-align: center; font-weight: 700; font-size: 16px; }
.csbw-team--lg img { width: 44px; height: 44px; }
.csbw-team--lg span { white-space: normal; }
.csbw-team-link { display: flex; max-width: 100%; min-width: 0; color: inherit; text-decoration: none; }
.csbw-team-link:hover .csbw-team span, .csbw-team-link:focus-visible .csbw-team span { text-decoration: underline; }

/* Today's picks */
.csbw-picks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 10px; }
.csbw-picks__item > a, .csbw-picks__item > span:first-child { color: inherit; text-decoration: none; }
.csbw-picks__item { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 10px; background: var(--csbw-soft); }
.csbw-picks__item a { display: flex; flex-direction: column; gap: 2px; }
.csbw-picks__meta { font-size: 11px; color: var(--csbw-dim); }
.csbw-picks__match { font-weight: 700; }
.csbw-picks__pick { font-size: 13px; color: var(--csbw-accent); }

/* Match slider: horizontal cards */
.csbw-cards { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(200px, 1fr); gap: 10px; overflow-x: auto; padding: 4px 0 8px; scroll-snap-type: x mandatory; }
.csbw-card { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border: 1px solid var(--csbw-line); border-radius: 10px; color: inherit; text-decoration: none; scroll-snap-align: start; min-width: 0; }
a.csbw-card:hover, a.csbw-card:focus-visible { border-color: var(--csbw-accent); }
.csbw-card__when { font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--csbw-dim); }
.csbw-card__teams { display: flex; flex-direction: column; gap: 4px; }
.csbw-card__pick { font-size: 12px; font-weight: 600; color: var(--csbw-accent); }

/* Scores and calendar lists */
.csbw-list { list-style: none; margin: 0; padding: 0; }
.csbw-list__day {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--csbw-dim);
  padding: 10px 0 4px;
}
.csbw-match {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 6px 0;
  border-bottom: 1px solid var(--csbw-line);
}
.csbw-match:last-child { border-bottom: 0; }
.csbw-match__link {
  display: flex;
  flex: 1;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  min-width: 0;
  margin: -6px -8px;
  padding: 6px 8px;
  border-radius: 8px;
  color: inherit;
  text-decoration: none;
}
.csbw-match__link:hover, .csbw-match__link:focus-visible { background: var(--csbw-soft); }
.csbw-match__teams { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.csbw-match__comp { font-size: 11px; color: var(--csbw-dim); }
.csbw-match__side { display: flex; align-items: center; gap: 8px; flex: none; }
.csbw-score { display: flex; flex-direction: column; text-align: right; font-weight: 700; }
.csbw-state { font-size: 12px; color: var(--csbw-dim); }
.csbw-match--live .csbw-state { color: var(--csbw-loss); font-weight: 700; }

/* Table: fixed layout so long names ellipsise; selectors carry .csbw to beat theme table rules. */
.csbw .csbw-table { width: 100%; border-collapse: collapse; table-layout: fixed; margin: 0; font-size: 13px; }
.csbw .csbw-table th,
.csbw .csbw-table td {
  padding: 7px 2px;
  border: 0;
  border-bottom: 1px solid var(--csbw-line);
  background: none;
  text-align: center;
  vertical-align: middle;
}
.csbw .csbw-table tr:last-child td { border-bottom: 0; }
.csbw .csbw-table th { font-size: 11px; color: var(--csbw-dim); font-weight: 600; }
.csbw .csbw-table th.csbw-c-rank { width: 26px; }
.csbw .csbw-table th.csbw-c-num { width: 26px; }
.csbw .csbw-table th.csbw-c-gd { width: 36px; }
.csbw .csbw-table th.csbw-c-pts { width: 34px; }
.csbw .csbw-table th.csbw-c-form { width: 94px; }
.csbw .csbw-table .csbw-c-team { text-align: left; overflow: hidden; }
.csbw .csbw-table td.csbw-c-team .csbw-team { display: flex; }
.csbw .csbw-table td.csbw-c-form { white-space: nowrap; }
.csbw .csbw-table tr.is-highlight td { background: #eef3ff; font-weight: 600; }
.csbw-table__pts { font-weight: 700; }
.csbw-form {
  display: inline-block;
  width: 16px;
  line-height: 16px;
  margin: 0 1px;
  border-radius: 4px;
  color: #fff;
  font-style: normal;
  font-size: 10px;
  font-weight: 700;
  text-align: center;
}
.csbw-form--w { background: var(--csbw-win); }
.csbw-form--d { background: var(--csbw-draw); }
.csbw-form--l { background: var(--csbw-loss); }

/* Table zones (Betora's "description"): a coloured edge on the rank, with a legend */
.csbw .csbw-table td.csbw-zone { box-shadow: inset 3px 0 0 var(--csbw-zone); }
.csbw-zone--0 { --csbw-zone: #2e51e0; }
.csbw-zone--1 { --csbw-zone: #0f9bbd; }
.csbw-zone--2 { --csbw-zone: #0fae5e; }
.csbw-zone--3 { --csbw-zone: #e0a100; }
.csbw-zone--4 { --csbw-zone: #d64545; }
.csbw-zone--5 { --csbw-zone: #8a94ad; }
.csbw-zones { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 11px; color: var(--csbw-dim); }
.csbw-zones i { display: inline-block; width: 10px; height: 10px; margin-right: 5px; border-radius: 2px; background: var(--csbw-zone); vertical-align: middle; }

/* Match */
.csbw-fixture { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; padding: 6px 0; }
.csbw-fixture .csbw-team:last-child { justify-content: flex-end; }
.csbw-fixture--lg { padding: 14px 0 8px; }
.csbw-fixture--lg .csbw-team, .csbw-fixture--lg .csbw-team:last-child { justify-content: center; }
.csbw-fixture > .csbw-team-link { display: flex; min-width: 0; }
.csbw-fixture > .csbw-team-link:last-child { justify-content: flex-end; }
.csbw-fixture--lg > .csbw-team-link, .csbw-fixture--lg > .csbw-team-link:last-child { justify-content: center; }
.csbw-fixture--lg > .csbw-team-link .csbw-team { width: 100%; }
.csbw-fixture__middle { display: flex; flex-direction: column; align-items: center; text-align: center; }
.csbw-fixture__middle small { font-size: 12px; color: var(--csbw-dim); }
.csbw-fixture__state--live { color: var(--csbw-loss) !important; font-weight: 700; }
.csbw-fixture--lg .csbw-fixture__middle b { font-size: 26px; line-height: 1.1; }
.csbw-probs { display: flex; height: 8px; border-radius: 4px; overflow: hidden; margin: 10px 0 4px; background: var(--csbw-line); }
.csbw-probs--mini { height: 5px; margin: 2px 0; }
.csbw-probs__home { background: var(--csbw-accent); }
.csbw-probs__draw { background: #c6cedd; }
.csbw-probs__away { background: #0f9bbd; }
.csbw-probs__legend { display: flex; justify-content: space-between; font-size: 12px; font-weight: 600; }
.csbw-predicted {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  margin: 8px 0 4px; padding: 10px 12px; border-radius: 10px;
  background: linear-gradient(180deg, #fff 0%, #f8fafc 100%); border: 1px solid #e8ebf1;
}
.csbw-predicted span { font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--csbw-dim); }
.csbw-predicted b { font-size: 16px; font-weight: 800; color: #0f172a; }
/* The pick is the headline of the two: it carries the accent. */
.csbw-predicted:first-of-type { background: linear-gradient(180deg, #fff 0%, #fff5f6 100%); border-color: #f3d8dc; }
.csbw-predicted:first-of-type b { color: var(--csbw-accent); }
html.s-dark .csbw-predicted, html.site-s-dark .csbw-predicted { background: #131a24; border-color: rgba(255, 255, 255, .08); }
html.s-dark .csbw-predicted b, html.site-s-dark .csbw-predicted b { color: #e5e7eb; }
html.s-dark .csbw-predicted:first-of-type, html.site-s-dark .csbw-predicted:first-of-type { background: #1b1418; border-color: rgba(240, 98, 107, .35); }
html.s-dark .csbw-predicted:first-of-type b, html.site-s-dark .csbw-predicted:first-of-type b { color: #f0626b; }

/* Match events */
.csbw-events { list-style: none; margin: 0; padding: 0; }
.csbw-event { display: flex; align-items: baseline; gap: 8px; padding: 5px 0; border-bottom: 1px solid var(--csbw-line); font-size: 13px; }
.csbw-event:last-child { border-bottom: 0; }
.csbw-event--away { flex-direction: row-reverse; text-align: right; }
.csbw-event__min { flex: none; width: 40px; font-weight: 700; color: var(--csbw-dim); }
.csbw-event--away .csbw-event__min { text-align: right; }
.csbw-event__kind { flex: none; padding: 1px 6px; border-radius: 4px; font-size: 11px; font-weight: 700; background: var(--csbw-soft); }
.csbw-event__kind--goal, .csbw-event__kind--penalty_goal { background: #e3f7ec; color: #0a7a41; }
.csbw-event__kind--own_goal, .csbw-event__kind--red, .csbw-event__kind--second_yellow { background: #fdecec; color: #b03030; }
.csbw-event__kind--yellow { background: #fff4cc; color: #8a6d00; }
.csbw-event__who { min-width: 0; }

/* Line-ups: pitch view per side, goalkeeper at the bottom */
.csbw-lineups__status { margin: 4px 0 8px; font-size: 12px; color: var(--csbw-dim); }
.csbw-lineups { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 16px; }
.csbw-lineups h4 { margin: 0 0 4px; font-size: 14px; }
.csbw-lineups__note { margin: 6px 0 2px; font-size: 12px; color: var(--csbw-dim); }
.csbw-pitch {
  display: flex;
  flex-direction: column-reverse;
  gap: 10px;
  margin: 6px 0;
  padding: 12px 6px;
  border-radius: 10px;
  background: linear-gradient(180deg, #2f8f4e, #267a41);
}
.csbw-pitch__row { display: flex; justify-content: space-around; gap: 4px; }
.csbw-pitch__p { display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; flex: 1; color: #fff; font-size: 11px; text-align: center; }
.csbw-pitch__p b { display: inline-block; width: 24px; line-height: 24px; border-radius: 50%; background: #fff; color: #0e1626; font-size: 11px; }
.csbw-pitch__p span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.csbw-players { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.csbw-players li { display: flex; gap: 8px; padding: 2px 0; }
.csbw-players__no { flex: none; width: 22px; text-align: right; color: var(--csbw-dim); }
.csbw-players small { color: var(--csbw-dim); }

/* Recent results */
.csbw-recent { list-style: none; margin: 0; padding: 0; }
.csbw-recent li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px solid var(--csbw-line); font-size: 13px; }
.csbw-recent li:last-child { border-bottom: 0; }
.csbw-recent__opp { display: flex; flex-direction: column; min-width: 0; }
.csbw-recent__opp small { font-size: 11px; color: var(--csbw-dim); }
.csbw-recent__score { font-weight: 700; }

/* Head-to-head */
.csbw-h2h__record { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; }
.csbw-h2h__record > span { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 12px; min-width: 0; }
.csbw-h2h__record b { font-size: 20px; }
.csbw-h2h__count { font-size: 12px; color: var(--csbw-dim); margin: 6px 0; }
.csbw-h2h__next {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin: 10px 0 2px; padding: 8px 10px; border-radius: 8px; background: var(--csbw-soft);
  font-size: 12.5px; font-weight: 600; color: var(--csbw-text);
}
.csbw-h2h__next-label { font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--csbw-dim); }
/* The box footer is a note, not a row of data: lighter than the list above it. */
.csbw .csbw__updated { font-size: 11px; opacity: .75; }
.csbw-h2h__list { list-style: none; margin: 0; padding: 0; }
.csbw-h2h__list li {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  border-bottom: 1px solid var(--csbw-line);
  font-size: 13px;
}
.csbw-h2h__list li:last-child { border-bottom: 0; }
.csbw-h2h__when { display: flex; flex-direction: column; font-size: 12px; line-height: 1.25; color: var(--csbw-dim); }
.csbw-h2h__when small { font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.csbw-h2h__home, .csbw-h2h__away { display: flex; min-width: 0; }
.csbw-h2h__home { justify-content: flex-end; }
.csbw-h2h__home .csbw-team { flex-direction: row-reverse; }
.csbw-h2h__score { padding: 2px 8px; border-radius: 6px; background: var(--csbw-soft); white-space: nowrap; }
.csbw-h2h__list .is-winner { font-weight: 700; }

/* Team card */
.csbw-teamcard__id { display: flex; justify-content: center; padding: 8px 0; }
.csbw-teamcard__row { display: flex; justify-content: space-between; align-items: center; margin: 6px 0; }
.csbw-teamcard__label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--csbw-dim); }
.csbw-teamcard__next {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 8px;
  margin: 8px 0 4px; padding: 10px 12px; border-radius: 10px; background: var(--csbw-soft);
}
.csbw-teamcard__next .csbw-teamcard__label { grid-column: 1 / -1; margin-bottom: 2px; }
.csbw-teamcard__opp { display: flex; align-items: center; gap: 6px; font-weight: 700; min-width: 0; }
.csbw-teamcard__opp .csbw-team span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.csbw-teamcard__next .csbw-ha { justify-self: end; margin: 0; }
.csbw-teamcard__meta { font-size: 12px; color: var(--csbw-dim); }
.csbw-teamcard__win { justify-self: end; font-size: 12px; color: var(--csbw-dim); white-space: nowrap; }
.csbw-teamcard__win b { color: var(--csbw-accent); font-size: 13px; }

/* Narrow boxes drop the W/D/L and goal columns rather than squeezing the team names. */
@container (max-width: 520px) {
  .csbw .csbw-table .csbw-col-x { display: none; }
}

/* Test page. Container queries: the layout follows the content column, not the viewport. */
.csbw-test { container-type: inline-size; margin: 0 0 2rem; }
.csbw-test__intro {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  align-items: baseline;
  margin: 0 0 14px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #f3f6fa;
  color: #46536e;
  font-size: 13px;
}
.csbw-test__intro strong { color: #0e1626; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.csbw-test__nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.csbw-test__nav a {
  padding: 6px 14px;
  border: 1px solid #e4e8f0;
  border-radius: 999px;
  color: #0e1626;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}
.csbw-test__nav a:hover { border-color: #f0cdd2; color: #9f1023; }
.csbw-test__section { margin: 28px 0 0; scroll-margin-top: 90px; }
.csbw-test__title { margin: 0 0 14px; padding: 0 0 8px; border-bottom: 2px solid #f0cdd2; font-size: 20px; line-height: 1.2; }
.csbw-test__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; margin: 0 0 16px; }
.csbw-test > .csbw, .csbw-test__section > .csbw { margin: 0 0 16px; }
.csbw-test__row .csbw { margin: 0; }
.csbw-test__cell { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.csbw-test__more, .csbw-test__back { font-size: 13px; font-weight: 600; color: #b0101f; text-decoration: none; }
.csbw-test__more { align-self: flex-end; }
.csbw-test__back { display: inline-block; margin: 0 0 12px; }
.csbw--hero .csbw__body { padding: 10px 18px 12px; }

@container (min-width: 760px) {
  .csbw-test__row--main { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
  .csbw-test__row--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---- Ticker ----
 * Cards (csh-item...) are drawn by the site's own ticker stylesheet. Only the
 * wrapper is ours, copied from .csh-container, which this ticker cannot use. */
.csbw-ticker {
  margin: 28px 0 24px;
  padding: 8px 10px 6px;
  background: #fff;
  border: 1px solid #e6e8ee;
  border-radius: 12px;
  box-shadow: 0 1px 4px rgba(15, 23, 42, .05);
}
/* Some club crests are tall; keep every card the same height. */
.csbw-ticker .csh-team-logo { width: 18px !important; height: 18px !important; object-fit: contain; }
.csbw-ticker .csh-inner .csh-item:first-child { border-left: 0; }
.csbw-ticker__strip {
  position: relative;
  width: 100%;
  padding: 5px 0;
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  color: #333;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.csbw-ticker .csh-inner::-webkit-scrollbar { display: none; }
.csbw-ticker__empty { padding: 12px; font-size: 13px; color: #666; }
.csbw-ticker__credit { display: block; text-align: right; font-size: 11px; color: #777; text-decoration: none; padding: 4px 6px 0; border-top: 1px solid #f0f1f5; margin-top: 4px; }
.csbw-ticker__credit:hover { text-decoration: underline; }
@media (max-width: 768px) {
  .csbw-ticker .csh-arrow { display: none; }
  .csbw-ticker .csh-inner { margin: 0; width: 100%; }
  .csbw-ticker { margin: 16px 0; padding: 6px 4px 4px; border-radius: 10px; }
}

/* The header ticker once live (#csh-ajax-ticker is the theme's slot): no card margin, and the width the
   site's custom CSS gives the SportsAPI ticker on desktop. */
#csh-ajax-ticker .csbw-ticker { margin: 0 auto; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
#csh-ajax-ticker .csbw-ticker__strip { padding: 0; }
#csh-ajax-ticker .csh-inner { padding: 0; }
/* The credit stays (Betora asks for it) but sits tight under the strip. */
#csh-ajax-ticker .csbw-ticker__credit { margin: 1px 6px 2px; font-size: 10px; }
@media (min-width: 1200px) {
  #csh-ajax-ticker .csbw-ticker { max-width: 1200px; }
}

/* ---- Live scores ----
 * The page is drawn by SportsAPI's live-scores.css; these are only Betora's own parts. */
.csbw-ls__credit { display: block; text-align: right; font-size: 11px; color: #777; text-decoration: none; margin: 12px 4px 0; }
.csbw-ls__credit:hover { text-decoration: underline; }
.csbw-test__nav a.csbw-test__cta {
  display: inline-flex; align-items: center; gap: 8px;
  border-color: transparent; color: #fff;
  background: linear-gradient(135deg, #d50102, #9f1023);
  box-shadow: 0 4px 12px rgba(213, 1, 2, .25);
}
.csbw-test__nav a.csbw-test__cta:hover { color: #fff; border-color: transparent; filter: brightness(1.08); }
.csbw-test__cta i { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: csbw-pulse 1.4s ease-in-out infinite; }
@keyframes csbw-pulse { 50% { opacity: .35; } }

.csbw-ls .csbw__notice { grid-column: 1 / -1; margin: 0; }
.csbw-ls.is-loading .live-score-main { opacity: .55; pointer-events: none; transition: opacity .15s; }
/* Tips page: the prediction slot lays its cards straight into the site's ls-tips-card. */
.csbw-tips-slot { display: contents; }

/* The site's body font (smart-mag child theme sets --body-font to Poppins). */
.csbw, .csbw-test, .csbw-banner, .csbw-ticker {
  font-family: var(--body-font, "Poppins", system-ui, -apple-system, "Segoe UI", Arial, sans-serif);
}

/* Boxes side by side share a height, so a short one does not leave a gap under it. */
.csbw-test__row--pair { align-items: stretch; }
.csbw-test__row--pair > .csbw,
.csbw-test__row--pair > .csbw-test__cell > .csbw { display: flex; flex-direction: column; }
.csbw-test__row--pair > .csbw-test__cell > .csbw { flex: 1; }
.csbw-test__row--pair .csbw__body { flex: 1; }

/* Bench and absences: readable names, the details a step lighter. */
.csbw .csbw-players li { color: #1f2937; font-weight: 500; }
.csbw .csbw-players__no { color: #64748b; font-weight: 600; }
.csbw .csbw-players small { color: #64748b; font-weight: 400; }
.csbw .csbw-lineups__note { color: #475569; font-weight: 600; }

/* ---- Match and team pages (md-card markup from the site; these are the Betora parts) ---- */
.csbw-md { font-family: var(--body-font, "Poppins", system-ui, sans-serif); }
.csbw-md .md-tab-panel { padding: 16px; }
.csbw-md .md-summary-stack { display: grid; gap: 14px; margin: 0 0 14px; }
.csbw-md .md-summary-stack--insights { grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); }
.csbw-md__panel { margin: 0 0 14px; }
.csbw-md__panel .csbw-lineups, .csbw-md__panel .csbw-h2h__list { margin-top: 6px; }
.csbw-md__credit { display: block; margin: 8px 2px 0; text-align: right; color: #94a3b8; font-size: 11px; text-decoration: none; }
.csbw-md__credit:hover { color: #b0101f; }
.csbw-md__empty { margin: 0 0 14px; padding: 18px; border-radius: 12px; background: #f7f8fa; color: #64748b; text-align: center; font-size: 14px; }
.csbw-md__sub { margin: 0 0 6px; color: #111827; font-size: 14px; font-weight: 700; }
.csbw-md__note { margin: 8px 2px 0; color: #475569; font-size: 13px; }
.csbw-md__team-link { display: contents; color: inherit; text-decoration: none; }
.csbw-md__team-link:hover .md-team-name { color: #b0101f; }
.csbw-md-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 16px; }
.csbw-md__body { padding: 16px; }
.csbw-md .csbw-players li, .csbw-md .csbw-recent li { color: #1f2937; }

/* Win chances in the hero */
.csbw-md-probs { max-width: 560px; margin: 14px auto 4px; padding: 12px 14px; border-radius: 12px; background: rgba(255, 255, 255, .75); border: 1px solid #eceff4; }
.csbw-md-probs__bar { display: flex; gap: 3px; height: 10px; }
.csbw-md-probs__seg { display: block; border-radius: 999px; background: #cbd3de; }
.csbw-md-probs__seg.is-pick { background: linear-gradient(90deg, #e3242b, #b0101f); }
.csbw-md-probs__legend { display: flex; justify-content: space-between; gap: 8px; margin-top: 8px; color: #475569; font-size: 13px; }
.csbw-md-probs__legend span:nth-child(2) { text-align: center; }
.csbw-md-probs__legend span:last-child { text-align: right; }
.csbw-md-probs__legend b { color: #111827; }
.csbw-md-probs__legend .is-pick, .csbw-md-probs__legend .is-pick b { color: #b0101f; font-weight: 800; }
.csbw-md-probs__pick { margin: 8px 0 0; color: #475569; font-size: 13px; text-align: center; }
.csbw-md-probs__pick b { color: #111827; }

/* Prediction cards (slider, today's picks, next match) */
.csbw-pickcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 14px; }
.csbw-pickcard { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border: 1px solid #e8ebf1; border-radius: 12px; background: #fff; color: #111827; text-decoration: none; box-shadow: 0 1px 2px rgba(15, 23, 42, .035); transition: border-color .15s, box-shadow .15s, transform .15s; }
a.csbw-pickcard:hover { border-color: #f0cdd2; box-shadow: 0 8px 20px rgba(15, 23, 42, .07); transform: translateY(-1px); }
.csbw-pickcard__meta { color: #64748b; font-size: 11px; font-weight: 600; }
.csbw-pickcard__teams { display: flex; flex-direction: column; gap: 5px; font-weight: 700; font-size: 14px; }
.csbw-pickcard__probs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.csbw-pickcard__probs span { display: flex; flex-direction: column; align-items: center; padding: 5px 0; border-radius: 8px; background: #f3f5f8; }
.csbw-pickcard__probs small { color: #64748b; font-size: 10px; font-weight: 700; }
.csbw-pickcard__probs b { color: #334155; font-size: 14px; }
.csbw-pickcard__probs .is-pick { background: #fdecef; }
.csbw-pickcard__probs .is-pick b, .csbw-pickcard__probs .is-pick small { color: #b0101f; }
.csbw-pickcard__pick { color: #b0101f; font-size: 13px; font-weight: 600; }
.csbw-pickcard__pick b { font-weight: 800; }
.csbw-md-more { margin: 18px 0 0; }
.csbw-md-more__title { margin: 0 0 10px; color: #111827; font-size: 18px; font-weight: 800; }
.csbw-ls-picks { margin: 0 0 18px; }
.csbw-ls-picks__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 0 10px; }
.csbw-ls-picks__head h2 { margin: 0; color: #111827; font-size: 17px; font-weight: 800; }
.csbw-ls-picks__head .csbw-md__credit { margin: 0; }

/* Both line-ups on one pitch */
.csbw-lu { position: relative; }
.csbw-lu__badge { position: absolute; top: -34px; right: 0; padding: 4px 12px; border-radius: 999px; background: #fdf1dc; color: #b7791f; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.csbw-lu__badge.is-confirmed { background: #e6f6ec; color: #15803d; }
.csbw-lu__head { display: grid; grid-template-columns: 1fr 1fr; margin-top: 8px; border: 1px solid #e8ebf1; border-bottom: 0; border-radius: 14px 14px 0 0; background: #fff; }
.csbw-lu__team { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 12px 16px; }
.csbw-lu__team img { flex: none; width: 34px; height: 34px; object-fit: contain; }
.csbw-lu__team span { display: flex; flex-direction: column; min-width: 0; }
.csbw-lu__team b { color: #111827; font-size: 15px; font-weight: 700; }
.csbw-lu__team small { display: flex; align-items: center; gap: 6px; color: #64748b; font-size: 12px; font-weight: 600; }
.csbw-lu__team--away { flex-direction: row-reverse; text-align: right; border-left: 1px solid #e8ebf1; }
.csbw-lu__team--away small { justify-content: flex-end; }
.csbw-lu__dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #c8102e; }
.csbw-lu__team--away .csbw-lu__dot { background: #1e40af; }
.csbw-lu__pitch {
  position: relative;
  overflow: hidden;
  padding: 18px 12px;
  border-radius: 0 0 14px 14px;
  background: repeating-linear-gradient(180deg, #1f7a45 0 56px, #248a4f 56px 112px);
}
.csbw-lu__pitch::before { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255, 255, 255, .45); pointer-events: none; }
.csbw-lu__mark { position: absolute; pointer-events: none; border: 1px solid rgba(255, 255, 255, .45); }
.csbw-lu__mark--line { left: 10px; right: 10px; top: 50%; height: 0; border-width: 1px 0 0; }
.csbw-lu__mark--circle { left: 50%; top: 50%; width: 90px; height: 90px; border-radius: 50%; transform: translate(-50%, -50%); }
.csbw-lu__mark--box-top, .csbw-lu__mark--box-bottom { left: 26%; right: 26%; height: 84px; }
.csbw-lu__mark--box-top { top: 10px; border-top: 0; }
.csbw-lu__mark--box-bottom { bottom: 10px; border-bottom: 0; }
.csbw-lu__half { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 16px; padding: 6px 0 20px; }
.csbw-lu__half--home { padding: 20px 0 6px; }
.csbw-lu__row { display: flex; justify-content: space-around; gap: 6px; }
.csbw-lu__p { display: flex; flex: 1; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.csbw-lu__p b { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 2px solid rgba(255, 255, 255, .9); border-radius: 50%; background: #c8102e; color: #fff; font-size: 14px; font-weight: 800; box-shadow: 0 2px 6px rgba(0, 0, 0, .25); }
.csbw-lu__half--away .csbw-lu__p b { background: #1e40af; }
.csbw-lu__p.is-gk b { background: #b7860b; }
.csbw-lu__p small { max-width: 100%; overflow: hidden; color: #fff; font-size: 11px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 1px 2px rgba(0, 0, 0, .45); }
.csbw-lu__bench { margin-top: 16px; }
@media (max-width: 600px) {
  .csbw-lu__p b { width: 28px; height: 28px; font-size: 12px; }
  .csbw-lu__p small { font-size: 10px; }
  .csbw-lu__team { padding: 10px; gap: 8px; }
  .csbw-lu__team b { font-size: 13px; }
  .csbw-lu__badge { position: static; display: inline-block; margin-bottom: 6px; }
}

/* Team page */
.csbw-team-hero__body { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 8px 0 4px; }
.csbw-team-hero__body .md-team-logo { width: 72px; height: 72px; object-fit: contain; }
.csbw-team-hero__name { margin: 0 0 6px; color: #111827; font-size: 28px; font-weight: 800; line-height: 1.1; }
.csbw-team-hero__form { display: flex; align-items: center; gap: 8px; }
.csbw-team-hero__form small { color: #64748b; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.csbw-md__half { min-width: 0; }

/* ---- Test page title ---- */
.csbw-banner {
  margin: 20px 0 8px;
  padding: 18px 22px;
  border: 1px solid #f0dfe2;
  border-radius: 16px;
  background: linear-gradient(120deg, #fff 0%, #fff6f7 60%, #fdecef 100%);
  box-shadow: 0 1px 3px rgba(15, 23, 42, .04);
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}
.csbw-banner__tag {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  background: #d50102;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.csbw-banner__title { margin: 8px 0 4px; color: #111827; font-size: 26px; font-weight: 800; line-height: 1.2; }
.csbw-banner__text { max-width: 820px; margin: 0; color: #475569; font-size: 14px; line-height: 1.55; }
@media (max-width: 600px) {
  .csbw-banner { padding: 14px 16px; }
  .csbw-banner__title { font-size: 21px; }
}

/* ---- Betora prediction (View tips panel and Tips page) ---- */
.csbw-tip {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(0, 2fr) minmax(120px, .8fr);
  gap: 12px;
  align-items: stretch;
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}
.ls-tips-card .csbw-tip { padding: 14px 16px 12px; }
.csbw-tip > div { background: #f7f8fa; border: 1px solid #eceff4; border-radius: 12px; padding: 12px 14px; min-width: 0; }
.csbw-tip small { display: block; margin: 0 0 6px; color: #64748b; font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.csbw-tip__pick { display: flex; flex-direction: column; justify-content: center; }
.csbw-tip__pick b { color: #111827; font-size: 17px; font-weight: 800; line-height: 1.25; }
.csbw-tip__pct { align-self: flex-start; margin-top: 8px; padding: 3px 10px; border-radius: 999px; background: #fdecef; color: #b0101f; font-size: 14px; font-weight: 800; }
.csbw-tip__row { display: grid; grid-template-columns: minmax(70px, 1fr) minmax(80px, 2fr) 42px; align-items: center; gap: 10px; padding: 4px 0; }
.csbw-tip__label { overflow: hidden; color: #334155; font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.csbw-tip__bar { display: block; height: 10px; border-radius: 999px; background: #e7ebf1; overflow: hidden; }
.csbw-tip__bar i { display: block; height: 100%; border-radius: 999px; background: #a3aec0; }
.csbw-tip__row b { color: #475569; font-size: 13px; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.csbw-tip__row.is-pick .csbw-tip__label, .csbw-tip__row.is-pick b { color: #111827; font-weight: 800; }
.csbw-tip__row.is-pick .csbw-tip__bar i { background: linear-gradient(90deg, #e3242b, #b0101f); }
.csbw-tip__score { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.csbw-tip__score b { color: #111827; font-size: 28px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.csbw-tip__credit { grid-column: 1 / -1; justify-self: end; color: #94a3b8; font-size: 11px; text-decoration: none; }
.csbw-tip__credit:hover { color: #b0101f; }
@media (max-width: 700px) {
  .csbw-tip { grid-template-columns: 1fr 1fr; }
  .csbw-tip__probs { grid-column: 1 / -1; order: 2; }
  .csbw-tip__credit { order: 3; }
  /* Club names get the room; the bar is the shorter part on a phone. */
  .csbw-tip__row { grid-template-columns: minmax(0, 1.4fr) minmax(56px, 1fr) 38px; gap: 8px; }
  .csbw-tip__score b { font-size: 22px; }
}

/* One red accent is enough: keep the league header's, drop the repeats. */
.csbw-ls .ls-tipster-panel-head::before, .csbw-md .ls-sum-head h2::before, .csbw-md .ls-sum-day::before,
.csbw-ls .ls-sum-head h2::before,
.csbw-ls .ls-sum-day::before,
.csbw-ls .ls-tips-card__teams::before, .csbw-hub .ls-tips-card__teams::before { display: none; }

/* Test page canvas: light grey behind white cards, as the live scores page sits. */
.csbw-test--canvas { background: #f3f4f7; border-radius: 18px; padding: 18px; }
.csbw-test--canvas .csbw { border-color: #e8ebf1; }
.csbw-test .csbw-table thead th { background: #f7f8fa; }
.csbw-test .csbw-table tbody tr:nth-child(even) td { background: #fbfbfd; }
.csbw-ls__team { color: inherit; text-decoration: none; }
.csbw-ls__team:hover { color: #b0101f; }

.csbw-teampage { overflow: hidden; border: 1px solid #e4e8f0; border-radius: 16px; background: #fff; box-shadow: 0 1px 3px rgba(15, 23, 42, .04); }
.csbw-teampage .md-hero { display: block; padding: 18px 16px; }
.csbw-md .csbw-md__panel .csbw__notice { font-size: 13px; color: #64748b; margin: 4px 0; }
.ls-sum-block > .csbw-pickcards { padding: 14px 16px 4px; }
.ls-sum-block > .csbw-md__credit { margin: 6px 16px 12px; }
.csbw .csbw-lu__badge { position: static; display: inline-block; margin: 6px 0 2px; }
.csbw .csbw-lu__head { margin-top: 8px; }
.csbw--lineups .csbw__body { padding: 10px 14px 14px; }
.ls-sum-block > .csbw-predcards { display: grid; gap: 12px; padding: 14px 16px 16px; }
.csbw-predcards .ls-tips-card { margin: 0; }
.csbw-ls-picks { margin: 0 0 18px; }

/* Nine league tabs stay on one line: tighter padding, and a sideways scroll instead of a second row when space runs out. */
.csbw-ls .day-buttons { flex-wrap: nowrap; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.csbw-ls .day-buttons::-webkit-scrollbar { display: none; }
.csbw-ls .day-button { flex: none; padding: 10px 13px; white-space: nowrap; }

/* Match events box: the site timeline sits flush inside the box. */
.csbw--events .csbw__body { padding: 0; }
.csbw--events .md-events { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.csbw--events .csbw-md__empty { margin: 12px; }

/* Row actions on phones: "Prediction" fits under the BET button where "View prediction" did not. */
@media (max-width: 768px) { .csbw-ls .csbw-hide-m, .csbw-md .csbw-hide-m, .csbw-test .csbw-hide-m { display: none; } }

/* ---- Dark mode: the site toggles html.s-dark / html.site-s-dark; colours follow its live scores and match pages ---- */
html.s-dark .csbw, html.site-s-dark .csbw {
  --csbw-bg: #10151d;
  --csbw-soft: #161c26;
  --csbw-text: #e5e7eb;
  --csbw-dim: #9aa4b2;
  --csbw-line: rgba(255, 255, 255, .09);
  --csbw-accent: #f0626b;
  box-shadow: none;
}
html.s-dark .csbw__head, html.site-s-dark .csbw__head { background: linear-gradient(90deg, #141a24 0%, #1c151a 100%); color: #f3f4f6; border-bottom-color: rgba(255, 255, 255, .08); }
html.s-dark .csbw-test--canvas, html.site-s-dark .csbw-test--canvas { background: #0b1018; }
html.s-dark .csbw-test--canvas .csbw, html.site-s-dark .csbw-test--canvas .csbw { border-color: rgba(255, 255, 255, .09); }
html.s-dark .csbw-test__back, html.site-s-dark .csbw-test__back,
html.s-dark .csbw-test__more, html.site-s-dark .csbw-test__more { color: #f38b92; }
html.s-dark .csbw-test .csbw-table thead th, html.site-s-dark .csbw-test .csbw-table thead th { background: #161c26; }
html.s-dark .csbw-test .csbw-table tbody tr td, html.site-s-dark .csbw-test .csbw-table tbody tr td { background: transparent; }
html.s-dark .csbw .csbw-table tr.is-highlight td, html.site-s-dark .csbw .csbw-table tr.is-highlight td { background: rgba(240, 98, 107, .12); }

/* Banner and ticker */
html.s-dark .csbw-banner, html.site-s-dark .csbw-banner { background: linear-gradient(120deg, #141a24 0%, #1a1419 70%, #22151a 100%); border-color: rgba(255, 255, 255, .08); box-shadow: none; }
html.s-dark .csbw-banner__title, html.site-s-dark .csbw-banner__title { color: #f3f4f6; }
html.s-dark .csbw-banner__text, html.site-s-dark .csbw-banner__text { color: #aab3c0; }
html.s-dark .csbw-ticker, html.site-s-dark .csbw-ticker { background: #10151d; border-color: rgba(255, 255, 255, .09); box-shadow: none; }
html.s-dark .csbw-ticker__credit, html.site-s-dark .csbw-ticker__credit { color: #8b95a3; border-top-color: rgba(255, 255, 255, .08); }

/* Tables inside our boxes: the theme's zebra rows would paint every other row white */
html.s-dark .csbw .modern-standings tbody tr td, html.site-s-dark .csbw .modern-standings tbody tr td,
html.s-dark .csbw-md .modern-standings tbody tr td, html.site-s-dark .csbw-md .modern-standings tbody tr td { background: transparent; color: #e5e7eb; }
html.s-dark .csbw .modern-standings tbody tr, html.site-s-dark .csbw .modern-standings tbody tr { background: #0b1018; }
html.s-dark .modern-standings tr.md-highlight-row td, html.site-s-dark .modern-standings tr.md-highlight-row td { background: rgba(240, 98, 107, .14); }

/* Prediction blocks */
html.s-dark .csbw-tip > div, html.site-s-dark .csbw-tip > div { background: #161c26; border-color: rgba(255, 255, 255, .08); }
html.s-dark .csbw-tip small, html.site-s-dark .csbw-tip small { color: #9aa4b2; }
html.s-dark .csbw-tip__pick b, html.site-s-dark .csbw-tip__pick b,
html.s-dark .csbw-tip__score b, html.site-s-dark .csbw-tip__score b,
html.s-dark .csbw-tip__row.is-pick .csbw-tip__label, html.site-s-dark .csbw-tip__row.is-pick .csbw-tip__label,
html.s-dark .csbw-tip__row.is-pick b, html.site-s-dark .csbw-tip__row.is-pick b { color: #f3f4f6; }
html.s-dark .csbw-tip__label, html.site-s-dark .csbw-tip__label,
html.s-dark .csbw-tip__row b, html.site-s-dark .csbw-tip__row b { color: #cbd2dc; }
html.s-dark .csbw-tip__bar, html.site-s-dark .csbw-tip__bar { background: rgba(255, 255, 255, .1); }
html.s-dark .csbw-tip__bar i, html.site-s-dark .csbw-tip__bar i { background: #5b6576; }
html.s-dark .csbw-tip__pct, html.site-s-dark .csbw-tip__pct { background: rgba(240, 98, 107, .16); color: #f38b92; }
html.s-dark .csbw-tip__credit, html.site-s-dark .csbw-tip__credit,
html.s-dark .csbw-md__credit, html.site-s-dark .csbw-md__credit { color: #8b95a3; }
html.s-dark .csbw-pickcard, html.site-s-dark .csbw-pickcard { background: #10151d; border-color: rgba(255, 255, 255, .09); color: #e5e7eb; box-shadow: none; }
html.s-dark .csbw-pickcard__probs span, html.site-s-dark .csbw-pickcard__probs span { background: #161c26; }
html.s-dark .csbw-pickcard__probs b, html.site-s-dark .csbw-pickcard__probs b { color: #cbd2dc; }
html.s-dark .csbw-pickcard__probs .is-pick, html.site-s-dark .csbw-pickcard__probs .is-pick { background: rgba(240, 98, 107, .16); }
html.s-dark .csbw-pickcard__probs .is-pick b, html.site-s-dark .csbw-pickcard__probs .is-pick b,
html.s-dark .csbw-pickcard__pick, html.site-s-dark .csbw-pickcard__pick { color: #f38b92; }

/* Line-ups, benches, absences, events box */
html.s-dark .csbw-lu__head, html.site-s-dark .csbw-lu__head { background: #10151d; border-color: rgba(255, 255, 255, .09); }
html.s-dark .csbw-lu__team--away, html.site-s-dark .csbw-lu__team--away { border-left-color: rgba(255, 255, 255, .09); }
html.s-dark .csbw-lu__team b, html.site-s-dark .csbw-lu__team b,
html.s-dark .csbw-md__sub, html.site-s-dark .csbw-md__sub { color: #f3f4f6; }
html.s-dark .csbw-lu__team small, html.site-s-dark .csbw-lu__team small { color: #9aa4b2; }
html.s-dark .csbw-lu__badge, html.site-s-dark .csbw-lu__badge { background: rgba(245, 180, 60, .15); color: #f5b43c; }
html.s-dark .csbw-lu__badge.is-confirmed, html.site-s-dark .csbw-lu__badge.is-confirmed { background: rgba(34, 197, 94, .15); color: #4ade80; }
html.s-dark .csbw .csbw-players li, html.site-s-dark .csbw .csbw-players li { color: #d1d5db; }
html.s-dark .csbw .csbw-players__no, html.site-s-dark .csbw .csbw-players__no,
html.s-dark .csbw .csbw-players small, html.site-s-dark .csbw .csbw-players small { color: #9aa4b2; }
html.s-dark .csbw .csbw-lineups__note, html.site-s-dark .csbw .csbw-lineups__note { color: #aab3c0; }
html.s-dark .csbw-md__empty, html.site-s-dark .csbw-md__empty { background: #161c26; color: #9aa4b2; }

/* Team page */
html.s-dark .csbw-teampage, html.site-s-dark .csbw-teampage { background: #0b1018; border-color: rgba(255, 255, 255, .1); box-shadow: none; }
html.s-dark .csbw-team-hero__name, html.site-s-dark .csbw-team-hero__name { color: #f3f4f6; }
html.s-dark .csbw-md__note, html.site-s-dark .csbw-md__note { color: #aab3c0; }
html.s-dark .csbw-md__panel, html.site-s-dark .csbw-md__panel { color: #e5e7eb; }

/* Date pill on prediction cards: the site styles it for light mode only. */
html.s-dark .ls-tips-card__head time, html.site-s-dark .ls-tips-card__head time { background: #161c26; border-color: rgba(255, 255, 255, .1); color: #cbd2dc; box-shadow: none; }
html.s-dark .ls-tips-card__head, html.site-s-dark .ls-tips-card__head { border-bottom-color: rgba(255, 255, 255, .08); }
html.s-dark .ls-tips-card__teams, html.site-s-dark .ls-tips-card__teams { color: #f3f4f6; }

/* Test page caption above the ticker */
.csbw-ticker__label { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; padding: 0 8px 8px; border-bottom: 1px dashed #f0cdd2; color: #64748b; font-size: 12px; font-weight: 600; }
.csbw-ticker__tag { padding: 2px 8px; border-radius: 999px; background: #d50102; color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.csbw-ticker--labelled { border-style: dashed; border-color: #f0cdd2; }
html.s-dark .csbw-ticker__label, html.site-s-dark .csbw-ticker__label { color: #9aa4b2; border-bottom-color: rgba(240, 98, 107, .3); }
html.s-dark .csbw-ticker--labelled, html.site-s-dark .csbw-ticker--labelled { border-color: rgba(240, 98, 107, .35); }
@media (max-width: 600px) { .csbw-ticker__label { font-size: 11px; align-items: flex-start; } }

/* Test captions above the live scores, match and team blocks, matching the ticker caption */
.csbw-test-caption { display: flex; align-items: center; gap: 8px; margin: 22px 0 10px; padding: 8px 12px; border: 1px dashed #f0cdd2; border-radius: 10px; background: #fffafb; color: #64748b; font-size: 12px; font-weight: 600; }
html.s-dark .csbw-test-caption, html.site-s-dark .csbw-test-caption { background: #10151d; border-color: rgba(240, 98, 107, .35); color: #9aa4b2; }
@media (max-width: 600px) { .csbw-test-caption { font-size: 11px; align-items: flex-start; } }

/* Red accent edges: 2px and square-ended instead of the site's 3-4px rounded bars, which read heavy repeated down the page. */
.csbw-ls .ls-league-head::before,
.csbw-ls .live-match-row-v2::before,
.csbw-ls .is-live-match::before,
.csbw-ls .league-sidebar-link.active-league::before,
.csbw-ls .mobile-league-dropdown__control::before,
.csbw-ls .ls-sum-row::before,
.csbw-md .ls-sum-row::before,
.csbw-test .ls-sum-row::before { width: 2px !important; border-radius: 0 !important; }
@media (max-width: 768px) {
  .csbw-ls .live-match-row-v2.is-live-match { box-shadow: inset 2px 0 0 #d50102; }
}

/* Match rows: a soft pink wash on hover, in every competition list and summary card */
.csbw-ls .live-match-row-v2,
.csbw-ls .ls-sum-row,
.csbw-md .ls-sum-row { transition: background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.csbw-ls .live-match-row-v2:hover,
.csbw-ls .ls-sum-row:hover,
.csbw-md .ls-sum-row:hover {
  background: linear-gradient(90deg, #fff1f3 0%, #fff7f8 55%, #fff 100%);
  border-color: #f3d3d8;
}
.csbw-ls .live-match-row-v2:hover .live-match-main { background: transparent; }
html.s-dark .csbw-ls .live-match-row-v2:hover, html.site-s-dark .csbw-ls .live-match-row-v2:hover,
html.s-dark .csbw-ls .ls-sum-row:hover, html.site-s-dark .csbw-ls .ls-sum-row:hover,
html.s-dark .csbw-md .ls-sum-row:hover, html.site-s-dark .csbw-md .ls-sum-row:hover {
  background: linear-gradient(90deg, rgba(240, 98, 107, .14) 0%, rgba(240, 98, 107, .06) 55%, #11161f 100%);
  border-color: rgba(240, 98, 107, .3);
}

/* BET is a link now; keep the button look */
.csbw-ls a.ls-betnow { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.csbw-ls a.ls-betnow:hover { text-decoration: none; }

/* Hover edge: a short soft-pink line kept clear of the rounded corners, instead of a full-height red bar. */
.csbw-ls .live-match-row-v2::before,
.csbw-ls .ls-sum-row::before,
.csbw-md .ls-sum-row::before {
  top: 14px !important;
  bottom: 14px !important;
  background: #f0a8b1 !important;
}
.csbw-ls .live-match-row-v2.is-live-match::before { background: #d50102 !important; }
html.s-dark .csbw-ls .live-match-row-v2::before, html.site-s-dark .csbw-ls .live-match-row-v2::before,
html.s-dark .csbw-ls .ls-sum-row::before, html.site-s-dark .csbw-ls .ls-sum-row::before,
html.s-dark .csbw-md .ls-sum-row::before, html.site-s-dark .csbw-md .ls-sum-row::before { background: rgba(240, 98, 107, .55) !important; }

/* Ticker card hover: the same pink wash as the match rows, in both modes */
.csbw-ticker .csh-item:hover { background: linear-gradient(180deg, #ffecef 0%, #fff5f7 100%); box-shadow: inset 0 0 0 1px #f6d3d9; }
html.s-dark .csbw-ticker .csh-item:hover, html.site-s-dark .csbw-ticker .csh-item:hover { background: linear-gradient(180deg, rgba(240, 98, 107, .14) 0%, rgba(240, 98, 107, .06) 100%); }

/* Room above the league logo, so the hover wash frames the whole card instead of cutting the logo at its top edge */
.csbw-ticker .csh-item { padding-top: 8px; padding-bottom: 8px; padding-right: 10px; border-radius: 10px; }
.csbw-ticker .csh-inner { padding: 2px 0; }

/* ---- 1xBet odds (odds-api.io) ---- */
.csbw-odds { display: flex; justify-content: center; gap: 4px; }
.csbw-odds__cell { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 35px; padding: 2px 0 3px; border: 1px solid #e5e9f0; border-radius: 6px; background: #fff; color: #111827; text-decoration: none !important; line-height: 1.1; transition: border-color .15s, background .15s; }
.csbw-odds__cell i { color: #64748b; font-size: 9px; font-style: normal; font-weight: 700; }
.csbw-odds__cell strong { font-size: 11px; font-weight: 800; font-variant-numeric: tabular-nums; }
.csbw-odds__cell.is-favourite { border-color: #f0c3ca; background: #fff5f6; }
.csbw-odds__cell.is-favourite strong { color: #b0101f; }
.csbw-odds__cell:hover { border-color: #d50102; background: #fff1f3; }
.csbw-ls .match-actions .csbw-odds, .csbw-ls .match-actions .csbw-odds__cell { pointer-events: auto; }
/* Match page line under the score */
.csbw-match-odds { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 14px; margin: 12px 0 4px; padding: 12px; border-radius: 12px; background: #f7f8fa; }
.csbw-match-odds__label { color: #64748b; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.csbw-odds--lg { gap: 8px; }
.csbw-odds--lg .csbw-odds__cell { width: 74px; padding: 6px 0; border-radius: 9px; flex-direction: row; gap: 8px; }
.csbw-odds--lg .csbw-odds__cell i { font-size: 11px; }
.csbw-odds--lg .csbw-odds__cell strong { font-size: 15px; }
.csbw-match-odds__bet { text-decoration: none !important; }
@media (max-width: 768px) {
  .csbw-odds__cell { width: 31px; }
  .csbw-odds__cell strong { font-size: 10px; }
  .csbw-odds--lg .csbw-odds__cell { width: 66px; }
}
html.s-dark .csbw-odds__cell, html.site-s-dark .csbw-odds__cell { background: #161c26; border-color: rgba(255, 255, 255, .12); color: #e5e7eb; }
html.s-dark .csbw-odds__cell i, html.site-s-dark .csbw-odds__cell i { color: #9aa4b2; }
html.s-dark .csbw-odds__cell.is-favourite, html.site-s-dark .csbw-odds__cell.is-favourite { background: rgba(240, 98, 107, .14); border-color: rgba(240, 98, 107, .4); }
html.s-dark .csbw-odds__cell.is-favourite strong, html.site-s-dark .csbw-odds__cell.is-favourite strong { color: #f38b92; }
html.s-dark .csbw-odds__cell:hover, html.site-s-dark .csbw-odds__cell:hover { border-color: #f0626b; }
html.s-dark .csbw-match-odds, html.site-s-dark .csbw-match-odds { background: #161c26; }
html.s-dark .csbw-match-odds__label, html.site-s-dark .csbw-match-odds__label { color: #9aa4b2; }

/* BET NOW on the match page: the site's red button, whether or not odds are shown beside it */
.csbw-match-odds--bet-only { background: none; padding: 4px 0 0; }
.csbw .csbw-match-odds__bet {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 40px; padding: 0 26px; border-radius: 10px;
  background: linear-gradient(180deg, #d31f1f, #a01414); color: #fff !important;
  font-size: 13px; font-weight: 800; letter-spacing: .06em; text-decoration: none !important; text-transform: uppercase;
  box-shadow: 0 6px 14px rgba(213, 1, 2, .22); transition: filter .15s, transform .15s;
}
.csbw .csbw-match-odds__bet:hover { filter: brightness(1.08); transform: translateY(-1px); }
html.s-dark .csbw-match-odds--bet-only, html.site-s-dark .csbw-match-odds--bet-only { background: none; }

/* Phones: SportsAPI sizes the action column (62px) and the toggle (56px) for "Tips"; "Prediction" needs more room. */
@media (max-width: 768px) {
  .csbw-ls .live-match-row-v2.is-scheduled-match:not(.has-open-tips) { grid-template-columns: minmax(0, 1fr) 76px; }
  .csbw-ls .match-actions .csbw-ls-tips { width: auto; min-width: 56px; max-width: none; }
  .csbw-ls .live-match-row-v2.has-open-tips .live-match-main { padding-right: 84px; }
  .csbw-ls .live-match-row-v2.has-open-tips .match-actions { width: auto; right: 10px; align-items: flex-end; }
}

/* ---- Box footer link ("Open the team page"), beside the credit ---- */
.csbw .csbw__more { font-size: 12px; font-weight: 700; color: #b0101f; text-decoration: none; margin-right: auto; }
.csbw .csbw__more:hover { text-decoration: underline; }
html.s-dark .csbw .csbw__more, html.site-s-dark .csbw .csbw__more { color: #f38b92; }

/* ---- Squad lists (bench, injuries): chips instead of a bare list ---- */
.csbw .csbw-players, .csbw-md .csbw-players {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; margin: 4px 0 0; padding: 0; list-style: none;
}
.csbw .csbw-players li, .csbw-md .csbw-players li {
  display: flex; align-items: center; gap: 8px; padding: 6px 8px; border: 1px solid var(--csbw-line, #e4e8f0); border-radius: 8px;
  background: var(--csbw-soft, #f7f8fa); font-size: 12.5px; line-height: 1.25; min-width: 0;
}
.csbw .csbw-players__no, .csbw-md .csbw-players__no {
  flex: none; width: 22px; height: 22px; border-radius: 6px; background: #fff; border: 1px solid var(--csbw-line, #e4e8f0);
  display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; text-align: center;
}
.csbw .csbw-players li > span:last-child, .csbw-md .csbw-players li > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.csbw-lu__bench h4, .csbw-md__sub { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--csbw-dim, #64748b); margin: 0 0 6px; }
html.s-dark .csbw .csbw-players li, html.site-s-dark .csbw .csbw-players li,
html.s-dark .csbw-md .csbw-players li, html.site-s-dark .csbw-md .csbw-players li { background: #131a24; border-color: rgba(255, 255, 255, .08); }
html.s-dark .csbw .csbw-players__no, html.site-s-dark .csbw .csbw-players__no { background: #0b1018; border-color: rgba(255, 255, 255, .12); color: #e5e7eb; }

/* ---- Standings on phones: fit the screen instead of scrolling sideways ---- */
@media (max-width: 768px) {
  .csbw .table-scroll-wrapper, .csbw-ls .table-scroll-wrapper, .csbw-md .table-scroll-wrapper { overflow-x: visible; }
  .csbw .modern-standings, .csbw-ls .modern-standings, .csbw-md .modern-standings { min-width: 0; width: 100%; table-layout: fixed; }
  .csbw .modern-standings th, .csbw .modern-standings td,
  .csbw-ls .modern-standings th, .csbw-ls .modern-standings td,
  .csbw-md .modern-standings th, .csbw-md .modern-standings td { padding-left: 2px; padding-right: 2px; font-size: 12px; }
  .csbw .modern-standings th:nth-child(1), .csbw-ls .modern-standings th:nth-child(1), .csbw-md .modern-standings th:nth-child(1) { width: 24px; }
  .csbw .modern-standings th:nth-child(3), .csbw-ls .modern-standings th:nth-child(3), .csbw-md .modern-standings th:nth-child(3),
  .csbw .modern-standings th.ms-gd, .csbw-ls .modern-standings th.ms-gd, .csbw-md .modern-standings th.ms-gd { width: 28px; }
  .csbw .modern-standings th.pts, .csbw-ls .modern-standings th.pts, .csbw-md .modern-standings th.pts { width: 30px; }
  .csbw .modern-standings .team-cell, .csbw-ls .modern-standings .team-cell, .csbw-md .modern-standings .team-cell { min-width: 0; }
  .csbw .modern-standings td:nth-child(2), .csbw-ls .modern-standings td:nth-child(2), .csbw-md .modern-standings td:nth-child(2) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  /* Form is the widest column and the least useful on a phone. */
  .csbw .modern-standings .ms-form, .csbw-ls .modern-standings .ms-form, .csbw-md .modern-standings .ms-form { display: none; }
}

/* ---- Team page card on phones ---- */
@media (max-width: 768px) {
  .csbw-teampage .csbw-pickcard { gap: 6px; padding: 10px 12px; }
  .csbw-teampage .csbw-pickcard__meta { font-size: 11px; }
  .csbw-teampage .csbw-pickcard__teams { gap: 6px; }
  .csbw-teampage .csbw-team--sm span { white-space: normal; }
  .csbw-teampage .csbw-md__panel { padding: 10px 12px; }
}
/* ---- Head-to-head on phones: the date on its own line, so club names fit ---- */
@media (max-width: 768px) {
  .csbw .csbw-h2h__list li {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    grid-template-areas: "when when when" "home score away";
    gap: 2px 8px;
  }
  .csbw .csbw-h2h__when { grid-area: when; flex-direction: row; align-items: baseline; gap: 6px; font-size: 11px; }
  .csbw .csbw-h2h__when small { font-size: 11px; }
  .csbw .csbw-h2h__home { grid-area: home; }
  .csbw .csbw-h2h__score { grid-area: score; }
  .csbw .csbw-h2h__away { grid-area: away; }
  .csbw .csbw-h2h__list .csbw-team span { white-space: normal; overflow: visible; }
}

/* The ticker keeps its height from the first paint, so nothing below it moves while it loads. */
.csbw-ticker__strip { min-height: 86px; }
@media (max-width: 768px) { .csbw-ticker__strip { min-height: 78px; } }

/* Home or away for the next match, instead of the terse v / @ */
.csbw .csbw-ha, .csbw-md .csbw-ha {
  display: inline-block; margin-right: 6px; padding: 1px 6px; border-radius: 999px; background: var(--csbw-soft, #f1f3f7);
  color: var(--csbw-dim, #64748b); font-style: normal; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; vertical-align: middle;
}
html.s-dark .csbw .csbw-ha, html.site-s-dark .csbw .csbw-ha { background: #1b222c; color: #cbd5e1; }

/* The article card: the odds are a link, and the bookmaker button shows the 1xBet
   wordmark in white on its dark pill. The pill's green dot is dropped: it sat over the logo. */
/* The odds are links now, so the theme's link colours are kept out of them. */
.csa1x-odd.csbw-odd-link,
.csa1x-odd.csbw-odd-link:link,
.csa1x-odd.csbw-odd-link:visited,
.csa1x-odd.csbw-odd-link:hover,
.csa1x-odd.csbw-odd-link:focus { color: #d50102; text-decoration: none; cursor: pointer; }
.csa1x-odd.csbw-odd-link--fav,
.csa1x-odd--fav.csbw-odd-link,
.csa1x-odd--fav.csbw-odd-link:link,
.csa1x-odd--fav.csbw-odd-link:visited,
.csa1x-odd--fav.csbw-odd-link:hover,
.csa1x-odd--fav.csbw-odd-link:focus { color: #fff; }
.csa1x-odd.csbw-odd-link { transition: background .15s, border-color .15s, box-shadow .15s; }
.csa1x-odd.csbw-odd-link:hover { background: #fff5f5; border-color: #d50102; box-shadow: 0 2px 6px rgba(213, 1, 2, .14); }
.csa1x-odd--fav.csbw-odd-link:hover { background: #b80102; border-color: #b80102; }
.csa1x-bookmaker.csbw-book {
  padding: 7px 14px; background: #fff !important; border: 1px solid #dfe3ec !important; border-radius: 999px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .06); transition: background .15s, border-color .15s, box-shadow .15s, transform .15s;
}
.csa1x-bookmaker.csbw-book::before { display: none; }
.csa1x-bookmaker.csbw-book .csbw-article-logo { display: block; width: 52px; height: auto; object-fit: contain; }
/* Hover in the logo's own blue, not the site red. */
.csa1x-bookmaker.csbw-book:hover,
.csa1x-bookmaker.csbw-book:focus-visible {
  background: #f4f9ff !important; border-color: #9fc8ea !important;
  box-shadow: 0 3px 10px rgba(10, 123, 208, .18); transform: translateY(-1px);
}
html.s-dark .csa1x-bookmaker.csbw-book, html.site-s-dark .csa1x-bookmaker.csbw-book { background: #f8fafc !important; border-color: rgba(255, 255, 255, .18) !important; }

.csbw-teamcard__row--form { justify-content: center; }

/* Prediction cards on phones: clubs on one line, chances underneath. */
@media (max-width: 768px) {
  .csbw-pickcard { padding: 10px 12px; gap: 6px; }
  .csbw-pickcard__teams { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 4px 8px; font-size: 13.5px; }
  .csbw-pickcard__teams .csbw-team { flex: 0 1 auto; min-width: 0; }
  .csbw-pickcard__teams .csbw-team + .csbw-team::before { content: "v"; margin-right: 8px; color: var(--csbw-dim, #64748b); font-weight: 600; }
  .csbw-pickcard__probs { gap: 4px; }
  .csbw-pickcard__probs b { font-size: 13px; }
}

/* ---- Phones: the match page read tight in places ---- */
@media (max-width: 768px) {
  /* The pick and the predicted score: the label above the value, so neither is squeezed. */
  .csbw .csbw-predicted { flex-direction: column; align-items: flex-start; gap: 3px; padding: 9px 12px; }
  .csbw .csbw-predicted b { font-size: 15px; line-height: 1.25; }
  /* Line-up heads: crest, club, formation and coach stacked instead of squeezed side by side. */
  .csbw-lu__head { grid-template-columns: 1fr; }
  .csbw-lu__team { padding: 10px 12px; gap: 10px; }
  .csbw-lu__team--away { flex-direction: row; text-align: left; border-left: 0; border-top: 1px solid #e8ebf1; }
  .csbw-lu__team--away small { justify-content: flex-start; }
  .csbw-lu__team b { font-size: 14px; }
  .csbw-lu__team small { font-size: 11.5px; }
  /* Head-to-head totals: room for long club names. */
  .csbw .csbw-h2h__record > span { font-size: 11.5px; }
  .csbw .csbw-h2h__record .csbw-team span { white-space: normal; }
}

/* ---- League hubs ---- */
.csbw-hub__credit { display: block; margin: 10px 2px 0; text-align: right; font-size: 11px; color: #b0101f; text-decoration: none; font-weight: 600; }
.csbw-hub .cs-hub-panel[hidden] { display: none; }
.csbw-hub-table .table-scroll-wrapper { margin-top: 4px; }
html.s-dark .csbw-hub__credit, html.site-s-dark .csbw-hub__credit { color: #f38b92; }

/* Day headings in the hub fixtures: the date is what a reader scans for, so it
   leads; the kick-off time in each row stays secondary. */
.csbw-hub .cs-hub-day {
  padding: 10px 15px; border-bottom: 1px solid #f3d5d8;
  background: #fff4f5; color: #b0101f; font-size: 11.5px; font-weight: 900; letter-spacing: .08em;
}
.csbw-hub .cs-hub-row > time > span:only-child { color: #475467; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"]) .csbw-hub .cs-hub-day,
:is(html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub .cs-hub-day { background: #26131a; border-bottom-color: #56313c; color: #ff9aa8; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"]) .csbw-hub .cs-hub-row > time > span:only-child,
:is(html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub .cs-hub-row > time > span:only-child { color: #aeb8c4; }

/* Hub standings. Each league page prints its own table stylesheet only when its
   own shortcode runs, which ours replaces, so the card is styled here in full;
   the league classes stay on the markup for whatever the page does print. */
.csbw-hub table.csbw-hub-table { width: 100% !important; min-width: 0 !important; table-layout: fixed !important; border-collapse: collapse; font-size: 13px; }
.csbw-hub table.csbw-hub-table th, .csbw-hub table.csbw-hub-table td {
  padding: 10px 8px !important; margin: 0 !important; white-space: nowrap; vertical-align: middle; text-align: center;
  border-left: 0 !important; border-right: 0 !important;
}
.csbw-hub table.csbw-hub-table thead th {
  background: #f9fafb; color: #667085; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; border-bottom: 1px solid #e5e7eb;
}
.csbw-hub table.csbw-hub-table tbody td { background: transparent; border-top: 0; border-bottom: 1px solid #f1f5f9; color: #101828; font-variant-numeric: tabular-nums; }
.csbw-hub table.csbw-hub-table tbody tr:last-child td { border-bottom: 0; }
.csbw-hub table.csbw-hub-table tbody tr:hover td { background: #fbfcfd; }
.csbw-hub table.csbw-hub-table th:nth-child(1), .csbw-hub table.csbw-hub-table td:nth-child(1) { width: 52px !important; }
.csbw-hub table.csbw-hub-table th:nth-child(2), .csbw-hub table.csbw-hub-table td:nth-child(2) { width: auto !important; text-align: left; }
.csbw-hub table.csbw-hub-table th:nth-child(n+3), .csbw-hub table.csbw-hub-table td:nth-child(n+3) { width: 50px !important; }
.csbw-hub table.csbw-hub-table th:nth-child(11), .csbw-hub table.csbw-hub-table td:nth-child(11) { width: 146px !important; overflow: hidden; }
.csbw-hub table.csbw-hub-table td:nth-child(10) { font-weight: 800; }
.csbw-hub table.csbw-hub-table tbody td:nth-child(2) { display: table-cell !important; overflow: hidden; padding-right: 12px !important; }
/* One thin zone bar for every league: the league sheets add their own inset
   bar, which doubled it on some hubs. */
.csbw-hub table.csbw-hub-table tbody td:first-child { border-left: 3px solid transparent !important; box-shadow: none !important; font-weight: 800; }
.csbw-hub table.csbw-hub-table tbody tr.csbw-zone-green td:first-child { border-left-color: #159a59 !important; }
.csbw-hub table.csbw-hub-table tbody tr.csbw-zone-orange td:first-child { border-left-color: #d97706 !important; }
.csbw-hub table.csbw-hub-table tbody tr.csbw-zone-red td:first-child { border-left-color: #d64545 !important; }
.csbw-hub table.csbw-hub-table__cell, .csbw-hub a.csbw-hub-table__team { display: flex !important; align-items: center; gap: 10px; min-width: 0; }
.csbw-hub a.csbw-hub-table__team { color: #101828 !important; text-decoration: none; }
.csbw-hub a.csbw-hub-table__team:hover { color: #b0101f !important; }
.csbw-hub table.csbw-hub-table__logo { width: 22px !important; height: 22px !important; flex: 0 0 22px; object-fit: contain; margin: 0 !important; }
.csbw-hub table.csbw-hub-table__cell span { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px !important; font-weight: 700; color: inherit; }
.csbw-hub .csbw-hub-form { display: inline-flex !important; align-items: center; justify-content: center; gap: 3px; width: auto !important; }
.csbw-hub .csbw-hub-form__r {
  display: inline-grid !important; place-items: center; width: 19px !important; height: 19px !important; border-radius: 5px;
  color: #fff !important; font-size: 9px !important; font-weight: 800; line-height: 1;
}
.csbw-hub .csbw-hub-form__r--w { background: #159a59 !important; }
.csbw-hub .csbw-hub-form__r--d { background: #98a2b3 !important; }
.csbw-hub .csbw-hub-form__r--l { background: #d64545 !important; }
/* The cards scroll sideways in the league sheets; our table always fits its card. */
.csbw-hub .epl-table-wrap, .csbw-hub [class*="-table-card"], .csbw-hub [class*="-table-wrapper"] { overflow: hidden !important; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"]) .csbw-hub table.csbw-hub-table thead th,
:is(html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub table.csbw-hub-table thead th { background: #182330; color: #a8b3c4; border-bottom-color: rgba(255,255,255,.12); }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"]) .csbw-hub table.csbw-hub-table tbody td,
:is(html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub table.csbw-hub-table tbody td { color: #e6eaf2; border-bottom-color: rgba(255,255,255,.08); }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"]) .csbw-hub a.csbw-hub-table__team,
:is(html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub a.csbw-hub-table__team { color: #e6eaf2 !important; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"]) .csbw-hub table.csbw-hub-table tbody tr:hover td,
:is(html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub table.csbw-hub-table tbody tr:hover td { background: #172330; }

/* Phones: position, club, played, points and the last three results; the
   rest of the columns are on the club's own page. */
@media (max-width: 640px) {
  .csbw-hub .epl-table-wrap { padding: 6px 4px !important; border-radius: 14px; }
  .csbw-hub table.csbw-hub-table { font-size: 12.5px; }
  .csbw-hub table.csbw-hub-table th, .csbw-hub table.csbw-hub-table td { padding: 9px 5px !important; }
  .csbw-hub table.csbw-hub-table th:nth-child(n+4):nth-child(-n+9),
  .csbw-hub table.csbw-hub-table td:nth-child(n+4):nth-child(-n+9) { display: none !important; }
  .csbw-hub table.csbw-hub-table th:nth-child(1), .csbw-hub table.csbw-hub-table td:nth-child(1) { width: 34px !important; }
  .csbw-hub table.csbw-hub-table th:nth-child(3), .csbw-hub table.csbw-hub-table td:nth-child(3) { width: 30px !important; }
  .csbw-hub table.csbw-hub-table th:nth-child(10), .csbw-hub table.csbw-hub-table td:nth-child(10) { width: 36px !important; }
  .csbw-hub table.csbw-hub-table th:nth-child(11), .csbw-hub table.csbw-hub-table td:nth-child(11) { width: 66px !important; }
  .csbw-hub table.csbw-hub-table__cell, .csbw-hub a.csbw-hub-table__team { gap: 7px; }
  .csbw-hub table.csbw-hub-table__logo { width: 18px !important; height: 18px !important; flex-basis: 18px; }
  .csbw-hub table.csbw-hub-table__cell span { font-size: 12.5px !important; }
  .csbw-hub .csbw-hub-form { gap: 2px; }
  .csbw-hub .csbw-hub-form__r { width: 17px !important; height: 17px !important; font-size: 8px !important; }
  .csbw-hub .csbw-hub-form__r:nth-last-child(n+4) { display: none !important; }
}

/* Hub predictions: the live scores Tips cards, side by side. */
.csbw-hub .csbw-hub-tips { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin: 0; padding: 0; }
.csbw-hub .csbw-hub-tips .ls-tips-card { margin: 0; height: 100%; display: flex; flex-direction: column; }
/* Desktop: equal-height cards, the credit at the foot. Phones keep the card's own grid. */
@media (min-width: 701px) {
  .csbw-hub .csbw-hub-tips .csbw-tip { flex: 1; display: flex; flex-direction: column; }
  .csbw-hub .csbw-hub-tips .csbw-tip__credit { margin-top: auto; }
  /* Three cards a row leave little width: club names first, the bar takes the rest. */
  .csbw-hub .csbw-hub-tips .csbw-tip__row { grid-template-columns: minmax(0, 1.3fr) minmax(56px, 1.2fr) 40px; gap: 8px; }
}
@media (max-width: 640px) {
  .csbw-hub .csbw-hub-tips { grid-template-columns: 1fr; gap: 12px; }
}

/* Hub BET buttons carry the 1xBet logo on a light pill (as on the article
   odds card), hover in the logo's blue instead of the hub's red. */
.cs-hub a.csbw-hub-book, .cs-hub-row a.cs-hub-bet.csbw-hub-book, .cs-hub-featured a.cs-hub-book.csbw-hub-book {
  display: inline-flex !important; align-items: center; justify-content: center;
  min-height: 30px; padding: 6px 12px !important; border: 1px solid #dfe3ec !important; border-radius: 999px !important;
  background: #fff !important; color: #101828 !important; box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
  transition: background .15s, border-color .15s, box-shadow .15s, transform .15s;
}
.cs-hub a.csbw-hub-book img { display: block; width: 50px !important; height: auto !important; margin: 0 !important; object-fit: contain; }
.cs-hub a.csbw-hub-book:hover, .cs-hub a.csbw-hub-book:focus-visible {
  background: #f4f9ff !important; border-color: #9fc8ea !important; box-shadow: 0 3px 10px rgba(10, 123, 208, .18); transform: translateY(-1px);
}
.cs-hub-featured a.cs-hub-book.csbw-hub-book { min-height: 42px; padding: 0 16px !important; }
.cs-hub-featured a.cs-hub-book.csbw-hub-book img { width: 58px !important; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark) .cs-hub a.csbw-hub-book {
  background: #f8fafc !important; border-color: rgba(255, 255, 255, .18) !important;
}
.csbw-hub .csbw-hub-tips .ls-tips-card[hidden] { display: none !important; }
.csbw-hub .csbw-hub-tips .csbw-tips-slot { flex: 1; display: flex; flex-direction: column; }
.csbw-hub .csbw-hub-tips .ls-tipster-panel-state { padding: 18px 16px; color: #667085; font-size: 13px; }
.csbw-hub .csbw-hub-tips__more[hidden] { display: none !important; }
.cs-hub button.csbw-hub-tips__more { margin-top: 16px; }

/* ---- Hubs in dark mode ---- */
/* The league stylesheets paint table rows white (and even rows off-white);
   in dark mode every row and cell takes the card's dark instead. */
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub .epl-table-wrap,
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub [class$="-table-card"],
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub table.csbw-hub-table {
  background: #0b1018 !important; border-color: rgba(255,255,255,.12) !important; box-shadow: none !important;
}
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub table.csbw-hub-table tbody tr,
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub table.csbw-hub-table tbody td {
  background: #0b1018 !important; color: #e6eaf2 !important; border-bottom-color: rgba(255,255,255,.07) !important;
}
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub table.csbw-hub-table tbody tr:nth-child(even) td {
  background: #0f1621 !important;
}
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub table.csbw-hub-table tbody tr:hover td {
  background: #172330 !important;
}
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub table.csbw-hub-table td:nth-child(10) { color: #fff !important; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub [class$="-section-title"] { color: #f2f4f7 !important; }

/* More fixtures: the hub's buttons keep a dark background there but their
   text stays the light theme's grey. */
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub .cs-hub-more__row { color: #e6eaf2 !important; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub .cs-hub-more__row .cs-hub-more__match { color: #e6eaf2 !important; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub .cs-hub-more__row time { color: #aeb8c4 !important; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub .cs-hub-more__row time b { color: #f2f4f7 !important; }

/* Prediction cards: loading line and credits readable on dark. */
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub .csbw-hub-tips .ls-tipster-panel-state { color: #aeb8c4; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .csbw-hub .csbw-hub-tips .csbw-tip__credit { color: #98a2b3; }

/* League colour on the hub heading bars. Each hub sets its colour as the
   fallback of var(--c-main, ...), but the theme always defines --c-main (the
   site red), so every hub came out red. Buttons and tabs keep the site red. */
.cs-hub[data-cs-hub="epl"] { --csbw-league: #3d195b; }
.cs-hub[data-cs-hub="laliga"] { --csbw-league: #ff4b44; }
.cs-hub[data-cs-hub="seriea"] { --csbw-league: #0057b8; }
.cs-hub[data-cs-hub="bundesliga"] { --csbw-league: #c8102e; }
.cs-hub[data-cs-hub="ligue1"] { --csbw-league: #085fff; }
.cs-hub[data-cs-hub="npfl"] { --csbw-league: #00ae50; }
.cs-hub[data-cs-hub="ucl"] { --csbw-league: #1a237e; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .cs-hub[data-cs-hub="epl"] { --csbw-league: #a47bd6; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .cs-hub[data-cs-hub="ucl"] { --csbw-league: #6f7fe0; }
.cs-hub[data-cs-hub] h2::before,
.cs-hub[data-cs-hub] .cs-hub-more__title::before { background: var(--csbw-league, var(--csh-red)) !important; }
:is(html.dark-mode, body.dark-mode, [data-theme="dark"], html.s-dark, html.site-s-dark, body.s-dark, body.site-s-dark) .cs-hub .cs-hub-more__title { color: #aeb8c4 !important; }
