/* ===== base.css ===== */
/* TipZ365 V3 module: base.css */
/* Palette roles — light defaults, dark via media query */
:root {
  --page: #f9f9f7;
  --surface: #fcfcfb;
  --ink: #0b0b0b;
  --ink-2: #52514e;
  --muted: #898781;
  --grid: #e1e0d9;
  --baseline: #c3c2b7;
  --border: rgba(11, 11, 11, 0.10);
  --series-1: #2a78d6;   /* models / positive pole / accent */
  --series-neg: #e34948; /* negative pole */
  --bookie: #eda100;     /* bookie price tick */
  --warn: #fab219;
  --serious: #ec835a;
  --critical: #d03b3b;
  --good: #0ca30c;
  --ghost: rgba(11, 11, 11, 0.04);
}
@media (prefers-color-scheme: dark) {
  :root {
    --page: #0d0d0d;
    --surface: #1a1a19;
    --ink: #ffffff;
    --ink-2: #c3c2b7;
    --muted: #898781;
    --grid: #2c2c2a;
    --baseline: #383835;
    --border: rgba(255, 255, 255, 0.10);
    --series-1: #3987e5;
    --series-neg: #e66767;
    --bookie: #c98500;
    --good: #0ca30c;
    --ghost: rgba(255, 255, 255, 0.06);
  }
}

* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font: 14px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif;
}
main { max-width: 1280px; margin: 0 auto; padding: 16px 20px 48px; }

header {
  display: flex; align-items: center; gap: 16px;
  padding: 4px 0 14px;
}
header h1 { font-size: 19px; font-weight: 650; margin: 0; flex: 1; }
header .sub { color: var(--muted); font-size: 12.5px; }

button, .btn {
  font: inherit; color: var(--ink);
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 8px; padding: 6px 12px; cursor: pointer;
}
button:hover, .btn:hover { background: var(--ghost); }
button.primary {
  background: var(--series-1); border-color: var(--series-1); color: #fff;
}
button.primary:hover { filter: brightness(1.08); }
button.link {
  border: none; background: none; color: var(--ink-2);
  text-decoration: underline; padding: 4px;
}

/* ===== filters.css ===== */
/* TipZ365 V3 module: filters.css */
/* ---- filter row ---- */
.filters {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 12px; padding: 12px 14px; margin-bottom: 14px;
}
.filters .field { display: flex; flex-direction: column; gap: 3px; flex: 0 0 auto; min-width: 0; }
/* Always its own bottom row, regardless of how many .field items wrap
   above it -- flex-basis:100% forces a line break in the wrapping
   .filters flexbox before this element. */
.filters .filters-bottom-row {
  flex-basis: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.filters label { font-size: 11.5px; color: var(--muted); }
.filters input, .filters select {
  font: inherit; color: var(--ink); background: var(--page);
  border: 1px solid var(--border); border-radius: 7px; padding: 5px 8px;
}
.filters input[type="number"] { width: 84px; box-sizing: border-box; }
/* Same red/green convention as the fixture-inline prediction detail —
   color only, no added boldness — but only once a value is set. */
.filters #f-model-min:not(:placeholder-shown),
.filters #f-model-max:not(:placeholder-shown) {
  color: #ef4444 !important;
}
.filters #f-omin:not(:placeholder-shown),
.filters #f-omax:not(:placeholder-shown) {
  color: #62d83b !important;
}
.filters .field:has(#f-games),
.filters .field:has(#f-model-min),
.filters .field:has(#f-model-max) { width: 112px; }
.filters .field:has(#f-games) input,
.filters .field:has(#f-model-min) input,
.filters .field:has(#f-model-max) input { width: 100%; }
.filters input[type="date"] { width: 140px; }
/* Kickoff from/to: fully custom calendar (the native <input type="date">
   popup is OS-rendered on Windows/Chrome and can't be themed via CSS at
   all). The real input stays as the value source for the rest of the app
   (data.js, charts.js, mobile.js keep reading/writing .value unchanged);
   it's visually hidden and a styled button + dropdown panel drive it. */
.date-picker-field { position: relative; }
.date-picker-native-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
/* Hardcoded (not var(--ink)/var(--page)) on purpose: this app is dark-only
   but --ink/--page only flip via the OS's prefers-color-scheme media query,
   not the app's own forced data-theme="dark" — on a light-preference OS
   that left this component's text black-on-dark and unreadable. */
.date-picker-trigger {
  font: inherit;
  color: #f3f5f7 !important;
  background: #11181e !important;
  border: 1px solid #465661 !important;
  border-radius: 7px;
  padding: 5px 8px;
  width: 140px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  cursor: pointer;
}
/* Same soft-green hover as Reset/Reload/the search buttons — and now
   also Markets/Model/Bookmaker, extended below for a consistent feel
   across the whole filter row. */
.date-picker-trigger:hover,
.date-picker-trigger:focus-visible,
#mkt-btn:hover,
#mkt-btn:focus-visible,
#model-btn:hover,
#model-btn:focus-visible,
.custom-select-trigger:hover,
.custom-select-trigger:focus-visible {
  background: linear-gradient(90deg, rgba(34, 197, 94, .22), rgba(34, 197, 94, .03)) !important;
  border-color: rgba(34, 197, 94, .45) !important;
  outline: none;
}

/* Model/Bookmaker: same "OS renders the currently-selected row with its
   own uncustomizable highlight" problem as the native date popup — no CSS
   fix is reliable there either, so replace the native <select> UI with a
   custom trigger + dropdown panel too. The real <select> stays in the DOM
   (hidden) as the value source; init.js's change listeners and
   state.modelSel/state.bookieSel keep working unchanged. */
.custom-select-field { position: relative; }
.custom-select-native {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.custom-select-trigger {
  font: inherit;
  color: #f3f5f7 !important;
  background: #11181e !important;
  border: 1px solid #465661 !important;
  border-radius: 7px;
  padding: 5px 8px;
  min-width: 110px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  cursor: pointer;
}
.custom-select-caret {
  font-size: 9px;
  color: #aeb8c1 !important;
  transition: transform .12s ease;
}
.custom-select-field.open .custom-select-caret { transform: rotate(180deg); }
.custom-select-panel {
  display: none;
  position: absolute;
  z-index: 30;
  top: calc(100% + 4px);
  left: 0;
  min-width: 100%;
  width: max-content;
  max-width: 260px;
  max-height: 280px;
  overflow-y: auto;
  background: #151c22 !important;
  border: 1px solid #33414c !important;
  border-radius: 10px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .5);
  padding: 6px;
}
.custom-select-field.open .custom-select-panel { display: block; }
.custom-select-option {
  display: block;
  width: 100%;
  text-align: left;
  border: none;
  background: transparent;
  color: #f3f5f7 !important;
  border-radius: 6px;
  padding: 7px 10px;
  font-size: 13px;
  cursor: pointer;
}
.custom-select-option:hover {
  background: linear-gradient(90deg, rgba(34, 197, 94, .22), rgba(34, 197, 94, .03)) !important;
}
.date-picker-trigger-caret {
  font-size: 9px;
  color: #aeb8c1 !important;
  transition: transform .12s ease;
}
.date-picker-field.open .date-picker-trigger-caret { transform: rotate(180deg); }
.date-picker-panel {
  display: none;
  position: absolute;
  z-index: 30;
  top: calc(100% + 4px);
  left: 0;
  width: 240px;
  background: #151c22 !important;
  border: 1px solid #33414c !important;
  border-radius: 10px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .5);
  padding: 10px;
}
.date-picker-field.open .date-picker-panel { display: block; }
.date-picker-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.date-picker-title { font-weight: 700; font-size: 13px; color: #f3f5f7 !important; }
.date-picker-nav {
  border: 1px solid #33414c !important;
  background: #1b242c !important;
  color: #f3f5f7 !important;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
}
.date-picker-nav:hover { border-color: #62d83b !important; color: #62d83b !important; }
.date-picker-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  font-size: 10.5px;
  color: #aeb8c1 !important;
  text-align: center;
  margin-bottom: 4px;
}
.date-picker-weekdays span.weekend { color: #ef4444 !important; }
.date-picker-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.date-picker-day {
  border: 1px solid transparent;
  background: transparent;
  color: #f3f5f7 !important;
  border-radius: 6px;
  padding: 5px 0;
  font-size: 12px;
  cursor: pointer;
}
.date-picker-day:hover {
  background: #29404f !important;
  border-color: #62d83b !important;
}
.date-picker-day.weekend { color: #ef4444 !important; }
.date-picker-day.outside { color: #6b7680 !important; opacity: .6; }
.date-picker-day.today {
  border: 2px solid #62d83b !important;
  background: rgba(98, 216, 59, .14) !important;
  font-weight: 700;
}
.date-picker-day.selected {
  background: #62d83b !important;
  border-color: #62d83b !important;
  color: #0d1217 !important;
  font-weight: 700;
}
.date-picker-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 8px;
}
.date-picker-today {
  border: 1px solid #33414c !important;
  background: #1b242c !important;
  color: #f3f5f7 !important;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 11.5px;
  cursor: pointer;
}
.date-picker-today:hover { border-color: #62d83b !important; color: #62d83b !important; }
.filters input[type="search"] { width: 170px; }
.filters .check {
  flex-direction: row; align-items: center; gap: 6px; padding-bottom: 6px;
}
.filters .check label { font-size: 13px; color: var(--ink-2); }
.filters .check input:disabled + label { opacity: .4; cursor: not-allowed; }
/* vs Pinnacle / vs Bet365, stacked so the pair takes one column of width
   next to Hide results instead of each wrapping onto its own line. */
.field-vs-bookie-stack {
  display: flex; flex-direction: column; gap: 2px; padding-bottom: 6px;
}
.field-vs-bookie-stack .field.check { padding-bottom: 0; }

/* market multiselect */
.mkt-dd { position: relative; }
/* Fixed width so the button's own text (which changes with the selected
   markets, e.g. "All markets" vs "Draw" vs "Home win, Draw...") never
   resizes it -- an unstable width here shifts the flex-wrap point for
   every field after it in the filter bar, including Reset/Expert Mode
   at the end. */
#mkt-btn,
#model-btn {
  width: 140px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  text-align: left;
}
.mkt-dd .dd-panel {
  position: absolute; z-index: 30; top: calc(100% + 4px); left: 0;
  min-width: 190px; background: var(--surface);
  border: 1px solid var(--border); border-radius: 10px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.14); padding: 6px;
  display: none;
}
.mkt-dd.open .dd-panel { display: block; }
.dd-panel .row {
  display: flex; align-items: center; gap: 8px;
  padding: 5px 8px; border-radius: 7px; cursor: pointer;
}
.dd-panel .row:hover {
  background: linear-gradient(90deg, rgba(34, 197, 94, .22), rgba(34, 197, 94, .03)) !important;
}
.dd-panel .row input { accent-color: var(--series-1); }

/* ===== cards-tables.css ===== */
/* TipZ365 V3 module: cards-tables.css */
/* ---- stat tiles ---- */
.kpis {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px;
  margin-bottom: 14px;
}
.tile {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 12px; padding: 12px 14px 10px;
}
.tile .label { font-size: 12px; color: var(--muted); }
.tile .value { font-size: 26px; font-weight: 600; margin-top: 2px; }
.tile .delta { font-size: 12px; color: var(--ink-2); margin-top: 1px; }

/* ---- chart cards ---- */
.charts {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  margin-bottom: 14px;
}
.card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 12px; padding: 12px 14px;
}
.card .card-head {
  display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px;
}
.card h2 { font-size: 13.5px; font-weight: 600; margin: 0; flex: 1; }
.card .toggle {
  border: 1px solid transparent; background: none; color: var(--muted);
  font-size: 11.5px; cursor: pointer; padding: 2px 4px; border-radius: 6px;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.card .toggle:hover, .card .toggle:focus-visible {
  color: var(--ink-2);
  background: linear-gradient(90deg, rgba(34, 197, 94, .22), rgba(34, 197, 94, .03)) !important;
  border-color: rgba(34, 197, 94, .45) !important;
  outline: none;
}
.card svg { display: block; width: 100%; }
.card table.twin {
  width: 100%; border-collapse: collapse; font-size: 12.5px;
}
.card table.twin td, .card table.twin th {
  text-align: left; padding: 3px 6px; border-bottom: 1px solid var(--grid);
}
.card table.twin td.num, .card table.twin th.num {
  text-align: right; font-variant-numeric: tabular-nums;
}

.axis-text { font-size: 10.5px; fill: var(--muted); }
.bar-label { font-size: 11px; fill: var(--ink-2); }

/* ---- main table ---- */
.table-card { padding: 0; overflow: hidden; }
.table-head {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 12px 16px 8px;
}
.table-head h2 { font-size: 13.5px; font-weight: 600; margin: 0; }
.legend {
  display: flex; gap: 14px; align-items: center;
  font-size: 12px; color: var(--ink-2); flex: 1;
}
.legend .key { display: inline-flex; align-items: center; gap: 5px; }
.marked-toggle {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--ink-2); white-space: nowrap;
}
.marked-toggle input { margin: 0; cursor: pointer; }
.marked-toggle label { cursor: pointer; }
.marked-toggle:has(input:disabled) { opacity: 0.5; }
.marked-toggle input:disabled,
.marked-toggle input:disabled + label { cursor: not-allowed; }
.marked-clear-slot { flex: 1; display: flex; justify-content: center; min-width: 0; }
.marked-clear-btn {
  display: inline-block; font-size: 11px; padding: 1px 8px;
  border-radius: 999px; white-space: nowrap;
  background: none !important; color: #f1c40f !important; border: 1px solid #f1c40f !important;
  font-weight: 600 !important; cursor: pointer;
}
.marked-clear-btn:hover { background: rgba(241, 196, 15, 0.12) !important; }
.marked-clear-btn.hidden { display: none !important; }
.key .dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--series-1); display: inline-block;
}
.key .tick {
  width: 3px; height: 12px; border-radius: 2px;
  background: var(--bookie); display: inline-block;
}
.data-table { width: 100%; border-collapse: collapse; }
.data-table th {
  text-align: left; font-size: 11.5px; font-weight: 600; color: var(--muted);
  padding: 6px 10px; border-bottom: 1px solid var(--grid);
  cursor: pointer; user-select: none; white-space: nowrap;
  position: sticky; top: 0; z-index: 2; background: var(--surface);
}
.data-table th.num { text-align: right; }
.data-table th .arrow { font-size: 9px; }
.data-table td {
  padding: 5px 10px; border-bottom: 1px solid var(--grid);
  white-space: nowrap;
}
.data-table td.num {
  text-align: right; font-variant-numeric: tabular-nums;
}
.data-table tr:hover td { background: var(--ghost); }
.data-table .match { max-width: 300px; overflow: hidden; text-overflow: ellipsis; }
.data-table .sec { color: var(--ink-2); }
/* Flex row so a long league name truncates on its own (min-width:0 lets it
   shrink below its content size) instead of crowding the S/E/hit-rate
   badges that follow it against the cell's right edge -- badges themselves
   get flex-shrink:0 so they're never the ones that give up space. */
.data-table .league {
  font-size: 11px;
  color: var(--muted);
  display: flex;
  align-items: center;
  min-width: 0;
}
.data-table .league .league-search-trigger {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.data-table .league .league-text-plain {
  cursor: default;
  text-decoration: none;
}
.data-table .league .similar-games-badge,
.data-table .league .hit-rate-badge,
.data-table .league .expert-match-badge {
  flex-shrink: 0;
}
.data-table .league.missing { font-style: italic; }
/* Click the league name to copy "League Country" into the team/league/country
   search field above and jump there. Same font-size/weight as the plain
   league text it replaces. */
/* !important throughout both rule sets below: a generic dark-theme override
   (`button { background-color: ... !important; color: ... !important; }`
   further down this file) forces every plain <button> into a dark box with
   fixed text color otherwise, no matter how specific a normal rule is. */
.league-search-trigger {
  appearance: none !important; border: 0 !important; padding: 0 !important;
  margin: 0 !important; background: none !important;
  color: inherit !important; font: inherit; text-align: left; cursor: pointer;
  text-decoration: underline; text-decoration-color: transparent;
  text-underline-offset: 2px;
}
.league-search-trigger:hover { text-decoration-color: currentColor; }

/* Small "Clear" under the team/league/country search field -- plain text,
   not a bordered button, just turns the app's usual green on hover. */
.search-clear-trigger {
  appearance: none !important; border: 0 !important; padding: 2px 0 0 !important;
  margin: 0 !important; background: none !important;
  display: block; color: var(--muted) !important; font-size: 11px; cursor: pointer;
}
.search-clear-trigger:hover, .search-clear-trigger:focus-visible {
  color: #22c55e !important; outline: none;
}
.status {
  display: inline-block; font-size: 11px; padding: 1px 8px;
  border-radius: 999px; white-space: nowrap;
}
.status.off { color: var(--muted); border: 1px solid var(--border); }
html[data-theme="dark"] #table .status.result {
  color: #f5c451;
  border-color: rgba(245, 190, 62, 0.38);
  background: rgba(245, 190, 62, 0.10);
  font-weight: 650;
}
.status.up {
  color: var(--series-1); border: 1px solid var(--series-1);
  font-weight: 600;
}
.play-yes { color: var(--good); font-weight: 700; }
.play-no { color: var(--muted); }
.play-min { font-variant-numeric: tabular-nums; }
.pill {
  display: inline-block; font-size: 11px; padding: 1px 8px;
  border: 1px solid var(--border); border-radius: 999px; color: var(--ink-2);
  background: var(--page);
}
.flag {
  display: inline-block; font-size: 11.5px; font-weight: 700;
  width: 17px; height: 17px; line-height: 16px; text-align: center;
  border-radius: 50%; margin-right: 2px; cursor: default;
}
.flag.ph { background: var(--critical); color: #fff; }
.flag.dis { background: var(--serious); color: #fff; }
.flag.ext { background: var(--warn); color: #1a1a19; }
.table-foot {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 16px; color: var(--muted); font-size: 12.5px;
}


/* Completed prediction outcome: translucent full-row result tint. */
.data-table tbody tr.prediction-result-hit > td {
  background: rgba(46, 204, 113, 0.15);
}
.data-table tbody tr.prediction-result-draw > td {
  background: rgba(241, 196, 15, 0.15);
}
.data-table tbody tr.prediction-result-loss > td {
  background: rgba(231, 76, 60, 0.15);
}
.data-table tbody tr.prediction-result-hit > td:first-child {
  box-shadow: inset 4px 0 0 rgba(46, 204, 113, 0.72);
}
.data-table tbody tr.prediction-result-draw > td:first-child {
  box-shadow: inset 4px 0 0 rgba(241, 196, 15, 0.72);
}
.data-table tbody tr.prediction-result-loss > td:first-child {
  box-shadow: inset 4px 0 0 rgba(231, 76, 60, 0.72);
}
.data-table tbody tr.prediction-result-hit:hover > td {
  background: rgba(46, 204, 113, 0.22);
}
.data-table tbody tr.prediction-result-draw:hover > td {
  background: rgba(241, 196, 15, 0.22);
}
.data-table tbody tr.prediction-result-loss:hover > td {
  background: rgba(231, 76, 60, 0.22);
}

/* Manually marked games (session only): gold highlight on kickoff + team-name cells. */
.data-table tbody td.kickoff-clickable {
  cursor: pointer;
}
.data-table tbody td.cell-marked {
  background: rgba(241, 196, 15, 0.28) !important;
  color: #f1c40f !important;
  font-weight: 600 !important;
}

/* Per-model badges on a marked row (under the kickoff date), so marked
   games picked under different models can be mixed instead of all
   following the globally selected model. */
.marked-model-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  margin-top: 4px;
}
.marked-model-badge {
  padding: 2px 6px;
  color: var(--ink-2) !important;
  background: rgba(13, 18, 23, .3) !important;
  border: 1px solid var(--muted) !important;
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.marked-model-badge:hover:not(:disabled) {
  border-color: var(--ink-2) !important;
}
.marked-model-badge.active {
  color: #0d1217 !important;
  background: #f1c40f !important;
  border-color: #f1c40f !important;
  font-weight: 700;
}
.marked-model-badge.unsupported {
  opacity: .35;
  cursor: not-allowed;
}

/* ---- tooltip ---- */
#tooltip {
  position: fixed; z-index: 100; pointer-events: none; display: none;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 9px; box-shadow: 0 6px 24px rgba(0, 0, 0, 0.16);
  padding: 8px 10px; font-size: 12px; max-width: 260px;
}
#tooltip .tt-title { color: var(--muted); margin-bottom: 4px; }
#tooltip .tt-row {
  display: flex; align-items: center; gap: 7px; padding: 1px 0;
}
#tooltip .tt-key {
  width: 12px; height: 3px; border-radius: 2px; flex: none;
}
#tooltip .tt-val { font-weight: 600; font-variant-numeric: tabular-nums; }
#tooltip .tt-name { color: var(--ink-2); }

/* ---- upload report / history ---- */
.panel {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 12px; padding: 12px 16px; margin-bottom: 14px;
  font-size: 13px;
}
.panel h3 { margin: 0 0 6px; font-size: 13px; }
.panel .file-line { padding: 2px 0; color: var(--ink-2); }
.panel .file-line b { color: var(--ink); font-weight: 600; }
.panel .err { color: var(--critical); }
.hidden { display: none !important; }

@media (max-width: 980px) {
  .kpis { grid-template-columns: repeat(2, 1fr); }
  .charts { grid-template-columns: 1fr; }
}



/* Calibration confidence for a playable bookmaker quote. */
.play-yes.calibration-good { color: var(--good); }
.play-yes.calibration-limited { color: #d5a928; }
.play-yes.calibration-weak { color: #d9534f; }

/* ===== betslip.css ===== */
/* TipZ365 V3 module: betslip.css */
/* ---- betslip ---- */
body { padding-right: 330px; }

.betslip-panel {
  position: fixed;
  top: 0;
  right: 0;
  width: 315px;
  height: 100vh;
  z-index: 80;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border-left: 1px solid var(--border);
  box-shadow: -8px 0 28px rgba(0, 0, 0, 0.08);
}

.betslip-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px;
  border-bottom: 1px solid var(--grid);
}

.betslip-title { font-size: 17px; font-weight: 700; }
.betslip-sub { color: var(--muted); font-size: 12px; }
.betslip-count-row { display: flex; align-items: center; gap: 16px; margin-top: 1px; }
.betslip-clear { margin-left: auto; padding: 4px 8px; font-size: 12px; }

.betslip-items {
  flex: 1;
  overflow-y: auto;
  padding: 10px;
}

.betslip-empty {
  color: var(--muted);
  text-align: center;
  padding: 28px 10px;
}

.betslip-item {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 13px;
  margin-bottom: 8px;
  background: var(--page);
}

.betslip-item-top {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.betslip-match {
  flex: 1;
  font-weight: 600;
  white-space: normal;
}

.betslip-remove {
  border: none;
  background: transparent;
  color: var(--muted);
  font-size: 20px;
  line-height: 1;
  padding: 0 2px;
}

.betslip-remove:hover {
  color: var(--critical);
  background: transparent;
}

.betslip-market {
  color: var(--ink-2);
  font-size: 12px;
  margin-top: 4px;
}

.betslip-quote {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 7px;
  font-variant-numeric: tabular-nums;
}

.betslip-quote span { color: var(--muted); font-size: 12px; }
.betslip-quote strong { color: var(--bookie); font-size: 15px; }

.betslip-summary {
  border-top: 1px solid var(--grid);
  padding: 14px 16px 18px;
}

.betslip-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 7px 0;
  font-variant-numeric: tabular-nums;
}

.betslip-stake-label {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin: 12px 0 4px;
}

.betslip-stake {
  width: 100%;
  font: inherit;
  color: var(--ink);
  background: var(--page);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 10px;
  font-variant-numeric: tabular-nums;
}

.betslip-add {
  width: 30px;
  height: 28px;
  padding: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 26px;
}

.betslip-add.added { color: var(--good); }

@media (max-width: 1180px) {
  body { padding-right: 0; }

  .betslip-panel {
    width: 300px;
    transform: translateX(calc(100% - 42px));
    transition: transform 0.2s ease;
  }

  .betslip-panel:hover,
  .betslip-panel:focus-within {
    transform: translateX(0);
  }
}


/* ---- TipZ365 branded betslip visual upgrade ---- */
.betslip-panel {
  background:
    linear-gradient(180deg, rgba(21, 128, 61, 0.16) 0, rgba(21, 128, 61, 0.03) 155px),
    var(--surface);
  border-left: 2px solid #15803d;
  box-shadow: -14px 0 36px rgba(0, 0, 0, 0.14);
}

.betslip-head {
  position: relative;
  padding: 18px 16px 16px;
  background: linear-gradient(135deg, #0f3d24, #15803d);
  border-bottom: 0;
  color: #fff;
}

.betslip-head::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 0;
  height: 1px;
  background: rgba(255, 255, 255, 0.22);
}

.betslip-brand {
  color: #d9ffe5;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  margin-bottom: 2px;
}

.betslip-title {
  color: #fff;
  font-size: 22px;
  line-height: 1.05;
  font-weight: 800;
}

.betslip-sub {
  color: rgba(255, 255, 255, 0.74);
  margin-top: 5px;
}

.betslip-clear {
  color: #fff;
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.28);
}

.betslip-clear:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.20);
}

.betslip-items {
  padding: 12px;
  background: rgba(21, 128, 61, 0.025);
}

.betslip-item {
  position: relative;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid rgba(21, 128, 61, 0.25);
  border-left: 4px solid #15803d;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.055);
}

.betslip-item:hover {
  border-color: rgba(21, 128, 61, 0.48);
  transform: translateY(-1px);
}

.betslip-market {
  display: inline-block;
  margin-top: 7px;
  padding: 3px 7px;
  border-radius: 999px;
  color: #166534;
  background: rgba(34, 197, 94, 0.12);
  font-weight: 700;
}

.betslip-quote {
  align-items: center;
  margin-top: 18px;
  padding-top: 11px;
  border-top: 1px solid var(--grid);
}

.betslip-quote strong {
  min-width: 46px;
  padding: 4px 7px;
  text-align: center;
  border-radius: 7px;
  color: #fff;
  background: #15803d;
  font-size: 13px;
}

.betslip-remove {
  border-radius: 50%;
}

.betslip-summary {
  background:
    linear-gradient(180deg, rgba(21, 128, 61, 0.08), rgba(21, 128, 61, 0.02)),
    var(--surface);
  border-top: 2px solid #15803d;
}

.betslip-summary .betslip-row:first-child {
  margin-top: 0;
  padding: 10px 12px;
  border-radius: 9px;
  background: #0f3d24;
  color: #fff;
}

#betslip-total-odds {
  color: #86efac;
  font-size: 20px;
}

#betslip-return {
  color: #15803d;
  font-size: 18px;
}

#betslip-profit {
  color: #15803d;
  font-size: 16px;
}

.betslip-stake {
  border: 2px solid rgba(21, 128, 61, 0.35);
  background: var(--surface);
  font-size: 16px;
  font-weight: 700;
}

.betslip-stake:focus {
  outline: none;
  border-color: #15803d;
  box-shadow: 0 0 0 3px rgba(21, 128, 61, 0.12);
}

.betslip-add {
  color: #fff;
  background: #15803d;
  border-color: #15803d;
  border-radius: 8px;
}

.betslip-add:hover:not(:disabled) {
  color: #fff;
  background: #166534;
  border-color: #166534;
}

.betslip-add.added,
.betslip-add.added:disabled {
  color: #fff;
  background: #22c55e;
  border-color: #22c55e;
  box-shadow: 0 0 9px rgba(34, 197, 94, .62);
  opacity: 1;
}


/* ---- full betslip modal ---- */
.betslip-head-actions {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: stretch;
}

.betslip-full {
  color: #0f3d24;
  background: #d9ffe5;
  border-color: rgba(255, 255, 255, 0.35);
  font-weight: 800;
  font-size: 11px;
  padding: 5px 8px;
}

.betslip-full:hover {
  color: #0f3d24;
  background: #ffffff;
}

.modal-open {
  overflow: hidden;
}

.full-betslip-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(0, 0, 0, 0.62);
  backdrop-filter: blur(4px);
}

.full-betslip-overlay.hidden {
  display: none !important;
}

.full-betslip-modal {
  width: min(980px, 96vw);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--surface);
  border: 2px solid #15803d;
  border-radius: 18px;
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.34);
}

.full-betslip-head {
  display: flex;
  align-items: center;
  padding: 16px 20px;
  color: #fff;
  background: linear-gradient(135deg, #0f3d24, #15803d);
}

.full-betslip-brand {
  color: #d9ffe5;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

.full-betslip-title {
  margin-top: 1px;
  font-size: 24px;
  line-height: 1.05;
  font-weight: 850;
}

.full-betslip-sub {
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.75);
  font-size: 12px;
}

.full-betslip-close {
  margin-left: auto;
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 50%;
  color: #fff;
  background: rgba(255, 255, 255, 0.13);
  border-color: rgba(255, 255, 255, 0.25);
  font-size: 25px;
  line-height: 34px;
}

.full-betslip-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  min-height: 0;
  flex: 1;
}

.full-betslip-items {
  overflow-y: auto;
  padding: 14px 16px 18px;
}

.full-betslip-empty {
  padding: 50px 20px;
  color: var(--muted);
  text-align: center;
}

.full-betslip-item {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 72px;
  position: relative;
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  margin-bottom: 6px;
  border: 1px solid rgba(21, 128, 61, 0.20);
  border-left: 3px solid #15803d;
  border-radius: 9px;
  background: var(--page);
}

.full-betslip-number {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #15803d;
  font-size: 11px;
  font-weight: 800;
}

.full-betslip-match {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 700;
}

.full-betslip-meta {
  margin-top: 2px;
  color: var(--muted);
  font-size: 11px;
}

.full-betslip-odds {
  padding: 5px 7px;
  text-align: center;
  color: #fff;
  background: #15803d;
  border-radius: 7px;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}

.full-betslip-remove {
  position: absolute;
  right: 9px;
  bottom: 7px;
  border: none;
  background: transparent;
  color: #ef4444 !important;
  font-size: 20px;
  font-weight: 800;
  line-height: 1;
  padding: 0;
  background: transparent !important;
  box-shadow: none !important;
}

.full-betslip-remove:hover {
  color: #ff6b6b !important;
  background: transparent !important;
}

.full-betslip-summary {
  padding: 18px;
  border-left: 1px solid var(--grid);
  background:
    linear-gradient(180deg, rgba(21, 128, 61, 0.11), rgba(21, 128, 61, 0.025)),
    var(--surface);
}

.full-betslip-summary-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 10px 0;
  font-variant-numeric: tabular-nums;
}

.full-betslip-summary-row:first-child {
  margin-top: 0;
  padding: 11px 12px;
  color: #fff;
  background: #0f3d24;
  border-radius: 9px;
}

#full-betslip-total-odds {
  color: #86efac;
  font-size: 20px;
}

.full-betslip-summary label {
  display: block;
  margin: 16px 0 5px;
  color: var(--muted);
  font-size: 12px;
}

#full-betslip-stake {
  width: 100%;
  padding: 9px 10px;
  color: var(--ink);
  background: var(--surface);
  border: 2px solid rgba(21, 128, 61, 0.35);
  border-radius: 8px;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
}

#full-betslip-return,
#full-betslip-profit {
  color: #15803d;
  font-size: 16px;
}

@media (max-width: 760px) {
  .full-betslip-overlay {
    padding: 8px;
  }

  .full-betslip-modal {
    width: 100%;
    max-height: 96vh;
  }

  .full-betslip-content {
    grid-template-columns: 1fr;
  }

  .full-betslip-summary {
    border-left: 0;
    border-top: 1px solid var(--grid);
  }

  .full-betslip-item {
    grid-template-columns: 24px minmax(0, 1fr) 60px 24px;
    gap: 7px;
    padding: 7px 8px;
  }

  .full-betslip-match {
    font-size: 12px;
  }
}


/* ---- TipZ365 betslip refinement ---- */
.betslip-head,
.full-betslip-head {
  background: linear-gradient(135deg, #25282d, #34383e) !important;
}

.betslip-brand,
.full-betslip-brand {
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 16px !important;
  font-weight: 900 !important;
}

.brand-word { color: #ffffff; }
.brand-365 { color: #22c55e; }

.betslip-item {
  border-left-color: #15803d !important;
  transition: border-left-color .16s ease, transform .16s ease, box-shadow .16s ease !important;
}

.betslip-item:hover {
  border-left-color: #dc2626 !important;
}

.full-betslip-item {
  border-left-color: #15803d !important;
  transition: border-left-color .16s ease, transform .16s ease, box-shadow .16s ease !important;
}

.full-betslip-item:hover {
  border-left-color: #dc2626 !important;
}

.betslip-bookie,
.full-betslip-bookie {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.2;
  margin-bottom: 4px;
}

/* Shared "click to mark" text treatment, same colour as Predictions'
   cell-marked and Similar Games' market marking. */
.mark-clickable {
  cursor: pointer;
}
.mark-marked {
  color: #f1c40f !important;
  font-weight: 700 !important;
}

.betslip-match-line,
.full-betslip-match-line {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}

.betslip-match-line {
  flex-wrap: wrap;
}

.betslip-pick,
.full-betslip-pick {
  flex: 0 0 auto;
  color: #15803d;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.betslip-pick::before,
.full-betslip-pick::before {
  content: "• ";
  color: var(--muted);
}

.betslip-fair,
.full-betslip-fair {
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
}

.full-betslip-result {
  margin-top: 4px;
  display: inline-block;
  padding: 2px 7px;
  border: 1px solid rgba(245, 190, 62, 0.38);
  border-radius: 6px;
  background: rgba(245, 190, 62, 0.10);
  color: #f5c451;
  font-size: 12px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

/* Settled betslip selections: a restrained full-row win/loss wash. */
.betslip-item.bet-result-hit,
.full-betslip-item.bet-result-hit {
  background: linear-gradient(rgba(39, 132, 71, 0.22), rgba(39, 132, 71, 0.22)), var(--surface) !important;
  border-left-color: #278447 !important;
  box-shadow: inset 4px 0 0 #278447;
}

.betslip-item.bet-result-loss,
.full-betslip-item.bet-result-loss {
  background: var(--surface) !important;
  border: 4px solid #bd3f46 !important;
  box-sizing: border-box;
  box-shadow: none !important;
}

.betslip-quote {
  align-items: center;
}

.betslip-quote strong,
.full-betslip-odds {
  flex: 0 0 auto;
}

#betslip-payout,
#full-betslip-payout {
  color: #15803d;
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}

.full-betslip-main {
  min-width: 0;
}

.full-betslip-match-line {
  flex-wrap: wrap;
  min-width: 0;
}

@media (max-width: 760px) {
  .betslip-match-line,
  .full-betslip-match-line {
    gap: 5px;
  }
}


/* ---- Final betslip color refinements ---- */

/* Combined Odds: anthracite instead of green */
.betslip-total,
.full-betslip-total {
  background: linear-gradient(135deg, #25282d, #34383e) !important;
}

/* Hover: selection stripe and number badge change to red together */
.betslip-item:hover .betslip-number,
.betslip-item:hover .betslip-index,
.full-betslip-item:hover .full-betslip-number,
.full-betslip-item:hover .full-betslip-index {
  background: #dc2626 !important;
  color: #ffffff !important;
}


/* ---- Final requested betslip changes ---- */

/* Combined Odds background: anthracite in both compact and full betslip */
.betslip-total,
.betslip-total-box,
.betslip-combined,
.full-betslip-total,
.full-betslip-total-box,
.full-betslip-combined,
[class*="betslip"][class*="total"] {
  background: #2b2e33 !important;
  background-image: none !important;
}

/* Keep combined odds value readable */
.betslip-total strong,
.betslip-total-box strong,
.full-betslip-total strong,
.full-betslip-total-box strong {
  color: #ffffff;
}

/* Telegram address centered in the Full Betslip header */
.full-betslip-head {
  position: relative;
}

.full-betslip-telegram {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  color: #ffffff !important;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  opacity: .95;
}

.full-betslip-telegram:hover {
  text-decoration: underline;
}

/* Place bets button is not used */
.place-bets,
.place-bets-btn,
.betslip-place,
.betslip-place-btn {
  display: none !important;
}

@media (max-width: 760px) {
  .full-betslip-telegram {
    position: static;
    display: inline-block;
    transform: none;
    margin-top: 6px;
    font-size: 12px;
  }
}

/* Exact Combined Odds background fix */
.betslip-summary .betslip-row:first-child,
.full-betslip-summary-row:first-child {
  background: #2b2e33 !important;
  background-image: none !important;
}


/* ---- betslip kickoff date/time ---- */
.betslip-bookie,
.full-betslip-bookie {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.1px;
}




/* ---- Full betslip: bookmaker vs model comparison ---- */
.full-betslip-metrics {
  position: relative;
}

.full-betslip-metrics-label {
  margin-bottom: 7px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 1.35px;
}

.full-betslip-combined-row {
  margin-top: 0 !important;
  padding: 11px 12px;
  color: #ffffff;
  background: #2b2e33;
  border-radius: 9px;
}

.full-betslip-combined-row #full-betslip-total-odds {
  color: #86efac;
}

.full-betslip-probability-row {
  margin-top: 9px;
  padding: 0 2px;
  color: var(--muted);
  font-size: 12px;
}

.full-betslip-probability-row strong {
  color: var(--ink);
  font-size: 13px;
}

.full-betslip-metrics-model {
  margin-top: 34px;
  padding-top: 20px;
  border-top: 1px solid rgba(21, 128, 61, 0.32);
}

.full-betslip-metrics-model::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 42px;
  height: 2px;
  background: #22c55e;
  border-radius: 999px;
}

.full-betslip-fair-combined-row {
  margin-top: 0;
  padding: 11px 12px;
  color: #ffffff;
  background: #2b2e33;
  border-radius: 9px;
}

#full-betslip-fair-total-odds {
  color: #22c55e;
  font-size: 20px;
}

#full-betslip-model-probability,
#full-betslip-fair-payout {
  color: #15803d;
  font-variant-numeric: tabular-nums;
}

#full-betslip-fair-payout {
  font-size: 17px;
}

.full-betslip-save-selection {
  margin-top: 22px;
}

@media (max-width: 760px) {
  .full-betslip-metrics-model {
    margin-top: 24px;
    padding-top: 17px;
  }
}

/* 2026-07-18: use the exact Fair Combined Odds green for all odds/probability comparison values */
#full-betslip-total-odds,
#full-betslip-bookmaker-probability,
#full-betslip-fair-total-odds,
#full-betslip-model-probability {
  color: #22c55e !important;
}

/* 2026-07-18: unify payout green with all combined-odds/probability values */
#betslip-payout,
#full-betslip-payout,
#full-betslip-fair-payout {
  color: #22c55e !important;
}

/* Mobile full betslip: one continuous scroll area from selections to calculations */
@media (max-width: 760px) {
  .full-betslip-overlay {
    align-items: stretch;
    justify-content: stretch;
    padding: 0;
    background: rgba(0,0,0,.72);
  }

  .full-betslip-modal {
    width: 100%;
    height: 100dvh;
    max-height: none;
    border-radius: 0;
    border-width: 0 2px;
    overflow: hidden;
  }

  .full-betslip-head {
    position: sticky;
    top: 0;
    z-index: 5;
    flex: 0 0 auto;
    padding-top: calc(14px + env(safe-area-inset-top));
  }

  .full-betslip-content {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(20px + env(safe-area-inset-bottom));
  }

  .full-betslip-items {
    overflow: visible;
    padding: 14px 12px 8px;
  }

  .full-betslip-summary {
    position: static;
    overflow: visible;
    padding: 16px 14px 26px;
    border-top: 1px solid var(--grid);
  }

  .full-betslip-item {
    grid-template-columns: 26px minmax(0, 1fr) 64px 26px;
  }

  .full-betslip-match {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
    overflow-wrap: anywhere;
  }
}

/* ===== themes.css ===== */
/* TipZ365 V3 module: themes.css */
/* =========================================================
   TipZ365 dark dashboard palette — COLORS ONLY
   No layout, logic, data, league-info or functionality changes.
   ========================================================= */

:root {
  --bg: #0d1217 !important;
  --surface: #151c22 !important;
  --surface-2: #1b242c !important;
  --border: #33414c !important;
  --text: #f3f5f7 !important;
  --muted: #aeb8c1 !important;
  --grid: #33414c !important;
  --baseline: #56636e !important;
  --series-1: #62d83b !important;
  --series-neg: #ef4444 !important;
  --bookie: #f2c500 !important;
}

html,
body {
  background-color: #0d1217 !important;
  color: #f3f5f7 !important;
}

body,
main,
.page,
.container,
.dashboard {
  color: #f3f5f7 !important;
}

/* Main cards, filter area, charts and table surfaces */
.filters,
.filter-bar,
.filter-panel,
.toolbar,
.card,
.chart-card,
.table-card,
.predictions,
.predictions-card,
.table-wrap,
.table-container,
.betslip,
.betslip-panel {
  background-color: #151c22 !important;
  border-color: #33414c !important;
  color: #f3f5f7 !important;
}

/* Filter controls */
input,
select,
button,
.dropdown,
.dropdown button,
#mkt-btn,
#bookie-btn {
  background-color: #11181e !important;
  color: #f3f5f7 !important;
  border-color: #465661 !important;
}

/* background-color isn't inherited, so <option> kept the browser's default
   white popup background while inheriting the light text color above —
   near-invisible light-on-white until the dropdown was explicitly given
   its own background too. */
select {
  color-scheme: dark;
}
select option,
select option:checked,
select option:hover,
select option:focus,
select option:active {
  background-color: #11181e !important;
  background: #11181e !important;
  color: #f3f5f7 !important;
}

input::placeholder {
  color: #8f9aa4 !important;
}

label,
.label,
.sec,
.league,
.delta,
.axis-text {
  color: #aeb8c1 !important;
}

/* Dropdown panels */
.dropdown-panel,
#mkt-panel,
#bookie-panel {
  background-color: #151c22 !important;
  border-color: #465661 !important;
  color: #f3f5f7 !important;
}

/* Tables */
table,
thead,
tbody,
tr,
td,
th {
  border-color: #33414c !important;
}

thead,
thead tr,
th {
  background-color: #1b242c !important;
  color: #f3f5f7 !important;
}

tbody tr,
tbody td {
  background-color: #151c22 !important;
  color: #f3f5f7 !important;
}

tbody tr:hover td {
  background-color: #1b242c !important;
}

/* Positive/value accents */
.play-yes,
.value-positive {
  color: #62d83b !important;
}

/* Bookmaker odds / main odds accent */
.bookie-odds,
.odds-highlight {
  color: #f2c500 !important;
}

/* Existing buttons retain their behavior; only recolored */
.toggle,
.link,
#f-reset,
#show-more,
#upload-btn,
#history-btn,
#enrich-btn {
  background-color: #11181e !important;
  color: #f3f5f7 !important;
  border-color: #465661 !important;
}

/* Checkboxes/accent controls */
input[type="checkbox"] {
  accent-color: #62d83b !important;
}

/* Tooltips */
#tooltip,
.tooltip {
  background-color: #11181e !important;
  color: #f3f5f7 !important;
  border-color: #465661 !important;
}

/* Betslip body follows the same dark palette */
.betslip-body,
.betslip-items,
.betslip-summary,
.full-betslip-body,
.full-betslip-list,
.full-betslip-summary {
  background-color: #151c22 !important;
  color: #f3f5f7 !important;
}

.betslip-item,
.full-betslip-item {
  background-color: #182129 !important;
  border-color: #33414c !important;
}

.betslip-item:hover,
.full-betslip-item:hover {
  background-color: #1d2831 !important;
}

/* Keep the already requested anthracite Combined Odds */
.betslip-total,
.betslip-total-box,
.betslip-combined,
.full-betslip-total,
.full-betslip-total-box,
.full-betslip-combined,
.betslip-summary-row:first-child,
.full-betslip-summary-row:first-child {
  background-color: #2b2e33 !important;
  background-image: none !important;
  color: #f3f5f7 !important;
}

/* Scrollbars */
* {
  scrollbar-color: #465661 #11181e;
}


/* =========================================================
   TipZ365 Light / Dark mode switch
   ========================================================= */

.theme-toggle {
  position: fixed;
  top: 14px;
  right: 18px;
  z-index: 500;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 86px;
  justify-content: center;
  padding: 8px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .14);
}

/* Dark mode */
html[data-theme="dark"] {
  color-scheme: dark;
}

html[data-theme="dark"] body {
  background: #0d1217 !important;
  color: #f3f5f7 !important;
}

html[data-theme="dark"] .theme-toggle {
  background: #1b242c !important;
  color: #f3f5f7 !important;
  border-color: #465661 !important;
}

/* Light mode variables */
html[data-theme="light"] {
  color-scheme: light;
  --bg: #f5f7f9 !important;
  --surface: #ffffff !important;
  --surface-2: #f0f3f5 !important;
  --border: #d8dee4 !important;
  --text: #1d252c !important;
  --muted: #6f7c86 !important;
  --grid: #e5e9ed !important;
  --baseline: #a9b3bc !important;
  --series-1: #2f8f3a !important;
  --series-neg: #d93c3c !important;
  --bookie: #c99800 !important;
}

html[data-theme="light"] body,
html[data-theme="light"] main,
html[data-theme="light"] .page,
html[data-theme="light"] .container,
html[data-theme="light"] .dashboard {
  background: #f5f7f9 !important;
  color: #1d252c !important;
}

html[data-theme="light"] .filters,
html[data-theme="light"] .filter-bar,
html[data-theme="light"] .filter-panel,
html[data-theme="light"] .toolbar,
html[data-theme="light"] .card,
html[data-theme="light"] .chart-card,
html[data-theme="light"] .table-card,
html[data-theme="light"] .predictions,
html[data-theme="light"] .predictions-card,
html[data-theme="light"] .table-wrap,
html[data-theme="light"] .table-container,
html[data-theme="light"] .betslip,
html[data-theme="light"] .betslip-panel {
  background: #ffffff !important;
  color: #1d252c !important;
  border-color: #d8dee4 !important;
}

html[data-theme="light"] input,
html[data-theme="light"] select,
html[data-theme="light"] button,
html[data-theme="light"] .dropdown,
html[data-theme="light"] .dropdown button,
html[data-theme="light"] #mkt-btn,
html[data-theme="light"] #bookie-btn {
  background: #ffffff !important;
  color: #1d252c !important;
  border-color: #cbd3da !important;
}

html[data-theme="light"] input::placeholder {
  color: #98a3ac !important;
}

html[data-theme="light"] label,
html[data-theme="light"] .label,
html[data-theme="light"] .sec,
html[data-theme="light"] .league,
html[data-theme="light"] .delta,
html[data-theme="light"] .axis-text {
  color: #6f7c86 !important;
}

html[data-theme="light"] .dropdown-panel,
html[data-theme="light"] #mkt-panel,
html[data-theme="light"] #bookie-panel {
  background: #ffffff !important;
  border-color: #cbd3da !important;
  color: #1d252c !important;
}

html[data-theme="light"] table,
html[data-theme="light"] thead,
html[data-theme="light"] tbody,
html[data-theme="light"] tr,
html[data-theme="light"] td,
html[data-theme="light"] th {
  border-color: #dfe5ea !important;
}

html[data-theme="light"] thead,
html[data-theme="light"] thead tr,
html[data-theme="light"] th {
  background: #eef2f5 !important;
  color: #1d252c !important;
}

html[data-theme="light"] tbody tr,
html[data-theme="light"] tbody td {
  background: #ffffff !important;
  color: #1d252c !important;
}

html[data-theme="light"] tbody tr:hover td {
  background: #f5f8fa !important;
}

html[data-theme="light"] #tooltip,
html[data-theme="light"] .tooltip {
  background: #ffffff !important;
  color: #1d252c !important;
  border-color: #cbd3da !important;
}

html[data-theme="light"] .betslip-body,
html[data-theme="light"] .betslip-items,
html[data-theme="light"] .betslip-summary,
html[data-theme="light"] .full-betslip-body,
html[data-theme="light"] .full-betslip-list,
html[data-theme="light"] .full-betslip-summary {
  background: #ffffff !important;
  color: #1d252c !important;
}

html[data-theme="light"] .betslip-item,
html[data-theme="light"] .full-betslip-item {
  background: #f8fafb !important;
  border-color: #d8dee4 !important;
}

html[data-theme="light"] .betslip-item:hover,
html[data-theme="light"] .full-betslip-item:hover {
  background: #f1f5f7 !important;
}

html[data-theme="light"] .theme-toggle {
  background: #ffffff !important;
  color: #1d252c !important;
  border-color: #cbd3da !important;
}

/* Keep branded headers and Combined Odds anthracite in both modes */
html[data-theme="light"] .betslip-head,
html[data-theme="light"] .full-betslip-head,
html[data-theme="light"] .betslip-summary-row:first-child,
html[data-theme="light"] .full-betslip-summary-row:first-child {
  background: #2b2e33 !important;
  color: #ffffff !important;
}


/* ---- Theme switcher position: beside dashboard title ---- */
.theme-toggle.theme-toggle-inline {
  position: static !important;
  top: auto !important;
  right: auto !important;
  z-index: auto !important;
  display: inline-flex !important;
  vertical-align: middle;
  margin-left: 14px;
  transform: translateY(-2px);
  min-width: 86px;
}

/* Keep heading and switch on the same line where possible */
h1:has(+ .theme-toggle-inline) {
  display: inline-block;
  margin-right: 0;
}

@media (max-width: 700px) {
  .theme-toggle.theme-toggle-inline {
    margin-left: 8px;
    min-width: 76px;
    padding: 7px 9px;
  }
}

/* Model / market availability notice */
.model-market-warning {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 12px 0 14px;
  padding: 12px 14px;
  border: 1px solid rgba(245, 158, 11, .48);
  border-radius: 12px;
  background: rgba(245, 158, 11, .12);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
}
.model-market-warning[hidden] { display: none !important; }
.model-market-warning-icon {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-weight: 800;
  background: #f59e0b;
  color: #111827;
}
.model-market-warning-text {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}
.model-market-warning-text strong { font-size: .95rem; }
.model-market-warning-text span { opacity: .82; font-size: .88rem; }
#model-market-warning-action {
  white-space: nowrap;
  border: 1px solid rgba(245, 158, 11, .55);
  background: transparent;
  border-radius: 9px;
  padding: 8px 11px;
  cursor: pointer;
}
@media (max-width: 720px) {
  .model-market-warning { align-items: flex-start; flex-wrap: wrap; }
  #model-market-warning-action { margin-left: 40px; }
}


/* Phase 6: explicit database query controls */
.query-actions { display: flex; gap: 8px; align-items: center; }
.go-button, .reload-button {
  min-height: 38px;
  padding: 0 18px;
  border-radius: 8px;
  font-weight: 800;
  cursor: pointer;
}
.go-button {
  background: #d92727;
  border: 1px solid #ef4b4b;
  color: #fff;
}
.go-button:hover { filter: brightness(1.08); }
.reload-button {
  background: var(--surface-2, #30343a);
  border: 1px solid var(--border, #555);
  color: inherit;
}
.go-button:disabled, .reload-button:disabled { opacity: .6; cursor: wait; }
@media (max-width: 700px) {
  .query-actions { width: 100%; }
  .go-button, .reload-button { flex: 1; }
}

/* Phase 7: keep GO unmistakably red in both light and dark themes */
.go-button,
html[data-theme="light"] .go-button,
html[data-theme="dark"] .go-button {
  background: #d92727 !important;
  border-color: #ef4b4b !important;
  color: #ffffff !important;
  box-shadow: 0 0 0 1px rgba(217, 39, 39, .16), 0 6px 16px rgba(217, 39, 39, .22);
}
.go-button:hover,
html[data-theme="light"] .go-button:hover,
html[data-theme="dark"] .go-button:hover {
  background: #ed3030 !important;
}


/* Phase 11: fixed action widths so loading text never shifts the filter row */
.query-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}
.go-button {
  width: 72px;
  min-width: 72px;
  max-width: 72px;
}
.reload-button {
  width: 104px;
  min-width: 104px;
  max-width: 104px;
}
@media (max-width: 700px) {
  .query-actions { width: auto; }
  .go-button { flex: 0 0 72px; }
  .reload-button { flex: 0 0 104px; }
}

/* ---- Phase 13: prediction table color hierarchy ---- */
/* Market = subtle red badge, matching the soft Fair/Bookie color treatment */
.data-table tbody .pill {
  color: #111111 !important;
  background: rgba(220, 38, 38, 0.14) !important;
  border: 1px solid rgba(220, 38, 38, 0.42) !important;
  border-radius: 6px;
  font-weight: 800;
  padding: 3px 8px;
}

html[data-theme="dark"] .data-table tbody .pill {
  color: #f8fafc !important;
  background: rgba(239, 68, 68, 0.22) !important;
  border-color: rgba(248, 113, 113, 0.48) !important;
}

/* Fair/model odds = subtle green, bookmaker odds = subtle warm yellow.
   vertical-align: top keeps the Fair number level with the Bookie number
   despite the model tag now sitting under it -- table cells default to
   middle, which would otherwise nudge Fair's first line above center
   while Bookie's single line sits centered. */
.data-table tbody td.fair-odds-cell {
  background: rgba(34, 197, 94, 0.12) !important;
  border-radius: 6px;
  font-weight: 700;
  vertical-align: top;
}
.data-table tbody td.bookie-odds-cell {
  background: rgba(245, 158, 11, 0.16) !important;
  border-radius: 6px;
  font-weight: 700;
  vertical-align: top;
}
/* Which model the Fair figure above it came from -- always shown (every
   row can now pick a different model, not just marked ones), so this
   can't be limited to the marked-row badge picker alone. */
.fair-model-tag {
  font-size: 9px;
  font-weight: 600;
  color: var(--ink-2);
  opacity: .85;
  white-space: nowrap;
  margin-top: 1px;
}

html[data-theme="dark"] .data-table tbody td.fair-odds-cell {
  background: rgba(34, 197, 94, 0.18) !important;
}
html[data-theme="dark"] .data-table tbody td.bookie-odds-cell {
  background: rgba(245, 158, 11, 0.20) !important;
}

/* Preserve the red hover stripe on both compact and full betslips in light mode.
   The light-theme border shorthand previously overrode border-left-color. */
html[data-theme="light"] .betslip-item {
  border-left: 4px solid #15803d !important;
}
html[data-theme="light"] .betslip-item:hover {
  border-left-color: #dc2626 !important;
}
html[data-theme="light"] .full-betslip-item {
  border-left: 3px solid #15803d !important;
}
html[data-theme="light"] .full-betslip-item:hover {
  border-left-color: #dc2626 !important;
}




/* TipZ365: approved PCB image background — dark mode only. */
html[data-theme="dark"] body {
  background-color: #0b1116 !important;
  background-image: url("../images/pcb_background.jpg") !important;
  background-repeat: repeat !important;
  background-position: center top !important;
  background-size: 300px auto !important;
  background-attachment: fixed !important;
}

html[data-theme="light"] body {
  background-image: none !important;
}


/* Inline fixture details: approved blue surround, red model odds, best bookie in green.
   Toned down from a solid #2196f3 fill -- translucent over the dark panel
   instead of a full bright block, and the model badges (added later) get
   their own darker backing since var(--ink-2) badge text had poor
   contrast against that much blue. */
.fixture-inline-panel {
  background: rgba(33, 150, 243, 0.16) !important;
  border-color: #39d353 !important;
}
/* The Predictions row striping (#table tbody tr:nth-child(odd/even) td,
   two different dark shades) still applies to this row's own td too since
   it's a plain tr in the same tbody -- showing through the panel's
   translucent blue background even at rest, so the panel looked a
   different shade depending on whether it landed on an odd or even row,
   and even more so on :hover (a third, lighter shade for that same rule).
   Pins this row's td to one fixed color for both states so the overlay
   always sits on the same base regardless of position. Matching
   html[data-theme="dark"] #table tbody tr:nth-child(...) td's specificity
   (id + 2 classes + 4 tags) isn't enough on its own -- the :hover variant
   is an exact tie with a same-specificity rule that wins by appearing
   later in the file. The doubled class below (valid CSS, matches the same
   element, +1 class) breaks the tie regardless of source order. */
html[data-theme="dark"] #table tbody tr.fixture-inline-detail-row.fixture-inline-detail-row td,
html[data-theme="dark"] #table tbody tr.fixture-inline-detail-row.fixture-inline-detail-row:hover td {
  background-color: #0d1217 !important;
}
/* Same washing-out problem, different source: the panel's own inner
   tables (Calculated Odds, Bookmaker Odds) carry the .data-table class,
   which gets a subtle white overlay on row hover everywhere else in the
   app (--ghost: rgba(255,255,255,.06) in dark mode) -- exactly the
   "brighter/white" look reported here, from hovering the rows inside the
   panel rather than the panel's own outer row. */
.fixture-inline-panel .data-table tr:hover td {
  background: transparent !important;
}
.fixture-inline-head,
.fixture-inline-section-title,
.fixture-inline-table-wrap {
  background: transparent !important;
}
.fixture-inline-panel .marked-model-badge {
  background: rgba(13, 18, 23, .55) !important;
}
.fixture-inline-panel .marked-model-badge.active {
  background: #f1c40f !important;
}
.fixture-inline-panel .quick-search-table .quick-model-value {
  color: #ef4444 !important;
  font-weight: 800 !important;
}
.fixture-inline-panel .quick-bookie-value {
  color: #f3f5f7 !important;
}
.fixture-inline-panel .quick-bookie-value.fixture-inline-best-bookie {
  color: #62d83b !important;
  font-weight: 900 !important;
}
.fixture-inline-panel .fixture-inline-close {
  border-color: #ef4444 !important;
  color: #f3f5f7 !important;
  background: #151c22 !important;
}
.fixture-inline-panel .fixture-inline-close:hover {
  background: #1b242c !important;
}

/* Inline fixture headings on blue background. */
.fixture-inline-panel .fixture-inline-title,
.fixture-inline-panel .fixture-inline-section-title {
  color: #000000 !important;
  font-weight: 800 !important;
}

/* Inline bookmaker table: tighter columns and an additional top scrollbar. */
.fixture-inline-panel .quick-bookmaker-table {
  width: max-content !important;
  min-width: 100% !important;
  table-layout: auto !important;
}
.fixture-inline-panel .quick-bookmaker-table th,
.fixture-inline-panel .quick-bookmaker-table td {
  padding-left: 6px !important;
  padding-right: 6px !important;
}
.fixture-inline-panel .quick-bookmaker-table th:first-child,
.fixture-inline-panel .quick-bookmaker-table td:first-child {
  width: 145px !important;
  min-width: 145px !important;
  max-width: 145px !important;
  padding-right: 10px !important;
}
.fixture-inline-panel .quick-bookmaker-table th:not(:first-child),
.fixture-inline-panel .quick-bookmaker-table td:not(:first-child) {
  min-width: 88px !important;
  text-align: center !important;
}
.fixture-inline-panel .fixture-inline-top-scroll {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  height: 14px;
  margin: 2px 0 5px;
}
.fixture-inline-panel .fixture-inline-top-scroll-inner {
  height: 1px;
}


/* Inline fixture details: compact calculated row and tighter bookmaker grid. */
.fixture-inline-panel .fixture-inline-model-table {
  width: max-content !important;
  min-width: 0 !important;
  table-layout: auto !important;
}
.fixture-inline-panel .fixture-inline-model-table th,
.fixture-inline-panel .fixture-inline-model-table td {
  min-width: 105px !important;
  padding: 7px 9px !important;
  text-align: center !important;
}
.fixture-inline-panel .quick-bookmaker-table th,
.fixture-inline-panel .quick-bookmaker-table td {
  padding-left: 4px !important;
  padding-right: 4px !important;
}
.fixture-inline-panel .quick-bookmaker-table th:first-child,
.fixture-inline-panel .quick-bookmaker-table td:first-child {
  width: 108px !important;
  min-width: 108px !important;
  max-width: 108px !important;
  padding-left: 8px !important;
  padding-right: 6px !important;
}
.fixture-inline-panel .quick-bookmaker-table th:not(:first-child),
.fixture-inline-panel .quick-bookmaker-table td:not(:first-child) {
  min-width: 78px !important;
  padding-left: 5px !important;
  padding-right: 5px !important;
  text-align: center !important;
}
.fixture-inline-panel .quick-bookmaker-table-wrap {
  overflow-x: auto !important;
  scrollbar-gutter: stable;
  padding-bottom: 5px;
}
.fixture-inline-panel .quick-bookmaker-table-wrap::-webkit-scrollbar { height: 12px; }
.fixture-inline-panel .quick-bookmaker-table-wrap::-webkit-scrollbar-track { background: #151c22; border-radius: 8px; }
.fixture-inline-panel .quick-bookmaker-table-wrap::-webkit-scrollbar-thumb { background: #ef4444; border-radius: 8px; border: 2px solid #151c22; }
.fixture-inline-panel .fixture-inline-top-scroll { display:none !important; }

/* Light mode: keep regular bookmaker values readable in inline fixture details. */
html[data-theme="light"] .fixture-inline-panel .quick-bookie-value,
body.theme-light .fixture-inline-panel .quick-bookie-value {
  color: #000000 !important;
}
html[data-theme="light"] .fixture-inline-panel .quick-bookie-value.fixture-inline-best-bookie,
body.theme-light .fixture-inline-panel .quick-bookie-value.fixture-inline-best-bookie {
  color: #62d83b !important;
}

/* ===== mobile.css ===== */
/* TipZ365 V3 module: mobile.css */
/* =========================================================
   Phase 18 — dedicated mobile app view
   Desktop remains unchanged. Mobile is rendered separately.
   ========================================================= */
.mobile-app { display: none; }
.mobile-overlay-close { display: none; }

@media (max-width: 900px) {
  .quick-search-desktop-results { display: none !important; }
  body {
    padding-right: 0 !important;
    background: #07111b !important;
    color: #f7fafc;
  }

  main {
    max-width: none;
    padding: 0 0 78px !important;
  }

  /* Hide desktop-only surface on phones */
  main > header,
  #db-explorer-panel,
  #model-market-warning,
  #kpis,
  .charts,
  .table-card {
    display: none !important;
  }

  /* Filters are an overlay, shown only when the mobile Filter button is used */
  #filters {
    display: none !important;
    position: fixed !important;
    z-index: 220;
    inset: 64px 10px 74px 10px;
    overflow-y: auto;
    align-content: start;
    background: #0c1824 !important;
    color: #f7fafc !important;
    border: 1px solid #263747 !important;
    box-shadow: 0 20px 60px rgba(0,0,0,.55);
    padding: 14px !important;
  }
  #filters.mobile-open {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }
  #filters .field,
  #filters .field:has(#f-games),
  #filters .field:has(#f-model-min),
  #filters .field:has(#f-model-max) {
    width: auto !important;
  }
  #filters input,
  #filters select,
  #filters button {
    width: 100% !important;
    min-height: 42px;
  }
  #filters .check {
    background: rgba(255,255,255,.035);
    border-radius: 8px;
    padding: 8px;
  }
  #filters .check input {
    width: auto !important;
  }

  .mobile-app {
    display: block;
    min-height: 100vh;
    background:
      radial-gradient(circle at 40% -10%, rgba(49,117,76,.20), transparent 26%),
      linear-gradient(180deg, #07111b 0%, #081521 100%);
  }

  .mobile-topbar {
    min-height: 88px;
    padding: 18px 18px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #213140;
    position: sticky;
    top: 0;
    z-index: 120;
    background: rgba(7,17,27,.96);
    backdrop-filter: blur(14px);
  }

  .mobile-brand {
    display: flex;
    align-items: center;
    font-size: 28px;
    font-weight: 900;
    font-style: italic;
    letter-spacing: -.8px;
  }
  .mobile-ball { font-size: 35px; margin-right: 9px; font-style: normal; }
  .mobile-brand-tipz { color: #fff; }
  .mobile-brand-365 { color: #78d832; }

  .mobile-icon-btn {
    color: #fff;
    background: transparent;
    border: 0;
    font-size: 16px;
    padding: 9px 5px;
  }

  .mobile-tools {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 14px;
    border-bottom: 1px solid #213140;
    background: #081521;
    position: sticky;
    top: 88px;
    z-index: 110;
  }
  .mobile-tools select,
  .mobile-tools button {
    color: #f8fafc;
    background: #0b1723;
    border: 1px solid #405061;
    min-height: 42px;
    border-radius: 7px;
    font-weight: 700;
  }
  .mobile-tools select { padding: 0 34px 0 13px; }
  .mobile-tools button { color: #80df35; font-size: 22px; width: 48px; }

  .mobile-list-head {
    display: grid;
    grid-template-columns: 52px minmax(128px, 1fr) 53px 62px 68px 58px 38px;
    gap: 5px;
    padding: 9px 10px 7px;
    color: #c2cad2;
    font-size: 9px;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: .025em;
    border-bottom: 1px solid #1d2d3a;
  }

  .mobile-predictions { padding: 0 6px 10px; }

  .mobile-game {
    display: grid;
    grid-template-columns: 52px minmax(128px, 1fr) 53px 62px 68px 58px 38px;
    gap: 5px;
    align-items: center;
    padding: 13px 4px 11px;
    border-bottom: 1px solid #233541;
    background: linear-gradient(90deg, rgba(12,27,39,.94), rgba(7,20,31,.94));
  }
  .mobile-game-time {
    align-self: start;
    color: #fff;
    font-weight: 700;
    font-size: 14px;
  }
  .mobile-game-time small {
    display: block;
    color: #aeb8c2;
    font-weight: 500;
    font-size: 11px;
    margin-top: 2px;
  }
  .mobile-game-match {
    min-width: 0;
    font-size: 13.5px;
    font-weight: 800;
    line-height: 1.38;
  }
  .mobile-game-match .away { display: block; }
  .mobile-game-match .league {
    display: block;
    margin-top: 3px;
    color: #a9b4bf;
    font-weight: 500;
    font-size: 10.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .mobile-market {
    text-align: center;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.05;
  }
  .market-1 { color: #ff4242; }
  .market-2 { color: #3d91ff; }
  .market-over25 { color: #ff7318; }
  .market-under25 { color: #c34bec; }
  .market-btts_yes { color: #21c7c4; }
  .market-btts_no { color: #bcc4d4; }
  .market-home_2plus { color: #f0b918; }
  .market-away_2plus { color: #ff4058; }
  .market-x { color: #c7cfda; }

  .mobile-fair,
  .mobile-bookie,
  .mobile-value {
    text-align: center;
    font-size: 17px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
  }
  .mobile-fair { color: #80df35; }
  .mobile-bookie { color: #ffdf00; }
  .mobile-value { color: #80df35; font-size: 15px; }

  .mobile-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
  }
  .mobile-add {
    width: 38px;
    height: 38px;
    padding: 0;
    color: #80df35;
    background: transparent;
    border: 1.5px solid #74d62d;
    border-radius: 7px;
    font-size: 28px;
    line-height: 1;
  }
  .mobile-add.added {
    color: #07111b;
    background: #80df35;
  }
  .mobile-details-toggle {
    width: 34px;
    min-height: 22px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #e8edf2;
    font-size: 20px;
    line-height: 1;
  }

  .mobile-model-details {
    grid-column: 1 / -1;
    display: none;
    margin: 8px 5px 1px;
    border: 1px solid #344858;
    border-radius: 6px;
    background: #0a1723;
    overflow: hidden;
  }
  .mobile-model-details.open { display: block; }
  .mobile-model-title {
    padding: 10px 13px;
    font-size: 14px;
    font-weight: 900;
    border-bottom: 1px solid #2a3c4c;
    color: #f6f8fa;
  }
  .mobile-model-row {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 7px 13px;
    border-bottom: 1px solid #1f3040;
    font-size: 13px;
  }
  .mobile-model-row:last-child { border-bottom: 0; }
  .mobile-model-row strong {
    color: #80df35;
    font-size: 15px;
    font-variant-numeric: tabular-nums;
  }

  .mobile-row-count {
    padding: 12px 16px 90px;
    color: #9faab5;
    font-size: 12px;
    text-align: center;
  }

  .mobile-bottom-nav {
    position: fixed;
    z-index: 180;
    left: 0;
    right: 0;
    bottom: 0;
    height: 70px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: rgba(8,21,33,.97);
    border-top: 1px solid #213241;
    backdrop-filter: blur(14px);
  }
  .mobile-bottom-nav button {
    position: relative;
    border: 0;
    background: transparent;
    color: #aab4be;
    font-size: 24px;
    padding: 7px 4px 3px;
  }
  .mobile-bottom-nav button.active { color: #80df35; }
  .mobile-bottom-nav span {
    display: block;
    font-size: 11px;
    margin-top: 1px;
  }
  .mobile-bottom-nav b {
    position: absolute;
    top: 4px;
    left: calc(50% + 8px);
    min-width: 17px;
    height: 17px;
    line-height: 17px;
    font-size: 10px;
    border-radius: 999px;
    color: #07111b;
    background: #80df35;
  }

  /* Existing sidebar is replaced by the mobile bottom-nav action */
  #betslip-panel { display: none !important; }
}

@media (max-width: 430px) {
  .mobile-list-head,
  .mobile-game {
    grid-template-columns: 46px minmax(110px, 1fr) 48px 56px 61px 52px 35px;
    gap: 3px;
  }
  .mobile-game-match { font-size: 12.5px; }
  .mobile-fair, .mobile-bookie { font-size: 15px; }
  .mobile-value { font-size: 13px; }
}


/* =========================================================
   Phase 19 — mobile interaction polish
   ========================================================= */
@media (max-width: 900px) {
  html, body {
    min-height: 100%;
    overscroll-behavior-y: contain;
  }

  body {
    padding-bottom: calc(74px + env(safe-area-inset-bottom)) !important;
  }

  main {
    padding-bottom: calc(92px + env(safe-area-inset-bottom)) !important;
  }

  .mobile-app {
    padding-bottom: calc(88px + env(safe-area-inset-bottom));
  }

  .mobile-list-head,
  .mobile-game {
    grid-template-columns:
      48px
      minmax(118px, 1fr)
      46px
      58px
      64px
      54px;
    gap: 4px;
  }

  .mobile-list-head span:last-child {
    display: none;
  }

  .mobile-actions {
    grid-column: 1 / -1;
    width: 100%;
    margin-top: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .mobile-details-toggle {
    width: 54px;
    min-height: 34px;
    border: 1px solid #344858;
    border-radius: 8px;
    background: #0b1723;
    font-size: 22px;
  }

  .mobile-model-details {
    grid-column: 1 / -1;
    margin-top: 2px;
  }

  .mobile-add-details {
    width: calc(100% - 20px);
    margin: 10px;
    min-height: 44px;
    border-radius: 8px;
    border: 1px solid #74d62d;
    background: transparent;
    color: #80df35;
    font-weight: 900;
    font-size: 14px;
  }

  .mobile-add-details.added {
    color: #07111b;
    background: #80df35;
  }

  .mobile-bottom-nav {
    height: calc(70px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
  }

  .mobile-predictions {
    padding-bottom: calc(18px + env(safe-area-inset-bottom));
  }

  #filters {
    bottom: calc(74px + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width: 430px) {
  .mobile-list-head,
  .mobile-game {
    grid-template-columns:
      44px
      minmax(102px, 1fr)
      43px
      54px
      58px
      48px;
    gap: 3px;
  }

  .mobile-list-head {
    font-size: 8px;
  }

  .mobile-game-match {
    font-size: 12px;
  }

  .mobile-market {
    font-size: 14px;
  }

  .mobile-fair,
  .mobile-bookie {
    font-size: 14px;
  }

  .mobile-value {
    font-size: 12px;
  }
}


/* =========================================================
   Phase 20 — mobile filter stability, contrast and theme polish
   ========================================================= */
@media (max-width: 900px) {
  #filters {
    position: fixed !important;
    inset:
      calc(76px + env(safe-area-inset-top))
      10px
      calc(82px + env(safe-area-inset-bottom))
      10px !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    transform: none !important;
  }

  #filters.mobile-open {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: start !important;
  }

  #filters .field,
  #filters .check,
  #filters input,
  #filters select,
  #filters button {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #filters input,
  #filters select,
  #filters button {
    font-size: 16px !important;
  }

  /* Keep the filter action buttons visible and stable */
  #filters .filter-actions,
  #filters .actions,
  #filters .buttons {
    position: sticky;
    bottom: 0;
    z-index: 5;
    grid-column: 1 / -1;
    background: inherit;
    padding-top: 8px;
  }

  /* Dark theme: ensure market abbreviations are readable */
  html[data-theme="dark"] .mobile-market {
    text-shadow: 0 1px 2px rgba(0,0,0,.7);
  }

  html[data-theme="dark"] .market-1 { color: #ff6262 !important; }
  html[data-theme="dark"] .market-2 { color: #62a9ff !important; }
  html[data-theme="dark"] .market-over25 { color: #ff914a !important; }
  html[data-theme="dark"] .market-under25 { color: #db78ff !important; }
  html[data-theme="dark"] .market-btts_yes { color: #43e0dc !important; }
  html[data-theme="dark"] .market-btts_no { color: #f0f3f7 !important; }
  html[data-theme="dark"] .market-home_2plus { color: #ffd24d !important; }
  html[data-theme="dark"] .market-away_2plus { color: #ff6173 !important; }

  /* Light theme becomes a true light mobile layout */
  html[data-theme="light"] body {
    background: #f4f6f8 !important;
    color: #111827 !important;
  }

  html[data-theme="light"] .mobile-app {
    background:
      radial-gradient(circle at 40% -10%, rgba(120,216,50,.12), transparent 26%),
      linear-gradient(180deg, #ffffff 0%, #f5f7f9 100%) !important;
    color: #111827 !important;
  }

  html[data-theme="light"] .mobile-topbar,
  html[data-theme="light"] .mobile-tools,
  html[data-theme="light"] .mobile-bottom-nav {
    background: rgba(255,255,255,.97) !important;
    border-color: #d7dee5 !important;
    color: #111827 !important;
  }

  html[data-theme="light"] .mobile-brand-tipz {
    color: #111827 !important;
  }

  html[data-theme="light"] .mobile-icon-btn,
  html[data-theme="light"] .mobile-tools select,
  html[data-theme="light"] .mobile-tools button,
  html[data-theme="light"] .mobile-details-toggle {
    color: #111827 !important;
    background: #ffffff !important;
    border-color: #cbd5df !important;
  }

  html[data-theme="light"] .mobile-list-head {
    color: #5c6773 !important;
    border-color: #d9e0e6 !important;
  }

  html[data-theme="light"] .mobile-game {
    background: #ffffff !important;
    border-color: #dce3e9 !important;
  }

  html[data-theme="light"] .mobile-game-time,
  html[data-theme="light"] .mobile-game-match {
    color: #111827 !important;
  }

  html[data-theme="light"] .mobile-game-time small,
  html[data-theme="light"] .mobile-game-match .league {
    color: #66717d !important;
  }

  html[data-theme="light"] .mobile-model-details {
    background: #ffffff !important;
    border-color: #cfd8e1 !important;
  }

  html[data-theme="light"] .mobile-model-title,
  html[data-theme="light"] .mobile-model-row {
    color: #111827 !important;
    border-color: #e0e6eb !important;
  }

  html[data-theme="light"] .mobile-bottom-nav button {
    color: #6b7280 !important;
  }

  html[data-theme="light"] .mobile-bottom-nav button.active {
    color: #4f9e21 !important;
  }

  /* Light theme market colors: darker for contrast */
  html[data-theme="light"] .market-1 { color: #c62828 !important; }
  html[data-theme="light"] .market-2 { color: #1565c0 !important; }
  html[data-theme="light"] .market-over25 { color: #d85800 !important; }
  html[data-theme="light"] .market-under25 { color: #8e24aa !important; }
  html[data-theme="light"] .market-btts_yes { color: #008b87 !important; }
  html[data-theme="light"] .market-btts_no { color: #4b5563 !important; }
  html[data-theme="light"] .market-home_2plus { color: #9a6b00 !important; }
  html[data-theme="light"] .market-away_2plus { color: #c2183b !important; }

  /* Keep odds/value readable in both themes */
  html[data-theme="light"] .mobile-fair { color: #2f8f16 !important; }
  html[data-theme="light"] .mobile-bookie { color: #a66d00 !important; }
  html[data-theme="light"] .mobile-value { color: #2f8f16 !important; }
}

@media (max-width: 560px) {
  #filters.mobile-open {
    grid-template-columns: 1fr !important;
  }
}


/* =========================================================
   Mobile card layout — full fixture line + unified colours
   Blue = market, red = fair odds, green = bookmaker odds.
   ========================================================= */
@media (max-width: 900px) {
  .mobile-list-head { display: none !important; }

  .mobile-predictions {
    padding: 10px 10px 18px;
    display: grid;
    gap: 10px;
  }

  .mobile-game.mobile-game-card {
    display: block;
    padding: 14px;
    border: 1px solid #263a49;
    border-radius: 12px;
    background: linear-gradient(145deg, rgba(12,27,39,.98), rgba(7,20,31,.98));
    box-shadow: 0 7px 20px rgba(0,0,0,.16);
  }

  .mobile-game-match {
    min-width: 0;
    font-size: inherit;
    line-height: normal;
  }

  .mobile-fixture-name {
    color: #f7fafc;
    font-size: 16px;
    line-height: 1.32;
    font-weight: 850;
    overflow-wrap: anywhere;
  }

  .mobile-fixture-meta {
    margin-top: 5px;
    color: #9eabb7;
    font-size: 11.5px;
    line-height: 1.35;
  }

  .mobile-market,
  .market-1, .market-2, .market-x,
  .market-over25, .market-under25,
  .market-btts_yes, .market-btts_no,
  .market-home_2plus, .market-away_2plus {
    display: block;
    margin-top: 12px;
    padding: 7px 10px;
    text-align: left;
    color: #59a6ff !important;
    background: rgba(61,145,255,.09);
    border-left: 4px solid #3d91ff;
    border-radius: 4px 8px 8px 4px;
    font-size: 14px;
    line-height: 1.15;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .035em;
  }

  .mobile-odds-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
  }

  .mobile-odd-cell {
    min-width: 0;
    padding: 9px 5px 8px;
    text-align: center;
    border: 1px solid #263a49;
    border-radius: 9px;
    background: rgba(255,255,255,.025);
  }

  .mobile-odd-cell span {
    display: block;
    margin-bottom: 4px;
    color: #9eabb7;
    font-size: 9px;
    line-height: 1;
    font-weight: 850;
    letter-spacing: .08em;
  }

  .mobile-odd-cell strong {
    display: block;
    font-size: 18px;
    line-height: 1.12;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
  }

  .mobile-odd-cell.mobile-fair strong { color: #ff4d57; }
  .mobile-odd-cell.mobile-bookie strong { color: #22c55e; }
  .mobile-odd-cell.mobile-value strong { color: #22c55e; }
  .mobile-odd-cell.mobile-value.negative strong { color: #ff4d57; }

  .mobile-actions {
    width: 100%;
    margin-top: 10px;
    display: block;
  }

  .mobile-details-toggle {
    width: 100%;
    min-height: 40px;
    padding: 0 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid #344858;
    border-radius: 8px;
    background: #0b1723;
    color: #e8edf2;
    font-size: 12px;
    font-weight: 800;
  }

  .mobile-details-toggle b {
    color: #59a6ff;
    font-size: 20px;
    line-height: 1;
  }

  .mobile-model-details {
    display: none;
    margin: 9px 0 0;
    border: 1px solid #344858;
    border-radius: 8px;
    background: #0a1723;
    overflow: hidden;
  }

  .mobile-model-details.open { display: block; }

  .mobile-model-row strong { color: #ff4d57; }
}

@media (max-width: 390px) {
  .mobile-game.mobile-game-card { padding: 12px; }
  .mobile-fixture-name { font-size: 15px; }
  .mobile-odds-grid { gap: 6px; }
  .mobile-odd-cell strong { font-size: 16px; }
}

/* =========================================================
   Mobile overlays: stable Filter + compact Match Search
   ========================================================= */
@media (max-width: 900px) {
  .mobile-top-actions {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .mobile-icon-btn {
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #263747;
    border-radius: 9px;
    background: #0b1723;
    white-space: nowrap;
  }

  body.mobile-overlay-open {
    overflow: hidden !important;
    touch-action: none;
  }

  .mobile-overlay-backdrop {
    position: fixed;
    z-index: 205;
    inset: 0;
    background: rgba(0, 0, 0, .62);
    backdrop-filter: blur(3px);
  }

  .mobile-overlay-backdrop[hidden] {
    display: none !important;
  }

  #filters,
  #quick-search-card {
    display: none !important;
    position: fixed !important;
    z-index: 230 !important;
    inset:
      calc(12px + env(safe-area-inset-top))
      10px
      calc(12px + env(safe-area-inset-bottom))
      10px !important;
    width: auto !important;
    max-width: 620px !important;
    margin: auto !important;
    max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box !important;
    border: 1px solid #344858 !important;
    border-radius: 14px !important;
    background: #0c1824 !important;
    color: #f7fafc !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.65) !important;
  }

  #filters.mobile-open {
    display: grid !important;
    padding: 64px 14px 18px !important;
  }

  #quick-search-card.mobile-open {
    display: block !important;
    padding: 64px 14px 18px !important;
  }

  .mobile-overlay-close {
    position: absolute;
    z-index: 8;
    top: 12px;
    right: 12px;
    width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center;
    border: 1px solid #465b6d !important;
    border-radius: 999px !important;
    background: #111e29 !important;
    color: #fff !important;
    font-size: 25px !important;
    line-height: 1 !important;
  }

  #quick-search-card .quick-search-head {
    display: block;
  }

  #quick-search-card .quick-search-head > div:first-child {
    margin-bottom: 12px;
  }

  #quick-search-card .quick-search-head h2 {
    margin: 0 52px 5px 0;
    font-size: 22px;
  }

  #quick-search-card .quick-search-head .sec {
    font-size: 12px;
    line-height: 1.4;
  }

  #quick-search-card .quick-search-controls {
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
  }

  #quick-search-card .quick-search-controls input {
    grid-column: 1 / -1;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px;
    font-size: 16px;
  }

  #quick-search-card .quick-search-controls button {
    min-height: 44px;
  }

  .mobile-bottom-nav {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .mobile-bottom-nav button.active {
    color: #aab4be;
  }

  html[data-theme="light"] .mobile-icon-btn,
  html[data-theme="light"] .mobile-overlay-close {
    background: #fff !important;
    color: #111827 !important;
    border-color: #cbd5df !important;
  }

  html[data-theme="light"] #filters,
  html[data-theme="light"] #quick-search-card {
    background: #fff !important;
    color: #111827 !important;
    border-color: #cbd5df !important;
  }
}

@media (max-width: 420px) {
  .mobile-topbar {
    padding-left: 12px;
    padding-right: 12px;
  }

  .mobile-brand {
    font-size: 24px;
  }

  .mobile-ball {
    font-size: 30px;
    margin-right: 6px;
  }

  .mobile-top-actions {
    gap: 5px;
  }

  .mobile-icon-btn {
    padding: 8px 7px;
    font-size: 14px;
  }
}

/* =========================================================
   Mobile Quick Search — one fixture, separate market cards
   ========================================================= */
.quick-search-mobile-results { display: none; }

@media (max-width: 900px) {
  #quick-search-card .quick-search-table-wrap,
  #quick-search-card #quick-search-odds {
    display: none !important;
  }

  #quick-search-card #quick-search-results {
    margin-top: 14px;
  }

  .quick-search-mobile-results {
    display: block;
  }

  .quick-mobile-fixture {
    margin: 0 0 18px;
  }

  .quick-mobile-list-intro {
    margin: 2px 0 9px;
    color: #aeb9c3;
    font-size: 12px;
  }

  .quick-mobile-result-item {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 22px;
    width: 100%;
    margin: 0 0 8px;
    padding: 12px 36px 11px 12px;
    border: 1px solid #344858;
    border-radius: 10px;
    background: linear-gradient(180deg, #101e2b, #0b1824);
    color: #fff;
    text-align: left;
  }

  .quick-mobile-result-item strong {
    display: block;
    grid-column: 1;
    font-size: 14px;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }

  .quick-mobile-result-item span {
    display: block;
    grid-column: 1;
    margin-top: 5px;
    color: #aeb9c3;
    font-size: 11px;
    line-height: 1.3;
  }

  .quick-mobile-result-item b {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    color: #62a8ff;
    font-size: 25px;
    line-height: 1;
  }

  .quick-mobile-result-item:active {
    transform: translateY(1px);
    background: #14283a;
  }

  .quick-mobile-back-results {
    width: 100%;
    margin: 0 0 10px;
    padding: 9px 11px;
    border: 1px solid #365064;
    border-radius: 8px;
    background: #101f2c;
    color: #62a8ff;
    font-size: 12px;
    font-weight: 800;
    text-align: left;
  }

  html[data-theme="light"] .quick-mobile-result-item,
  html[data-theme="light"] .quick-mobile-back-results {
    background: #fff;
    color: #111827;
    border-color: #cbd5df;
  }


  .quick-mobile-fixture-head {
    padding: 12px 12px 11px;
    border: 1px solid #344858;
    border-bottom: 0;
    border-radius: 12px 12px 0 0;
    background: #101e2b;
  }

  .quick-mobile-fixture-head strong {
    display: block;
    color: #fff;
    font-size: 15px;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }

  .quick-mobile-fixture-head span {
    display: block;
    margin-top: 5px;
    color: #aeb9c3;
    font-size: 11px;
    line-height: 1.35;
  }

  .quick-mobile-market-card {
    padding: 12px;
    border: 1px solid #344858;
    border-top-color: #233746;
    background: linear-gradient(180deg, #0b1824, #091520);
  }

  .quick-mobile-market-card:last-child {
    border-radius: 0 0 12px 12px;
  }

  .quick-mobile-market-title {
    margin-bottom: 12px;
    padding: 7px 10px;
    border-left: 4px solid #3d91ff;
    border-radius: 4px;
    background: rgba(61,145,255,.10);
    color: #62a8ff;
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .025em;
  }

  .quick-mobile-odds-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
  }

  .quick-mobile-odd {
    min-width: 0;
    padding: 9px 5px 8px;
    text-align: center;
    border: 1px solid #263b4b;
    border-radius: 8px;
    background: rgba(255,255,255,.025);
  }

  .quick-mobile-odd span,
  .quick-mobile-odd small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .quick-mobile-odd span {
    color: #aeb9c3;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .025em;
  }

  .quick-mobile-odd strong {
    display: block;
    margin-top: 5px;
    font-size: 19px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
  }

  .quick-mobile-odd small {
    min-height: 14px;
    margin-top: 3px;
    color: #9ba8b3;
    font-size: 9px;
  }

  .quick-mobile-odd.quick-fair strong { color: #ff5050; }
  .quick-mobile-odd.quick-bookie strong { color: #75dc35; }
  .quick-mobile-odd.quick-value.positive strong { color: #75dc35; }
  .quick-mobile-odd.quick-value.negative strong { color: #ff5050; }

  .quick-model-toggle,
  .quick-add-betslip {
    width: 100%;
    min-height: 42px;
    margin-top: 10px;
    border-radius: 8px;
    font-weight: 800;
  }

  .quick-model-toggle {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 12px;
    border: 1px solid #365064;
    background: #101f2c;
    color: #eef4f8;
  }

  .quick-model-toggle b {
    color: #62a8ff;
    font-size: 18px;
  }

  .quick-model-list {
    display: none;
    margin-top: 7px;
    border: 1px solid #30485a;
    border-radius: 8px;
    overflow: hidden;
    background: #08141f;
  }

  .quick-model-list.open { display: block; }

  .quick-model-list > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 11px;
    border-bottom: 1px solid #203444;
    color: #c8d1d8;
    font-size: 12px;
  }

  .quick-model-list > div:last-child { border-bottom: 0; }
  .quick-model-list strong { color: #75dc35; font-size: 14px; }

  .quick-add-betslip {
    border: 1px solid #6dcf31;
    background: rgba(109,207,49,.10);
    color: #83e347;
  }

  .quick-add-betslip.added,
  .quick-add-betslip:disabled {
    opacity: .6;
  }

  html[data-theme="light"] .quick-mobile-fixture-head,
  html[data-theme="light"] .quick-mobile-market-card,
  html[data-theme="light"] .quick-model-toggle,
  html[data-theme="light"] .quick-model-list {
    background: #fff;
    color: #111827;
    border-color: #cbd5df;
  }

  html[data-theme="light"] .quick-mobile-fixture-head strong,
  html[data-theme="light"] .quick-model-toggle {
    color: #111827;
  }
}


/* TipZ365 phone desktop-view switch */
#tipz365-mobile-view-return {
  display: none;
}

html.tipz365-force-desktop #tipz365-mobile-view-return {
  display: inline-flex;
  position: fixed;
  z-index: 9999;
  top: 12px;
  right: 12px;
  min-height: 42px;
  padding: 0 16px;
  align-items: center;
  justify-content: center;
  border: 1px solid #79df38;
  border-radius: 10px;
  background: #101b22;
  color: #8cff4a;
  box-shadow: 0 8px 24px rgba(0,0,0,.35);
  font: 800 14px/1 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

@media (max-width: 900px) {
  #mobile-desktop-view-btn {
    display: block !important;
  }

  .mobile-bottom-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}


/* ---- Forced desktop mode on phones: compact, paged and full-width ---- */
.desktop-phone-pager { display: none; }

html.tipz365-force-desktop,
html.tipz365-force-desktop body {
  width: 100%;
  min-width: 0;
  max-width: none;
  overflow-x: auto;
}

html.tipz365-force-desktop body { padding-right: 0 !important; }

html.tipz365-force-desktop main {
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
}

html.tipz365-force-desktop .table-card > div[style*="max-height"] {
  max-height: none !important;
  overflow-y: visible !important;
}

html.tipz365-force-desktop .data-table { font-size: 15px; }
html.tipz365-force-desktop .data-table th { font-size: 12.5px; padding: 8px 10px; }
html.tipz365-force-desktop .data-table td { padding: 8px 10px; }

html.tipz365-force-desktop .table-foot {
  justify-content: space-between;
  flex-wrap: wrap;
  min-height: 58px;
}

html.tipz365-force-desktop .desktop-phone-pager.active {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}

html.tipz365-force-desktop .desktop-phone-pager button {
  min-height: 40px;
  padding: 0 15px;
  font-weight: 800;
  border-color: #355064;
  background: #101b22;
}

html.tipz365-force-desktop .desktop-phone-pager button:disabled {
  opacity: .35;
  cursor: default;
}

html.tipz365-force-desktop #desktop-phone-page {
  min-width: 92px;
  text-align: center;
  font-weight: 800;
  color: var(--ink-2);
}

html.tipz365-force-desktop .betslip-panel.betslip-empty-hidden { display: none !important; }

html.tipz365-force-desktop .betslip-panel.betslip-has-items {
  display: flex;
  /* Anchored from the top, not the bottom: with the meta-viewport zoom this
     "force desktop" mode uses, 100vh/bottom-anchoring can land past what's
     actually visible on screen (mobile browser toolbars eat into the bottom
     of the real viewport more unpredictably than the top), cutting off the
     lower part of the panel. Growing down from a fixed top offset instead,
     with a capped max-height, keeps the whole thing reliably on screen. */
  top: 70px;
  right: 12px;
  bottom: auto;
  width: 290px;
  height: auto;
  max-height: min(75vh, 620px);
  border: 1px solid #15803d;
  border-radius: 12px;
  overflow: hidden;
  transform: none !important;
  box-shadow: 0 12px 34px rgba(0,0,0,.42);
}

html.tipz365-force-desktop .betslip-panel.betslip-has-items:not(.phone-desktop-open) { width: 245px; }

html.tipz365-force-desktop .betslip-panel.betslip-has-items:not(.phone-desktop-open) .betslip-items,
html.tipz365-force-desktop .betslip-panel.betslip-has-items:not(.phone-desktop-open) .betslip-summary {
  display: none !important;
}

/* "Show full betslip" and Clear stay visible in the compact bar, same as the
   real desktop panel (which never hides them) — only the items/summary lists
   fold away, since there's no more in-place expand (the old tiny collapse
   arrow was too small a tap target; "Show full betslip" text replaces it). */
html.tipz365-force-desktop .betslip-panel.betslip-has-items .betslip-full,
html.tipz365-force-desktop .betslip-panel.betslip-has-items .betslip-clear {
  display: inline-block !important;
}

html.tipz365-force-desktop .betslip-panel .betslip-head {
  min-height: 62px;
  padding: 10px 12px;
}

html.tipz365-force-desktop .betslip-panel .betslip-brand {
  display: inline-block;
  margin-right: 5px;
}

html.tipz365-force-desktop .betslip-panel .betslip-title {
  display: inline-block;
  font-size: 16px;
}

html.tipz365-force-desktop .betslip-panel.phone-desktop-open .betslip-items {
  max-height: 42vh;
  flex: 0 1 auto;
}

@media (orientation: landscape) {
  html.tipz365-force-desktop main {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  html.tipz365-force-desktop .betslip-panel.betslip-has-items {
    top: 54px;
    right: 8px;
    bottom: auto;
    max-height: min(80vh, 560px);
  }
}


/* ---- Forced desktop on phone: betslip directly below predictions ---- */
.desktop-phone-betslip-slot { display: none; }

html.tipz365-force-desktop .desktop-phone-betslip-slot {
  display: flex;
  width: 100%;
  justify-content: center;
  margin: 14px 0 22px;
  min-height: 0;
}

html.tipz365-force-desktop .desktop-phone-betslip-slot:empty {
  display: none;
  margin: 0;
}

html.tipz365-force-desktop .desktop-phone-betslip-slot .betslip-panel {
  position: relative !important;
  inset: auto !important;
  right: auto !important;
  bottom: auto !important;
  top: auto !important;
  width: min(560px, 100%) !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 auto !important;
  transform: none !important;
  z-index: 1;
  border: 1px solid #15803d;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(0,0,0,.30);
}

html.tipz365-force-desktop .desktop-phone-betslip-slot .betslip-panel.betslip-empty-hidden {
  display: none !important;
}

html.tipz365-force-desktop .desktop-phone-betslip-slot .betslip-panel.betslip-has-items {
  display: flex !important;
}

html.tipz365-force-desktop .desktop-phone-betslip-slot .betslip-panel.betslip-has-items:not(.phone-desktop-open) {
  width: min(420px, 100%) !important;
}

html.tipz365-force-desktop .desktop-phone-betslip-slot .betslip-panel.phone-desktop-open .betslip-items {
  max-height: 42vh;
}

/* ---- Full Betslip: forced desktop view on a phone in portrait ----
   Keep the good two-column landscape layout, but use the complete phone
   width and stack selections/calculations vertically in portrait. */
@media (orientation: portrait) {
  html.tipz365-force-desktop .full-betslip-overlay {
    align-items: flex-start !important;
    justify-content: center !important;
    padding: 10px !important;
    overflow-y: auto !important;
  }

  html.tipz365-force-desktop .full-betslip-modal {
    width: calc(100vw - 20px) !important;
    max-width: none !important;
    height: auto !important;
    max-height: calc(100dvh - 20px) !important;
    margin: 0 auto !important;
    border-radius: 14px !important;
    overflow: hidden !important;
  }

  html.tipz365-force-desktop .full-betslip-head {
    position: sticky !important;
    top: 0 !important;
    z-index: 3 !important;
    padding: 14px 16px !important;
  }

  html.tipz365-force-desktop .full-betslip-title {
    font-size: 22px !important;
  }

  html.tipz365-force-desktop .full-betslip-sub,
  html.tipz365-force-desktop .full-betslip-telegram {
    font-size: 12px !important;
  }

  html.tipz365-force-desktop .full-betslip-close {
    width: 42px !important;
    height: 42px !important;
    flex: 0 0 42px !important;
  }

  html.tipz365-force-desktop .full-betslip-content {
    display: block !important;
    overflow-y: auto !important;
    min-height: 0 !important;
    -webkit-overflow-scrolling: touch;
  }

  html.tipz365-force-desktop .full-betslip-items {
    overflow: visible !important;
    padding: 14px !important;
  }

  html.tipz365-force-desktop .full-betslip-item {
    grid-template-columns: 30px minmax(0, 1fr) 76px 34px !important;
    gap: 10px !important;
    min-height: 92px !important;
    padding: 11px 12px !important;
    margin-bottom: 10px !important;
  }

  html.tipz365-force-desktop .full-betslip-match,
  html.tipz365-force-desktop .full-betslip-match-line {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
  }

  html.tipz365-force-desktop .full-betslip-meta,
  html.tipz365-force-desktop .full-betslip-pick,
  html.tipz365-force-desktop .full-betslip-fair,
  html.tipz365-force-desktop .full-betslip-bookie {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  html.tipz365-force-desktop .full-betslip-odds {
    font-size: 16px !important;
    padding: 8px 7px !important;
  }

  html.tipz365-force-desktop .full-betslip-summary {
    border-left: 0 !important;
    border-top: 1px solid var(--grid) !important;
    padding: 18px 16px 22px !important;
  }

  html.tipz365-force-desktop .full-betslip-summary-row {
    font-size: 15px !important;
    margin: 12px 0 !important;
  }

  html.tipz365-force-desktop #full-betslip-total-odds {
    font-size: 24px !important;
  }

  html.tipz365-force-desktop #full-betslip-stake {
    min-height: 48px !important;
    font-size: 18px !important;
  }

  html.tipz365-force-desktop #full-betslip-return,
  html.tipz365-force-desktop #full-betslip-profit,
  html.tipz365-force-desktop #full-betslip-fair-payout {
    font-size: 19px !important;
  }

  html.tipz365-force-desktop .full-betslip-save-selection {
    width: 100% !important;
    min-height: 48px !important;
    margin-top: 14px !important;
    font-size: 15px !important;
  }
}

/* =========================================================
   D75 mobile redesign — compact filter buttons + app navigation
   Scoped to phone layout only. Forced desktop mode remains untouched.
   ========================================================= */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) body { background: #07111b !important; }
  html:not(.tipz365-force-desktop) main { padding: 0 0 calc(82px + env(safe-area-inset-bottom)) !important; }
  html:not(.tipz365-force-desktop) main > #filters { display: none !important; }

  .mobile-app { min-height: 100vh; padding-bottom: calc(82px + env(safe-area-inset-bottom)); }
  .mobile-topbar {
    height: 76px; min-height: 76px; padding: 10px 20px; position: relative; top: auto;
    display: grid; grid-template-columns: 48px 1fr 48px; align-items: center;
    background: rgba(5,14,23,.98); border-bottom: 1px solid #263544;
  }
  .mobile-brand { justify-self: center; font-size: 27px; }
  .mobile-ball { font-size: 31px; margin-right: 8px; }
  .mobile-top-icon { width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: #f8fafc; font-size: 29px; }
  #mobile-search-btn { justify-self: end; font-size: 33px; }

  .mobile-filter-bar { margin: 0; padding: 14px 15px 12px; border-bottom: 1px solid #263746; background: #091521; }
  .mobile-filter-bar.hidden, .mobile-results-bar.hidden, .mobile-marked-bar.hidden { display: none !important; }
  .mobile-filter-title { margin-bottom: 9px; color: #aeb8c5; font-size: 12px; font-weight: 800; letter-spacing: .045em; }
  .mobile-filter-title span { font-weight: 500; letter-spacing: 0; }
  .mobile-market-title { margin-top: 17px; }

  .mobile-time-buttons { display: grid; grid-template-columns: .8fr 1fr 1.25fr 1.35fr; gap: 10px; }
  .mobile-market-buttons { display: grid; grid-template-columns: repeat(8, minmax(0,1fr)); gap: 8px; }
  .mobile-time-buttons button,
  .mobile-market-buttons button {
    min-width: 0; height: 48px; padding: 0 6px; border: 1px solid #2c3c4c; border-radius: 10px;
    background: #101e2c; color: #f1f5f9; font-size: 15px; font-weight: 800;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.01);
  }
  .mobile-market-buttons button { height: 45px; border-radius: 9px; font-size: 14px; }
  .mobile-market-buttons button.active { background: #101e2c; border-color: #2681ff; color: #2681ff; }
  .mobile-time-buttons button.active { background: #101e2c; border-color: #f1c40f; color: #f1c40f; }

  .mobile-select-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-top: 16px; }
  .mobile-filter-select {
    position: relative; min-width: 0; height: 78px; padding: 0 28px 0 10px;
    display: flex; align-items: center; gap: 9px; border: 1px solid #405061; border-radius: 9px;
    background: #0b1723; overflow: hidden;
  }
  .mobile-filter-select-icon { flex: 0 0 auto; color: #7ee02f; font-size: 25px; line-height: 1; }
  .mobile-filter-select-copy { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
  .mobile-filter-select-copy small { color: #aeb8c5; font-size: 12px; white-space: nowrap; }
  .mobile-filter-select-copy strong { color: #f8fafc; font-size: 14px; line-height: 1.1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mobile-filter-select::after { content: "⌄"; position: absolute; right: 9px; top: 27px; color: #55a1ff; font-size: 22px; pointer-events: none; }
  .mobile-filter-select select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }

  .mobile-results-bar {
    margin: 12px 10px 8px; min-height: 49px; padding: 0 13px; display: flex; align-items: center; justify-content: space-between;
    border: 1px solid #263949; border-radius: 9px; background: #07131e; color: #b7c0ca; font-size: 12px;
  }
  .mobile-results-bar > strong { color: #7ee02f; font-size: 16px; margin-right: 3px; }
  .mobile-sort-wrap { margin-left: auto; display: flex; align-items: center; }
  .mobile-sort-wrap select { max-width: 155px; border: 0; background: transparent; color: #e6ebf0; font-size: 12px; text-align: right; }
  .mobile-sort-wrap button { width: 34px; border: 0; background: transparent; color: #aeb8c5; font-size: 18px; }

  .mobile-marked-bar {
    margin: 0 10px 12px; padding: 0 4px; display: flex; align-items: center; justify-content: space-between; gap: 10px;
  }
  .mobile-marked-toggle { margin-top: 0; }
  .mobile-marked-toggle input:checked + .mobile-checkmark {
    border-color: #f1c40f !important; background: #f1c40f !important; color: #1a1a19 !important;
  }
  .mobile-marked-toggle:has(input:disabled) { opacity: 0.5; cursor: not-allowed; }
  .mobile-marked-bar .marked-clear-btn { padding: 4px 10px; }

  .mobile-view-panel { display: none; }
  .mobile-view-panel.active { display: block; }
  .mobile-predictions { padding: 0 10px 16px; display: grid; gap: 10px; }
  .mobile-game-card { padding: 13px 14px 12px; border: 1px solid #263949; border-radius: 11px; background: #091620; }
  .mobile-game-card.prediction-result-hit { box-shadow: inset 4px 0 0 rgba(46, 204, 113, 0.72); }
  .mobile-game-card.prediction-result-draw { box-shadow: inset 4px 0 0 rgba(241, 196, 15, 0.72); }
  .mobile-game-card.prediction-result-loss { box-shadow: inset 4px 0 0 rgba(231, 76, 60, 0.72); }
  .mobile-card-meta { display: flex; flex-direction: column; gap: 5px; color: #aab4bf; font-size: 11px; }
  .mobile-card-meta .mobile-kickoff-clickable { cursor: pointer; }
  .mobile-card-meta .mobile-cell-marked {
    display: inline-block; width: fit-content;
    background: rgba(241, 196, 15, 0.28) !important; color: #f1c40f !important;
    font-weight: 700 !important; border-radius: 5px; padding: 1px 5px; margin: -1px -5px;
  }
  .mobile-card-meta .status { align-self: flex-start; }
  .mobile-card-meta .status.result { color: #f5c451; border-color: rgba(245, 190, 62, 0.38); background: rgba(245, 190, 62, 0.10); font-weight: 650; }
  .mobile-card-body { margin-top: 10px; display: grid; grid-template-columns: minmax(125px,1.45fr) 58px 68px 72px 67px 18px; gap: 6px; align-items: center; }
  .mobile-card-teams { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
  .mobile-card-teams strong { color: #f4f7fa; font-size: 15px; font-weight: 600; line-height: 1.15; overflow-wrap: anywhere; }
  .mobile-card-market { padding: 10px 4px; border-radius: 8px; background: transparent; border: 1px solid #4d96ff; color: #4d96ff; text-align: center; font-size: 14px; font-weight: 900; }
  .mobile-card-odd { min-width: 0; text-align: center; }
  .mobile-card-odd small { display: block; margin-bottom: 9px; color: #aeb8c5; font-size: 8px; font-weight: 800; white-space: nowrap; }
  .mobile-card-odd strong { display: block; color: #f8fafc; font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; }
  .mobile-card-odd span { display: block; margin-top: 7px; color: #9ea9b4; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mobile-card-odd.bookie strong, .mobile-card-odd.value strong { color: #7ee02f; }
  .mobile-card-odd.negative strong { color: #ff5662; }
  .mobile-card-arrow { width: 18px; padding: 0; border: 0; background: transparent; color: #559dff; font-size: 31px; line-height: 1; transition: transform .15s ease; }
  .mobile-card-arrow.open { transform: rotate(90deg); }
  .mobile-model-details { display: none; margin-top: 12px; padding: 10px; border: 1px solid #294052; border-radius: 9px; background: #07131e; }
  .mobile-model-details.open { display: block; }
  .mobile-model-row { display: flex; justify-content: space-between; padding: 7px 3px; border-bottom: 1px solid #1f3241; color: #dfe6ec; font-size: 12px; }
  .mobile-model-row strong { color: #ff5662; }
  .mobile-add-details { width: 100%; min-height: 42px; margin-top: 10px; border: 1px solid #71d42b; border-radius: 8px; background: transparent; color: #7ee02f; font-weight: 900; }
  .mobile-add-details.added { background: #7ee02f; color: #07111b; }

  .mobile-bottom-nav {
    height: calc(77px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom);
    grid-template-columns: repeat(5,1fr); background: rgba(7,18,29,.98); border-top: 1px solid #263746;
  }
  .mobile-bottom-nav button { min-width: 0; padding: 8px 2px 4px; color: #aab4bf; font-size: 21px; }
  .mobile-bottom-nav button.active { color: #3286ff; background: rgba(27,68,112,.16); border-top: 2px solid #3286ff; }
  .mobile-bottom-nav i { display: block; height: 28px; font-style: normal; line-height: 26px; }
  .mobile-bottom-nav span { font-size: 10px; white-space: nowrap; }
  .mobile-bottom-nav b { top: 3px; right: calc(50% - 22px); min-width: 20px; height: 20px; padding: 1px 5px; border-radius: 10px; background: #7ee02f; color: #081521; font-size: 11px; }

  #mobile-view-tickets, #mobile-view-community, #mobile-view-profile { padding: 10px 10px 20px; }
  #mobile-view-tickets .selection-card, #mobile-view-community .selection-card { display: block !important; margin: 0; }
  #mobile-view-tickets .selection-tabs, #mobile-view-community .selection-tabs { display: none !important; }
  .mobile-profile-card { padding: 18px; border: 1px solid #263949; border-radius: 12px; background: #091620; }
  .mobile-profile-card h2 { margin: 0 0 16px; color: #f8fafc; }
  .mobile-profile-card button { width: 100%; min-height: 48px; margin-top: 10px; border: 1px solid #405061; border-radius: 9px; background: #101e2c; color: #f8fafc; font-weight: 800; }
  .mobile-profile-card a.mobile-menu-link {
    display: block; box-sizing: border-box; width: 100%; min-height: 48px; margin-top: 10px;
    border: 1px solid #405061; border-radius: 9px; background: #101e2c; color: #f8fafc;
    font-weight: 800; text-align: center; line-height: 46px; text-decoration: none;
  }
  .mobile-logout-form { margin: 0; }

  .mobile-row-count { padding: 8px 16px 16px; }
}

@media (max-width: 520px) {
  .mobile-filter-bar { padding-left: 10px; padding-right: 10px; }
  .mobile-market-buttons { gap: 5px; }
  .mobile-market-buttons button { padding: 0 2px; font-size: 12px; }
  .mobile-time-buttons { gap: 6px; }
  .mobile-time-buttons button { font-size: 13px; }
  .mobile-select-row { gap: 6px; }
  .mobile-filter-select { height: 72px; padding-left: 7px; padding-right: 21px; gap: 5px; }
  .mobile-filter-select-icon { font-size: 20px; }
  .mobile-filter-select-copy small { font-size: 10px; }
  .mobile-filter-select-copy strong { font-size: 12px; }
  .mobile-filter-select::after { right: 5px; top: 25px; font-size: 17px; }
  .mobile-card-body { grid-template-columns: minmax(104px,1.35fr) 51px 58px 61px 58px 14px; gap: 4px; }
  .mobile-card-teams strong { font-size: 13px; }
  .mobile-card-market { font-size: 12px; }
  .mobile-card-odd small { font-size: 7px; }
  .mobile-card-odd strong { font-size: 14px; }
  .mobile-card-odd span { font-size: 8px; }
}

@media (max-width: 390px) {
  .mobile-card-body { grid-template-columns: minmax(92px,1.25fr) 45px 51px 54px 51px 12px; gap: 3px; }
  .mobile-card-teams strong { font-size: 12px; }
  .mobile-card-market { padding-left: 1px; padding-right: 1px; font-size: 11px; }
  .mobile-card-odd strong { font-size: 13px; }
}


/* D76 mobile corrections */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) > body > .language-sidebar,
  html:not(.tipz365-force-desktop) body > .language-sidebar {
    display: none !important;
  }

  .mobile-market-buttons button.active {
    background: #101e2c !important;
    border-color: #2f8cff !important;
    color: #2f8cff !important;
    box-shadow: none !important;
  }
  .mobile-time-buttons button.active {
    background: #101e2c !important;
    border-color: #f1c40f !important;
    color: #f1c40f !important;
    box-shadow: none !important;
  }

  .mobile-time-buttons button:active,
  .mobile-market-buttons button:active { transform: scale(.98); }

  .mobile-upcoming-toggle {
    width: fit-content;
    margin-top: 13px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #dbe4ec;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    user-select: none;
  }
  .mobile-upcoming-toggle input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  .mobile-checkmark {
    width: 23px;
    height: 23px;
    display: grid;
    place-items: center;
    border: 1px solid #405061;
    border-radius: 6px;
    background: #101e2c;
    color: transparent;
    font-size: 15px;
    line-height: 1;
  }
  .mobile-upcoming-toggle input:checked + .mobile-checkmark {
    border-color: #22c55e;
    background: #16a34a;
    color: #fff;
  }
  .mobile-playable-toggle input:checked + .mobile-checkmark {
    border-color: #22c55e;
    background: #16a34a;
    color: #fff;
  }

  .mobile-language-menu {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #263949;
  }
  .mobile-language-title {
    margin-bottom: 10px;
    color: #aeb8c5;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
  }
  .mobile-language-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }
  .mobile-language-buttons .language-button {
    width: 100%;
    min-height: 58px;
    padding: 6px 4px;
    border-radius: 10px;
    position: static;
    transform: none;
  }
  .mobile-language-buttons .language-flag { font-size: 23px; }
  .mobile-language-buttons .language-code { font-size: 10px; }

  #mobile-view-tickets .selection-tabs,
  #mobile-view-community .selection-tabs {
    display: none !important;
  }
  #mobile-view-tickets .selection-card,
  #mobile-view-community .selection-card {
    padding-top: 0 !important;
  }
}

/* ===== go-button.css ===== */
/* TipZ365 V3 module: go-button.css */
/* =========================================================
   Phase 22 — TipZ365 illuminated circular GO button
   Pure CSS: no image asset required.
   ========================================================= */
.go-button,
html[data-theme="light"] .go-button,
html[data-theme="dark"] .go-button {
  position: relative;
  width: 76px !important;
  min-width: 76px !important;
  max-width: 76px !important;
  height: 76px !important;
  min-height: 76px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  border: 3px solid #273039 !important;
  color: #8cff2a !important;
  background:
    radial-gradient(circle at 36% 28%, rgba(255,255,255,.18) 0 8%, transparent 27%),
    radial-gradient(circle at 50% 62%, #12171b 0 45%, #080b0d 70%, #030405 100%) !important;
  box-shadow:
    inset 0 0 0 3px #76ff16,
    inset 0 0 0 7px #10250a,
    inset 0 -8px 14px rgba(0,0,0,.72),
    0 0 0 3px #9aa1a6,
    0 0 0 5px #343a40,
    0 0 13px rgba(104,255,29,.95),
    0 0 28px rgba(74,225,0,.52) !important;
  font-size: 23px !important;
  font-weight: 950 !important;
  letter-spacing: .02em;
  line-height: 1 !important;
  text-shadow: 0 0 8px rgba(126,255,36,.95);
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
  -webkit-tap-highlight-color: transparent;
}

.go-button:hover,
html[data-theme="light"] .go-button:hover,
html[data-theme="dark"] .go-button:hover {
  background:
    radial-gradient(circle at 36% 28%, rgba(255,255,255,.22) 0 8%, transparent 27%),
    radial-gradient(circle at 50% 62%, #182017 0 45%, #090d09 70%, #030403 100%) !important;
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.go-button:active,
html[data-theme="light"] .go-button:active,
html[data-theme="dark"] .go-button:active {
  transform: translateY(2px) scale(.97);
  box-shadow:
    inset 0 0 0 3px #5fdc10,
    inset 0 0 0 7px #10250a,
    inset 0 5px 14px rgba(0,0,0,.84),
    0 0 0 3px #858d92,
    0 0 0 5px #2b3135,
    0 0 9px rgba(104,255,29,.72) !important;
}

.go-button:disabled {
  opacity: .62 !important;
  filter: grayscale(.25);
  cursor: wait;
}

@media (max-width: 900px) {
  #filters .query-actions {
    align-items: center !important;
  }
  #filters .go-button {
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
    height: 76px !important;
    min-height: 76px !important;
    justify-self: center;
  }
}

/* ===== light-anthracite.css ===== */
/* TipZ365 V3 module: light-anthracite.css */
/* =========================================================
   Phase 23 — Anthracite light mode
   Anthracite base layer, white cards, black text.
   Dark mode remains unchanged.
   ========================================================= */

html[data-theme="light"] body {
  background: #2f3439 !important;
  color: #111111 !important;
}

html[data-theme="light"] main,
html[data-theme="light"] .app-shell,
html[data-theme="light"] .page-shell,
html[data-theme="light"] .dashboard-shell,
html[data-theme="light"] .dashboard-grid,
html[data-theme="light"] .content-grid,
html[data-theme="light"] .main-grid,
html[data-theme="light"] .workspace {
  background: transparent !important;
}

/* Header area behind Soccer Model Dashboard */
html[data-theme="light"] header,
html[data-theme="light"] .topbar,
html[data-theme="light"] .dashboard-header,
html[data-theme="light"] .header {
  background: #2f3439 !important;
  color: #111111 !important;
  border-color: transparent !important;
}

/* Keep all actual content cards white */
html[data-theme="light"] .card,
html[data-theme="light"] .panel,
html[data-theme="light"] .surface,
html[data-theme="light"] .kpi,
html[data-theme="light"] .kpi-card,
html[data-theme="light"] .chart-card,
html[data-theme="light"] .table-card,
html[data-theme="light"] .filters,
html[data-theme="light"] #filters,
html[data-theme="light"] .betslip-card,
html[data-theme="light"] .betslip-panel,
html[data-theme="light"] .db-explorer,
html[data-theme="light"] #db-explorer-panel,
html[data-theme="light"] .legend,
html[data-theme="light"] .stats-card {
  background: #ffffff !important;
  color: #111111 !important;
}

/* White table/list surfaces */
html[data-theme="light"] table,
html[data-theme="light"] .data-table,
html[data-theme="light"] .table-wrap,
html[data-theme="light"] .table-container,
html[data-theme="light"] .predictions-wrap,
html[data-theme="light"] .predictions-table-wrap {
  background: #ffffff !important;
  color: #111111 !important;
}

/* All normal text stays black, not blue */
html[data-theme="light"] h1,
html[data-theme="light"] h2,
html[data-theme="light"] h3,
html[data-theme="light"] h4,
html[data-theme="light"] p,
html[data-theme="light"] label,
html[data-theme="light"] th,
html[data-theme="light"] td,
html[data-theme="light"] .muted,
html[data-theme="light"] .subtitle,
html[data-theme="light"] .section-title,
html[data-theme="light"] .page-title,
html[data-theme="light"] .brand-title {
  color: #111111 !important;
}

/* Inputs stay light and readable */
html[data-theme="light"] input,
html[data-theme="light"] select,
html[data-theme="light"] textarea {
  background: #ffffff !important;
  color: #111111 !important;
  border-color: #cfd4da !important;
}

/* Preserve green chart bars and positive accents */
html[data-theme="light"] .bar-fill,
html[data-theme="light"] .chart-bar,
html[data-theme="light"] .progress-fill,
html[data-theme="light"] .positive,
html[data-theme="light"] .status-ok {
  /* intentionally no color override */
}

/* Keep whitespace between cards anthracite */
html[data-theme="light"] .charts,
html[data-theme="light"] .kpis,
html[data-theme="light"] #kpis,
html[data-theme="light"] .stats-grid,
html[data-theme="light"] .charts-grid,
html[data-theme="light"] .cards-grid {
  background: transparent !important;
}

/* Mobile light mode follows the same anthracite-underlay concept */
@media (max-width: 900px) {
  html[data-theme="light"] body,
  html[data-theme="light"] main,
  html[data-theme="light"] .mobile-app {
    background: #2f3439 !important;
  }

  html[data-theme="light"] .mobile-topbar {
    background: #2f3439 !important;
    color: #111111 !important;
  }

  html[data-theme="light"] .mobile-game,
  html[data-theme="light"] .mobile-tools,
  html[data-theme="light"] .mobile-model-details,
  html[data-theme="light"] .mobile-bottom-nav,
  html[data-theme="light"] #filters {
    background: #ffffff !important;
    color: #111111 !important;
  }
}




/* =========================================================
   TipZ365 light desktop refinement — exact Predictions selectors
   Applied through both html[data-theme="light"] and body.theme-light.
   ========================================================= */

/* Light-grey desktop cards instead of pure white. */
@media (min-width: 901px) {
  html[data-theme="light"] .card,
  html[data-theme="light"] .panel,
  html[data-theme="light"] .surface,
  html[data-theme="light"] .kpi,
  html[data-theme="light"] .kpi-card,
  html[data-theme="light"] .chart-card,
  html[data-theme="light"] .table-card,
  html[data-theme="light"] #filters,
  html[data-theme="light"] .quick-search-card,
  html[data-theme="light"] .selection-card,
  html[data-theme="light"] .betslip-card,
  html[data-theme="light"] .betslip-panel,
  body.theme-light .card,
  body.theme-light .panel,
  body.theme-light .surface,
  body.theme-light .kpi,
  body.theme-light .kpi-card,
  body.theme-light .chart-card,
  body.theme-light .table-card,
  body.theme-light #filters,
  body.theme-light .quick-search-card,
  body.theme-light .selection-card,
  body.theme-light .betslip-card,
  body.theme-light .betslip-panel {
    background: #e6e8e9 !important;
    color: #171b1f !important;
    border-color: #bec4c8 !important;
  }

  html[data-theme="light"] input,
  html[data-theme="light"] select,
  html[data-theme="light"] textarea,
  body.theme-light input,
  body.theme-light select,
  body.theme-light textarea {
    background: #f4f5f5 !important;
    color: #171b1f !important;
  }
}

/* Exact Predictions title/legend header. */
html[data-theme="light"] section.table-card > div.table-head,
body.theme-light section.table-card > div.table-head {
  background: #2b2e33 !important;
  color: #ffffff !important;
  border-bottom: 1px solid #46515a !important;
  padding: 14px 16px 12px !important;
}

html[data-theme="light"] section.table-card > div.table-head h2,
html[data-theme="light"] section.table-card > div.table-head .legend,
html[data-theme="light"] section.table-card > div.table-head .legend .key,
body.theme-light section.table-card > div.table-head h2,
body.theme-light section.table-card > div.table-head .legend,
body.theme-light section.table-card > div.table-head .legend .key {
  color: #ffffff !important;
}

/* Exact Predictions column-heading row. */
html[data-theme="light"] #table > thead,
html[data-theme="light"] #table > thead > tr,
html[data-theme="light"] #table > thead > tr > th,
body.theme-light #table > thead,
body.theme-light #table > thead > tr,
body.theme-light #table > thead > tr > th {
  background: #2b2e33 !important;
  background-color: #2b2e33 !important;
  color: #ffffff !important;
  border-color: #46515a !important;
}

/* Requested column accent colours. */
html[data-theme="light"] #table thead th.col-market,
body.theme-light #table thead th.col-market {
  color: #62b5ff !important;
}
html[data-theme="light"] #table thead th.col-displayFair,
body.theme-light #table thead th.col-displayFair {
  color: #ff6b6b !important;
}
html[data-theme="light"] #table thead th.col-bookie-best-odds,
body.theme-light #table thead th.col-bookie-best-odds {
  color: #63df85 !important;
}

/* Exact zebra rows for Predictions. */
html[data-theme="light"] #table > tbody > tr:nth-child(odd) > td,
body.theme-light #table > tbody > tr:nth-child(odd) > td {
  background: #eef0f1 !important;
  background-color: #eef0f1 !important;
  color: #171b1f !important;
}
html[data-theme="light"] #table > tbody > tr:nth-child(even) > td,
body.theme-light #table > tbody > tr:nth-child(even) > td {
  background: #dfe3e5 !important;
  background-color: #dfe3e5 !important;
  color: #171b1f !important;
}
html[data-theme="light"] #table > tbody > tr:nth-child(odd):hover > td,
body.theme-light #table > tbody > tr:nth-child(odd):hover > td {
  background: #e3e7e9 !important;
}
html[data-theme="light"] #table > tbody > tr:nth-child(even):hover > td,
body.theme-light #table > tbody > tr:nth-child(even):hover > td {
  background: #d4dade !important;
}

/* Prediction body colours. */
html[data-theme="light"] #table tbody .pill,
body.theme-light #table tbody .pill {
  color: #126db5 !important;
  background: transparent !important;
  border: 1px solid #126db5 !important;
  border-radius: 999px !important;
}
html[data-theme="light"] #table tbody td.fair-odds-cell,
body.theme-light #table tbody td.fair-odds-cell {
  color: #c9161d !important;
  font-weight: 700 !important;
}
html[data-theme="light"] #table tbody td.bookie-odds-cell,
body.theme-light #table tbody td.bookie-odds-cell {
  color: #117a3a !important;
  font-weight: 700 !important;
}

/* =========================================================
   Final Predictions fixes: visible legend + odds colours
   ========================================================= */

/* The legend must not inherit the light card background. */
html[data-theme="light"] section.table-card > div.table-head .legend,
html[data-theme="light"] section.table-card > div.table-head .legend .key,
body.theme-light section.table-card > div.table-head .legend,
body.theme-light section.table-card > div.table-head .legend .key {
  background: transparent !important;
  background-color: transparent !important;
  color: #ffffff !important;
  opacity: 1 !important;
}

html[data-theme="light"] section.table-card > div.table-head h2,
body.theme-light section.table-card > div.table-head h2 {
  color: #ffffff !important;
  opacity: 1 !important;
}

/* Keep the legend symbols clearly visible on anthracite. */
html[data-theme="light"] section.table-card > div.table-head .legend .dot,
body.theme-light section.table-card > div.table-head .legend .dot {
  background: #4f9a78 !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.15) !important;
}

html[data-theme="light"] section.table-card > div.table-head .legend .tick,
body.theme-light section.table-card > div.table-head .legend .tick {
  background: #d3a229 !important;
}

/* Strong, exact selectors so zebra-row text rules cannot turn odds black. */
html[data-theme="light"] section.table-card #table.data-table tbody tr td.num.fair-odds-cell,
body.theme-light section.table-card #table.data-table tbody tr td.num.fair-odds-cell {
  color: #c9161d !important;
  font-weight: 800 !important;
  -webkit-text-fill-color: #c9161d !important;
}

html[data-theme="light"] section.table-card #table.data-table tbody tr td.num.bookie-odds-cell,
body.theme-light section.table-card #table.data-table tbody tr td.num.bookie-odds-cell {
  color: #117a3a !important;
  font-weight: 800 !important;
  -webkit-text-fill-color: #117a3a !important;
}

/* Keep the relevant column headings coloured as requested. */
html[data-theme="light"] section.table-card #table.data-table thead th.col-market,
body.theme-light section.table-card #table.data-table thead th.col-market {
  color: #62b5ff !important;
}

html[data-theme="light"] section.table-card #table.data-table thead th.col-displayFair,
body.theme-light section.table-card #table.data-table thead th.col-displayFair {
  color: #ff6b6b !important;
}

html[data-theme="light"] section.table-card #table.data-table thead th.col-bookie-best-odds,
body.theme-light section.table-card #table.data-table thead th.col-bookie-best-odds {
  color: #63df85 !important;
}

/* ===== branding.css ===== */
/* TipZ365 V3 module: branding.css */
/* =========================================================
   Phase 24 — tipZ365 branding
   ========================================================= */

.brand-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
}

.brand-logo {
  display: inline-flex;
  align-items: baseline;
  line-height: 1;
  font-size: 31px;
  font-weight: 900;
  font-style: italic;
  letter-spacing: -1px;
  white-space: nowrap;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.brand-tipz {
  color: #ffffff;
}

.brand-365 {
  color: #7dff2f;
  text-shadow:
    0 0 6px rgba(125, 255, 47, 0.72),
    0 0 14px rgba(125, 255, 47, 0.34);
}

.brand-block h1 {
  margin: 4px 0 0;
  color: #3fa65a;
}

/* Light mode uses the anthracite header from Phase 23. */
html[data-theme="light"] header .brand-tipz {
  color: #ffffff !important;
}

html[data-theme="light"] header .brand-365 {
  color: #7dff2f !important;
}

html[data-theme="light"] header .brand-block h1 {
  color: #3fa65a !important;
}

/* Dark mode keeps the same branded heading. */
html[data-theme="dark"] header .brand-tipz {
  color: #ffffff !important;
}

html[data-theme="dark"] header .brand-365 {
  color: #7dff2f !important;
}

html[data-theme="dark"] header .brand-block h1 {
  color: #3fa65a !important;
}

@media (max-width: 900px) {
  .brand-logo {
    font-size: 27px;
  }

  .brand-block h1 {
    font-size: 20px;
  }
}


/* =========================================================
   Phase 25 — header alignment fix
   Restore the original positions of Theme and Database Explorer.
   ========================================================= */

header .brand-block {
  flex: 1 1 auto;
}

header .theme-toggle-inline,
header #db-note,
header #db-explorer-btn {
  flex: 0 0 auto;
}

.header-menu {
  position: relative;
  display: inline-flex;
  margin-left: auto;
}

.header-menu-toggle {
  appearance: none;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
  font-size: 17px;
  line-height: 1;
  cursor: pointer;
}

.header-menu-toggle:hover {
  background: rgba(128, 128, 128, .12);
}

.header-menu-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 600;
  display: grid;
  gap: 6px;
  min-width: 190px;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
}

.header-menu-panel.hidden {
  display: none !important;
}

.header-menu-panel > * {
  width: 100%;
  box-sizing: border-box;
  text-align: left;
}

.header-menu-panel .header-logout-form {
  margin: 0;
}

.header-menu-panel .header-logout-form button {
  width: 100%;
  text-align: left;
}

.header-menu-panel > button,
.header-menu-panel > a,
.header-menu-panel .header-logout-form button {
  transition: background .15s ease, padding-left .15s ease, border-color .15s ease;
}

.header-menu-panel > button:hover,
.header-menu-panel > a:hover,
.header-menu-panel .header-logout-form button:hover,
.header-menu-panel > button:focus-visible,
.header-menu-panel > a:focus-visible,
.header-menu-panel .header-logout-form button:focus-visible {
  background: linear-gradient(90deg, rgba(34, 197, 94, .22), rgba(34, 197, 94, .03)) !important;
  border-color: rgba(34, 197, 94, .45) !important;
  padding-left: 15px;
  outline: none;
}

#bet-tracker-btn,
#result-update-btn {
  transition: background .15s ease, padding-left .15s ease, border-color .15s ease;
}

#bet-tracker-btn:hover,
#result-update-btn:hover:not(:disabled),
#bet-tracker-btn:focus-visible,
#result-update-btn:focus-visible {
  background: linear-gradient(90deg, rgba(34, 197, 94, .22), rgba(34, 197, 94, .03)) !important;
  border-color: rgba(34, 197, 94, .45) !important;
  padding-left: 15px;
  outline: none;
}

/* Same soft-green hover treatment on the other primary action buttons. */
.reload-button:hover:not(:disabled),
#f-reset:hover,
.quick-search-button:hover:not(:disabled),
.selection-tab:hover,
.reload-button:focus-visible,
#f-reset:focus-visible,
.quick-search-button:focus-visible,
.selection-tab:focus-visible {
  background: linear-gradient(90deg, rgba(34, 197, 94, .22), rgba(34, 197, 94, .03)) !important;
  border-color: rgba(34, 197, 94, .45) !important;
  outline: none;
}

/* ---- Betslip generator (reuses full-betslip-modal chrome) ---- */
.generator-modal {
  width: min(560px, 96vw);
}

.generator-body {
  padding: 16px 20px 20px;
  overflow-y: auto;
}

.generator-params {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  align-items: end;
}

.generator-params label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
}

.generator-hint {
  font-weight: 400;
  color: var(--muted);
}

.generator-params label.generator-only-marked {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 7px;
}
.generator-params label.generator-only-marked input {
  width: auto;
  cursor: pointer;
}

.generator-params input {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 9px;
  color: var(--ink);
  background: var(--page);
  border: 1px solid var(--border);
  border-radius: 8px;
  font: inherit;
}

.generator-btn-row {
  grid-column: 1 / -1;
  display: flex;
  gap: 8px;
  margin-top: 4px;
}

.generator-generate-btn {
  flex: 1 1 auto;
  margin-top: 0;
}

.generator-reset-btn {
  flex: 0 0 auto;
  padding: 0 16px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: transparent;
  color: var(--ink);
  font-weight: 700;
  cursor: pointer;
}

.generator-reset-btn:hover {
  background: rgba(128, 128, 128, .12);
}

.generator-error {
  margin-top: 10px;
  color: var(--critical);
  font-size: 13px;
  min-height: 0;
}

.generator-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 14px;
  padding: 10px 12px;
  background: #2b2e33;
  border-radius: 9px;
  color: #fff;
}

.generator-summary strong {
  color: #86efac;
  font-size: 18px;
}

.generator-summary.hidden {
  display: none !important;
}

.generator-results {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.generator-pick-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid rgba(21, 128, 61, 0.20);
  border-left: 3px solid #15803d;
  border-radius: 9px;
  background-color: #182129 !important;
}

.generator-pick-main {
  flex: 1 1 auto;
  min-width: 0;
}

.generator-pick-match {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 700;
  color: #f3f5f7 !important;
}

.generator-pick-meta {
  margin-top: 2px;
  color: #c3c2b7 !important;
  font-size: 11px;
}

.generator-pick-fair {
  margin-top: 1px;
  color: #c3c2b7 !important;
  font-size: 11px;
}

.generator-pick-odds {
  flex: 0 0 auto;
  padding: 5px 7px;
  min-width: 46px;
  text-align: center;
  color: #fff;
  background: #15803d;
  border-radius: 7px;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}

.generator-pick-lock {
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface);
  font-size: 14px;
  cursor: pointer;
}

.generator-pick-lock.active {
  border-color: #22c55e;
  background: rgba(34, 197, 94, .14);
}

.generator-add-btn {
  width: 100%;
  margin-top: 16px;
}

@media (max-width: 700px) {
  .generator-params {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  header .brand-block {
    flex: 1 1 auto;
  }
}

/* ===== selections.css ===== */
.selection-card {
  padding: 0;
  overflow: hidden;
  margin-bottom: 5mm;
}

/* Keep the Selection header anthracite in both themes so the branding
   is identical and readable everywhere. */
.selection-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  background: #2b2e33 !important;
  border-bottom: 1px solid #46515a !important;
  color: #ffffff !important;
}

.selection-title {
  display: inline-flex;
  align-items: baseline;
  gap: 0;
  margin: 0;
  font-size: 20px;
  font-weight: 900;
  font-style: italic;
  line-height: 1;
  letter-spacing: -0.7px;
  color: #ffffff !important;
  white-space: nowrap;
}

.selection-brand-word,
.selection-title-text {
  color: #ffffff !important;
}

.selection-brand-365 {
  color: #22c55e !important;
}

.selection-title-text {
  margin-left: 8px;
  font-style: normal;
  letter-spacing: -0.35px;
}

.selection-subtitle {
  margin-top: 5px;
  color: #aeb8c1 !important;
  font-size: 12px;
}

.selection-count {
  color: #c8d0d6 !important;
  font-size: 12px;
  font-weight: 700;
}

.selection-empty {
  padding: 22px 20px;
  color: var(--muted);
  font-size: 13px;
}

.selection-tickets { display: grid; }

.selection-ticket-row {
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 20px;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  transition: background .16s ease;
}
.selection-ticket-row:last-child { border-bottom: 0; }
.selection-ticket-row:hover,
.selection-ticket-row:focus-visible { background: rgba(128, 128, 128, .075); outline: none; }

.selection-ticket-name {
  font-size: 14px;
  color: var(--ink);
}

.selection-ticket-left {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.selection-ticket-clear {
  appearance: none;
  -webkit-appearance: none;
  padding: 2px 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #ef5b5b !important;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: color .14s ease, opacity .14s ease;
}

.selection-ticket-clear:hover,
.selection-ticket-clear:focus-visible {
  color: #ff7373 !important;
  outline: none;
}

.selection-ticket-clear:disabled {
  opacity: .45;
  cursor: default;
}
html[data-theme="dark"] .selection-ticket-name {
  color: #ffffff !important;
}

.selection-stars {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

/* Only the star is visible—no black button box. */
.selection-stars button,
html[data-theme="dark"] .selection-stars button,
html[data-theme="light"] .selection-stars button {
  appearance: none;
  -webkit-appearance: none;
  width: 24px;
  height: 32px;
  min-width: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #8a949c !important;
  font-size: 21px;
  line-height: 1;
  cursor: pointer;
  transition: color .14s ease, transform .14s ease;
}

.selection-stars button:hover {
  transform: scale(1.10);
  background: transparent !important;
}

.selection-stars button.active,
html[data-theme="dark"] .selection-stars button.active,
html[data-theme="light"] .selection-stars button.active {
  color: #7dff2f !important;
  background: transparent !important;
  text-shadow: 0 0 7px rgba(125, 255, 47, 0.5);
}

.full-betslip-save-selection {
  width: 100%;
  margin-top: 14px;
  min-height: 44px;
  border: 0;
  border-radius: 10px;
  background: #7dff2f;
  color: #102008;
  font-weight: 800;
  cursor: pointer;
}
.full-betslip-save-selection:hover { filter: brightness(1.04); }
.full-betslip-save-selection:disabled { opacity: .65; cursor: default; }
.full-betslip-modal.saved-ticket .full-betslip-remove { display: none; }
.full-betslip-modal.saved-ticket #full-betslip-stake { pointer-events: none; opacity: .92; }

@media (max-width: 720px) {
  .selection-head { padding: 16px; }
  .selection-title { font-size: 18px; }
  .selection-title-text { margin-left: 7px; }
  .selection-ticket-row { padding: 0 16px; }
}

/* 2026-07-17 mobile/light readability correction.
   Explicit selectors are used so the older global theme rules cannot
   overwrite these colours. */
html[data-theme="light"] .selection-card .selection-ticket-name {
  color: #111111 !important;
}

html[data-theme="light"] .selection-card .selection-ticket-clear {
  color: #4f5961 !important;
}

html[data-theme="light"] .table-card .data-table thead,
html[data-theme="light"] .table-card .data-table thead tr,
html[data-theme="light"] .table-card .data-table thead th {
  background: #2b2e33 !important;
  background-color: #2b2e33 !important;
  color: #ffffff !important;
}

html[data-theme="light"] .table-card .data-table thead th .arrow {
  color: #ffffff !important;
}

@media (max-width: 900px) {
  html[data-theme="light"] .selection-card .selection-ticket-name {
    color: #111111 !important;
  }

  html[data-theme="light"] .table-card .data-table thead th {
    background: #2b2e33 !important;
    background-color: #2b2e33 !important;
    color: #ffffff !important;
  }
}

/* Three ticket areas, using the existing TipZ365 Selection visual language. */
.selection-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: #2b2e33;
  border-bottom: 1px solid #46515a;
}
.selection-tab {
  appearance: none;
  min-width: 0;
  padding: 17px 18px 15px;
  border: 0;
  border-right: 1px solid #46515a;
  background: #2b2e33;
  color: #fff;
  text-align: left;
  cursor: pointer;
}
.selection-tab:last-child { border-right: 0; }
.selection-tab:hover { background: #33373d; }
.selection-tab.active {
  background: #24272b;
  box-shadow: inset 0 -3px 0 #7dff2f;
}
.selection-tab-title {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 16px;
  font-weight: 850;
}
.selection-tab:first-child .selection-tab-title {
  font-size: 18px;
  font-weight: 900;
  font-style: italic;
  letter-spacing: -.5px;
}
.selection-tab-count {
  display: block;
  margin-top: 6px;
  color: #aeb8c1;
  font-size: 12px;
  font-weight: 700;
}
.selection-community-sort {
  display: flex;
  gap: 8px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
}
.selection-community-sort button {
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 6px 11px;
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}
.selection-community-sort button.active {
  border-color: #7dff2f;
  color: var(--ink);
}
.selection-ticket-text { display: grid; gap: 4px; min-width: 0; }
.selection-ticket-meta {
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.selection-ticket-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  min-width: 0;
}
.selection-ticket-actions { display: inline-flex; align-items: center; gap: 9px; }
.selection-action {
  appearance: none;
  border: 0;
  background: transparent;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}
.selection-share { color: #22c55e; }
.selection-votes { display: inline-flex; align-items: center; gap: 7px; }
.selection-vote {
  appearance: none;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 5px 8px;
  background: transparent;
  color: var(--ink);
  font-size: 12px;
  cursor: pointer;
}
.selection-vote.active { border-color: #7dff2f; background: rgba(125,255,47,.10); }
.selection-vote:disabled { opacity: .55; cursor: default; }
.full-betslip-ticket-actions { margin-top: 22px; display: grid; gap: 9px; }
.full-betslip-ticket-actions .full-betslip-save-selection { margin-top: 0; }
.full-betslip-share-community {
  width: 100%;
  min-height: 44px;
  border: 1px solid #22c55e;
  border-radius: 10px;
  background: transparent;
  color: #22c55e;
  font-weight: 800;
  cursor: pointer;
}
.full-betslip-modal.saved-ticket .full-betslip-remove { display: none; }
.full-betslip-modal.saved-ticket-editable .full-betslip-remove { display: inline-flex; }

@media (max-width: 720px) {
  .selection-tab { padding: 14px 10px 12px; text-align: center; }
  .selection-tab-title { font-size: 13px; }
  .selection-tab:first-child .selection-tab-title { font-size: 14px; }
  .selection-ticket-row { align-items: flex-start; padding-top: 12px; padding-bottom: 12px; }
  .selection-ticket-right { flex-wrap: wrap; }
  .selection-ticket-actions { width: 100%; justify-content: flex-end; }
}

/* Clear stays beside the ticket title, as in the original Selection layout. */
.selection-ticket-left > .selection-ticket-clear {
  margin-left: 4px;
  flex: 0 0 auto;
}

/* Compact expandable ticket window. The three category cards always stay visible. */
.selection-panel {
  border-top: 1px solid var(--border);
  background: var(--surface);
}
.selection-panel.hidden { display: none !important; }
.selection-panel-head {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 16px 0 20px;
  border-bottom: 1px solid var(--border);
  background: rgba(128, 128, 128, .045);
}
.selection-panel-title {
  color: var(--ink);
  font-size: 14px;
  font-weight: 850;
}
html[data-theme="dark"] .selection-card .selection-panel-title,
html[data-theme="dark"] .selection-card .selection-tab-title,
html[data-theme="dark"] .selection-card .selection-ticket-name {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}
.selection-panel-close {
  appearance: none;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  font-size: 24px;
  line-height: 30px;
  cursor: pointer;
}
.selection-panel-close:hover { background: rgba(128, 128, 128, .12); color: var(--ink); }
.selection-panel-scroll {
  max-height: 365px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.selection-ticket-details {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.selection-outcome-dots {
  display: grid;
  grid-template-columns: repeat(10, 9px);
  gap: 5px;
  width: max-content;
  max-width: 135px;
  margin-top: 3px;
  margin-bottom: 4px;
}
.selection-outcome-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #74808a;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .18);
}
.selection-outcome-dot.hit { background: #278447; }
.selection-outcome-dot.loss { background: #bd3f46; }
.selection-outcome-dot.pending { background: #74808a; }
.selection-ticket-row { min-height: 68px; }
.selection-ticket-text { gap: 3px; }

@media (max-width: 720px) {
  .selection-panel-head { padding-left: 14px; }
  .selection-panel-scroll { max-height: 330px; }
  .selection-ticket-row { min-height: 82px; gap: 10px; }
  .selection-ticket-details { white-space: normal; }
}

/* ===== members.css ===== */
/* Mitglieder/Login: vorbereitet, aktuell noch ohne Funktion. */

.status-pill.status-pending{background:rgba(245,158,11,.15);color:#fbbf24;border-color:rgba(245,158,11,.35)}
.status-pill.status-contacted{background:rgba(59,130,246,.14);color:#93c5fd;border-color:rgba(59,130,246,.32)}
.status-pill.status-payment-pending{background:rgba(168,85,247,.14);color:#d8b4fe;border-color:rgba(168,85,247,.32)}
.status-pill.status-active,.status-pill.status-trial{background:rgba(34,197,94,.14);color:#86efac;border-color:rgba(34,197,94,.32)}
.status-pill.status-suspended,.status-pill.status-cancelled{background:rgba(239,68,68,.14);color:#fca5a5;border-color:rgba(239,68,68,.32)}
.danger-zone{border-color:rgba(239,68,68,.35)!important}
.danger-button{background:#7f1d1d!important;color:#fff!important;border:1px solid #ef4444!important}
.danger-button:hover{background:#991b1b!important}

/* ===== main.css local rules ===== */
/* TipZ365 V3 modular CSS entry point */
/* Quick Analysis: Predctmixcat team / fixture search */
.quick-search-card { margin-top:16px; margin-bottom:14px; }
.quick-search-head { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.quick-search-head h2 { margin:0 0 5px; }
.quick-search-controls { display:flex; gap:8px; align-items:center; flex:1; justify-content:flex-end; min-width:min(100%, 420px); }
/* Same rounded look and green hover/focus as the main filter bar's fields
   (.date-picker-trigger etc.) -- plain square input otherwise. Background/
   border color already come from the app-wide dark input override further
   down this file; !important on the hover state is needed to outrank that
   (it's !important itself, and beats this selector's higher specificity). */
.quick-search-controls input {
  min-width:280px; max-width:560px; flex:1;
  border-radius: 7px;
  padding: 5px 8px;
  box-sizing: border-box;
}
.quick-search-controls input:hover,
.quick-search-controls input:focus-visible {
  background: linear-gradient(90deg, rgba(34, 197, 94, .22), rgba(34, 197, 94, .03)) !important;
  border-color: rgba(34, 197, 94, .45) !important;
  outline: none;
}
.quick-search-button {
  width:auto; min-width:76px; height:34px; padding:0 14px;
  border:1px solid #b91c1c; border-radius:8px;
  background:#dc2626; color:#fff; font-size:12px; font-weight:700;
  line-height:1; letter-spacing:.2px; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
}
.quick-search-button:hover { background:#b91c1c; }
.quick-search-button:disabled { opacity:.65; cursor:wait; }
.quick-search-status { margin-top:10px; min-height:20px; }
.quick-search-results { margin-top:10px; }
.quick-search-section-title { margin:12px 0 6px; font-size:12px; font-weight:700; color:var(--ink-2); }
.quick-search-table-wrap {
  overflow:auto; max-height:58vh; border-radius:10px;
  padding-bottom:10px;
}
.quick-search-table { white-space:nowrap; margin-bottom:2px; }
.quick-search-table th { position:sticky; top:0; z-index:2; }
.quick-search-table .quick-model-value { color:#22c55e; font-weight:700; }
#quick-search-card .quick-search-table .quick-model-heading,
#quick-search-card .quick-search-table .quick-model-value { text-align:center; }
.quick-bookmaker-block { margin-top:14px; }
.quick-bookmaker-title { margin-bottom:6px; }
.quick-bookmaker-table-wrap { max-height:42vh; }
.quick-bookie-value { color:var(--bookie); font-weight:700; }
.quick-market-name { font-weight:600; }
.quick-search-no-odds { margin-top:14px; }
@media (max-width:700px) {
  .quick-search-controls { min-width:100%; flex-wrap:wrap; }
  .quick-search-controls input { min-width:0; width:100%; flex-basis:100%; }
  .quick-search-button { min-width:82px; }
}


/* Quick Analysis bookmaker accents */
.quick-bookmaker-table .qa-bookmaker-header{border-bottom-width:3px!important;border-bottom-style:solid!important;}
.quick-bookmaker-table .qa-1xbet{border-color:#0B6DFF!important;}
.quick-bookmaker-table .qa-bet365{border-color:#0A8F3D!important;}
.quick-bookmaker-table .qa-pinnacle{border-color:#F28C18!important;}
.quick-bookmaker-table .qa-tipwin{border-color:#C62828!important;}
.quick-bookmaker-table .qa-bet3000{border-color:#D8A300!important;}
.quick-bookmaker-table .qa-betano{border-color:#F26A21!important;}
.quick-bookmaker-table .qa-betfair-exchange{border-color:#D9A11A!important;}
.quick-bookmaker-table .qa-fanduel{border-color:#1E88E5!important;}
.quick-bookmaker-table .qa-kambi-group{border-color:#29B6F6!important;}
.quick-bookmaker-table .qa-mybookie{border-color:#7E57C2!important;}
.quick-bookmaker-table .qa-tipico{border-color:#D32F2F!important;}
.quick-bookmaker-table .qa-tiptorro{border-color:#2E7D32!important;}
.quick-bookmaker-table .qa-william-hill{border-color:#E6D000!important;}
.quick-bookmaker-table .qa-swisslos{border-color:#DA291C!important;}
.quick-bookmaker-table .qa-bigwin{border-color:#00897B!important;}
.quick-bookmaker-table .qa-foxx{border-color:#E65100!important;}


/* Quick Analysis section colors */
.quick-search-section-title{
  color:#43A047;
  font-weight:700;
}
/* Which model the "Calibrated Model Odds" figures below actually came from
   -- that table only ever shows one model (state.modelSel) with nothing
   otherwise indicating which one, unlike the main Predictions table's
   always-visible per-row model tag. */
.quick-search-model-label {
  color: var(--muted) !important;
  font-weight: 600;
  font-size: 11px;
  margin-left: 4px;
}
.quick-search-model-badges {
  margin: 0 0 10px !important;
}

.quick-search-bookmaker-title{
  color:#42A5F5;
  font-weight:700;
}

/* Predictions table: approved final styling */
html[data-theme="dark"] #table thead th {
  color: #e5e7eb !important;
  background: #151a1f !important;
  font-weight: 600 !important;
}

html[data-theme="dark"] #table thead th.col-market { color: #2196f3 !important; }
html[data-theme="dark"] #table thead th.col-displayFair { color: #ff1f1f !important; }
html[data-theme="dark"] #table thead th.col-bookie-best-odds { color: #39d353 !important; }

html[data-theme="dark"] #table tbody tr:nth-child(odd) td {
  background-color: #080a0c !important;
}
html[data-theme="dark"] #table tbody tr:nth-child(even) td {
  background-color: #171c21 !important;
}
html[data-theme="dark"] #table tbody tr:nth-child(odd):hover td {
  background-color: #101419 !important;
}
html[data-theme="dark"] #table tbody tr:nth-child(even):hover td {
  background-color: #20262c !important;
}

/* Market: blue text with thin oval blue outline, no filled square. */
html[data-theme="dark"] #table tbody .pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 25px !important;
  padding: 2px 12px !important;
  color: #2196f3 !important;
  background: transparent !important;
  border: 1px solid #2196f3 !important;
  border-radius: 999px !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
}

/* Fair and Bookie: colored text only, transparent cells. */
html[data-theme="dark"] #table tbody td.fair-odds-cell,
html[data-theme="dark"] #table tbody td.bookie-odds-cell {
  background: transparent !important;
  border-radius: 0 !important;
  text-align: center !important;
  font-weight: 500 !important;
  font-variant-numeric: tabular-nums;
}
html[data-theme="dark"] #table tbody td.fair-odds-cell {
  color: #ff1f1f !important;
}
html[data-theme="dark"] #table tbody td.bookie-odds-cell {
  color: #39d353 !important;
}

/* Keep colored odds transparent on hover so only the zebra row brightens. */
html[data-theme="dark"] #table tbody tr:hover td.fair-odds-cell,
html[data-theme="dark"] #table tbody tr:hover td.bookie-odds-cell {
  background: transparent !important;
}


/* Quick Analysis: selectable desktop results when a search has multiple matches */
.quick-search-desktop-results {
  display:grid;
  gap:8px;
  margin:12px 0;
}
.quick-desktop-list-intro {
  color:#78d832;
  font-size:13px;
  font-weight:700;
  margin-bottom:2px;
}
.quick-desktop-date-filters {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:2px 0 4px;
}
.quick-desktop-date-filters button {
  padding:8px 14px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--panel-2);
  color:var(--ink);
  font-weight:700;
  cursor:pointer;
}
.quick-desktop-date-filters button:hover,
.quick-desktop-date-filters button.active {
  border-color:#78d832;
  color:#78d832;
}
.quick-desktop-filtered-matches {
  display:grid;
  gap:8px;
}
.quick-desktop-filter-empty {
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  color:var(--ink-2);
  background:var(--panel-2);
}
.quick-desktop-result-item {
  width:100%;
  display:grid;
  grid-template-columns:minmax(220px, 1fr) minmax(200px, auto) 24px;
  align-items:center;
  gap:14px;
  text-align:left;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel-2);
  color:var(--ink);
  cursor:pointer;
}
.quick-desktop-result-item:hover { border-color:#78d832; }
.quick-desktop-result-item span { color:var(--ink-2); font-size:12px; }
.quick-desktop-result-item b { color:#78d832; font-size:22px; text-align:right; }
.quick-desktop-back-wrap { display:block; }
.quick-desktop-back-results {
  width:auto;
  padding:8px 12px;
  margin-bottom:2px;
}


/* Expandable fixture details inside the Predictions table. Color is
   hardcoded, not var(--ink) -- see the comment near .date-picker-trigger:
   --ink follows the OS light/dark preference, but this app is forced dark
   regardless, so on a light-preference OS var(--ink) renders black-on-dark. */
.fixture-inline-toggle {
  appearance:none !important; border:0 !important; padding:0 !important; margin:0 !important;
  background:none !important; color:#f3f5f7 !important;
  font:inherit; font-weight:700; text-align:left; cursor:pointer; text-decoration:underline;
  text-decoration-color:transparent; text-underline-offset:3px;
}
.fixture-inline-toggle:hover { text-decoration-color:currentColor; }
.fixture-inline-toggle:disabled { cursor:default; text-decoration:none; }
.fixture-inline-detail-cell { padding:0 !important; border-top:0 !important; }
.fixture-inline-panel {
  margin:8px 10px 12px;
  padding:14px 18px 18px;
  background:var(--panel-2, rgba(15,23,42,.72));
  border:2px solid #2196f3;
  border-radius:10px;
}
.fixture-inline-head {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
  margin-bottom:10px;
}
.fixture-inline-title { color:#39d353; font-weight:700; }
.fixture-inline-close {
  grid-column:2;
  border:1px solid #2196f3;
  border-radius:7px;
  padding:6px 12px;
  background:transparent;
  color:#42a5f5;
  font-weight:700;
  cursor:pointer;
}
.fixture-inline-close:hover { background:rgba(33,150,243,.12); }
.fixture-inline-section-title { margin-top:12px; }
.fixture-inline-table-wrap { overflow-x:auto; width:100%; }
.fixture-inline-quick-table { width:100%; white-space:nowrap; margin:0; }
.fixture-inline-quick-table th, .fixture-inline-quick-table td { padding:8px 10px; }
.fixture-inline-model-wrap { max-height:none; }
.fixture-inline-empty, .fixture-inline-error { padding:10px 0; }
.fixture-inline-error { color:#ef4444; }

/* ===== mobile-contrast-fix.css ===== */
/* TipZ365 mobile/light contrast fixes.
   Loaded as a direct stylesheet (not via @import) so mobile browsers
   cannot keep an older imported CSS file in cache. */

/* Selection ticket rows: white surface with dark readable labels. */
html[data-theme="light"] .selection-card .selection-ticket-row {
  background: #ffffff !important;
}

html[data-theme="light"] .selection-card .selection-ticket-name,
html[data-theme="light"] .selection-card strong.selection-ticket-name {
  color: #111111 !important;
  -webkit-text-fill-color: #111111 !important;
  opacity: 1 !important;
}

html[data-theme="light"] .selection-card .selection-ticket-clear {
  color: #4f5961 !important;
  -webkit-text-fill-color: #4f5961 !important;
}

/* Mobile Predictions column header: anthracite bar with white text. */
html[data-theme="light"] .mobile-app .mobile-list-head {
  background: #2b2e33 !important;
  color: #ffffff !important;
  border-color: #46515a !important;
}

html[data-theme="light"] .mobile-app .mobile-list-head span {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
}

/* Desktop/tablet table header gets the same treatment. */
html[data-theme="light"] .table-card .data-table thead,
html[data-theme="light"] .table-card .data-table thead tr,
html[data-theme="light"] .table-card .data-table thead th {
  background: #2b2e33 !important;
  background-color: #2b2e33 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

html[data-theme="light"] .table-card .data-table thead th *,
html[data-theme="light"] .table-card .data-table thead th .arrow {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* ===== auth.css ===== */
:root{--auth-bg:#0b1014;--auth-panel:#141c22;--auth-border:#2a3943;--auth-text:#edf5f1;--auth-muted:#9fb0aa;--auth-green:#23c774;--auth-red:#ff6262}
.auth-page,.account-shell{min-height:100vh;color:var(--auth-text);padding:32px 18px;box-sizing:border-box}
.account-shell{background:radial-gradient(circle at 20% 0%,#173328 0,transparent 34%),var(--auth-bg)}
.auth-page{position:relative;isolation:isolate;overflow:hidden;background:var(--auth-bg)}
.auth-page::before{content:"";position:fixed;z-index:-1;left:50%;top:50%;width:min(920px,95vw);height:min(760px,88vh);transform:translate(-50%,-50%);pointer-events:none;background:radial-gradient(ellipse at center,rgba(35,199,116,.24) 0%,rgba(23,79,55,.16) 30%,rgba(11,16,20,0) 72%);filter:blur(18px)}
.auth-page{display:grid;place-items:center}.auth-card,.account-card{background:rgba(20,28,34,.97);border:1px solid var(--auth-border);border-radius:18px;box-shadow:0 18px 60px rgba(0,0,0,.35)}
.auth-card{position:relative;z-index:1;box-shadow:0 22px 70px rgba(0,0,0,.48),0 0 70px rgba(35,199,116,.10)}
.auth-card{width:min(440px,100%);padding:34px}.auth-logo{font-size:34px;font-weight:800;letter-spacing:-2px}.auth-logo strong{color:var(--auth-green)}.auth-card h1,.account-card h1{margin:18px 0 6px}.auth-muted{color:var(--auth-muted);margin:0 0 20px}.auth-form{display:grid;gap:15px}.auth-form label,.admin-form-grid label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#c9d6d1}.auth-form input,.admin-form-grid input,.admin-form-grid select,.admin-form-grid textarea,.inline-form input{width:100%;box-sizing:border-box;background:#0c1317;border:1px solid #344650;color:#fff;border-radius:10px;padding:12px 13px;font:inherit}.auth-form input:focus,.admin-form-grid input:focus,.admin-form-grid select:focus,.admin-form-grid textarea:focus{outline:2px solid rgba(35,199,116,.32);border-color:var(--auth-green)}.check-row{display:flex!important;align-items:center;gap:9px!important;font-weight:500!important}.check-row input{width:auto}.auth-submit{margin-top:5px;min-height:46px}.flash-stack{display:grid;gap:8px;margin:14px 0}.flash{padding:11px 13px;border-radius:10px;border:1px solid}.flash-error{background:#35191b;border-color:#73363a}.flash-success{background:#123523;border-color:#276d49}.flash-warning{background:#3b3116;border-color:#78632b}.account-shell{max-width:none}.account-topbar{max-width:1180px;margin:0 auto 18px;display:flex;justify-content:space-between;align-items:center}.back-link,.ghost-link{color:#d7e6df;text-decoration:none}.ghost-btn,.button-link,.small-action{border:1px solid #40545e;background:#172229;color:#fff;border-radius:9px;padding:9px 13px;text-decoration:none;cursor:pointer}.account-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.account-card{padding:24px}.payment-card,.admin-shell>.account-card{max-width:1180px;margin:18px auto 0}.profile-list{margin:0}.profile-list>div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid #26353d}.profile-list dt{color:var(--auth-muted)}.profile-list dd{margin:0;text-align:right;font-weight:700}.status-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.status-ok{background:#173d2a;color:#64e6a2}.status-bad{background:#431f23;color:#ff9b9b}.table-scroll{overflow:auto}.member-table{width:100%;border-collapse:collapse;min-width:760px}.member-table th,.member-table td{text-align:left;padding:12px 10px;border-bottom:1px solid #283740}.member-table th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#91a59d}.member-table td small{display:block;color:#869991;margin-top:3px}.section-title-row{display:flex;justify-content:space-between;gap:20px;align-items:start}.count-badge{background:#1f3029;padding:7px 10px;border-radius:999px;color:#8fe5b8}.admin-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.full-width{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end}.admin-tools-grid{margin-top:18px}.inline-actions,.inline-form{display:flex;gap:10px;flex-wrap:wrap}.inline-actions button,.inline-form button{padding:10px 13px;border:1px solid #3d535d;border-radius:9px;background:#172229;color:#fff;cursor:pointer}.inline-form input{flex:1;min-width:180px}.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:780px){.auth-page,.account-shell{padding:18px 10px}.auth-card,.account-card{padding:18px;border-radius:14px}.account-grid{grid-template-columns:1fr}.admin-form-grid,.compact-grid{grid-template-columns:1fr}.full-width{grid-column:auto}.section-title-row{display:block}.account-topbar{padding:0 4px}.profile-list>div{align-items:flex-start}.profile-list dd{max-width:58%;overflow-wrap:anywhere}}
.header-account-link{color:inherit;text-decoration:none;border:1px solid rgba(127,155,143,.35);padding:8px 11px;border-radius:9px;white-space:nowrap;background:transparent;font:inherit;cursor:pointer}.header-logout-form{margin:0}.header-logout{display:inline-block}.flash-stack{max-width:1180px;margin-left:auto;margin-right:auto}
.guide-help-shell { max-width: 900px; margin: 0 auto; display: grid; gap: 18px; }
.guide-help-shot { display: block; width: 100%; max-width: 100%; height: auto; border: 1px solid var(--auth-border); border-radius: 10px; margin: 14px 0 20px; }
.guide-help-terms { margin: 0; display: grid; gap: 14px; }
.guide-help-terms > div { padding-bottom: 12px; border-bottom: 1px solid #26353d; }
.guide-help-terms dt { font-weight: 700; color: #eafff1; margin-bottom: 3px; }
.guide-help-terms dd { margin: 0; color: var(--auth-muted); line-height: 1.5; }
.guide-help-section h3 { margin: 22px 0 4px; font-size: 15px; color: var(--auth-green); }
.guide-help-section h3:first-of-type { margin-top: 0; }
.result-update-button:disabled { opacity: .62; cursor: wait; }
.result-update-status {
  max-width: 180px;
  overflow: hidden;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.result-update-status.state-complete { color: #278447; }
.result-update-status.state-failed { color: #bd3f46; }
.tracker-slot-badge { display:inline-block; margin-left:6px; padding:1px 7px; border-radius:999px; background:#278447; color:#eafff1; font-size:10px; font-weight:800; }
.tracker-slot-badge:empty { display:none; }
.result-update-last {
  max-width: 180px;
  overflow: hidden;
  color: var(--muted);
  font-size: 10.5px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.auth-form label small{display:block;margin-top:6px;color:var(--muted,#9ca3af);font-size:.78rem;font-weight:500}
.auth-switch{text-align:center;margin:20px 0 0;color:var(--muted,#9ca3af);font-size:.9rem}
.auth-switch a,.auth-secondary-link{color:#34d399;text-decoration:none;font-weight:700}
.register-card{max-width:520px}
.telegram-hint,.telegram-notice{margin-top:18px;padding:16px 18px;border:1px solid rgba(52,211,153,.28);background:rgba(52,211,153,.07);border-radius:14px;color:var(--muted,#cbd5e1);line-height:1.55}
.telegram-notice strong{display:block;color:#fff;margin-bottom:5px}
.telegram-notice .button-link{display:block;text-align:center;margin-top:14px;text-decoration:none}
.registration-success{text-align:center}
.success-mark{width:58px;height:58px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:#22c55e;color:#07120b;font-size:2rem;font-weight:900}
.auth-secondary-link{display:inline-block;margin-top:20px}

/* ===== languages.css ===== */
/* Desktop language picker: one compact button in the header. */
.desktop-language-picker {
  position: relative;
  z-index: 1300;
  flex: 0 0 auto;
}

.desktop-language-trigger {
  min-width: 78px;
  height: 42px;
  padding: 5px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-radius: 13px;
  border: 1px solid rgba(148, 163, 184, .34);
  background: rgba(15, 23, 30, .94);
  color: #eef4f7;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(0,0,0,.24);
}
.desktop-language-trigger:hover,
.desktop-language-trigger[aria-expanded="true"] {
  border-color: rgba(142,255,0,.7);
  box-shadow: 0 0 0 2px rgba(142,255,0,.12), 0 8px 24px rgba(0,0,0,.28);
}
.desktop-language-chevron { font-size: 12px; opacity: .78; transition: transform .15s ease; }
.desktop-language-trigger[aria-expanded="true"] .desktop-language-chevron { transform: rotate(180deg); }

.desktop-language-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 164px;
  padding: 8px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  border-radius: 16px;
  border: 1px solid rgba(142,255,0,.25);
  background: rgba(7, 14, 19, .98);
  box-shadow: 0 18px 45px rgba(0,0,0,.48);
  backdrop-filter: blur(12px);
}
.desktop-language-menu[hidden] { display: none !important; }

.language-button {
  min-width: 0;
  min-height: 58px;
  padding: 7px 5px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  border-radius: 12px;
  border: 1px solid rgba(148,163,184,.28);
  background: rgba(15,23,30,.92);
  color: #eef4f7;
  cursor: pointer;
}
.language-button:hover { border-color: rgba(142,255,0,.62); }
.language-button.active {
  border-color: #8eff00;
  box-shadow: 0 0 0 2px rgba(142,255,0,.16), 0 0 16px rgba(142,255,0,.3);
}
.language-button.language-coming-soon { opacity: .62; }
.language-button.language-coming-soon:hover { opacity: .9; }

/* Static fabric/fold appearance. No animation. */
.language-flag {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 25px;
  overflow: hidden;
  border-radius: 4px 7px 5px 6px;
  font-size: 25px;
  line-height: 1;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,.42));
  transform: perspective(70px) rotateY(-5deg) skewY(-1deg);
}
.language-flag::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(100deg, rgba(255,255,255,.20) 0%, transparent 22%, rgba(0,0,0,.18) 44%, rgba(255,255,255,.12) 65%, rgba(0,0,0,.16) 100%);
  mix-blend-mode: overlay;
}
.desktop-language-trigger .language-flag { width: 31px; height: 22px; font-size: 22px; }
.language-code { font-size: 11px; line-height: 1.1; font-weight: 800; letter-spacing: .04em; }

.language-toast {
  position: absolute;
  right: 0;
  top: calc(100% + 184px);
  width: max-content;
  max-width: 230px;
  padding: 9px 12px;
  border-radius: 10px;
  background: rgba(8,15,20,.98);
  border: 1px solid rgba(142,255,0,.35);
  color: #fff;
  font-size: 13px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}
.language-toast.show { opacity: 1; }

/* Restore the full desktop width formerly lost to the fixed sidebar. */
@media (min-width: 901px) {
  body > main { width: auto; margin-left: auto; margin-right: auto; }
}

/* The mobile interface already has its own language section. */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) .desktop-language-picker { display: none !important; }
}

/* ===== mobile-d77-fix.css ===== */
/* D77 direct mobile hotfix. Loaded after all other styles to avoid import/cache conflicts. */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) body > .language-sidebar {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  html:not(.tipz365-force-desktop) .mobile-time-buttons button,
  html:not(.tipz365-force-desktop) .mobile-market-buttons button {
    appearance: none;
    -webkit-appearance: none;
    transition: background-color .12s ease, border-color .12s ease, color .12s ease, transform .08s ease;
  }

  html:not(.tipz365-force-desktop) .mobile-market-buttons button.active,
  html:not(.tipz365-force-desktop) .mobile-market-buttons button[aria-pressed="true"] {
    background: #101e2c !important;
    border-color: #4b9cff !important;
    color: #4b9cff !important;
    box-shadow: none !important;
  }
  html:not(.tipz365-force-desktop) .mobile-time-buttons button.active,
  html:not(.tipz365-force-desktop) .mobile-time-buttons button[aria-pressed="true"] {
    background: #101e2c !important;
    border-color: #f1c40f !important;
    color: #f1c40f !important;
    box-shadow: none !important;
  }

  html:not(.tipz365-force-desktop) .mobile-upcoming-toggle {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    width: auto;
    margin: 12px 0 0;
    color: #dce6ef;
    font-size: 12px;
    font-weight: 700;
  }

  html:not(.tipz365-force-desktop) .mobile-upcoming-toggle input {
    position: absolute;
    opacity: 0;
  }

  html:not(.tipz365-force-desktop) .mobile-checkmark {
    width: 22px;
    height: 22px;
    display: inline-grid;
    place-items: center;
    border: 1px solid #405061;
    border-radius: 6px;
    background: #101e2c;
    color: transparent;
  }

  html:not(.tipz365-force-desktop) .mobile-upcoming-toggle input:checked + .mobile-checkmark {
    background: #16a34a !important;
    border-color: #22c55e !important;
    color: #fff !important;
  }
  html:not(.tipz365-force-desktop) .mobile-playable-toggle input:checked + .mobile-checkmark {
    background: #16a34a !important;
    border-color: #22c55e !important;
    color: #fff !important;
  }
  html:not(.tipz365-force-desktop) .mobile-marked-toggle input:checked + .mobile-checkmark {
    background: #f1c40f !important;
    border-color: #f1c40f !important;
    color: #1a1a19 !important;
  }

  html:not(.tipz365-force-desktop) #mobile-view-profile .mobile-language-menu {
    display: block !important;
  }

  html:not(.tipz365-force-desktop) #mobile-view-profile .mobile-language-buttons {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 8px;
  }

  html:not(.tipz365-force-desktop) #mobile-view-profile .language-button {
    width: 100%;
    min-height: 58px;
    position: static;
  }

  html:not(.tipz365-force-desktop) #mobile-view-tickets .selection-tabs,
  html:not(.tipz365-force-desktop) #mobile-view-community .selection-tabs,
  html:not(.tipz365-force-desktop) #mobile-view-tickets .selection-tab-buttons,
  html:not(.tipz365-force-desktop) #mobile-view-community .selection-tab-buttons {
    display: none !important;
  }
}


/* D78 mobile layout refinements */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) .mobile-results-bar strong,
  html:not(.tipz365-force-desktop) #mobile-result-count {
    color: #f8fafc;
  }

  html:not(.tipz365-force-desktop) .mobile-game-card {
    position: relative;
    padding-top: 34px;
  }

  html:not(.tipz365-force-desktop) .mobile-card-corner-value {
    position: absolute;
    top: 10px;
    right: 34px;
    z-index: 2;
    padding: 1px 8px;
    border-radius: 999px;
    background: transparent;
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }
  html:not(.tipz365-force-desktop) .mobile-card-corner-value.positive { color: #7ee02f; border: 1px solid #7ee02f; }
  html:not(.tipz365-force-desktop) .mobile-card-corner-value.negative { color: #ff5662; border: 1px solid #ff5662; }

  html:not(.tipz365-force-desktop) .mobile-card-body {
    grid-template-columns: minmax(118px, 1.55fr) 58px minmax(58px, .72fr) minmax(62px, .78fr) 18px;
    gap: 6px;
  }

  html:not(.tipz365-force-desktop) .mobile-card-market {
    background: transparent !important;
    border: 1px solid #4b9cff !important;
    color: #4b9cff !important;
    box-shadow: none !important;
  }

  html:not(.tipz365-force-desktop) .mobile-card-odd.fair strong { color: #ff5662 !important; }
  html:not(.tipz365-force-desktop) .mobile-card-odd.bookie strong { color: #7ee02f !important; }

  html:not(.tipz365-force-desktop) .mobile-bottom-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  html:not(.tipz365-force-desktop) .mobile-profile-card .mobile-menu-section-title,
  html:not(.tipz365-force-desktop) .mobile-language-title {
    margin: 16px 0 6px;
    color: #aeb8c5;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  html:not(.tipz365-force-desktop) .mobile-profile-card .mobile-menu-games button {
    border-color: #2c6fbf;
  }

  html:not(.tipz365-force-desktop) #mobile-view-tickets .selection-tabs,
  html:not(.tipz365-force-desktop) #mobile-view-community .selection-tabs {
    display: none !important;
  }
}

@media (max-width: 430px) {
  html:not(.tipz365-force-desktop) .mobile-card-body {
    grid-template-columns: minmax(100px, 1.45fr) 50px minmax(50px, .7fr) minmax(54px, .75fr) 14px;
    gap: 4px;
  }
}

html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-card-corner-value.positive { color: #238400 !important; border-color: #238400 !important; }
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-card-corner-value.negative { color: #c62828 !important; border-color: #c62828 !important; }
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-card-odd.fair strong { color: #c62828 !important; }
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-card-odd.bookie strong { color: #238400 !important; }


/* D79: odds alignment, betslip toggle, and forced-desktop language bar */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) .mobile-card-body {
    grid-template-columns: minmax(112px, 1.5fr) 54px minmax(62px, .72fr) minmax(68px, .78fr) 30px;
    align-items: start;
  }
  html:not(.tipz365-force-desktop) .mobile-card-odd {
    display: grid; grid-template-rows: 14px 28px 16px; align-content: start; align-items: start; min-width: 0;
  }
  html:not(.tipz365-force-desktop) .mobile-card-odd small,
  html:not(.tipz365-force-desktop) .mobile-card-odd strong,
  html:not(.tipz365-force-desktop) .mobile-card-odd span { display: block; margin: 0; line-height: 1; }
  html:not(.tipz365-force-desktop) .mobile-card-odd small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  html:not(.tipz365-force-desktop) .mobile-card-odd strong { align-self: center; }
  html:not(.tipz365-force-desktop) .mobile-card-odd span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 9px; }
  html:not(.tipz365-force-desktop) .mobile-card-actions { display: flex; flex-direction: column; align-items: center; gap: 5px; padding-top: 1px; }
  html:not(.tipz365-force-desktop) .mobile-card-bet-toggle,
  html:not(.tipz365-force-desktop) .mobile-card-arrow { width: 27px; height: 27px; min-width: 27px; display: grid; place-items: center; padding: 0; border-radius: 7px; }
  html:not(.tipz365-force-desktop) .mobile-card-bet-toggle { border: 1px solid #4b9cff; background: #101e2c; color: #fff; font-size: 21px; font-weight: 900; line-height: 1; }
  html:not(.tipz365-force-desktop) .mobile-card-bet-toggle.added { background: #249d3d !important; border-color: #63d779 !important; color: #fff !important; }
  html:not(.tipz365-force-desktop) .mobile-card-bet-toggle:disabled { opacity: .38; }
}
@media (max-width: 430px) {
  html:not(.tipz365-force-desktop) .mobile-card-body { grid-template-columns: minmax(96px, 1.38fr) 47px minmax(56px, .70fr) minmax(62px, .76fr) 28px; gap: 4px; }
}
html.tipz365-force-desktop .language-sidebar.forced-desktop-language-bar {
  position: static !important; inset: auto !important; transform: none !important; width: 100% !important; max-width: none !important; max-height: none !important; margin: 24px 0 90px !important; padding: 10px 12px !important; display: flex !important; flex-direction: row !important; justify-content: center !important; align-items: center !important; flex-wrap: wrap !important; gap: 10px !important; overflow: visible !important; border-radius: 14px !important;
}
html.tipz365-force-desktop .language-sidebar.forced-desktop-language-bar .language-button { width: 72px !important; min-height: 58px !important; flex-direction: row !important; gap: 7px !important; border-radius: 12px !important; padding: 7px 10px !important; }
html.tipz365-force-desktop .language-sidebar.forced-desktop-language-bar .language-flag { font-size: 24px !important; }
html.tipz365-force-desktop .language-sidebar.forced-desktop-language-bar .language-code { font-size: 11px !important; }
html.tipz365-force-desktop .language-sidebar.forced-desktop-language-bar .language-toast { left: 50% !important; top: auto !important; bottom: calc(100% + 8px) !important; transform: translateX(-50%) !important; }


/* D80: smaller card market, separated betslip plus, downward details arrow, clean wordmark */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) .mobile-brand {
    gap: 0 !important;
    letter-spacing: -1px;
  }
  html:not(.tipz365-force-desktop) .mobile-brand-tip {
    color: #fff;
    font-size: .82em;
    font-weight: 800;
  }
  html:not(.tipz365-force-desktop) .mobile-brand-z {
    color: #fff;
    font-size: 1em;
    font-weight: 900;
  }
  html:not(.tipz365-force-desktop) .mobile-brand-365 {
    margin-left: 1px;
  }
  html:not(.tipz365-force-desktop) .mobile-ball,
  html:not(.tipz365-force-desktop) .mobile-brand-tipz {
    display: none !important;
  }

  html:not(.tipz365-force-desktop) .mobile-card-body {
    grid-template-columns: minmax(112px, 1.5fr) 43px minmax(62px, .72fr) minmax(68px, .78fr) 27px;
  }
  html:not(.tipz365-force-desktop) .mobile-card-market {
    justify-self: center;
    width: auto;
    min-width: 36px;
    max-width: 43px;
    padding: 6px 5px !important;
    border-radius: 7px;
    font-size: 11px !important;
    line-height: 1;
  }
  html:not(.tipz365-force-desktop) .mobile-card-actions {
    position: static;
    display: block;
    width: 27px;
    min-width: 27px;
    padding-top: 31px;
  }
  html:not(.tipz365-force-desktop) .mobile-card-bet-toggle {
    position: absolute;
    top: 31px;
    right: 44px;
    width: 25px !important;
    height: 25px !important;
    min-width: 25px !important;
    border-radius: 7px !important;
    font-size: 19px !important;
    z-index: 2;
  }
  html:not(.tipz365-force-desktop) .mobile-card-arrow {
    width: 27px !important;
    height: 27px !important;
    min-width: 27px !important;
    border: 0 !important;
    background: transparent !important;
    color: #559dff !important;
    font-size: 25px !important;
    line-height: 1 !important;
    transform: none !important;
  }
  html:not(.tipz365-force-desktop) .mobile-card-arrow.open {
    transform: rotate(180deg) !important;
  }
}
@media (max-width: 430px) {
  html:not(.tipz365-force-desktop) .mobile-card-body {
    grid-template-columns: minmax(96px, 1.38fr) 39px minmax(56px, .70fr) minmax(62px, .76fr) 25px;
  }
  html:not(.tipz365-force-desktop) .mobile-card-market {
    min-width: 33px;
    max-width: 39px;
    padding: 5px 3px !important;
    font-size: 10px !important;
  }
  html:not(.tipz365-force-desktop) .mobile-card-bet-toggle {
    right: 39px;
  }
}
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-brand-tip,
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-brand-z {
  color: #152231 !important;
}


/* D81: persistent selections, compact controls, date range, and Quick Analysis close */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) .mobile-selection-dock {
    display: block;
    width: 100%;
    position: relative;
    z-index: 4;
    background: #07131f;
    border-bottom: 1px solid #2a3948;
  }
  html:not(.tipz365-force-desktop) .mobile-selection-dock .selection-card {
    display: block !important;
    margin: 0 !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    box-shadow: none !important;
  }
  html:not(.tipz365-force-desktop) .mobile-selection-dock .selection-tabs {
    min-height: 66px;
  }
  html:not(.tipz365-force-desktop) .mobile-selection-dock .selection-tab {
    min-height: 66px;
    padding: 10px 8px 8px !important;
  }
  html:not(.tipz365-force-desktop) .mobile-selection-dock .selection-tab-title {
    font-size: 13px !important;
    line-height: 1.15;
  }
  html:not(.tipz365-force-desktop) .mobile-selection-dock .selection-tab-count {
    margin-top: 5px;
    font-size: 11px !important;
  }
  html:not(.tipz365-force-desktop) .mobile-selection-dock .selection-ticket-row {
    padding: 10px 14px !important;
    min-height: 70px;
  }
  html:not(.tipz365-force-desktop) .mobile-time-buttons {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  html:not(.tipz365-force-desktop) .mobile-time-buttons button {
    min-height: 45px !important;
    padding: 9px 8px !important;
  }
  html:not(.tipz365-force-desktop) .mobile-date-filter-panel {
    margin-top: 10px;
    padding: 12px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    border: 1px solid #34485a;
    border-radius: 12px;
    background: #0d1a26;
  }
  html:not(.tipz365-force-desktop) .mobile-date-filter-panel[hidden] { display: none !important; }
  html:not(.tipz365-force-desktop) .mobile-date-filter-panel label {
    min-width: 0;
    color: #aeb8c5;
    font-size: 12px;
    font-weight: 800;
  }
  html:not(.tipz365-force-desktop) .mobile-date-input-wrap {
    margin-top: 5px;
    display: flex;
    width: 100%;
    min-width: 0;
    padding: 8px 9px;
    border: 1px solid #40566a;
    border-radius: 9px;
    background: #101e2c;
  }
  html:not(.tipz365-force-desktop) .mobile-date-input-wrap input {
    display: block;
    width: 100%;
    min-width: 0;
    border: 0;
    padding: 0;
    background: transparent;
    color: #f8fafc;
    font: inherit;
  }
  html:not(.tipz365-force-desktop) .mobile-date-actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
  }
  html:not(.tipz365-force-desktop) .mobile-date-actions button {
    min-width: 84px;
    min-height: 38px;
    border: 1px solid #40566a;
    border-radius: 9px;
    background: #101e2c;
    color: #f8fafc;
    font-weight: 800;
  }
  html:not(.tipz365-force-desktop) #mobile-date-apply {
    background: #1473e6 !important;
    border-color: #4b9cff !important;
    color: #fff !important;
  }
  html:not(.tipz365-force-desktop) .mobile-market-buttons {
    gap: 6px !important;
  }
  html:not(.tipz365-force-desktop) .mobile-market-buttons button {
    min-height: 42px !important;
    padding: 7px 3px !important;
    font-size: 12px !important;
  }
  html:not(.tipz365-force-desktop) #quick-search-card {
    position: fixed;
  }
  html:not(.tipz365-force-desktop) .quick-search-mobile-close {
    display: grid !important;
    place-items: center;
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 5;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid #4b6073;
    border-radius: 10px;
    background: #101e2c;
    color: #fff;
    font-size: 28px;
    line-height: 1;
  }
  html:not(.tipz365-force-desktop) #quick-search-card .quick-search-head {
    padding-right: 44px;
  }
}
@media (min-width: 901px) {
  .quick-search-mobile-close { display: none !important; }
}
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-selection-dock { background: #eef2f5; }
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-date-filter-panel,
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-date-input-wrap,
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-date-actions button,
html[data-theme="light"]:not(.tipz365-force-desktop) .quick-search-mobile-close {
  background: #fff;
  color: #152231;
}
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-date-input-wrap input { color: #152231; }


/* D82: clearer Betslip action and compact bookmaker odds range filter */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) .mobile-compact-filter-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 12px;
  }
  html:not(.tipz365-force-desktop) .mobile-compact-filter-row .mobile-upcoming-toggle {
    margin: 0 !important;
    min-width: 0;
  }
  html:not(.tipz365-force-desktop) .mobile-bookie-odds-btn {
    flex: 0 0 auto;
    min-height: 34px;
    max-width: 48%;
    padding: 7px 11px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    border: 1px solid #40566a;
    border-radius: 9px;
    background: #101e2c;
    color: #dce6ef;
    font-size: 11px;
    font-weight: 800;
  }
  html:not(.tipz365-force-desktop) .mobile-bookie-odds-btn.active {
    background: #1473e6 !important;
    border-color: #4b9cff !important;
    color: #fff !important;
  }
  html:not(.tipz365-force-desktop) .mobile-bookie-odds-panel {
    margin-top: 8px;
  }
  html:not(.tipz365-force-desktop) #mobile-bookie-odds-apply {
    background: #1473e6 !important;
    border-color: #4b9cff !important;
    color: #fff !important;
  }

  html:not(.tipz365-force-desktop) .mobile-card-teams {
    align-self: stretch;
  }
  html:not(.tipz365-force-desktop) .mobile-card-bet-toggle {
    position: static !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    margin-top: 7px;
    padding: 3px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #8da2b5 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start;
    font-size: 10px !important;
    font-weight: 800;
    line-height: 1.1 !important;
    text-align: left;
  }
  html:not(.tipz365-force-desktop) .mobile-card-bet-toggle.added {
    background: transparent !important;
    border: 0 !important;
    color: #7ee02f !important;
  }
  html:not(.tipz365-force-desktop) .mobile-card-bet-toggle:disabled {
    opacity: .38;
  }
  html:not(.tipz365-force-desktop) .mobile-card-actions {
    padding-top: 31px;
  }
  html:not(.tipz365-force-desktop) .mobile-card-market {
    min-width: 31px;
    max-width: 38px;
    padding: 5px 3px !important;
    font-size: 10px !important;
  }
}
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-bookie-odds-btn {
  background: #fff;
  color: #152231;
}
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-card-bet-toggle {
  color: #607284 !important;
}
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-card-bet-toggle.added {
  color: #238400 !important;
}

/* D83: compact square market filter buttons */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) .mobile-market-buttons {
    gap: 6px !important;
  }

  html:not(.tipz365-force-desktop) .mobile-market-buttons button {
    height: 39px !important;
    min-height: 39px !important;
    padding: 0 2px !important;
    border-radius: 9px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    letter-spacing: -0.1px;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: clip !important;
  }

  html:not(.tipz365-force-desktop) .mobile-market-buttons button[data-mobile-market="btts_yes"],
  html:not(.tipz365-force-desktop) .mobile-market-buttons button[data-mobile-market="btts_no"] {
    font-size: 9.5px !important;
    letter-spacing: -0.35px;
  }
}

@media (max-width: 390px) {
  html:not(.tipz365-force-desktop) .mobile-market-buttons {
    gap: 4px !important;
  }

  html:not(.tipz365-force-desktop) .mobile-market-buttons button {
    height: 37px !important;
    min-height: 37px !important;
    font-size: 10.5px !important;
  }

  html:not(.tipz365-force-desktop) .mobile-market-buttons button[data-mobile-market="btts_yes"],
  html:not(.tipz365-force-desktop) .mobile-market-buttons button[data-mobile-market="btts_no"] {
    font-size: 8.7px !important;
    letter-spacing: -0.45px;
  }
}


/* D84: mobile fair-odds range beside bookie-odds range */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) .mobile-compact-filter-row {
    gap: 6px !important;
  }
  html:not(.tipz365-force-desktop) .mobile-compact-filter-row .mobile-upcoming-toggle {
    flex: 1 1 auto;
    font-size: 10px !important;
    white-space: nowrap;
  }
  html:not(.tipz365-force-desktop) .mobile-range-odds-btn {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 31%;
    min-height: 32px;
    padding: 6px 8px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    border: 1px solid #40566a;
    border-radius: 9px;
    background: #101e2c;
    color: #dce6ef;
    font-size: 10px;
    font-weight: 800;
  }
  html:not(.tipz365-force-desktop) .mobile-range-odds-btn.active {
    background: #1473e6 !important;
    border-color: #4b9cff !important;
    color: #fff !important;
  }
  html:not(.tipz365-force-desktop) .mobile-fair-odds-panel {
    margin-top: 8px;
  }
  html:not(.tipz365-force-desktop) #mobile-fair-odds-apply {
    background: #1473e6 !important;
    border-color: #4b9cff !important;
    color: #fff !important;
  }
}
@media (max-width: 390px) {
  html:not(.tipz365-force-desktop) .mobile-compact-filter-row { gap: 4px !important; }
  html:not(.tipz365-force-desktop) .mobile-range-odds-btn { padding: 6px 5px; font-size: 9px; }
  html:not(.tipz365-force-desktop) .mobile-compact-filter-row .mobile-upcoming-toggle { font-size: 9px !important; }
}
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-range-odds-btn {
  background: #fff;
  color: #152231;
}


/* D85: native-app choice sheets for Value, Bookmaker and Model */
@media (max-width: 900px) {
  html:not(.tipz365-force-desktop) .mobile-select-row .mobile-filter-select {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    width: 100%;
    border: 1px solid #263c50;
    background: #101e2c;
    color: #fff;
    text-align: left;
    cursor: pointer;
  }
  html:not(.tipz365-force-desktop) .mobile-filter-chevron {
    margin-left: auto;
    color: #8fa6ba;
    font-size: 15px;
    line-height: 1;
  }
  html:not(.tipz365-force-desktop) .mobile-choice-sheet {
    position: fixed;
    z-index: 10040;
    left: 0;
    right: 0;
    bottom: 0;
    max-height: min(78vh, 680px);
    overflow: auto;
    padding: 8px 14px calc(14px + env(safe-area-inset-bottom));
    border: 1px solid #2a4257;
    border-bottom: 0;
    border-radius: 20px 20px 0 0;
    background: #0d1823;
    box-shadow: 0 -14px 40px rgba(0,0,0,.45);
  }
  html:not(.tipz365-force-desktop) .mobile-choice-sheet[hidden] { display: none !important; }
  html:not(.tipz365-force-desktop) .mobile-choice-handle {
    width: 42px;
    height: 4px;
    margin: 2px auto 8px;
    border-radius: 99px;
    background: #526679;
  }
  html:not(.tipz365-force-desktop) .mobile-choice-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 4px 2px 10px;
  }
  html:not(.tipz365-force-desktop) .mobile-choice-header h3 {
    margin: 0;
    font-size: 18px;
    color: #fff;
  }
  html:not(.tipz365-force-desktop) .mobile-choice-close {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: #1a2a39;
    color: #dce7f0;
    font-size: 23px;
    line-height: 1;
  }
  html:not(.tipz365-force-desktop) .mobile-choice-options {
    display: grid;
    gap: 7px;
  }
  html:not(.tipz365-force-desktop) .mobile-choice-option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 45px;
    padding: 10px 14px;
    border: 1px solid #263c50;
    border-radius: 11px;
    background: #111f2d;
    color: #edf4fa;
    font-size: 14px;
    font-weight: 750;
    text-align: left;
  }
  html:not(.tipz365-force-desktop) .mobile-choice-option i {
    width: 25px;
    color: #2bd477;
    font-size: 18px;
    font-style: normal;
    text-align: center;
  }
  html:not(.tipz365-force-desktop) .mobile-choice-option.selected {
    border-color: #2bd477;
    background: rgba(43,212,119,.12);
  }
  html:not(.tipz365-force-desktop) .mobile-choice-actions {
    position: sticky;
    bottom: 0;
    display: grid;
    grid-template-columns: 1fr 1.45fr;
    gap: 9px;
    padding-top: 12px;
    background: #0d1823;
  }
  html:not(.tipz365-force-desktop) .mobile-choice-actions button {
    min-height: 44px;
    border: 1px solid #334b60;
    border-radius: 11px;
    background: #172635;
    color: #e7eff5;
    font-weight: 800;
  }
  html:not(.tipz365-force-desktop) .mobile-choice-actions [data-choice-apply] {
    border-color: #238a54;
    background: #1ca965;
    color: #fff;
  }
}
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-select-row .mobile-filter-select,
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-choice-sheet,
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-choice-actions {
  background: #fff;
  color: #152231;
}
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-choice-header h3 { color: #152231; }
html[data-theme="light"]:not(.tipz365-force-desktop) .mobile-choice-option {
  background: #f5f8fb;
  color: #152231;
}

/* Canonical ticket result/action colours. */
.selection-card .selection-ticket-clear,
.selection-card .selection-ticket-clear:hover,
.selection-card .selection-ticket-clear:focus-visible {
  color: #bd3f46 !important;
  -webkit-text-fill-color: #bd3f46 !important;
}

/* ---- Search Similar Games ---- */
.similar-games-modal {
  width: min(640px, 96vw);
}
.similar-games-body {
  padding: 16px 20px 20px;
  overflow-y: auto;
}
.similar-games-search-row {
  display: flex;
  gap: 8px;
}
.similar-games-search-row input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-2);
  color: #f3f5f7 !important;
}
.similar-games-model-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}
.similar-games-model-row label {
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  white-space: nowrap;
}
.similar-games-model-row select {
  flex: 1 1 auto;
  min-width: 0;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-2);
  color: #f3f5f7 !important;
}
.similar-games-filter-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 8px;
}
.similar-games-filter-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
}
.similar-games-filter-toggle input[type="checkbox"] {
  accent-color: #22c55e;
}
.similar-games-filter-toggle label {
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  white-space: nowrap;
  cursor: pointer;
}
.similar-games-filter-toggle input:disabled + label {
  opacity: .45;
  cursor: not-allowed;
}
.similar-games-tolerance-field {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}
.similar-games-tolerance-field label {
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  white-space: nowrap;
}
.similar-games-tolerance-field input {
  width: 64px;
  padding: 6px 8px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-2);
  color: #f3f5f7 !important;
}
.similar-games-status {
  margin-top: 8px;
  min-height: 18px;
}
.similar-games-reference {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 12px;
  padding: 10px 78px 10px 12px;
  border: 1px solid rgba(34, 197, 94, .35);
  border-left: 3px solid #22c55e;
  border-radius: 9px;
  background-color: #182129 !important;
}
.similar-games-reference-arrow {
  position: absolute;
  top: 10px;
  right: 10px;
}
.similar-games-market-markable {
  cursor: pointer;
}
.similar-games-detail-cell span.similar-games-market-marked {
  color: #f1c40f !important;
  font-weight: 700 !important;
}
.similar-games-reference-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #86efac;
}
.similar-games-reference strong {
  color: #f3f5f7 !important;
  font-size: 14px;
}
.similar-games-reference-odds {
  font-size: 12px;
  color: #c3c2b7 !important;
}
.similar-games-reference-league {
  font-size: 11px;
  color: var(--muted);
}
.similar-games-list {
  display: grid;
  gap: 6px;
  margin-top: 8px;
}
.similar-games-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: #151c22 !important;
  color: #f3f5f7 !important;
  font-size: 12.5px;
}
.similar-games-row > span:first-of-type {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.similar-games-row-odds,
.similar-games-row-result {
  flex: 0 0 auto;
  color: #c3c2b7 !important;
  font-variant-numeric: tabular-nums;
}
.similar-games-empty {
  margin-top: 8px;
}
.similar-games-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}
.similar-games-summary-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 9px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background-color: #151c22 !important;
}
.similar-games-summary-cell span {
  font-size: 11px;
  color: #c3c2b7 !important;
}
.similar-games-summary-cell strong {
  font-size: 15px;
  color: #f3f5f7 !important;
}
.similar-games-summary-cell small {
  font-size: 10.5px;
  color: #86efac !important;
}
.similar-games-show-more {
  width: 100%;
  margin-top: 10px;
}
@media (max-width: 700px) {
  .similar-games-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.similar-games-betslip-btn {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  min-width: 26px;
  padding: 0;
  font-size: 14px;
  line-height: 1;
  color: var(--text) !important;
  background: var(--surface) !important;
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
}
.similar-games-betslip-btn:hover:not(:disabled) {
  border-color: #15803d !important;
}
.similar-games-betslip-btn.added {
  color: #fff !important;
  background: #22c55e !important;
  border-color: #22c55e !important;
}
#similar-games-reset-btn.reload-button {
  width: auto;
  min-width: 60px;
  max-width: none;
  height: 34px;
  min-height: 34px;
  padding: 0 12px;
  font-size: 12px;
  font-weight: 700;
}
.similar-games-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  margin-left: 8px;
  padding: 0;
  border: 1px solid var(--muted);
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  font-size: 9px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  vertical-align: middle;
}
.similar-games-badge:hover,
.similar-games-badge:focus-visible {
  color: #22c55e !important;
  border-color: #22c55e !important;
  background: rgba(34, 197, 94, .14) !important;
  outline: none;
}
.league .similar-games-badge {
  vertical-align: text-bottom;
}

/* League calibration badges: shown next to the team names, based on the
   out-of-sample backtest (see league_calibration table / league_calibration.py) */
.league-calib-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  margin-left: 6px;
  padding: 0;
  border-radius: 50%;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  vertical-align: middle;
  cursor: default;
}
.league-calib-badge.is-warn {
  border: 1px solid #f59e0b;
  background: rgba(245, 158, 11, .14);
  color: #f59e0b;
}
.league-calib-badge.is-opportunity {
  border: 1px solid #22c55e;
  background: rgba(34, 197, 94, .14);
  color: #22c55e;
}

/* Similar Games: per-row "Details" toggle + detail card with all markets */
.similar-games-expand-arrow {
  flex: 0 0 auto;
  display: inline-block;
  padding: 1px 9px;
  border: 1px solid #22c55e !important;
  border-radius: 999px;
  background: transparent !important;
  color: #22c55e !important;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.similar-games-expand-arrow:hover,
.similar-games-expand-arrow:focus-visible {
  background: rgba(34, 197, 94, .16) !important;
  outline: none;
}
.similar-games-expand-arrow.open {
  background: #22c55e !important;
  color: #fff !important;
}
.similar-games-detail {
  margin: -3px 0 3px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-top: none;
  border-radius: 0 0 8px 8px;
  background-color: #151c22 !important;
}
.similar-games-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 6px;
}
.similar-games-detail-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 7px 8px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background-color: #182129 !important;
}
.similar-games-detail-cell span {
  font-size: 10.5px;
  color: #c3c2b7 !important;
}
.similar-games-detail-cell strong {
  font-size: 14px;
  color: #f3f5f7 !important;
}
.similar-games-detail-cell small {
  font-size: 10px;
  color: #86efac !important;
}
.similar-games-detail-cell .similar-games-betslip-btn {
  align-self: flex-end;
  margin-top: 2px;
}
/* Odds Drop block inside the expanded fixture card. */
.fixture-inline-analysis-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr);
  gap: 14px;
  align-items: start;
}
.fixture-inline-odds-drop-block {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface-2, rgba(255, 255, 255, .025));
}
.fixture-inline-odds-drop-block .fixture-inline-section-title {
  margin-top: 0;
  color: #f8fafc !important;
}
.fixture-inline-odds-drop {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 12px;
}
.fixture-inline-odds-drop span {
  min-width: 0;
  padding-top: 5px;
  border-top: 1px solid var(--border);
}
.fixture-inline-odds-drop-quotes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.fixture-inline-odds-drop-quotes > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding: 7px 9px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: rgba(0, 0, 0, .16);
}
.fixture-inline-odds-drop-quotes span { font-size: 11px; color: var(--muted); }
.fixture-inline-odds-drop-quotes strong {
  font-size: 15px;
  color: #f8fafc !important;
}
@media (max-width: 900px) {
  .fixture-inline-analysis-layout { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .fixture-inline-odds-drop,
  .fixture-inline-odds-drop-quotes { grid-template-columns: 1fr; }
}
