:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bg: #f4f5f9;
  --bg-soft: #eef0f7;
  --surface: #ffffff;
  --surface-raised: #ffffff;
  --surface-soft: #f7f7fb;
  --surface-strong: #171729;
  --border: #e5e6ee;
  --border-strong: #d5d7e2;
  --text: #181823;
  --muted: #6f7180;
  --muted-soft: #9597a6;
  --accent: #0baa83;
  --accent-strong: #087a62;
  --accent-soft: #e7f8f2;
  --accent-ink: #076b58;
  --success: #168a67;
  --success-soft: #e7f7f1;
  --warning: #b66c16;
  --warning-soft: #fff3df;
  --danger: #c54855;
  --danger-soft: #fff0f1;
  --shadow-xs: 0 1px 2px rgb(20 20 35 / 4%);
  --shadow-sm: 0 6px 18px rgb(24 24 45 / 5%);
  --shadow-md: 0 20px 50px rgb(24 24 45 / 10%);
  --radius-sm: .5rem;
  --radius: .625rem;
  --radius-lg: .75rem;
  --space-1: .375rem;
  --space-2: .625rem;
  --space-3: .7rem;
  --space-4: .85rem;
  --control-height: 2.75rem;
  --font-readable-floor: 0rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html.match-accordion-toggling,
html.match-accordion-toggling body,
html.match-accordion-toggling .event-detail-page,
html.match-accordion-toggling [data-result-match-content] {
  overflow-anchor: none !important;
  scroll-behavior: auto !important;
}
body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 100% 0, rgb(11 170 131 / 8%), transparent 24rem),
    var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: .35rem;
  min-height: 3.6rem;
  align-items: center;
  padding: .45rem max(.875rem, env(safe-area-inset-left));
  border-bottom: 1px solid rgb(229 230 238 / 85%);
  background: rgb(244 245 249 / 88%);
  backdrop-filter: blur(20px) saturate(140%);
  transition: transform .22s ease;
  will-change: transform;
}
.topbar-hidden .topbar { transform: translateY(calc(-100% - 1px)); }
.brand {
  display: inline-flex;
  min-width: 0;
  min-height: 2.75rem;
  align-items: center;
  gap: .5rem;
  font-size: 1.06rem;
  font-weight: 600;
  letter-spacing: -.035em;
}
.brand-mark {
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  flex: 0 0 2.25rem;
  place-items: center;
  border-radius: .625rem;
  overflow: hidden;
  background: #061633;
  box-shadow: 0 8px 18px rgb(11 170 131 / 20%);
  font-weight: 600;
}
.brand-mark img { width: 100%; height: 100%; object-fit: cover; }
.brand-word { display: grid; line-height: 1; }
.brand-word small { margin-top: .2rem; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.topbar-user { display: flex; align-items: center; gap: .6rem; color: var(--muted); font-size: .84rem; }
.topbar-user form { margin: 0; }
.user-avatar {
  display: grid;
  width: 2.15rem;
  height: 2.15rem;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--surface);
  color: var(--accent-ink);
  font-weight: 600;
  box-shadow: var(--shadow-xs);
}
.logout-button {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  min-height: 2.5rem;
  margin: 0;
  padding: .65rem;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: .8rem;
  background: var(--surface);
  color: var(--muted);
  box-shadow: var(--shadow-xs);
}
.logout-button svg { width: 1.12rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.topbar-finances {
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: .3rem;
}
.topbar-finance-link {
  display: grid;
  min-width: 4.15rem;
  height: 2.75rem;
  padding: .22rem .55rem;
  align-content: center;
  border: 1px solid var(--border);
  border-radius: .55rem;
  background: rgb(255 255 255 / 82%);
  line-height: 1.05;
  box-shadow: var(--shadow-xs);
  text-decoration: none;
  transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.topbar-finance-link:hover,
.topbar-finance-link:focus-visible {
  border-color: #9edbca;
  background: var(--accent-soft);
  transform: translateY(-1px);
}
.topbar-finances small {
  color: var(--muted);
  font-size: max(.61rem, var(--font-readable-floor));
  font-weight: 600;
}
.topbar-finances strong {
  margin-top: .12rem;
  color: var(--text);
  font-size: .84rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.app-menu { position: relative; justify-self: end; }
.app-menu > summary {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: .8rem;
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-xs);
  cursor: pointer;
  list-style: none;
}
.app-menu > summary::-webkit-details-marker { display: none; }
.app-menu > summary svg { width: 1.18rem; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; }
.app-menu[open] > summary { border-color: #bfe7db; background: var(--accent-soft); color: var(--accent-ink); }
.app-menu-panel {
  position: absolute;
  top: calc(100% + .6rem);
  right: 0;
  width: min(19rem, calc(100vw - 1.5rem));
  padding: .5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: rgb(255 255 255 / 97%);
  box-shadow: var(--shadow-md);
  backdrop-filter: blur(20px);
}
.app-menu-account { display: flex; align-items: center; gap: .7rem; padding: .55rem .55rem .8rem; border-bottom: 1px solid var(--border); }
.app-menu-account div { display: grid; gap: .15rem; min-width: 0; }
.app-menu-account strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-menu-panel nav { display: grid; gap: .12rem; padding: .45rem 0; }
.app-menu-panel nav a, .app-menu-logout {
  display: flex;
  width: 100%;
  min-height: 2.75rem;
  align-items: center;
  justify-content: flex-start;
  gap: .7rem;
  margin: 0;
  padding: .65rem .7rem;
  border: 0;
  border-radius: .7rem;
  background: transparent;
  color: #444553;
  box-shadow: none;
  font-size: .87rem;
  font-weight: 600;
}
.app-menu-panel nav a:hover { background: var(--surface-soft); color: var(--accent-ink); }
.app-menu-panel svg, .app-menu-logout svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.app-menu-panel form { margin: 0; padding-top: .4rem; border-top: 1px solid var(--border); }
.app-menu-logout { color: var(--danger); }
.app-menu-logout:hover { transform: none; background: var(--danger-soft); color: var(--danger); box-shadow: none; }

main {
  width: min(100%, 70rem);
  margin: 0 auto;
  padding: .7rem .85rem calc(4.65rem + env(safe-area-inset-bottom));
}
.page { display: grid; min-width: 0; gap: var(--space-4); }
.page > * { min-width: 0; }
.page-header { padding: .05rem .1rem; }
.page-header-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.page-header h1 { max-width: 18ch; }
.page-header .match-title-inline {
  max-width: none;
  overflow: hidden;
  font-size: clamp(1.55rem, 3.5vw, 2.35rem);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.event-detail-header { min-width: 0; }
.football-event-header { display: grid; gap: .35rem; }
.football-event-header > .eyebrow { margin: .1rem 0 0; text-align: center; }
.football-event-header > .advice-meta { justify-content: center; }
.football-outcome-logo {
  position: relative;
  display: grid;
  overflow: hidden;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--surface);
  color: var(--accent-ink);
  box-shadow: var(--shadow-xs);
  font-weight: 800;
}
.football-outcome-logo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: var(--surface); }
.page-header > p:last-child { max-width: 42rem; margin: .2rem 0 0; color: var(--muted); }

.hero {
  padding: clamp(.875rem, 2vw, 1.125rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}
.card {
  min-width: 0;
  margin: 0;
  padding: clamp(.65rem, 1.5vw, .8rem);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}
.card.interactive { transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.card.interactive:hover { transform: translateY(-2px); border-color: #bfe7db; box-shadow: var(--shadow-sm); }
.surface-section {
  min-width: 0;
  padding: clamp(.7rem, 1.7vw, .85rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}
.surface-section .card { border-color: transparent; background: var(--surface-soft); box-shadow: none; }
.section-block { padding: .125rem 0; }
.section-block + .section-block { padding-top: var(--space-4); border-top: 1px solid var(--border); }
.soft-section { padding: .65rem; border-radius: var(--radius); background: var(--surface-soft); }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: var(--space-3); }
.narrow { max-width: 31rem; margin: 3vh auto; }

h1, h2, h3 { color: var(--text); font-weight: 600; letter-spacing: -.042em; text-wrap: balance; }
h1 { margin: .12rem 0 .3rem; font-size: clamp(1.6rem, 5.5vw, 2.45rem); line-height: 1.02; }
h2 { margin: .55rem 0 .35rem; font-size: clamp(1.08rem, 3.3vw, 1.32rem); line-height: 1.15; }
h3 { margin: .12rem 0 .3rem; font-size: .96rem; }
p { margin-top: .45rem; margin-bottom: .45rem; line-height: 1.42; }
.eyebrow { margin: 0; color: var(--accent); font-size: .7rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.muted, small { color: var(--muted); }
b, strong { font-weight: 600; }
.fine-print { color: var(--muted-soft); font-size: .78rem; }
.metric-value { display: block; margin-top: .15rem; font-size: clamp(1.25rem, 4.5vw, 1.75rem); font-weight: 600; letter-spacing: -.045em; line-height: 1.1; }
.metric-label { color: var(--muted); font-size: .76rem; font-weight: 600; }
.metric-card { min-height: 4.35rem; margin: 0; padding: .65rem; }
.metric-card.accent { border-color: transparent; background: linear-gradient(145deg, #11b98f, #087a62); color: #fff; box-shadow: 0 14px 30px rgb(11 170 131 / 20%); }
.metric-card.accent .metric-label, .metric-card.accent small { color: rgb(255 255 255 / 72%); }
.metric-card.accent .metric-value { color: #fff; }

input, select, textarea {
  width: 100%;
  min-height: var(--control-height);
  margin: .25rem 0 .65rem;
  padding: .65rem .75rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  outline: none;
  background: var(--surface);
  color: var(--text);
  box-shadow: inset 0 1px 1px rgb(20 20 35 / 3%);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
input::placeholder, textarea::placeholder { color: #a5a6b3; }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 4px rgb(11 170 131 / 12%); }
textarea { min-height: 6rem; resize: vertical; }
label { color: #4f5060; font-size: .88rem; font-weight: 600; }
label small, .helptext { display: block; margin: -.35rem 0 .65rem; color: var(--muted); font-size: .76rem; font-weight: 450; line-height: 1.4; }
input.inline { width: 1.15rem; min-height: auto; margin: 0 .5rem 0 0; accent-color: var(--accent); }
form p { margin: 0; }

button, .button {
  display: inline-flex;
  width: auto;
  min-height: var(--control-height);
  align-items: center;
  justify-content: center;
  gap: .45rem;
  margin: .2rem 0;
  padding: .65rem .9rem;
  border: 1px solid transparent;
  border-radius: var(--radius);
  background: var(--accent);
  color: #fff;
  font-weight: 600;
  line-height: 1.1;
  cursor: pointer;
  box-shadow: 0 7px 16px rgb(11 170 131 / 18%);
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
button:hover, .button:hover { transform: translateY(-1px); background: var(--accent-strong); box-shadow: 0 10px 22px rgb(11 170 131 / 22%); }
button:active, .button:active { transform: translateY(0); }
button.secondary, .button.secondary { border-color: var(--border); background: var(--surface); color: var(--text); box-shadow: var(--shadow-xs); }
button.secondary:hover, .button.secondary:hover { border-color: #bfe7db; background: var(--accent-soft); color: var(--accent-ink); }
.lineup-refresh-control { display: inline-flex; }
.lineup-refresh-control button:disabled,
.lineup-refresh-control button:disabled:hover { border-color: var(--border); background: var(--surface-soft); color: var(--muted); cursor: not-allowed; opacity: .62; box-shadow: none; transform: none; }
button.ghost, .button.ghost { background: transparent; color: var(--accent-ink); box-shadow: none; }
button.danger, .button.danger { background: var(--danger-soft); color: var(--danger); box-shadow: none; }
.button.small, button.small { min-height: 2rem; padding: .55rem .75rem; font-size: .8rem; }
.button.full, button.full { width: 100%; }
.button svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 2; }
.link-arrow { color: var(--accent-ink); font-size: .86rem; font-weight: 600; }
.link-arrow::after { margin-left: .3rem; content: "→"; }
fieldset { margin: .75rem 0; padding: .75rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
fieldset label { display: flex; align-items: center; min-height: 2.6rem; }
details:not(.app-menu) { margin-top: .5rem; border-top: 1px solid var(--border); }
details:not(.app-menu) > summary { min-height: 2.65rem; padding: .65rem 0 .15rem; color: var(--accent-ink); font-size: .84rem; font-weight: 600; cursor: pointer; }

.section-tabs {
  display: flex;
  gap: .45rem;
  margin: 0 0 1rem;
  overflow-x: auto;
  scrollbar-width: none;
}
.section-tabs a {
  flex: 0 0 auto;
  padding: .68rem .9rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text);
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
}
.section-tabs a.is-active { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-ink); }
.catalog-bet-tabs { margin: .65rem 0 .2rem; }
.catalog-bet-tabs a { display: inline-flex; align-items: center; gap: .35rem; }
.catalog-bet-tabs a span { min-width: 1.25rem; padding: .08rem .3rem; border-radius: 999px; background: var(--surface-soft); text-align: center; }
.catalog-bet-tabs a.is-active span { background: rgb(11 170 131 / 14%); }
.results-filters { align-items: end; }
.results-dashboard-grid {
  grid-template-columns: repeat(auto-fit, minmax(13.5rem, 1fr));
  align-items: start;
}
.result-stat-card,
details.result-stat-card:not(.app-menu) {
  min-height: 5.8rem;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}
.result-stat-card > summary,
details.result-stat-card:not(.app-menu) > summary {
  display: grid;
  gap: .18rem;
  min-height: 5.8rem;
  padding: .75rem;
  border: 0;
  list-style: none;
}
.result-stat-card > summary::-webkit-details-marker { display: none; }
.result-stat-card > summary::after {
  content: "Voir les matchs";
  margin-top: .2rem;
  color: var(--accent-ink);
  font-size: .7rem;
  font-weight: 700;
}
.result-stat-card[open] > summary::after { content: "Masquer les matchs"; }
.result-stat-card > summary > small { color: var(--muted); font-size: .7rem; }
.result-stat-card .metric-value { margin: .05rem 0; }
.result-stat-matches {
  display: grid;
  max-height: 23rem;
  overflow-y: auto;
  border-top: 1px solid var(--border);
  overscroll-behavior: contain;
}
.result-stat-matches > .muted { padding: .75rem; }
.result-stat-match {
  display: grid;
  grid-template-columns: minmax(9rem, 1.3fr) minmax(7rem, 1fr) auto;
  gap: .55rem;
  align-items: center;
  padding: .65rem .75rem;
  border-bottom: 1px solid var(--border);
  color: var(--text);
  text-decoration: none;
}
.result-stat-match:last-child { border-bottom: 0; }
.result-stat-match:hover { background: var(--surface-soft); }
.result-stat-match > span { display: grid; gap: .12rem; min-width: 0; }
.result-stat-match strong { overflow-wrap: anywhere; font-size: .76rem; line-height: 1.3; }
.result-stat-match small { color: var(--muted); font-size: .68rem; line-height: 1.3; }
.result-stat-prediction { font-variant-numeric: tabular-nums; }
.result-market-verdicts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: .35rem;
  margin-top: .4rem;
}
.result-market-verdicts > span {
  padding: .4rem .5rem;
  border-radius: var(--radius-sm);
  background: var(--surface);
}
.result-market-verdicts > .is-correct { color: var(--accent-ink); }
.result-market-verdicts > .is-incorrect { color: var(--danger); }
.result-card h2 { margin-bottom: .35rem; font-size: 1.05rem; }
.result-score { margin: .2rem 0 .8rem; }
.result-advice-summary {
  display: grid;
  gap: .25rem;
  margin: .75rem 0;
  padding: .8rem .9rem;
  border-left: 3px solid var(--accent);
  border-radius: var(--radius-sm);
  background: var(--accent-soft);
}
.result-advice-summary small { color: var(--accent-ink); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.result-advice-summary p { margin: 0; }
.result-advice-summary span { color: var(--muted); font-size: .78rem; }
.manual-result-entry { margin: .65rem 0; }
.manual-result-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: .5rem;
  align-items: end;
  padding-top: .55rem;
}
.manual-result-form > p,
.manual-result-form > button { grid-column: 1 / -1; margin: 0; }
.manual-result-form label { margin: 0; }
.manual-result-form input { margin: .2rem 0 0; }
.manual-result-separator { padding-bottom: .7rem; color: var(--muted); font-weight: 800; }
.tennis-score-entry {
  display: grid;
  grid-column: 1 / -1;
  gap: .7rem;
}
.tennis-player-sets { display: grid; gap: .3rem; min-width: 0; }
.tennis-player-sets > strong { overflow-wrap: anywhere; font-size: .86rem; }
.tennis-set-inputs {
  display: flex;
  gap: .35rem;
}
.tennis-set-inputs label { flex: 1 1 0; min-width: 0; color: var(--muted); font-size: max(.68rem, var(--font-readable-floor)); text-align: center; }
.tennis-set-inputs input {
  width: 100%;
  min-width: 0;
  padding-inline: .25rem;
  text-align: center;
}
.tennis-retirement-toggle,
.tennis-retirement-winner {
  grid-column: 1 / -1;
}
.tennis-retirement-toggle {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-height: 2.5rem;
}
.tennis-retirement-toggle input[type="checkbox"] {
  width: 1.15rem;
  min-height: 1.15rem;
  margin: 0;
  padding: 0;
  accent-color: var(--accent);
}
.tennis-retirement-winner select { margin-bottom: 0; }
.tennis-live-score-form {
  display: grid;
  gap: .8rem;
  max-width: 34rem;
}
.tennis-live-score-form > button { justify-self: start; }
.tennis-live-score-errors .errorlist { margin: 0; }
.result-detail-trigger {
  width: 100%;
  min-height: 2.65rem;
  justify-content: flex-start;
  margin: .5rem 0 0;
  padding: .65rem 0 .15rem;
  border: 0;
  border-top: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--accent-ink);
  font-size: .84rem;
  text-align: left;
}
.result-detail-trigger::before { content: "▶"; font-size: .7rem; }
.result-detail-trigger:hover,
.result-detail-trigger:focus-visible {
  background: transparent;
  box-shadow: none;
  color: var(--accent-strong);
  transform: none;
}
.result-detail-dialog {
  width: min(52rem, calc(100% - 2rem));
  max-width: none;
  max-height: 88dvh;
  margin: auto;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: 0 24px 70px rgb(15 23 42 / 28%);
  color: var(--text);
}
.result-detail-dialog::backdrop {
  background: rgb(15 23 42 / 52%);
  backdrop-filter: blur(3px);
}
.result-detail-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.15rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.result-detail-heading .eyebrow { margin-bottom: .25rem; }
.result-detail-heading h2 { margin: 0; font-size: 1.1rem; }
.result-detail-body {
  max-height: calc(88dvh - 5.25rem);
  padding: 1rem 1.15rem 1.5rem;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.result-detail-body > :first-child { margin-top: 0; }
.match-final-summary {
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid #bfe7db;
  border-radius: var(--radius);
  background: var(--accent-soft);
}
.match-final-summary .section-title { margin-bottom: .7rem; }
.match-final-summary h3,
.match-final-summary h4 { margin: 0; }
.match-final-score {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .35rem .8rem;
}
.match-final-score small { width: 100%; color: var(--muted); }
.match-final-score strong { font-size: clamp(1.65rem, 6vw, 2.35rem); line-height: 1; }
.match-final-score span { color: var(--muted); font-weight: 700; }
.match-final-events { margin-top: 1rem; }
.match-final-events h4 { margin-bottom: .4rem; }
.match-final-events .list-row { align-items: center; }
.match-final-statistics { margin-top: 1rem; }
.match-final-statistics h4 { margin-bottom: .4rem; }
.match-final-statistics .list-row {
  display: grid;
  grid-template-columns: minmax(2.5rem, 1fr) minmax(7rem, 2fr) minmax(2.5rem, 1fr);
  text-align: center;
}
.match-final-statistics .list-row > :first-child { text-align: left; }
.match-final-statistics .list-row > :last-child { text-align: right; }
.match-final-stat-head { color: var(--muted); font-size: .78rem; font-weight: 700; }
.result-match-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  min-height: 8rem;
  color: var(--muted);
}
.embedded-match-detail > .decision-index,
.embedded-match-detail > .surface-section { margin: 0 0 1rem; }
.embedded-match-detail > :last-child { margin-bottom: 0; }
body:has(.result-detail-dialog[open]) { overflow: hidden; }
.pagination { display: flex; align-items: center; justify-content: center; gap: .75rem; margin: 1rem 0; }

@media (max-width: 680px) {
  .catalog-period-actions { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .28rem; overflow: visible; }
  .catalog-period-actions .button { width: 100%; min-width: 0; min-height: 2.45rem; justify-content: center; padding: .42rem .15rem; font-size: .72rem; white-space: nowrap; }
  .result-detail-dialog {
    width: 100%;
    max-height: calc(92dvh - env(safe-area-inset-top));
    margin: auto 0 0;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  }
  .result-detail-heading { padding: .85rem 1rem; }
  .result-detail-body {
    max-height: calc(92dvh - 5rem - env(safe-area-inset-top));
    padding: .85rem 1rem calc(1rem + env(safe-area-inset-bottom));
  }
  .results-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .result-stat-card { grid-column: span 2; }
  .result-stat-match { grid-template-columns: 1fr auto; }
  .result-stat-prediction { grid-column: 1 / -1; grid-row: 2; }
}

.filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: .4rem;
  align-items: end;
  padding: .55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-soft);
}
.filters label { min-width: 0; }
.filters input, .filters select { margin-bottom: 0; background: var(--surface); }
.filters button, .filters .button { width: 100%; margin: 0; }
.bankroll-chart { width: 100%; height: 8rem; margin-bottom: .5rem; border-radius: var(--radius); background: linear-gradient(180deg, var(--accent-soft), #fff); color: var(--accent); }
pre { overflow-wrap: anywhere; padding: .75rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); color: #404150; white-space: pre-wrap; }
ul { padding-left: 1.25rem; }
li { margin-bottom: .25rem; line-height: 1.45; }

.notice { margin: .7rem 0; padding: .7rem .8rem; border: 1px solid #f1ccd0; border-radius: var(--radius); background: var(--danger-soft); color: #763039; }
.notice > :first-child { margin-top: 0; }
.notice > :last-child { margin-bottom: 0; }
.success-notice { border-color: #bde6d6; background: var(--success-soft); color: #166a51; }
.tennis-ai-panel { border-color: #a8ddcf; background: linear-gradient(135deg, #f4fcf9, #f7f8fc); }
.tennis-ai-panel form { margin: .65rem 0 0; }
.tennis-ai-loading { display: flex; align-items: center; gap: .8rem; min-height: 5rem; padding: 1rem; border: 1px solid #a8ddcf; border-radius: var(--radius); background: #fff; }
.tennis-ai-loading[hidden], [data-tennis-ai-feedback][hidden] { display: none; }
.tennis-ai-loading p { margin: .2rem 0 0; color: var(--muted); }
.tennis-ai-spinner { flex: 0 0 auto; width: 2rem; height: 2rem; border: 3px solid #ccece3; border-top-color: var(--accent); border-radius: 50%; animation: tennis-ai-spin .8s linear infinite; }
.tennis-ai-panel.is-ai-loading > :not(.section-title):not(.tennis-ai-loading) { display: none; }
@keyframes tennis-ai-spin { to { transform: rotate(360deg); } }
.ai-opinion-lead { margin: .65rem 0; padding: .85rem; border-radius: var(--radius); background: #fff; }
.ai-opinion-lead small { display: block; color: var(--primary); font-weight: 700; }
.ai-opinion-lead strong { display: block; margin-top: .2rem; font-size: 1.15rem; }
.ai-opinion-lead p { margin-bottom: 0; }
.ai-analysis-section,
.ai-betting-conclusion { margin-top: .75rem; padding: 1rem; border: 1px solid #dbe7e3; border-radius: var(--radius); background: #fff; }
.ai-analysis-section h4,
.ai-betting-conclusion h4,
.ai-player-comparison h4,
.ai-scenario-grid h4 { margin: 0 0 .45rem; }
.ai-analysis-section p,
.ai-betting-conclusion p,
.ai-scenario-grid p { margin: 0; line-height: 1.55; }
.ai-analysis-section li + li,
.ai-player-comparison li + li { margin-top: .35rem; }
.ai-player-comparison,
.ai-scenario-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: .75rem; }
.ai-player-comparison section,
.ai-scenario-grid section { padding: 1rem; border: 1px solid #dbe7e3; border-radius: var(--radius); background: #fff; }
.ai-player-comparison ul,
.ai-analysis-section ol { margin: .4rem 0 0; padding-left: 1.25rem; }
.ai-betting-conclusion { border-color: #8fd4c2; background: #eaf8f3; }
.ai-score-prediction { display: grid; grid-template-columns: minmax(9rem, .35fr) minmax(0, 1fr); gap: 1rem; align-items: center; margin-top: .75rem; padding: 1rem; border: 2px solid #56bfa5; border-radius: var(--radius); background: #fff; }
.ai-score-prediction small,
.ai-score-prediction strong { display: block; }
.ai-score-prediction small { color: var(--primary); font-weight: 700; }
.ai-score-prediction strong { margin-top: .25rem; font-size: 1.35rem; }
.ai-score-prediction p { margin: .55rem 0 0; line-height: 1.5; }
.ai-technical-sources { margin-top: .75rem; }
.tennis-ai-result-summary { border-color: #8fd4c2; background: #f1fbf7; }
@media (max-width: 720px) {
  .ai-player-comparison,
  .ai-scenario-grid { grid-template-columns: 1fr; }
  .ai-score-prediction { grid-template-columns: 1fr; }
  .ai-analysis-section,
  .ai-betting-conclusion,
  .ai-player-comparison section,
  .ai-scenario-grid section { padding: .8rem; }
}
.flash-messages { position: relative; z-index: 3; margin-bottom: .65rem; }
.flash { margin-bottom: .4rem; padding: .7rem .8rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
.flash.success { border-color: #bde6d6; color: var(--success); }
.flash.error { border-color: #f1ccd0; color: var(--danger); }
.identity-alert-banner {
  display: flex;
  position: relative;
  z-index: 3;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin: 0 0 .65rem;
  padding: .72rem .8rem;
  border: 1px solid #ecd79f;
  border-radius: var(--radius);
  background: #fff8df;
  color: #675117;
  box-shadow: var(--shadow-sm);
}
.identity-alert-banner div { display: grid; gap: .12rem; }
.identity-alert-banner span { font-size: .8rem; }
.identity-alert-banner .button { flex: 0 0 auto; margin: 0; }
.identity-review-list { display: grid; gap: .75rem; }
.identity-review-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.identity-review-heading h2 { margin-top: .15rem; }
.identity-review-heading .muted { margin-bottom: 0; font-size: .78rem; }
.identity-candidates { margin: .7rem 0; padding: .65rem; border-radius: var(--radius); background: var(--surface-soft); }
.identity-candidates ul { display: grid; gap: .25rem; margin: .4rem 0 0; padding: 0; list-style: none; }
.identity-candidates li { display: flex; justify-content: space-between; gap: .5rem; font-size: .84rem; }
.identity-candidates li span { color: var(--muted); }
.identity-review-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .55rem; }
.identity-review-form label { grid-column: 1 / -1; }
.identity-review-form select, .identity-review-form button { margin: 0; }
.identity-team-picker { display: grid; min-width: 0; gap: .35rem; }
.identity-team-picker-native { display: none; }
.identity-team-picker-trigger {
  display: flex;
  width: 100%;
  min-height: 2.75rem;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  margin: 0;
  padding: .65rem .75rem;
  border: 1px solid var(--border);
  border-radius: .7rem;
  background: var(--surface);
  color: var(--text);
  box-shadow: none;
  font-size: .9rem;
  font-weight: 500;
  text-align: left;
}
.identity-team-picker-trigger::after { flex: 0 0 auto; content: "⌄"; color: var(--muted); font-size: 1rem; }
.identity-team-picker-trigger[aria-expanded="true"] { border-color: #80cfba; box-shadow: 0 0 0 3px rgb(16 178 139 / 10%); }
.identity-team-picker-panel {
  display: grid;
  gap: .4rem;
  padding: .45rem;
  border: 1px solid #bfe7db;
  border-radius: .7rem;
  background: var(--surface);
  box-shadow: var(--shadow-md);
}
.identity-team-picker-panel[hidden] { display: none; }
.identity-team-picker-search { margin: 0 !important; background: var(--surface-soft); }
.identity-team-picker-options { display: grid; max-height: 15rem; gap: .15rem; overflow-y: auto; overscroll-behavior: contain; }
.identity-team-picker-option {
  width: 100%;
  min-height: 2.35rem;
  justify-content: flex-start;
  margin: 0 !important;
  padding: .5rem .6rem;
  border: 0;
  border-radius: .55rem;
  background: transparent;
  color: var(--text);
  box-shadow: none;
  font-size: .82rem;
  font-weight: 500;
  text-align: left;
}
.identity-team-picker-option:hover,
.identity-team-picker-option:focus-visible { background: var(--accent-soft); color: var(--accent-ink); transform: none; box-shadow: none; }
.identity-team-picker-option[aria-selected="true"] { background: var(--accent-soft); color: var(--accent-ink); font-weight: 700; }
.identity-team-picker-empty { margin: 0; padding: .6rem; color: var(--muted); font-size: .8rem; text-align: center; }
.identity-distinct-form { display: flex; justify-content: flex-end; margin-top: .55rem; }
.identity-distinct-form .button { margin: 0; }
.ajax-toast-region { position: fixed; right: 1rem; bottom: 1rem; z-index: 1200; display: grid; width: min(24rem, calc(100vw - 2rem)); gap: .4rem; pointer-events: none; }
.ajax-toast { padding: .7rem .8rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-md); color: var(--text); font-size: .75rem; line-height: 1.35; }
.ajax-toast.success { border-color: #bde6d6; background: var(--success-soft); color: var(--success); }
.ajax-toast.warning { border-color: #f1d7a7; background: var(--warning-soft); color: #9a5a08; }
.ajax-toast.error { border-color: #f1ccd0; background: var(--danger-soft); color: var(--danger); }
.errorlist { padding-left: 1.25rem; color: var(--danger); }
.empty-state { padding: .9rem .65rem; text-align: center; }
.empty-state-icon { display: grid; width: 2.5rem; height: 2.5rem; margin: 0 auto .65rem; place-items: center; border-radius: var(--radius); background: var(--accent-soft); color: var(--accent); font-size: 1.15rem; }
.empty-state h2, .empty-state h3 { margin: 0 0 .4rem; }
.empty-state p { max-width: 30rem; margin: 0 auto .65rem; color: var(--muted); }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: .75rem; margin-bottom: .45rem; }
.section-heading h2 { margin: .2rem 0; }
.section-heading > p { max-width: 34rem; margin-bottom: .25rem; color: var(--muted); }
.section-title { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.section-title h2 { margin: 0; }
.settings-page { gap: .65rem; }
.settings-hero { padding: .1rem .1rem .2rem; }
.settings-hero h1 { max-width: none; margin-bottom: .3rem; }
.settings-hero p:last-child { max-width: 48rem; margin: 0; color: var(--muted); }
.settings-nav, .quick-actions {
  display: flex;
  gap: .5rem;
  margin: 0 0 .8rem;
  padding: .1rem 0 .25rem;
  overflow-x: auto;
  scrollbar-width: none;
}
.settings-nav {
  position: sticky;
  top: 3.65rem;
  z-index: 20;
  margin: 0 -.45rem .35rem;
  padding: .35rem .45rem .45rem;
  background: rgb(244 245 249 / 94%);
  backdrop-filter: blur(16px);
  scroll-padding-inline: .45rem;
  transition: top .22s ease;
}
.topbar-hidden .settings-nav { top: .35rem; }
.settings-nav.has-overflow:not(.at-end) {
  mask-image: linear-gradient(to right, #000 calc(100% - 1.15rem), transparent);
}
.settings-nav::-webkit-scrollbar, .quick-actions::-webkit-scrollbar { display: none; }
.settings-nav a, .quick-actions .button {
  flex: 0 0 auto;
  width: auto;
  min-height: 2.75rem;
  padding: .55rem .75rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  box-shadow: var(--shadow-xs);
  font-size: .82rem;
}
.settings-nav a:hover, .quick-actions .button:hover { border-color: #bfe7db; color: var(--accent-ink); }
.catalog-period-actions { margin-bottom: .25rem; }
.catalog-period-actions .button.is-selected,
.catalog-coverage-actions .button.is-selected {
  border-color: #b9e8dc;
  background: var(--accent-soft);
  color: var(--accent-ink);
  box-shadow: none;
}
.catalog-coverage-actions {
  display: flex;
  gap: .35rem;
  margin: 0 0 .75rem;
}
.catalog-coverage-actions .button {
  width: auto;
  min-height: 1.7rem;
  padding: .28rem .55rem;
  font-size: max(.68rem, var(--font-readable-floor));
  font-weight: 500;
}
.catalog-result-actions { display: flex; align-items: center; justify-content: flex-end; gap: .35rem; }
.catalog-result-actions .catalog-lineup-filter { min-height: 1.75rem; padding: .3rem .55rem; font-size: max(.68rem, var(--font-readable-floor)); white-space: nowrap; }
.catalog-result-actions .catalog-lineup-filter.is-selected { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-ink); }
.catalog-filter-count {
  display: inline-grid;
  min-width: 1.15rem;
  min-height: 1.15rem;
  place-items: center;
  margin-left: .12rem;
  padding: 0 .25rem;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: max(.6rem, var(--font-readable-floor));
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.catalog-lineup-filter.is-selected .catalog-filter-count { background: var(--surface); color: var(--accent-ink); }
.settings-nav a.is-active {
  border-color: #b9e8dc;
  background: var(--accent-soft);
  color: var(--accent-ink);
  box-shadow: none;
}
.settings-section { margin-bottom: .65rem; scroll-margin-top: 7.25rem; }
.settings-section + .settings-section { padding-top: .65rem; border-top: 1px solid var(--border); }
.settings-page .section-heading { margin-bottom: .5rem; }
.settings-page .section-heading > p { font-size: .84rem; }
.settings-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 21rem), 1fr)); gap: .55rem; }
.settings-grid .card { margin: 0; }
.settings-page .card { padding: .7rem; box-shadow: var(--shadow-xs); }
.settings-page .card h3 { margin-bottom: .55rem; }
.compact-card { margin-top: .55rem; padding: .7rem; }
.settings-page form > p { margin: 0; }
.settings-page form > p label, .settings-field > label {
  display: block;
  margin-bottom: .2rem;
  line-height: 1.25;
}
.settings-page form input:not([type="checkbox"]):not([type="hidden"]),
.settings-page form select,
.settings-page form textarea,
.settings-field input:not([type="checkbox"]),
.settings-field select,
.settings-field textarea {
  margin: 0;
}
.settings-page input[type="checkbox"] {
  width: 1.15rem;
  min-height: 1.15rem;
  margin: 0;
  padding: 0;
  accent-color: var(--accent);
  box-shadow: none;
}
.settings-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem .6rem;
}
.settings-form-grid > button,
.settings-form-grid > .errorlist,
.settings-form-grid > p:has(input[type="checkbox"]) {
  grid-column: 1 / -1;
}
.settings-form-grid > button { width: 100%; margin-top: .1rem; }
.settings-form-grid > p:has(input[type="checkbox"]) {
  display: flex;
  min-height: var(--control-height);
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .45rem .55rem;
  border-radius: var(--radius-sm);
  background: var(--surface-soft);
}
.settings-form-grid > p:has(input[type="checkbox"]) label { margin: 0; }
.settings-field { min-width: 0; }
.settings-field-wide { grid-column: 1 / -1; }
.settings-field .helptext { margin: .2rem 0 0; }
.settings-field > .errorlist { margin: .2rem 0 0; font-size: .8rem; }
.settings-field-label { display: block; margin-bottom: .3rem; color: #4f5060; font-size: .82rem; font-weight: 600; }
.settings-subsection { padding: .5rem 0; border-top: 1px solid var(--border); }
.settings-subsection:first-of-type { padding-top: 0; border-top: 0; }
.settings-subsection h4 { margin: 0 0 .45rem; color: var(--muted); font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; }
.settings-disclosure {
  margin: 0 !important;
  border-top: 1px solid var(--border) !important;
}
.settings-disclosure > summary {
  min-height: 2.65rem !important;
  padding: .65rem 0 .35rem !important;
  color: #555766 !important;
  font-size: .76rem !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.settings-disclosure[open] > summary { color: var(--accent-ink) !important; }
.settings-disclosure > form,
.settings-disclosure > .settings-form-grid,
.settings-disclosure > .dependent-notifications,
.settings-disclosure > .quiet-hours-grid { margin-top: .4rem; }
.profile-settings-form > button { width: 100%; margin-top: .35rem; }
.settings-field #id_sports { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem; }
.settings-field #id_sports label {
  display: flex;
  min-height: var(--control-height);
  align-items: center;
  gap: .45rem;
  padding: .4rem .55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface-soft);
  font-weight: 600;
}
.switch-row,
.switch-list label {
  display: flex;
  min-height: var(--control-height);
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .35rem .15rem;
  color: var(--text);
  cursor: pointer;
}
.switch-row span { min-width: 0; }
.switch-row strong { display: block; font-size: .88rem; }
.switch-row small { display: block; margin-top: .08rem; font-size: .73rem; font-weight: 450; }
.switch-list > div { display: grid; }
.switch-list > div > div { border-top: 1px solid var(--border); }
.switch-list label { flex-direction: row-reverse; font-size: .84rem; font-weight: 600; }
.switch-row input[type="checkbox"],
.switch-list input[type="checkbox"] {
  position: relative;
  flex: 0 0 2.75rem;
  width: 2.75rem;
  height: 1.5rem;
  min-height: 1.5rem;
  appearance: none;
  border: 0;
  border-radius: 999px;
  background: #d9dbe3;
  cursor: pointer;
  transition: background .18s ease;
}
.switch-row input[type="checkbox"]::before,
.switch-list input[type="checkbox"]::before {
  position: absolute;
  top: .15rem;
  left: .15rem;
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgb(20 20 35 / 22%);
  content: "";
  transition: transform .18s ease;
}
.switch-row input[type="checkbox"]:checked,
.switch-list input[type="checkbox"]:checked { background: var(--accent); }
.switch-row input[type="checkbox"]:checked::before,
.switch-list input[type="checkbox"]:checked::before { transform: translateX(1.25rem); }
.switch-row input[type="checkbox"]:focus-visible,
.switch-list input[type="checkbox"]:focus-visible { outline: 3px solid rgb(11 170 131 / 20%); outline-offset: 2px; }
.dependent-notifications { transition: opacity .18s ease; }
.notification-settings.is-muted .dependent-notifications { opacity: .45; }
.quiet-hours-grid { margin-top: .45rem; }
.history-list { max-height: 20rem; margin-bottom: .5rem; overflow: auto; }
.history-item { display: grid; gap: .12rem; padding: .5rem 0; border-bottom: 1px solid var(--border); }
.history-item:last-child { border-bottom: 0; }
.status-line { display: flex; align-items: center; justify-content: space-between; gap: .65rem; min-height: 2.4rem; padding: .25rem 0; }
.status-line > :first-child { min-width: 0; }
.status-line h3 { margin: 0; }
.status-pill { flex: 0 0 auto; padding: .25rem .55rem; border-radius: 999px; background: var(--surface-soft); color: var(--muted); font-size: .71rem; font-weight: 600; }
.status-pill.ok { background: var(--success-soft); color: var(--success); }
.status-pill.warning { background: var(--warning-soft); color: var(--warning); }
.status-pill.danger { background: var(--danger-soft); color: var(--danger); }
.status-pill.off { background: var(--surface-soft); color: var(--muted); }
.quota-grid, .status-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); gap: .35rem; margin: .5rem 0; }
.quota-grid span, .status-grid .card { display: grid; gap: .08rem; min-height: 3.45rem; margin: 0; padding: .5rem; border: 0; border-radius: var(--radius-sm); background: var(--surface-soft); box-shadow: none; }
.quota-grid strong, .status-grid strong { font-size: 1.02rem; letter-spacing: -.035em; }
.button-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .5rem; }
.button-row form { margin: 0; }
.button-row button, .button-row .button { width: 100%; }
.technical-link { color: var(--muted); text-align: right; font-size: .83rem; }

.catalog-hero { margin-bottom: .5rem; }
.catalog-summary { margin-top: .5rem; }
.catalog-summary .card { min-height: 4.75rem; }
.page[data-catalog-page] .page-header-row { align-items: flex-end; }
.page[data-catalog-page] .page-header-row .button { flex: 0 0 auto; margin: 0; }
.catalog-navigation {
  display: grid;
  gap: .4rem;
  margin: 0 0 .55rem;
  padding: .55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}
.catalog-menu-row {
  display: grid;
  grid-template-columns: 6rem minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  min-width: 0;
}
.catalog-menu-row-secondary {
  padding-top: .4rem;
  border-top: 1px solid var(--border);
}
.catalog-menu-label {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.catalog-tabs {
  display: flex;
  min-width: 0;
  gap: .35rem;
  overflow-x: auto;
  padding: .05rem .15rem .12rem 0;
  scrollbar-width: none;
}
.catalog-tabs::-webkit-scrollbar { display: none; width: 0; height: 0; }
.catalog-tab {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  flex: 0 0 auto;
  padding: .45rem .65rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--muted);
  font-size: .78rem;
  font-weight: 650;
  white-space: nowrap;
}
.catalog-tab-count {
  display: inline-grid;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 .3rem;
  place-items: center;
  border-radius: 999px;
  background: rgb(117 120 139 / 12%);
  color: inherit;
  font-size: max(.68rem, var(--font-readable-floor));
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.catalog-tab:hover { border-color: #bfe7db; color: var(--accent-ink); }
.catalog-tab.is-active {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
  box-shadow: 0 5px 14px rgb(11 170 131 / 18%);
}
.catalog-tab.is-active .catalog-tab-count { background: rgb(255 255 255 / 22%); }
.page[data-catalog-page].is-loading .catalog-results { opacity: .55; pointer-events: none; }
.catalog-filters { display: block; margin-top: .5rem; padding: .55rem; }
.catalog-filter-layout { display: grid; gap: .5rem; }
.catalog-search-field { display: block; min-width: 0; }
.catalog-football-quick-filters {
  display: flex;
  align-items: end;
  gap: .45rem;
  flex-wrap: wrap;
  padding-top: .5rem;
  border-top: 1px solid var(--border);
}
.catalog-football-quick-filters > label { display: grid; min-width: 7.5rem; gap: .2rem; }
.catalog-football-quick-filters > label > span:first-child { color: var(--muted); font-size: .68rem; font-weight: 650; }
.catalog-football-quick-filters input { width: 8rem; min-height: 2.15rem; padding: .4rem .55rem; }
.catalog-number-input { position: relative; display: block; }
.catalog-number-input input { padding-right: 1.65rem; }
.catalog-number-input em { position: absolute; top: 50%; right: .6rem; color: var(--muted); font-size: .72rem; font-style: normal; transform: translateY(-50%); pointer-events: none; }
.catalog-football-quick-filters .button { min-height: 2.15rem; margin: 0; }
.catalog-live-score { display: flex; min-height: 1.7rem; align-items: center; gap: .5rem; padding: .25rem .5rem; border-radius: var(--radius-sm); background: var(--surface-soft); font-size: .7rem; }
.catalog-live-label { display: inline-flex; align-items: center; gap: .25rem; color: var(--danger); font-weight: 600; }
.catalog-live-label i { width: .42rem; height: .42rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 .18rem rgb(194 65 65 / 12%); }
.catalog-live-score strong { display: inline-flex; align-items: center; gap: .35rem; color: var(--text); font-size: .9rem; font-variant-numeric: tabular-nums; }
.catalog-live-score strong b { color: var(--muted); font-weight: 400; }
.catalog-live-score small { margin-left: auto; color: var(--muted); }
.catalog-live-pending { color: var(--muted); }
.catalog-result-heading, .event-card-top, .event-actions, .pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
}
.catalog-result-heading { margin: .65rem .1rem .4rem; }
.catalog-result-heading h2 { margin: 0; }
.catalog-result-heading h2 small { color: var(--muted); font-size: .68em; font-weight: 500; white-space: nowrap; }
.catalog-event-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 25rem), 1fr)); }
.event-card { overflow: hidden; }
.catalog-event-heading { display: grid; grid-template-columns: 1.65rem minmax(0, 1fr); align-items: start; gap: .4rem; }
.catalog-event-heading-content { min-width: 0; }
.catalog-sport-icon { display: grid; width: 1.65rem; height: 1.65rem; place-items: center; border-radius: 50%; background: var(--surface-soft); font-size: 1rem; line-height: 1; }
.event-card-top { min-width: 0; }
.event-card-top .sport-chip { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.event-card h2 { margin: .18rem 0 .05rem; font-size: clamp(.95rem, 3.8vw, 1.2rem); }
.event-teams {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: .3rem;
  overflow: hidden;
  white-space: nowrap;
}
.event-team {
  min-width: 0;
  flex: 1 1 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.event-teams .versus { flex: 0 0 auto; }
.event-time { margin: .25rem 0 0; color: var(--accent-ink); font-size: .78rem; font-weight: 600; }
.catalog-country { min-width: 0; overflow: hidden; color: var(--muted); font-size: max(.68rem, var(--font-readable-floor)); font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.catalog-card-badges { display: flex; align-items: center; gap: .2rem; margin-top: .22rem; overflow-x: auto; scrollbar-width: none; }
.catalog-card-badges::-webkit-scrollbar { display: none; }
.catalog-bookmaker-badge { flex: 0 0 auto; padding: .18rem .4rem; border-radius: 999px; background: var(--surface-soft); color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 400; line-height: 1; white-space: nowrap; }
.catalog-bookmaker-badge.is-available { background: var(--success-soft); color: var(--accent-ink); }
.catalog-lineup-badge { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 6.5rem; min-height: 1.15rem; overflow: hidden; padding: 0; border: 0; border-radius: 999px; background: var(--surface-soft); color: var(--muted); box-shadow: none; font-size: max(.6rem, var(--font-readable-floor)); }
.catalog-lineup-badge > span { min-width: 0; }
.catalog-lineup-badge > span.is-available { background: var(--success-soft); }
.catalog-lineup-badge > strong { position: absolute; inset: 0; display: grid; place-items: center; color: var(--muted); font-size: inherit; font-weight: 500; text-align: center; }
.catalog-lineup-badge:disabled > strong { font-size: max(.6rem, var(--font-readable-floor)); }
.catalog-lineup-badge.is-available { background: var(--success-soft); }
.catalog-lineup-badge.is-available > strong { color: var(--accent-ink); }
.catalog-lineup-badge:hover, .catalog-lineup-badge:focus-visible { background: var(--surface-soft); box-shadow: 0 0 0 2px rgb(12 174 139 / 16%); transform: none; }
.catalog-lineup-badge.is-available:hover, .catalog-lineup-badge.is-available:focus-visible { background: var(--success-soft); }
.catalog-event-grid .event-actions .catalog-lineup-badge { width: 4.5rem; min-width: 4.5rem; max-width: 4.5rem; min-height: 2rem; white-space: nowrap; }
.catalog-lineup-form { flex: 0 0 4.5rem; width: 4.5rem; min-width: 4.5rem; max-width: 4.5rem; }
.sport-chip { color: var(--muted); font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.versus { color: var(--muted-soft); font-weight: 500; }
.compact-predictions {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin: .45rem 0;
}
.compact-predictions > span {
  display: grid;
  min-width: 0;
  padding: .35rem .45rem;
  border-radius: var(--radius-sm);
  background: var(--surface-soft);
  line-height: 1.15;
}
.compact-predictions small { color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); text-transform: uppercase; }
.compact-predictions strong { max-width: 9rem; overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.compact-predictions em { color: var(--accent-ink); font-size: max(.68rem, var(--font-readable-floor)); font-style: normal; font-weight: 700; }
.catalog-football-projection { margin: .42rem 0; }
.catalog-football-projection .football-1x2-grid { margin: 0 0 .3rem; }
.catalog-football-projection .football-double-chance-card { margin: 0; }
.catalog-football-projection { margin-block: .28rem; }
.catalog-football-projection .football-1x2-grid { gap: .25rem; margin-bottom: .25rem; }
.catalog-football-projection .football-outcome-choice { gap: .08rem; padding: .28rem .16rem; }
.catalog-football-projection .football-outcome-choice.is-favorite { box-shadow: none; }
.catalog-football-projection .football-outcome-logo { width: 1.85rem; height: 1.85rem; margin: 0; }
.catalog-football-projection .football-outcome-name { min-height: 2em; font-size: max(.68rem, var(--font-readable-floor)); line-height: 1; }
.catalog-football-projection .football-outcome-percent { font-size: .8rem; line-height: 1; }
.catalog-football-projection .football-outcome-forecast { display: flex; align-items: baseline; justify-content: center; gap: .3rem; white-space: nowrap; }
.catalog-football-projection .football-outcome-fair-odds { color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); font-weight: 600; font-variant-numeric: tabular-nums; }
.catalog-football-quick-markets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25rem; margin-bottom: .25rem; }
.catalog-football-quick-markets > span { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; gap: .05rem .2rem; padding: .32rem .38rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.catalog-football-quick-markets small { grid-column: 1 / -1; color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); }
.catalog-football-quick-markets strong { overflow: hidden; font-size: max(.65rem, var(--font-readable-floor)); text-overflow: ellipsis; white-space: nowrap; }
.catalog-football-quick-markets em { color: var(--accent-ink); font-size: max(.65rem, var(--font-readable-floor)); font-style: normal; font-variant-numeric: tabular-nums; white-space: nowrap; }
.catalog-team-goals-card { display: grid; gap: .28rem; margin-top: .25rem; padding: .35rem .4rem; }
.catalog-team-goals-row { display: grid; gap: .16rem; padding-top: .28rem; border-top: 1px solid var(--border); }
.catalog-team-goals-row:first-child { padding-top: 0; border-top: 0; }
.catalog-team-goals-row > strong { min-width: 0; overflow: hidden; font-size: max(.66rem, var(--font-readable-floor)); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.catalog-team-goals-row > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
.catalog-team-goals-row span { display: grid; min-width: 0; gap: .05rem; padding: .4rem .75rem; border-radius: var(--radius-sm); background: var(--surface); }
.catalog-team-goals-row span.is-expected-goals { background: rgb(11 170 131 / 6%); }
.catalog-team-goals-row small { overflow: hidden; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.catalog-team-goals-row em { color: var(--accent-ink); font-size: max(.68rem, var(--font-readable-floor)); font-style: normal; font-variant-numeric: tabular-nums; }
.catalog-sport-projection { display: grid; gap: .28rem; margin-block: .28rem; }
.catalog-duel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .28rem; }
.catalog-duel-card { display: grid; min-width: 0; gap: .08rem; padding: .42rem .48rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.catalog-duel-card.is-favorite { border-color: #9ddccc; background: var(--accent-soft); }
.catalog-duel-heading { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: .3rem; }
.catalog-duel-heading strong { min-width: 0; overflow: hidden; font-size: .72rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.catalog-duel-heading small { flex: 0 0 auto; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); }
.catalog-duel-card > b { color: var(--accent-ink); font-size: .88rem; font-variant-numeric: tabular-nums; }
.catalog-duel-card > span { overflow: hidden; color: var(--text); font-size: max(.6rem, var(--font-readable-floor)); text-overflow: ellipsis; white-space: nowrap; }
.catalog-duel-card > small { overflow: hidden; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); text-overflow: ellipsis; white-space: nowrap; }
.catalog-sport-context { display: flex; min-width: 0; align-items: center; gap: .24rem; overflow-x: auto; scrollbar-width: none; }
.catalog-sport-context span { flex: 0 0 auto; padding: .18rem .36rem; border-radius: 999px; background: var(--surface-soft); color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); }
.catalog-sport-markets { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .28rem; padding: .38rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.catalog-sport-markets > span { display: grid; min-width: 0; gap: .05rem; padding: .3rem .34rem; border-radius: .42rem; background: var(--surface); }
.catalog-baseball-help-trigger { position: relative; display: grid; min-width: 0; min-height: 0; gap: .05rem; margin: 0; padding: .3rem .85rem .3rem .34rem; border: 0; border-radius: .42rem; background: var(--surface); box-shadow: none; color: var(--text); text-align: left; cursor: help; }
.catalog-baseball-help-trigger::after { position: absolute; top: .2rem; right: .28rem; color: var(--accent-ink); content: "?"; font-size: .62rem; font-weight: 800; }
.catalog-baseball-help-trigger:hover, .catalog-baseball-help-trigger:focus-visible { background: var(--accent-soft); box-shadow: inset 0 0 0 1px #9ddccc; color: var(--text); transform: none; }
.catalog-sport-markets small { overflow: hidden; color: var(--muted); font-size: max(.65rem, var(--font-readable-floor)); line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.catalog-sport-markets strong { overflow: hidden; font-size: max(.65rem, var(--font-readable-floor)); font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.catalog-sport-markets em { color: var(--accent-ink); font-size: max(.6rem, var(--font-readable-floor)); font-style: normal; font-variant-numeric: tabular-nums; }
.odds-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); gap: .3rem; margin: .5rem 0; }
.odds-offer-group { display: grid; gap: .25rem; min-width: 0; }
.odds-offer-group .odds-offer, .odds-offer-group button { width: 100%; }
.add-to-ticket-form { margin: .25rem 0 0; }
.add-to-ticket-form button { width: 100%; }
.odds-offer {
  display: grid;
  min-width: 0;
  gap: .12rem;
  margin: 0;
  padding: .48rem;
  border: 1px solid #c9ece2;
  border-radius: var(--radius-sm);
  background: var(--accent-soft);
  box-shadow: none;
  color: var(--accent-ink);
  text-align: left;
}
.odds-offer:hover, .odds-offer:focus-visible { border-color: var(--accent); background: #dcf7ef; transform: translateY(-1px); }
.odds-offer > small { overflow: hidden; color: var(--accent-ink); text-overflow: ellipsis; white-space: nowrap; }
.odds-offer > span { display: flex; align-items: baseline; justify-content: space-between; gap: .35rem; }
.odds-offer strong { color: var(--accent-ink); font-size: 1.12rem; }
.odds-offer em { color: var(--accent-ink); font-size: max(.66rem, var(--font-readable-floor)); font-style: normal; font-weight: 600; white-space: nowrap; }
.quick-bet-dialog {
  width: min(31rem, calc(100% - 2rem));
  max-width: none;
  padding: 0;
  border: 0;
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: 0 24px 70px rgb(15 23 42 / 28%);
  color: var(--text);
}
.quick-bet-dialog::backdrop { background: rgb(15 23 42 / 52%); backdrop-filter: blur(3px); }
.quick-bet-dialog form { display: grid; gap: 1rem; margin: 0; padding: 1.25rem; }
.quick-bet-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.quick-bet-heading h2, .quick-bet-heading p { margin-bottom: 0; }
.dialog-close {
  width: 2.35rem;
  min-height: 2.35rem;
  margin: 0;
  padding: 0;
  border-radius: 50%;
  background: var(--surface-soft);
  box-shadow: none;
  color: var(--muted);
  font-size: 1.35rem;
}
.quick-bet-selection { margin: 0; padding: .7rem .8rem; border-radius: var(--radius-sm); background: var(--accent-soft); color: var(--accent-ink); font-weight: 600; }
.quick-bet-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.quick-bet-fields input { margin-top: .3rem; }
.quick-bet-actions { display: grid; grid-template-columns: auto 1fr; gap: .55rem; }
.quick-bet-actions button { margin: 0; }
.quick-bet-row { width: 100%; margin: 0; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: transparent; box-shadow: none; color: var(--text); text-align: left; }
.quick-bet-row:hover, .quick-bet-row:focus-visible { background: var(--accent-soft); transform: none; }
.quick-bet-row .amount { display: grid; justify-items: end; color: var(--accent-ink); }
.quick-bet-row .amount small { color: var(--accent-ink); font-size: max(.65rem, var(--font-readable-floor)); font-weight: 600; }
body:has(.quick-bet-dialog[open]) { overflow: hidden; }
.event-actions { justify-content: flex-start; margin-top: .5rem; }
.event-actions form { margin: 0; }
.event-actions .button, .event-actions button { width: auto; margin: 0; }
.bet-workflow-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.bet-workflow-controls form { display: inline-flex; width: auto; margin: 0; }
.bet-workflow-controls button { margin: 0; }
.bet-watch-button:not(.secondary) { background: var(--accent); color: #fff; }
.bet-count-pill { color: var(--accent-ink); }
.bet-workflow-toolbar {
  min-height: 0;
  justify-content: flex-start;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.bet-workflow-toolbar .bet-workflow-controls { width: 100%; }
.bet-workflow-toolbar .bet-workflow-controls form { width: auto; }
.event-toolbar {
  display: flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
  padding: .35rem .55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}
.event-toolbar form { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .65rem; margin: 0; }
.event-toolbar label { display: flex; align-items: center; margin: 0; white-space: nowrap; }
.event-toolbar button { margin: 0; }
.event-toolbar.follow-only { min-height: 0; justify-content: flex-end; padding: 0; border: 0; background: transparent; box-shadow: none; }
.event-toolbar.follow-only form { justify-content: flex-end; }
.event-detail-page { align-content: start; }
.event-detail-page details,
[data-result-match-content] details {
  align-self: start;
  overflow-anchor: none;
  transform-origin: top center;
}
.decision-index {
  display: grid;
  gap: .55rem;
  padding: .75rem;
  border: 1px solid #b8e5d8;
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--accent-soft), var(--surface));
  box-shadow: var(--shadow-xs);
}
.decision-index p { margin: 0 0 .1rem; }
.decision-index strong { font-size: .9rem; }
.decision-index-links { display: flex; flex-wrap: wrap; gap: .35rem; }
.decision-index-links a {
  display: inline-flex;
  min-height: 2.1rem;
  align-items: center;
  padding: .35rem .65rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text);
  font-size: .74rem;
  font-weight: 700;
  text-decoration: none;
}
.decision-index-links a:hover { border-color: var(--accent); color: var(--accent-ink); }
.football-page-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .3rem;
  padding: .3rem;
  border: 1px solid #b8e5d8;
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}
.football-page-tab {
  width: 100%;
  min-height: 2.6rem;
  margin: 0;
  padding: .5rem;
  border: 1px solid transparent;
  background: transparent;
  color: var(--muted);
  box-shadow: none;
  font-size: .78rem;
}
.football-page-tab:hover { border-color: #bfe7db; background: var(--accent-soft); color: var(--accent-ink); box-shadow: none; transform: none; }
.football-page-tab.is-active { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-ink); box-shadow: none; }
.football-event-page [data-football-tab-panel][hidden] { display: none !important; }
.tennis-event-page[data-match-tab-state="model"] .match-ai-panel,
.baseball-event-page[data-match-tab-state="model"] .match-ai-panel { display: none; }
.tennis-event-page[data-match-tab-state="ai"] .tennis-decision-center > :not(.match-ai-panel),
.baseball-event-page[data-match-tab-state="ai"] .baseball-decision-center > :not(.match-ai-panel) { display: none; }
.tennis-event-page[data-match-tab-state="ai"] .match-ai-panel,
.baseball-event-page[data-match-tab-state="ai"] .match-ai-panel { margin: 0; padding-top: 0; border-top: 0; }
.tennis-event-page[data-match-tab-state="ai"] > .event-advice-section,
.baseball-event-page[data-match-tab-state="ai"] > .event-advice-section { display: none; }
#decision-statistique-football,
#avis-ia-football,
#dossier-api-football,
#decision-statistique-tennis,
#avis-ia-tennis,
#donnees-tennis,
#historique-tennis { scroll-margin-top: 5rem; }
.football-event-page > * { order: 20; }
.football-event-page > .event-detail-header { order: 1; }
.football-event-page > .decision-index { order: 2; }
.football-event-page > .football-page-tabs { order: 2; }
.football-event-page > .event-toolbar { order: 3; }
.football-event-page > .football-coach-section { order: 4; }
.football-event-page > .football-model-section { order: 4; }
.football-event-page > .football-context-section { order: 5; }
.football-event-page > .football-dossier-section { order: 6; }
.football-event-page > .football-players-section { order: 7; }
.football-event-page > .event-advice-section { order: 7; }
.football-event-page > .football-live-section { order: 8; }
.football-event-page > .event-odds-section { order: 9; }
.football-coach-section {
  border-color: #b8e5d8;
  background: linear-gradient(180deg, #fbfffd, var(--surface));
  box-shadow: 0 10px 28px rgb(11 170 131 / 8%);
}
.football-coach-section > .section-title { margin-bottom: .2rem; }
.football-dossier-section { display: flex; flex-direction: column; }
.football-dossier-section > * { order: 20; }
.football-dossier-section > .football-dossier-title { order: 1; }
.football-dossier-section > .football-form-block { order: 2; }
.football-dossier-section > .head-to-head-block { order: 3; }
.football-availability-grid { margin: .45rem 0 0; padding-top: .45rem; border-top: 1px solid var(--border); }
.football-availability-grid > :first-child { order: 1; }
.football-availability-grid > :last-child { order: 2; }
.tennis-decision-center { display: flex; flex-direction: column; }
.tennis-decision-center > * { order: 20; }
.tennis-decision-center > .section-title { order: 1; }
.tennis-decision-center > .tennis-verdict-card { order: 2; }
.tennis-decision-center > .tennis-context-strip { order: 3; }
.tennis-decision-center > .tennis-outcomes-block { order: 4; }
.tennis-decision-center > .tennis-ai-panel { order: 5; }
.tennis-decision-center > .tennis-data-heading { order: 6; }
.tennis-decision-center > .tennis-performance-block { order: 7; }
.tennis-decision-center > .tennis-service-projection { order: 8; }
.tennis-decision-center > .tennis-form-overview { order: 9; }
.tennis-decision-center > .tennis-history-details { order: 10; }
.tennis-decision-center > .tennis-h2h-details { order: 11; }
.tennis-decision-center > .tennis-model-details { order: 13; }
.tennis-decision-center > .tennis-all-projections { order: 14; }
.tennis-decision-center > .tennis-method-note { order: 15; }
.tennis-outcomes-block { margin-top: .75rem; border-top: 1px solid var(--border); }
.tennis-decision-center > .tennis-ai-panel { margin-top: .75rem; border-top: 1px solid var(--border); }
.tennis-verdict-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .45rem;
  margin-top: .65rem;
  padding: .45rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface-soft);
}
.tennis-verdict-lead { display: grid; align-content: center; gap: .15rem; min-width: 0; }
.tennis-verdict-lead span { color: var(--accent-ink); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.tennis-verdict-lead strong { overflow-wrap: anywhere; font-size: clamp(1.3rem, 3vw, 1.8rem); line-height: 1.1; }
.tennis-verdict-lead small { color: var(--muted); }
.tennis-win-probabilities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; }
.tennis-win-probabilities > div { display: grid; gap: .2rem; padding: .55rem .65rem; border: 1px solid transparent; border-radius: var(--radius); background: rgb(255 255 255 / 72%); }
.tennis-win-probabilities > .is-favorite { border-color: #9bdcca; background: #fff; }
.tennis-win-probabilities span { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: .75rem; }
.tennis-win-probabilities span strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tennis-win-probabilities span b { flex: 0 0 auto; color: var(--accent-ink); font-variant-numeric: tabular-nums; }
.tennis-win-probabilities small { color: var(--muted); font-size: max(.68rem, var(--font-readable-floor)); }
.tennis-win-probabilities progress { width: 100%; height: .45rem; overflow: hidden; border: 0; border-radius: 99px; background: #e5e9e8; accent-color: var(--accent); }
.tennis-win-probabilities progress::-webkit-progress-bar { border-radius: 99px; background: #e5e9e8; }
.tennis-win-probabilities progress::-webkit-progress-value { border-radius: 99px; background: var(--accent); }
.tennis-win-probabilities progress::-moz-progress-bar { border-radius: 99px; background: var(--accent); }
.baseball-probability-grid > .is-favorite { border: 1px solid #9bdcca; background: var(--accent-soft); }
.baseball-probability-grid .baseball-runs-summary { grid-column: 1 / -1; }
.baseball-decision-center { display: flex; flex-direction: column; }
.baseball-decision-center > * { order: 20; }
.baseball-decision-center > .section-title { order: 1; }
.baseball-decision-center > .baseball-probability-grid { order: 2; }
.baseball-decision-center > .baseball-key-strip { order: 3; }
.baseball-decision-center > .baseball-score-overview { order: 4; }
.baseball-decision-center > .baseball-data-overview { order: 5; }
.baseball-decision-center > #modeles-baseball { order: 6; }
.baseball-decision-center > .baseball-ai-panel { order: 7; }
.baseball-key-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .38rem; }
.baseball-key-strip > span { display: grid; align-content: start; gap: .14rem; min-width: 0; padding: .58rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.baseball-key-strip small { overflow: hidden; color: var(--muted); font-size: max(.66rem, var(--font-readable-floor)); line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.baseball-key-strip strong { overflow-wrap: anywhere; color: var(--accent-ink); font-size: .78rem; line-height: 1.2; }
.baseball-score-details, .baseball-data-details { margin-top: .45rem; }
.baseball-score-overview, .tennis-visible-data-block { padding: .55rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.baseball-score-overview h4, .tennis-visible-data-block > h4 { margin: 0 0 .4rem; color: var(--muted); font-size: .72rem; }
.baseball-score-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .35rem; }
.baseball-score-grid > div { display: flex; align-items: center; justify-content: space-between; gap: .35rem; min-width: 0; padding: .42rem .5rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.baseball-score-grid strong { font-size: .82rem; font-variant-numeric: tabular-nums; }
.baseball-score-grid span { color: var(--accent-ink); font-size: .7rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.baseball-data-overview > h4 { margin: .65rem 0 .35rem; color: var(--muted); font-size: .72rem; }
.baseball-data-overview .section-title { margin-bottom: .15rem; }
.baseball-form-grid { margin-bottom: .45rem; }
.baseball-form-grid > .card { min-width: 0; padding: .65rem; border: 1px solid var(--border); background: var(--surface-soft); }
.baseball-form-grid .form-sequence { margin: .45rem 0; }
.baseball-form-grid .form-record { display: grid; gap: .12rem; margin: .45rem 0 0; }
.baseball-form-grid .form-record span { color: var(--muted); font-size: max(.64rem, var(--font-readable-floor)); line-height: 1.35; }
.baseball-workload-grid { margin-top: .2rem; }
.baseball-raw-data-details { margin-top: .55rem; }
.tennis-context-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .35rem; margin-top: .55rem; }
.tennis-context-strip > div { display: grid; gap: .1rem; min-width: 0; padding: .55rem .65rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.tennis-context-strip small { color: var(--muted); font-size: max(.68rem, var(--font-readable-floor)); }
.tennis-context-strip strong { overflow-wrap: anywhere; font-size: .82rem; line-height: 1.25; }
.tennis-key-outcomes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; }
.tennis-key-outcomes > div { display: grid; align-content: start; gap: .15rem; min-width: 0; padding: .7rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.tennis-key-outcomes > .is-primary { border-color: #a8ddcf; background: var(--accent-soft); }
.tennis-key-outcomes small, .tennis-compact-metrics small { color: var(--muted); font-size: max(.68rem, var(--font-readable-floor)); font-weight: 700; }
.tennis-key-outcomes strong { overflow-wrap: anywhere; font-size: .88rem; line-height: 1.25; }
.tennis-key-outcomes b { color: var(--accent-ink); font-size: .76rem; font-variant-numeric: tabular-nums; }
.tennis-secondary-outcomes, .tennis-set-response-details { margin-top: .35rem; }
.tennis-compact-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; padding-top: .5rem; }
.tennis-compact-metrics > div { display: grid; gap: .1rem; padding: .55rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.tennis-score-probabilities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .28rem; margin-top: .45rem; }
.tennis-score-probabilities > div { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .42rem .55rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.tennis-score-probabilities strong { color: var(--primary-strong); font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.tennis-form-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; margin-top: .45rem; }
.tennis-form-overview > article { min-width: 0; padding: .55rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.compact-card-heading { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .35rem; }
.compact-card-heading strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.compact-card-heading span { color: var(--muted); font-size: .68rem; white-space: nowrap; }
.compact-data-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem; }
.compact-data-grid > div { display: grid; gap: .08rem; min-width: 0; padding: .4rem; border-radius: var(--radius-sm); background: var(--surface); }
.compact-data-grid > .is-wide { grid-column: 1 / -1; }
.compact-data-grid small { color: var(--muted); font-size: max(.65rem, var(--font-readable-floor)); }
.compact-data-grid strong { overflow: hidden; font-size: .75rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.tennis-history-subtitle { margin: .75rem 0 .3rem; padding-top: .65rem; border-top: 1px solid var(--border); }
.tennis-h2h-details > .tennis-h2h-overview { background: var(--surface-soft); }
.tennis-h2h-summary-content { display: grid; flex: 1 1 auto; gap: .25rem; min-width: 0; }
.tennis-h2h-summary-content > small { color: var(--muted); font-size: max(.65rem, var(--font-readable-floor)); font-weight: 500; }
.tennis-h2h-score { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto minmax(0, 1fr); gap: .4rem; align-items: center; }
.tennis-h2h-score strong:last-child { text-align: right; }
.tennis-h2h-overview b { color: var(--accent-ink); font-variant-numeric: tabular-nums; }
.tennis-model-comparison-row { display: grid; grid-template-columns: minmax(0, 1fr) 11rem; align-items: start; gap: .8rem; }
.tennis-model-comparison-copy { display: grid; gap: .18rem; min-width: 0; }
.tennis-model-comparison-title { font-size: .82rem; line-height: 1.3; }
.tennis-model-comparison-copy > small { display: block; font-size: .68rem; font-weight: 400; line-height: 1.35; }
.tennis-model-comparison-values { display: grid; gap: .18rem; width: 11rem; font-size: .72rem; font-variant-numeric: tabular-nums; }
.tennis-model-comparison-values > span { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .4rem; align-items: baseline; }
.tennis-model-comparison-values small { overflow: hidden; color: var(--text); font-size: .68rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.tennis-model-comparison-values b { font-size: .72rem; white-space: nowrap; }
.tennis-data-heading { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-top: .9rem; padding-top: .8rem; border-top: 1px solid var(--border); }
.tennis-data-heading p, .tennis-data-heading h3 { margin: 0; }
.tennis-player-stats-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; padding-top: .5rem; }
.tennis-player-stat-card { min-width: 0; padding: .7rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.tennis-player-stat-card h4 { margin: 0 0 .55rem; overflow-wrap: anywhere; }
.tennis-stat-pairs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; }
.tennis-stat-pairs > div { display: grid; gap: .1rem; min-width: 0; padding: .5rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.tennis-stat-pairs small { color: var(--muted); font-size: max(.66rem, var(--font-readable-floor)); line-height: 1.2; }
.tennis-stat-pairs strong { color: var(--text); font-size: 1rem; font-variant-numeric: tabular-nums; }
.tennis-sample-size { display: block; margin-top: .45rem; color: var(--muted); font-size: max(.65rem, var(--font-readable-floor)); }
.tennis-empty-state { display: grid; gap: .65rem; }
.tennis-empty-duel { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: .55rem; align-items: center; padding: .75rem; border-radius: var(--radius); background: var(--surface-soft); text-align: center; }
.tennis-empty-duel strong { overflow-wrap: anywhere; }
.tennis-empty-duel span { color: var(--muted); font-size: .7rem; font-weight: 700; }
.form-record { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.form-record strong { color: var(--text); font-size: 1rem; }
.form-record span { color: var(--muted); font-size: .72rem; }
.surface-section > h2:first-child { margin-top: 0; }
.pagination { justify-content: center; margin-top: 1rem; }

@media (max-width: 36rem) {
  .quick-bet-dialog { width: calc(100% - 1rem); margin: auto .5rem .5rem; border-radius: var(--radius-lg) var(--radius-lg) var(--radius) var(--radius); }
  .quick-bet-fields { grid-template-columns: 1fr; }
  .quick-bet-actions { grid-template-columns: 1fr; }
  .quick-bet-actions .secondary { order: 2; }
}

.advice-card { position: relative; padding-top: .8rem; }
.advice-card::before { position: absolute; top: 0; right: 1rem; left: 1rem; height: 3px; border-radius: 0 0 99px 99px; background: linear-gradient(90deg, var(--accent), #69d8ba); content: ""; }
.advice-meta { display: flex; flex-wrap: wrap; gap: .4rem; }
.advice-numbers { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem; margin: .45rem 0; }
.advice-numbers > span { display: grid; min-width: 0; padding: .45rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.advice-numbers strong { overflow-wrap: anywhere; font-size: 1rem; }
.advice-actions { display: grid; grid-template-columns: 1fr auto; gap: .4rem; margin-top: .5rem; }
.advice-actions form { margin: 0; }
.advice-actions button { width: 100%; }

.match-insight-section { overflow: hidden; }
.insight-lead {
  display: grid;
  gap: .12rem;
  margin: .65rem 0;
  padding: .7rem;
  border-left: 3px solid var(--accent);
  border-radius: var(--radius-sm);
  background: var(--accent-soft);
}
.insight-lead > span { color: var(--accent-ink); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.insight-lead > strong { overflow-wrap: anywhere; font-size: 1.08rem; line-height: 1.25; }
.insight-lead > small { margin-top: .12rem; line-height: 1.35; }
.insight-lead.warning-lead { border-left-color: var(--warning); background: var(--warning-soft); }
.insight-grid, .coach-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .35rem;
  margin: .55rem 0;
}
.insight-grid > div, .coach-summary > div {
  display: grid;
  min-width: 0;
  gap: .12rem;
  padding: .55rem;
  border-radius: var(--radius-sm);
  background: var(--surface-soft);
}
.insight-grid small, .coach-summary small { font-size: .7rem; font-weight: 600; }
.insight-grid strong, .coach-summary strong { overflow-wrap: anywhere; font-size: .92rem; line-height: 1.3; }
.insight-wide { grid-column: 1 / -1; }
.insight-details {
  overflow: hidden;
  scroll-margin-top: 4.25rem;
  margin-top: .7rem !important;
  padding: 0 .7rem;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}
.insight-details > summary {
  display: flex;
  min-height: 3rem !important;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  margin: 0 -.7rem;
  padding: .65rem .7rem !important;
  list-style: none;
  color: var(--text) !important;
  font-weight: 750 !important;
}
.insight-details > summary::-webkit-details-marker { display: none; }
.insight-details > summary::after {
  display: grid;
  width: 1.65rem;
  height: 1.65rem;
  flex: 0 0 1.65rem;
  place-items: center;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--accent-ink);
  content: "+";
  font-size: 1.1rem;
  line-height: 1;
}
.insight-details[open] { padding-bottom: .7rem; border-color: #b8e5d8 !important; }
.insight-details[open] > summary { margin-bottom: .15rem; border-bottom: 1px solid #ccebe2; background: var(--accent-soft); color: var(--accent-ink) !important; }
.insight-details[open] > summary::after { content: "−"; }
.football-1x2-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .35rem;
  margin: .4rem 0;
}
.football-outcome-choice {
  display: grid;
  min-width: 0;
  justify-items: center;
  align-content: start;
  gap: .2rem;
  padding: .42rem .25rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-soft);
  text-align: center;
}
.football-outcome-choice.is-favorite { border-color: #8fd4c2; background: var(--accent-soft); box-shadow: none; }
.football-outcome-choice > small { color: var(--muted); font-size: max(.66rem, var(--font-readable-floor)); font-weight: 700; }
.football-outcome-logo { width: 2.15rem; height: 2.15rem; margin: .04rem 0; font-size: .8rem; }
.football-draw-mark { background: var(--surface); color: var(--muted); font-size: 1rem; }
.football-outcome-name {
  display: -webkit-box;
  overflow: hidden;
  min-height: 2em;
  max-width: 100%;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow-wrap: anywhere;
  font-size: .73rem;
  line-height: 1.05;
}
.football-outcome-percent { color: var(--accent-ink); font-size: .9rem; font-variant-numeric: tabular-nums; }
.football-market-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .35rem;
  margin: .4rem 0;
}
.football-market-summary.is-decision-summary .football-xg-card { grid-row: 3; }
.football-market-summary-heading {
  display: flex;
  grid-column: 1 / -1;
  align-items: end;
  justify-content: space-between;
  gap: .7rem;
  padding: .25rem 0 .1rem;
  border-bottom: 1px solid var(--border);
}
.football-market-summary-heading .eyebrow { margin: 0 0 .08rem; }
.football-market-summary-heading h3 { margin: 0 0 .25rem; font-size: .88rem; }
.football-market-card {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: .38rem;
  padding: .52rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-soft);
}
.football-market-heading { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .4rem; }
.football-market-heading h4 { margin: 0; color: var(--text); font-size: .72rem; font-weight: 750; line-height: 1.2; }
.football-xg-confidence { padding: .14rem .3rem; border-radius: 999px; background: var(--success-soft); color: var(--accent-ink); font-size: max(.58rem, var(--font-readable-floor)); white-space: nowrap; }
.football-xg-card { grid-column: 1; grid-row: 3 / span 2; gap: .2rem; padding: .4rem .5rem; }
.football-total-card { grid-column: 2; grid-row: 3; }
.football-btts-card { grid-column: 2; grid-row: 4; }
.football-goal-trends { width: 100%; border-collapse: collapse; font-size: .7rem; font-variant-numeric: tabular-nums; }
.football-goal-trends th,
.football-goal-trends td { padding: .2rem .18rem; border-top: 1px solid var(--border); text-align: right; white-space: nowrap; }
.football-goal-trends thead th { padding-top: .05rem; border-top: 0; color: var(--muted); font-size: max(.62rem, var(--font-readable-floor)); font-weight: 700; }
.football-goal-trends th:first-child { text-align: left; }
.football-goal-trends thead th:not(:first-child) { text-align: center; }
.football-goal-trends tbody td { text-align: center; }
.football-goal-trends tbody th { color: var(--text); font-weight: 650; }
.football-goal-trends tbody td:nth-child(2) { color: var(--accent-ink); }
.football-market-card > strong { overflow-wrap: anywhere; font-size: .95rem; line-height: 1.2; }
.football-market-card > em { color: var(--accent-ink); font-size: 1rem; font-style: normal; font-weight: 750; }
.football-total-value { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: .35rem; }
.football-total-value strong { min-width: 0; overflow-wrap: anywhere; font-size: .8rem; line-height: 1.2; }
.football-total-value em { flex: 0 0 auto; color: var(--accent-ink); font-size: .78rem; font-style: normal; font-weight: 750; white-space: nowrap; }
.football-model-heading { align-items: flex-start !important; margin-bottom: .45rem; padding-bottom: .55rem; border-bottom: 1px solid var(--border); }
.football-model-heading form,
.football-model-heading button { margin: 0; }
.football-model-heading .eyebrow { margin: 0; }
.football-model-heading h2 { margin: .12rem 0 0; font-size: 1rem; }
.football-model-intro { max-width: 40rem; margin: .2rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.4; }
.football-model-actions { display: flex; align-items: center; gap: .3rem; }
.football-model-actions form { margin: 0; }
.football-model-heading .football-lineup-quick-button,
.football-model-heading .football-follow-button {
  min-height: 1.9rem;
  padding: .28rem .62rem;
  border-radius: 999px;
  font-size: .72rem;
  line-height: 1;
}
.football-model-heading .football-lineup-quick-button:not(.is-available),
.football-model-heading .football-lineup-quick-button:not(.is-available):hover,
.football-model-heading .football-lineup-quick-button:not(.is-available):focus {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-xs);
  transform: none;
}
.football-model-heading .football-lineup-quick-button:disabled,
.football-model-heading .football-lineup-quick-button:disabled:hover {
  border-color: var(--border);
  background: var(--surface-soft);
  color: var(--muted);
  box-shadow: none;
  transform: none;
}
.football-model-heading .football-lineup-quick-button.is-available { border-color: #bfe7db; background: var(--success-soft); color: var(--accent-ink); }
.football-projection-summary {
  display: grid;
  gap: .45rem;
  margin: .45rem 0 .55rem;
  padding: .58rem;
  border: 1px solid #bfe7db;
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--accent-soft), var(--surface-soft));
}
.football-projection-summary-heading,
.football-projection-subheading { display: flex; align-items: end; justify-content: space-between; gap: .7rem; }
.football-projection-summary-heading .eyebrow,
.football-projection-subheading .eyebrow { margin: 0 0 .08rem; }
.football-projection-summary-heading h3,
.football-projection-subheading h3 { margin: 0; font-size: .84rem; }
.football-projection-keypoints { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .25rem; }
.football-projection-keypoints > .is-xg-huggy { border: 1px solid #bfe7db; background: var(--accent-soft); }
.football-projection-keypoints > span { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; gap: .08rem .3rem; padding: .42rem; border-radius: var(--radius-sm); background: var(--surface); }
.football-projection-keypoints small { grid-column: 1 / -1; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); }
.football-projection-keypoints strong { min-width: 0; overflow: hidden; font-size: .72rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.football-projection-keypoints em { color: var(--accent-ink); font-size: .72rem; font-style: normal; font-variant-numeric: tabular-nums; white-space: nowrap; }
.football-projection-subheading { margin: .5rem 0 .25rem; }
.football-projection-subheading > small { color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); }
.football-market-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; }
.football-market-split > span { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .25rem; padding: .35rem .4rem; border-radius: var(--radius-sm); background: var(--surface); }
.football-market-split small { color: var(--muted); font-size: max(.68rem, var(--font-readable-floor)); }
.football-market-percent { font-size: .76rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.football-advanced-details > summary { cursor: pointer; list-style: none; }
.football-advanced-details > summary::-webkit-details-marker { display: none; }
.football-advanced-details > summary::after { display: grid; width: 1.7rem; height: 1.7rem; flex: 0 0 1.7rem; place-items: center; border-radius: 50%; background: var(--accent-soft); color: var(--accent-ink); content: "+"; font-size: 1.05rem; }
.football-advanced-details[open] > summary::after { content: "−"; }
.model-quality-help-trigger {
  min-height: 0;
  gap: .3rem;
  margin: 0;
  border: 0;
  box-shadow: none;
  cursor: help;
}
.model-quality-help-trigger > span { display: inline-grid; width: 1rem; height: 1rem; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: .65rem; }
.model-quality-help-trigger:hover,
.model-quality-help-trigger:focus-visible { background: var(--success-soft); color: var(--success); box-shadow: 0 0 0 3px rgb(11 170 131 / 12%); transform: none; }
.model-quality-help-trigger.warning:hover,
.model-quality-help-trigger.warning:focus-visible { background: var(--warning-soft); color: var(--warning); }
.model-quality-help-popover {
  width: min(28rem, calc(100vw - 2rem));
  margin: auto;
  padding: .8rem;
  border: 1px solid #b8e5d8;
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-md);
  color: var(--text);
}
.model-quality-help-popover::backdrop { background: rgb(15 23 42 / 18%); }
.model-quality-help-heading { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
.model-quality-help-popover p { margin: .6rem 0 0; line-height: 1.45; }
.model-quality-help-close { min-width: 2rem; min-height: 2rem; margin: 0; padding: .25rem; border-radius: 50%; box-shadow: none; }
.football-advanced-details-body { display: grid; gap: .7rem; padding-top: .7rem; }
.football-team-goals-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .38rem; }
.football-team-goals { display: grid; min-width: 0; gap: .3rem; padding: .42rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-team-goals-heading { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: .35rem; }
.football-team-goals-heading strong { min-width: 0; overflow: hidden; font-size: .72rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.football-team-goals-heading span { flex: 0 0 auto; color: var(--accent-ink); font-size: .72rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.football-team-goals-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .22rem; }
.football-team-goals-grid > span { display: grid; min-width: 0; gap: .08rem; padding: .25rem .3rem; border-radius: var(--radius-sm); background: var(--surface); }
.football-team-goals-grid small { color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); line-height: 1.15; }
.football-team-goals-grid em { color: var(--accent-ink); font-size: .7rem; font-style: normal; font-variant-numeric: tabular-nums; }
.football-team-goals-factors { margin: .1rem 0 0; padding-top: .32rem; border-top: 1px dashed var(--border); line-height: 1.3; }
.football-double-chance-card { grid-column: 1 / -1; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .5rem; padding-block: .38rem; }
.football-double-chances { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .3rem; }
.football-double-chances > span {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: .25rem .38rem;
  border-radius: var(--radius-sm);
  background: var(--surface);
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.football-double-chances small { color: var(--muted); font-size: max(.66rem, var(--font-readable-floor)); }
.football-double-chances > span > span { color: var(--accent-ink); font-weight: 400; }
.football-ai-panel > .section-title { margin-bottom: .35rem; }
.football-ai-verdict { display: grid; gap: .18rem; margin: .35rem 0; padding: .55rem .6rem; border-left: 3px solid var(--accent); border-radius: var(--radius-sm); background: var(--accent-soft); }
.football-ai-verdict small,
.football-ai-scenario small,
.football-ai-market-signals small { color: var(--muted); font-size: max(.62rem, var(--font-readable-floor)); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.football-ai-verdict strong { font-size: .78rem; font-weight: 650; line-height: 1.35; }
.football-ai-kpis,
.football-ai-probabilities { margin: .35rem 0; gap: .3rem; }
.football-ai-kpis > div,
.football-ai-probabilities > div { padding: .38rem .42rem !important; }
.football-ai-kpis small,
.football-ai-probabilities small { font-size: max(.6rem, var(--font-readable-floor)); }
.football-ai-kpis strong,
.football-ai-probabilities strong { font-size: .76rem; }
.football-ai-scenario { display: grid; gap: .2rem; margin: .35rem 0; padding: .5rem .55rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-ai-scenario strong { font-size: .76rem; font-weight: 650; line-height: 1.35; }
.football-ai-scenario span { color: var(--muted); font-size: max(.62rem, var(--font-readable-floor)); }
.football-ai-disclaimer { margin: .3rem 0; }
.football-ai-scores { margin: .35rem 0; font-size: .72rem; }
.football-ai-market-signals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem; margin: .4rem 0; }
.football-ai-market-signals > div { display: grid; gap: .18rem; padding: .45rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-ai-market-signals strong { overflow-wrap: anywhere; font-size: .7rem; font-weight: 650; line-height: 1.3; }
.football-dossier-title { margin-bottom: .1rem; }
.football-form-block { padding-top: .4rem; }
.football-form-block > h3 { margin: 0 0 .4rem; font-size: .84rem; }
.football-form-block .detail-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; }
.football-form-block .detail-card-grid > :only-child { grid-column: 1 / -1; }
.football-form-block .card { padding: .48rem; }
.football-form-block .recent-form-heading { display: grid; gap: .25rem; }
.football-form-block .recent-form-heading h3 { font-size: .76rem; }
.football-form-block .recent-form-heading .status-pill { width: fit-content; padding: .2rem .32rem; font-size: max(.6rem, var(--font-readable-floor)); }
.football-team-rank { color: var(--accent-ink); font-size: .82em; font-weight: 750; white-space: nowrap; }
.football-standing-summary { display: grid; gap: .12rem; border-radius: .55rem; line-height: 1.25; }
.football-standing-summary strong { color: inherit; font-size: inherit; }
.football-standing-summary span { color: var(--text); font-weight: 400; }
.football-data-line { margin: .3rem 0; font-size: max(.6rem, var(--font-readable-floor)); line-height: 1.35; }
.football-season-summary { display: grid; gap: .28rem; margin-top: .35rem; padding: .38rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-season-heading { display: grid; gap: .1rem; }
.football-season-heading small { color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); }
.football-season-heading strong { font-size: max(.62rem, var(--font-readable-floor)); font-weight: 400; line-height: 1.3; }
.football-season-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .18rem; }
.football-season-kpis > span { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: .2rem; padding: .22rem .28rem; border-radius: .35rem; background: var(--surface); }
.football-season-kpis small { overflow: hidden; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); text-overflow: ellipsis; white-space: nowrap; }
.football-season-kpis strong { color: var(--accent-ink); font-size: max(.62rem, var(--font-readable-floor)); font-weight: 400; }
.football-venue-summary { display: grid; gap: .12rem; padding: .3rem; border: 1px solid var(--border); border-radius: .35rem; background: var(--surface); }
.football-venue-summary small { grid-column: 1 / -1; color: var(--text); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 600; }
.football-venue-summary span { min-width: 0; font-size: max(.6rem, var(--font-readable-floor)); line-height: 1.25; }
.football-venue-summary .football-venue-goals { color: var(--accent-ink); white-space: nowrap; }
.football-venue-summary.is-empty span { grid-column: 1 / -1; color: var(--muted); }
.football-recent-title { margin: .4rem 0 .2rem; color: var(--text); font-size: max(.64rem, var(--font-readable-floor)); }
.football-form-block .form-sequence { gap: .12rem; margin: .35rem 0; }
.football-form-block .form-result { height: 1.35rem; border-radius: .35rem; font-size: max(.6rem, var(--font-readable-floor)); }
.football-form-block .form-record { margin: .25rem 0; }
.football-form-block .form-record strong { font-size: .72rem; }
.football-form-block .form-record span { font-size: max(.6rem, var(--font-readable-floor)); }
.football-metric-glossary { margin: .5rem 0; padding: .55rem; border: 1px solid var(--border); border-radius: .6rem; background: var(--surface); }
.football-metric-glossary > summary { cursor: pointer; color: var(--accent-ink); font-size: .78rem; font-weight: 700; }
.football-metric-definitions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem; margin-top: .45rem; }
.football-metric-definitions > div { display: grid; gap: .08rem; padding: .35rem; border-radius: .4rem; background: var(--surface-raised, var(--card)); }
.football-metric-definitions strong { font-size: max(.63rem, var(--font-readable-floor)); }
.football-metric-definitions span { color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); line-height: 1.35; }
.football-advanced-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem; margin: .35rem 0; }
.football-advanced-kpis > span { display: grid; gap: .06rem; padding: .3rem; border-radius: .35rem; background: var(--surface); }
.football-advanced-kpis small { color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); line-height: 1.25; }
.football-advanced-kpis strong { color: var(--accent-ink); font-size: max(.65rem, var(--font-readable-floor)); }
.football-unified-output .card > h4,
.football-unified-output .section-title h4 { margin: 0 0 .4rem; font-size: .82rem; line-height: 1.25; }
.football-team-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; margin: .35rem 0; }
.football-team-column { min-width: 0; padding: .4rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); }
.football-team-column.is-home { border-left: 3px solid var(--accent); }
.football-team-column.is-away { border-right: 3px solid var(--accent); }
.football-team-column > header { display: grid; gap: .08rem; min-height: 2.25rem; margin-bottom: .3rem; padding-bottom: .25rem; border-bottom: 1px solid var(--border); }
.football-team-column > header small,
.football-team-card-role { color: var(--accent-ink); font-size: max(.58rem, var(--font-readable-floor)); font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.football-team-column > header strong { overflow-wrap: anywhere; font-size: .7rem; line-height: 1.25; }
.football-team-column.is-away > header { text-align: right; }
.football-team-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem; }
.football-team-metrics > span { display: grid; min-width: 0; gap: .05rem; padding: .28rem; border-radius: .35rem; background: var(--surface-soft); }
.football-team-metrics small { color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); line-height: 1.2; }
.football-team-metrics strong { color: var(--accent-ink); font-size: .68rem; }
.football-team-metrics em { color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); font-style: normal; }
.football-outcome-comparison { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .22rem; margin: .35rem 0; }
.football-outcome-comparison > span { display: grid; min-width: 0; gap: .08rem; align-content: center; padding: .35rem .3rem; border-radius: .4rem; background: var(--surface); text-align: center; }
.football-outcome-comparison > .is-home { text-align: left; }
.football-outcome-comparison > .is-away { text-align: right; }
.football-outcome-comparison small { overflow-wrap: anywhere; color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); line-height: 1.2; }
.football-outcome-comparison strong { color: var(--accent-ink); font-size: .72rem; }
.football-projection-state-list { display: grid; gap: .35rem; margin-top: .4rem; }
.football-projection-state { padding: .42rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-projection-state h5 { margin: 0 0 .25rem; font-size: .7rem; }
.football-projection-state .football-outcome-comparison { margin: 0 0 .25rem; }
.football-state-team-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .22rem; }
.football-state-team-metrics > span { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .06rem .3rem; padding: .28rem; border-radius: .35rem; background: var(--surface); }
.football-state-team-metrics > span:last-child { text-align: right; }
.football-state-team-metrics small { grid-column: 1 / -1; overflow-wrap: anywhere; color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); }
.football-state-team-metrics strong { color: var(--accent-ink); font-size: .66rem; }
.football-state-team-metrics em { color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); font-style: normal; }
.football-team-card { position: relative; padding-top: 1.55rem !important; }
.football-team-card-role { position: absolute; top: .5rem; left: .65rem; }
.football-team-card.is-away .football-team-card-role { right: .65rem; left: auto; }
.football-player-team { color: var(--accent-ink) !important; font-weight: 650; }
.recent-fixture-numbers { display: grid; justify-items: end; gap: .08rem; }
.recent-fixture-numbers small { color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); white-space: nowrap; }
.football-advanced-sources { display: grid; gap: .4rem; }
.football-advanced-source { display: grid; gap: .3rem; }
.football-source-team h4 { margin: 0; font-size: .76rem; }
.football-source-team details summary,
.player-detailed-statistics summary { cursor: pointer; color: var(--accent-ink); font-size: max(.62rem, var(--font-readable-floor)); }
.player-detailed-statistics { margin-top: .3rem; padding-top: .25rem; border-top: 1px solid var(--border); }
.player-advanced-source { display: grid; gap: .15rem; margin-top: .3rem; }
.player-advanced-source > strong { font-size: max(.62rem, var(--font-readable-floor)); }
.football-form-kpis small { white-space: nowrap; }
.football-form-kpis { gap: .2rem; margin: .3rem 0; }
.football-form-kpis > div { padding: .28rem !important; }
.football-form-kpis small { font-size: max(.6rem, var(--font-readable-floor)); }
.football-form-kpis strong { font-size: max(.68rem, var(--font-readable-floor)); }
.football-competition-summaries { display: grid; gap: .35rem; margin-top: .35rem; }
.football-competition-summary { padding: .35rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-competition-summary-heading { display: grid; gap: .08rem; }
.football-competition-summary-heading strong { display: flex; min-width: 0; align-items: center; gap: .25rem; overflow: hidden; color: var(--text); font-size: max(.64rem, var(--font-readable-floor)); text-overflow: ellipsis; white-space: nowrap; }
.football-competition-summary-heading img { width: 1rem; height: 1rem; flex: 0 0 1rem; object-fit: contain; }
.football-competition-summary-heading span { color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); }
.football-dossier-section .head-to-head-block { margin-top: .45rem; }
.football-model-section .football-availability-grid { align-items: start; gap: .4rem; }
.football-availability-grid .section-title { gap: .4rem; }
.football-availability-grid .section-title h3 { margin: 0; font-size: .74rem; font-weight: 600; line-height: 1.25; }
.football-availability-grid .section-title .status-pill { flex: 0 0 auto; font-size: max(.6rem, var(--font-readable-floor)); }
.football-availability-grid .card { padding: .5rem; }
.football-availability-grid .football-availability-card { align-self: start; padding: 0; overflow: hidden; }
.football-availability-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .4rem;
  margin: 0;
  padding: .5rem;
  cursor: pointer;
  list-style: none;
}
.football-availability-summary::-webkit-details-marker { display: none; }
.football-availability-toggle {
  display: grid;
  width: 1.25rem;
  height: 1.25rem;
  place-items: center;
  border-radius: 50%;
  background: var(--surface);
  color: var(--muted);
  font-size: .8rem;
  line-height: 1;
}
.football-availability-toggle::before { content: "+"; }
.football-availability-card[open] > .football-availability-summary .football-availability-toggle::before { content: "−"; }
.football-availability-body { padding: 0 .5rem .5rem; }
.football-availability-grid .list-row { min-height: 1.95rem; gap: .35rem; padding: .24rem .5rem; }
.football-availability-grid .list-row-main strong { font-size: .7rem; }
.football-availability-grid .list-row-main small { margin-top: .08rem; font-size: max(.6rem, var(--font-readable-floor)); }
.football-availability-grid p { margin: .3rem 0; font-size: max(.66rem, var(--font-readable-floor)); line-height: 1.4; }
.football-availability-grid .insight-details { margin-top: .3rem !important; padding: 0 .4rem .35rem !important; }
.football-availability-grid .insight-details > summary { min-height: 2rem !important; padding: .3rem 1.25rem !important; font-size: max(.65rem, var(--font-readable-floor)) !important; }
.football-availability-grid .insight-details > summary::after { width: 1.25rem; height: 1.25rem; font-size: .85rem; }
.football-availability-grid .lineup-refresh-control button,
.goalscorer-forecast .lineup-refresh-control button { min-height: 2rem; padding: .35rem .5rem; font-size: max(.68rem, var(--font-readable-floor)); }
.football-availability-grid .injury-refresh-control { display: inline-flex; margin-top: .15rem; }
.football-availability-grid .injury-refresh-control button { min-height: 1.9rem; padding: .3rem .48rem; font-size: max(.64rem, var(--font-readable-floor)); }
.football-availability-grid .injury-checked-at,
.football-availability-grid .lineup-checked-at { margin-top: .08rem; font-size: max(.6rem, var(--font-readable-floor)); }
.football-injury-team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; margin-top: .35rem; }
.football-injury-team { min-width: 0; padding: .3rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-injury-team.is-unmatched { grid-column: 1 / -1; }
.football-injury-team h4 { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: .25rem; margin: 0 0 .18rem; font-size: max(.66rem, var(--font-readable-floor)); }
.football-injury-team h4 span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.football-injury-team h4 small { flex: 0 0 auto; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 400; }
.football-injury-team .status-pill { padding: .18rem .3rem; font-size: max(.6rem, var(--font-readable-floor)) !important; }
.football-availability-team-switcher { margin-top: .38rem; }
.football-availability-team-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem; margin-bottom: .3rem; padding: .2rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-availability-team-tabs button { display: flex; min-width: 0; min-height: 1.9rem; align-items: center; justify-content: center; gap: .3rem; margin: 0; padding: .3rem .4rem; border: 1px solid transparent; background: transparent; color: var(--muted); box-shadow: none; font-size: max(.66rem, var(--font-readable-floor)); }
.football-availability-team-tabs button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.football-availability-team-tabs button b { display: inline-grid; min-width: 1.15rem; height: 1.15rem; place-items: center; padding: 0 .2rem; border-radius: 999px; background: var(--surface); color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 600; }
.football-availability-team-tabs button.is-active { border-color: var(--accent); background: var(--surface); color: var(--accent-ink); }
.football-availability-team-tabs button.is-active b { background: var(--accent-soft); color: var(--accent-ink); }
.football-availability-team-panel[hidden] { display: none; }
.football-lineup-team-panel { padding: .15rem .25rem; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.injury-player-button { padding: 0; background: transparent; font-size: .7rem; font-weight: 600; text-align: left; }
.injury-player-button:hover, .injury-player-button:focus-visible { background: transparent; }
.football-injury-team .list-row-main > small { font-size: max(.62rem, var(--font-readable-floor)); line-height: 1.3; }
.injury-impact-summary { color: var(--accent-ink) !important; font-size: max(.6rem, var(--font-readable-floor)) !important; }
.injury-player-reason { margin: 0 0 .5rem; padding: .35rem .45rem; border-radius: var(--radius-sm); background: var(--danger-soft); color: var(--danger); font-size: max(.68rem, var(--font-readable-floor)); }
.football-lineup-content { padding: .15rem .38rem .2rem; }
.football-lineup-content > p { margin: .25rem 0; font-size: max(.62rem, var(--font-readable-floor)); }
.football-lineup-groups { display: grid; gap: .08rem; margin: .32rem 0; }
.football-lineup-groups > div { display: grid; grid-template-columns: 4.1rem minmax(0, 1fr); gap: .3rem; align-items: start; padding: .22rem 0; border-bottom: 1px solid var(--border); }
.football-lineup-groups > div:last-child { border-bottom: 0; }
.football-lineup-groups > div > small { padding-top: .16rem; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); }
.football-lineup-groups > div > span { display: flex; min-width: 0; flex-wrap: wrap; gap: .18rem; }
.football-lineup-groups b { padding: .2rem .32rem; border-radius: .3rem; background: var(--surface-soft); font-size: max(.68rem, var(--font-readable-floor)); font-weight: 500; line-height: 1.3; }
.lineup-player-entry { display: inline-flex; min-width: 0; }
.lineup-player-button { min-height: 1.45rem; margin: 0; padding: .2rem .32rem; border: 0; border-radius: .3rem; background: var(--surface-soft); color: var(--text); box-shadow: none; font-size: max(.68rem, var(--font-readable-floor)); font-weight: 500; line-height: 1.3; }
.lineup-player-button:hover, .lineup-player-button:focus-visible { background: var(--accent-soft); color: var(--accent-ink); box-shadow: none; transform: none; }
.football-lineup-groups.substitutes .lineup-player-button { background: var(--surface); }
.lineup-player-dialog { width: min(36rem, calc(100% - 2rem)); max-width: none; max-height: 88dvh; margin: auto; padding: 0; overflow: hidden; border: 0; border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 24px 70px rgb(15 23 42 / 28%); color: var(--text); }
.lineup-player-dialog::backdrop { background: rgb(15 23 42 / 52%); backdrop-filter: blur(3px); }
.lineup-player-dialog > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-bottom: 1px solid var(--border); }
.lineup-player-dialog > header small { color: var(--accent-ink); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.lineup-player-dialog > header h3 { margin: .12rem 0 0; font-size: 1rem; }
.lineup-player-dialog-body { max-height: calc(88dvh - 4.5rem); padding: .8rem; overflow-y: auto; overscroll-behavior: contain; }
.baseball-glossary-intro { margin: 0 0 .7rem; color: var(--muted); font-size: .78rem; }
.baseball-glossary-body dl { display: grid; gap: .45rem; margin: 0; }
.baseball-glossary-body dl > div { padding: .58rem .65rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.baseball-glossary-body dt { color: var(--accent-ink); font-size: .78rem; font-weight: 700; }
.baseball-glossary-body dd { margin: .15rem 0 0; color: var(--text); font-size: .76rem; line-height: 1.4; }
.lineup-player-context { margin: 0 0 .45rem; color: var(--muted); font-size: max(.68rem, var(--font-readable-floor)); }
body:has(.lineup-player-dialog[open]) { overflow: hidden; }
@media (max-width: 680px) {
  .catalog-page-word { display: none; }
  .catalog-result-heading { align-items: flex-end; flex-wrap: wrap; }
  .catalog-result-actions { margin-left: auto; gap: .22rem; }
  .lineup-player-dialog { width: 100%; max-height: calc(92dvh - env(safe-area-inset-top)); margin: auto 0 0; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
  .lineup-player-dialog-body { max-height: calc(92dvh - 4.5rem - env(safe-area-inset-top)); padding-bottom: calc(.8rem + env(safe-area-inset-bottom)); }
}
.football-lineup-subtitle { margin-top: .45rem !important; color: var(--text); font-size: max(.66rem, var(--font-readable-floor)) !important; font-weight: 600; }
.player-stat-unavailable > span:nth-child(2) { color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); line-height: 1.2; }
.football-lineup-groups.substitutes b { background: var(--surface); }
.football-players-heading { display: grid; grid-template-columns: 1fr; gap: .35rem; margin-bottom: .4rem; }
.football-players-heading .event-actions { width: 100%; justify-content: flex-start; }
.football-players-heading .event-actions form { margin: 0; }
.football-players-heading .event-actions button { min-height: 1.9rem; padding: .32rem .5rem; font-size: max(.64rem, var(--font-readable-floor)); }
.football-player-team-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .28rem; margin-bottom: .4rem; padding: .22rem; border-radius: var(--radius); background: var(--surface-soft); }
.football-player-team-tab { width: 100%; min-width: 0; min-height: 2rem; margin: 0; overflow: hidden; padding: .35rem .45rem; border: 1px solid transparent; background: transparent; color: var(--muted); box-shadow: none; font-size: max(.68rem, var(--font-readable-floor)); text-overflow: ellipsis; white-space: nowrap; }
.football-player-team-tab:hover { border-color: #bfe7db; background: var(--surface); color: var(--accent-ink); box-shadow: none; transform: none; }
.football-player-team-tab.is-active { border-color: var(--accent); background: var(--surface); color: var(--accent-ink); }
.football-player-team-panel[hidden] { display: none; }
.football-dossier-section .player-outcome-legend { margin-top: .4rem; }
.recent-fixtures-details {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.recent-fixtures-details > summary {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  cursor: pointer;
  list-style: none;
}
.recent-fixtures-details > summary::-webkit-details-marker { display: none; }
.recent-fixtures-details > summary::after {
  display: none;
}
.recent-fixtures-details > summary .form-sequence { margin: .35rem 0; }
.recent-fixtures-details[open] { padding-bottom: .2rem; }
.recent-fixtures-details[open] > summary {
  margin-bottom: .1rem;
  border-bottom: 0;
  background: transparent;
}
.recent-fixtures-list { border-top: 1px solid var(--border); }
.recent-fixtures-details .list-row { min-height: 2rem; padding: .22rem 0; }
.recent-fixtures-details .list-row-main strong { font-size: max(.66rem, var(--font-readable-floor)); }
.recent-fixture-competition { display: flex; min-width: 0; align-items: center; gap: .2rem; overflow: hidden; margin-top: .06rem; color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.recent-fixture-competition img { width: .78rem; height: .78rem; flex: 0 0 .78rem; object-fit: contain; }
.head-to-head-competition { display: inline-flex; align-items: center; justify-content: center; gap: .2rem; }
.head-to-head-competition img { width: .78rem; height: .78rem; flex: 0 0 .78rem; object-fit: contain; }
.recent-fixtures-details .list-row-main small,
.recent-fixtures-details .status-pill { font-size: max(.6rem, var(--font-readable-floor)); }
.recent-fixture-meta { display: flex; min-height: 1rem; align-items: center; gap: .3rem; line-height: 1; }
.recent-fixture-venue { display: inline-grid; width: 1rem; height: 1rem; flex: 0 0 1rem; place-items: center; align-self: center; }
.recent-fixture-venue svg { display: block; width: .86rem; height: .86rem; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.recent-fixture-venue.is-home { color: var(--success); }
.recent-fixture-venue.is-home svg { fill: currentColor; stroke-width: 0; }
.recent-fixture-venue.is-away { color: #7378b5; }
.recent-fixture-result { display: grid; min-width: 1.7rem; height: 1.15rem; flex: 0 0 auto; place-items: center; padding: 0 .3rem; border-radius: 999px; background: var(--surface-soft); color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 750; font-variant-numeric: tabular-nums; }
.recent-fixture-result.ok { background: var(--success-soft); color: var(--success); }
.recent-fixture-result.warning { background: var(--warning-soft); color: var(--warning); }
.recent-fixture-result.off { background: var(--danger-soft); color: var(--danger); }
.goalscorer-forecast .football-player-team-panels { display: grid; }
.goalscorer-forecast .player-outcome-list { gap: .24rem; margin-top: .28rem; }
.goalscorer-forecast .player-outcome-card { padding: .36rem; }
.goalscorer-forecast .player-outcome-card.is-starter { border-color: #bfe7db; background: var(--success-soft); }
.goalscorer-forecast .player-outcome-card.is-substitute { background: #f0f2f5; }
.player-group-title { margin: .28rem 0 0; padding: .25rem 0 .12rem; border-bottom: 1px solid var(--border); color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.player-group-title.is-starter { color: var(--accent-ink); }
.goalscorer-forecast .player-outcome-heading { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: .3rem; margin-bottom: .25rem; }
.player-outcome-name { display: grid; min-width: 0; gap: .05rem; }
.player-outcome-name strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.player-outcome-name small { overflow: hidden; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); text-overflow: ellipsis; white-space: nowrap; }
.goalscorer-forecast .player-availability-badge { padding: 0; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 400; }
.goalscorer-forecast .player-outcome-metrics { gap: .16rem; }
.goalscorer-forecast .player-outcome-metrics > div { padding: .22rem .18rem; }
.goalscorer-forecast .player-outcome-metrics small { margin-bottom: .08rem; font-size: max(.6rem, var(--font-readable-floor)); }
.goalscorer-forecast .player-outcome-metrics strong { color: var(--accent-ink); font-size: .7rem; font-weight: 600; }
.player-stat-table { display: grid; margin-top: .28rem; padding-top: .24rem; border-top: 1px solid var(--border); }
.player-stat-table > div { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr) minmax(0, .55fr) minmax(0, .8fr); gap: .12rem; align-items: center; min-height: 1.65rem; padding: .18rem .22rem; border-bottom: 1px solid var(--border); }
.player-stat-table > div:last-child { border-bottom: 0; }
.player-stat-table span { min-width: 0; font-size: max(.6rem, var(--font-readable-floor)); text-align: center; font-variant-numeric: tabular-nums; }
.player-stat-table span:first-child { display: grid; gap: .02rem; text-align: left; }
.player-stat-table strong { font-size: max(.6rem, var(--font-readable-floor)); font-weight: 600; }
.player-stat-table small { overflow: hidden; color: var(--muted); font-size: max(.6rem, var(--font-readable-floor)); text-overflow: ellipsis; white-space: nowrap; }
.player-stat-table .player-stat-head { min-height: 1.15rem; border-radius: .32rem; background: var(--surface); color: var(--muted); }
.player-stat-table .player-stat-head span { font-size: max(.6rem, var(--font-readable-floor)); }
.player-impact-strip { display: flex; align-items: baseline; gap: .28rem; margin-top: .18rem; padding: .22rem .28rem; border-radius: .35rem; background: var(--surface); font-size: max(.6rem, var(--font-readable-floor)); }
.player-impact-strip small { margin-right: auto; color: var(--muted); }
.player-impact-strip strong { color: var(--accent-ink); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 600; }
.player-impact-strip span { color: var(--muted); }
.player-outcome-help { margin: .35rem 0 0; font-size: max(.6rem, var(--font-readable-floor)); line-height: 1.35; }
.football-ai-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; margin-top: .45rem; }
.football-ai-actions form { display: flex; margin: 0; }
.football-ai-actions button { width: 100%; min-height: 2.65rem; margin: 0; padding: .5rem; font-size: .72rem; line-height: 1.25; }
.football-ai-actions button:disabled { border-color: var(--border); background: var(--surface-soft); color: var(--muted); cursor: not-allowed; box-shadow: none; transform: none; }
.football-ai-queued { margin: .35rem 0 0; }
.football-model-section > .insight-details { margin-top: .45rem !important; }
.football-model-section > .insight-details > summary { min-height: 2.65rem !important; padding-block: .5rem !important; }
.detail-block { padding: .7rem 0 .15rem; }
.detail-block + .detail-block { border-top: 1px solid var(--border); }
.detail-block > h3:first-child { margin-top: 0; }
.detail-card-grid { display: grid; grid-template-columns: 1fr; gap: .5rem; }
.compact-probabilities { display: grid; gap: .1rem; }
.recent-form-heading { display: flex; align-items: baseline; justify-content: space-between; gap: .65rem; }
.recent-form-heading h3 { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.recent-form-count { flex: 0 0 auto; color: var(--muted); font-size: .7rem; }
.form-sequence { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: .3rem; margin: .65rem 0; }
.form-result { display: grid; min-width: 0; height: 1.8rem; place-items: center; border-radius: .5rem; background: var(--surface-soft); color: var(--muted); font-size: .74rem; font-weight: 800; }
.form-result.ok { background: var(--success-soft); color: var(--success); }
.form-result.warning { background: var(--warning-soft); color: var(--warning); }
.form-result.off { background: var(--danger-soft); color: var(--danger); }
.head-to-head-block { margin-top: .75rem; }
.head-to-head-heading { margin-bottom: .55rem; }
.head-to-head-heading h3 { margin: 0; }
.head-to-head-summary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(4.5rem, .55fr) minmax(0, 1fr); gap: .35rem; }
.head-to-head-summary > div { display: grid; min-width: 0; justify-items: center; gap: .1rem; padding: .6rem .35rem; border-radius: var(--radius-sm); background: var(--surface-soft); text-align: center; }
.head-to-head-summary strong { color: var(--accent-ink); font-size: 1.15rem; }
.head-to-head-summary span { overflow-wrap: anywhere; color: var(--muted); font-size: .72rem; line-height: 1.25; }
.head-to-head-list { border-top: 1px solid var(--border); }
.head-to-head-row { display: grid; grid-template-columns: 5.2rem minmax(0, 1fr) auto minmax(0, 1fr) 8rem; gap: .4rem; align-items: center; min-height: 2.35rem; padding: .32rem 0; border-bottom: 1px solid var(--border); }
.head-to-head-row:last-child { border-bottom: 0; }
.head-to-head-row strong { min-width: 2.5rem; font-size: .74rem; text-align: center; font-variant-numeric: tabular-nums; }
.head-to-head-row small { font-size: max(.6rem, var(--font-readable-floor)); }
.head-to-head-row small:last-child { overflow: hidden; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.head-to-head-team { min-width: 0; overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.head-to-head-team.home-team { text-align: right; }
.head-to-head-team.is-winner { color: var(--accent-ink); font-weight: 400; }
.head-to-head-score .is-winner { color: var(--accent-ink); font-weight: 750; }
.tennis-history-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding-top: .7rem; }
.tennis-player-history { min-width: 0; margin: 0; }
.tennis-player-history + .tennis-player-history { margin-left: 1rem; padding-left: 1rem; border-left: 4px solid var(--accent); }
.compact-title { align-items: center; margin-bottom: .5rem; }
.tennis-match-history { display: grid; margin-top: .45rem; border-top: 1px solid var(--border); }
.tennis-history-row { display: grid; grid-template-columns: 5.6rem 2rem minmax(7rem, 1fr) auto; gap: .45rem; align-items: center; padding: .55rem 0; border-bottom: 1px solid var(--border); }
.tennis-history-row > * { min-width: 0; }
.tennis-history-row time { color: var(--muted); font-size: .72rem; font-variant-numeric: tabular-nums; }
.tennis-history-row small { grid-column: 3 / -1; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.result-chip { display: inline-grid; place-items: center; width: 1.65rem; height: 1.65rem; border-radius: 999px; font-size: .7rem; font-weight: 800; }
.result-chip.is-win { color: #08745d; background: #e1f7ef; }
.result-chip.is-loss { color: #a13b46; background: #fde9eb; }
.head-to-head-tennis .tennis-history-row { grid-template-columns: 5.6rem minmax(8rem, 1fr) auto; }
.head-to-head-tennis .result-chip { width: auto; padding: 0 .65rem; }
.head-to-head-tennis .tennis-history-row small { grid-column: 2 / -1; }
.comparison-table { margin: .65rem 0; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); }
.comparison-table > div { display: grid; grid-template-columns: minmax(6rem, 1.4fr) repeat(3, minmax(3.5rem, .7fr)); gap: .3rem; align-items: center; padding: .5rem; border-bottom: 1px solid var(--border); font-size: .78rem; }
.comparison-table > div:last-child { border-bottom: 0; }
.comparison-table .comparison-head { background: var(--surface-soft); color: var(--muted); font-size: max(.68rem, var(--font-readable-floor)); font-weight: 700; }
.comparison-table span { min-width: 0; text-align: right; font-variant-numeric: tabular-nums; }
.key-facts { display: grid; gap: .35rem; margin: .6rem 0; }
.key-facts > div { display: grid; gap: .12rem; padding: .55rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.key-facts small { line-height: 1.35; }
.fact-card { margin-bottom: .5rem; padding: .65rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.fact-card p { margin: .35rem 0; }
.fact-heading { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.data-status-list { display: grid; gap: .35rem; }
.data-status-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .2rem .5rem; align-items: center; padding: .5rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.data-status-list small { grid-column: 1 / -1; line-height: 1.35; }
.recommendation-list { display: grid; gap: .4rem; margin: .55rem 0; }
.recommendation-card { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: .6rem; align-items: center; padding: .6rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.recommendation-card.principal { border-color: #bfe7db; background: var(--accent-soft); }
.recommendation-card > div { display: grid; min-width: 0; gap: .08rem; }
.recommendation-card > div:not(:first-child) { justify-items: end; }
.recommendation-card strong { overflow-wrap: anywhere; }
.informative-trends { margin: .55rem 0; padding: .55rem .65rem; border-radius: var(--radius); background: var(--surface-soft); }
.informative-trends p { margin: .25rem 0; font-size: .82rem; }
.market-comparison-list { display: grid; gap: .5rem; padding-top: .5rem; }
.market-comparison-card { min-width: 0; }
.odds-market-panel .status-pill { display: inline-flex; width: fit-content; margin-top: .22rem; }
.reference-odds { margin-top: .35rem !important; }

@media (min-width: 681px) {
  .decision-index { grid-template-columns: minmax(15rem, 1fr) auto; align-items: center; }
  .decision-index-links { justify-content: flex-end; }
  .insight-grid, .coach-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .detail-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recommendation-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .decision-index { padding: .65rem; }
  .decision-index-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .decision-index-links a { justify-content: center; padding-inline: .4rem; }
  .football-decision-index .decision-index-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .football-decision-index .decision-index-links a { padding-inline: .2rem; font-size: max(.68rem, var(--font-readable-floor)); white-space: nowrap; }
  .tennis-decision-center { margin-inline: -.15rem; padding: .75rem; }
  .tennis-decision-center > .section-title { display: grid; gap: .55rem; }
  .tennis-decision-center > .section-title .advice-meta { width: 100%; }
  .tennis-decision-center > .section-title .button { flex: 1 1 100%; text-align: center; }
  .tennis-verdict-card { grid-template-columns: 1fr; gap: .7rem; padding: .75rem; }
  .tennis-context-strip, .tennis-key-outcomes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tennis-key-outcomes > div { padding: .55rem; }
  .baseball-key-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .baseball-score-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tennis-compact-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tennis-compact-metrics > div { padding: .42rem; }
  .tennis-data-heading { display: grid; align-items: start; }
  .tennis-player-stats-grid { grid-template-columns: 1fr; }
  .tennis-performance-block .tennis-player-stats-grid,
  .tennis-service-projection .tennis-player-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tennis-performance-block .tennis-player-stat-card,
  .tennis-service-projection .tennis-player-stat-card { padding: .5rem; }
  .tennis-form-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tennis-h2h-score { gap: .25rem; font-size: .7rem; }
  .tennis-model-comparison-row { grid-template-columns: minmax(0, 1fr) 8.6rem; gap: .45rem; }
  .tennis-model-comparison-values { width: 8.6rem; }
  .tennis-ai-panel .primary-button { width: 100%; }
  .recent-form-heading { display: grid; gap: .15rem; }
  .form-sequence { gap: .2rem; }
  .form-result { height: 1.65rem; border-radius: .4rem; font-size: max(.68rem, var(--font-readable-floor)); }
  .head-to-head-row { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: .35rem; }
  .head-to-head-row > small { grid-column: 1 / -1; }
  .head-to-head-row > small:first-child { margin-bottom: -.25rem; }
  .head-to-head-row > small:last-child { display: none; }
  .tennis-history-grid { grid-template-columns: 1fr; }
  .tennis-player-history + .tennis-player-history { margin: 1rem 0 0; padding: 1rem 0 0; border-top: 4px solid var(--accent); border-left: 0; }
  .tennis-history-row, .head-to-head-tennis .tennis-history-row { grid-template-columns: 4.8rem 1.8rem minmax(0, 1fr); gap: .35rem; }
  .tennis-history-row > span:not(.result-chip) { grid-column: 3; }
  .tennis-history-row small, .head-to-head-tennis .tennis-history-row small { grid-column: 1 / -1; white-space: normal; }
  .head-to-head-tennis .result-chip { width: auto; grid-column: 2 / -1; justify-self: start; }
  .head-to-head-tennis .tennis-history-row > strong { grid-column: 2 / -1; }
  .event-detail-header .link-arrow { font-size: .78rem; }
  .event-detail-header .eyebrow { margin-top: .2rem; }
  .event-detail-header .advice-meta { gap: .25rem; }
  .event-detail-header .status-pill { padding: .28rem .45rem; }
  .football-event-page .surface-section { padding: .7rem; }
  .football-event-page .football-model-section { padding: .58rem; }
  .football-event-page .section-title { align-items: flex-start; }
  .football-event-page .section-title h2 { margin-top: .15rem; }
  .football-model-heading { display: grid; gap: .45rem; }
  .football-model-actions { width: 100%; justify-content: space-between; }
  .football-projection-keypoints { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .football-projection-subheading,
  .football-market-summary-heading { align-items: flex-start; }
  .football-projection-subheading > small { max-width: 8rem; text-align: right; }
  .football-event-page .insight-grid,
  .football-event-page .coach-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .football-market-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .football-event-page .insight-grid > div,
  .football-event-page .coach-summary > div { padding: .48rem; }
  .football-event-page .detail-card-grid { gap: .6rem; }
  .football-event-page .detail-card-grid > .card { padding: .65rem; border: 1px solid var(--border); background: var(--surface); }
  .football-event-page .football-availability-grid > .card { padding: .5rem; }
  .form-record { margin: .4rem 0; }
}

.list-row { display: flex; min-height: 2.85rem; align-items: center; justify-content: space-between; gap: .65rem; padding: .42rem 0; border-bottom: 1px solid var(--border); }
.list-row:last-child { border-bottom: 0; }
.list-row-main { min-width: 0; }
.list-row-main strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.list-row-main small { display: block; margin-top: .2rem; }
.player-outcome-list {
  display: grid;
  gap: .65rem;
  margin-top: .7rem;
}
.player-outcome-card {
  min-width: 0;
  padding: .75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-soft);
}
.player-outcome-heading {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: .38rem;
  margin-bottom: .65rem;
}
.player-outcome-heading > strong {
  overflow-wrap: anywhere;
  font-size: .98rem;
  line-height: 1.25;
}
.player-outcome-heading .player-availability-badge {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  white-space: normal;
}
.player-outcome-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .4rem;
}
.player-outcome-metrics > div {
  min-width: 0;
  padding: .52rem .3rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
  text-align: center;
}
.player-outcome-metrics > .is-primary { border-color: var(--border); background: var(--surface); }
.player-outcome-metrics small { display: block; margin-bottom: .16rem; color: var(--muted); font-size: .7rem; }
.player-outcome-metrics strong { display: block; font-size: .95rem; white-space: nowrap; }
.player-outcome-details { margin-top: .45rem; scroll-margin-top: 4.25rem; }
.player-outcome-details > summary { min-height: 2rem; padding: .35rem 0 .1rem; font-size: .76rem; }
.player-outcome-details p { margin: .38rem 0 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.player-outcome-legend { margin: .65rem 0 0; }
.amount { flex: 0 0 auto; font-weight: 600; }
.amount.positive { color: var(--success); }
.amount.negative { color: var(--danger); }

.compact-list { overflow: hidden; border-top: 1px solid var(--border); }
.compact-list-item { display: grid; grid-template-columns: 1fr auto; gap: .2rem .65rem; min-height: 3.25rem; align-items: center; padding: .5rem 0; border-bottom: 1px solid var(--border); }
.compact-list-item h3, .compact-list-item p { margin: 0; }
.compact-list-item p { color: var(--muted); font-size: .86rem; }
.compact-list-item .compact-list-meta { display: flex; flex-wrap: wrap; gap: .35rem .65rem; align-items: center; margin-top: .2rem; }
.compact-list-item .link-arrow { grid-row: 1 / span 2; grid-column: 2; align-self: center; }

.add-bet-panel { margin: 0; border: 0 !important; }
.add-bet-panel > summary {
  display: inline-flex;
  min-height: var(--control-height) !important;
  align-items: center;
  justify-content: center;
  padding: .65rem .9rem !important;
  border-radius: var(--radius);
  background: var(--accent);
  color: #fff !important;
  box-shadow: 0 7px 16px rgb(11 170 131 / 18%);
  font-size: .9rem !important;
  font-weight: 600 !important;
  list-style: none;
}
.add-bet-panel > summary::-webkit-details-marker { display: none; }
.add-bet-panel[open] > summary { background: var(--accent-strong); }
.manual-bet-form { margin-top: .5rem; padding: .7rem; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface); text-align: left; }
.manual-bet-form .section-heading { margin-bottom: .45rem; }
.bet-result-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; margin-top: .75rem; }
.bet-result-actions form { margin: 0; }
.bet-result-actions button { width: 100%; min-height: 2.65rem; margin: 0; padding: .55rem .35rem; box-shadow: none; font-size: .82rem; }
.bet-result-won { background: var(--accent); }
.bet-result-cashout { border: 1px solid #e6d7ad; background: #fff9e9; color: #715615; }
.bet-result-lost { border: 1px solid #f1c7cd; background: #fff2f3; color: var(--danger); }
.bet-result-cashout:hover, .bet-result-cashout:focus-visible { background: #fff3cf; color: #5a430d; }
.bet-result-lost:hover, .bet-result-lost:focus-visible { background: #ffe3e6; color: var(--danger); }
.bet-edit-panel { margin-top: .45rem; }
.empty-add-bet { width: 100%; }
.empty-add-bet > summary { margin: 0 auto; }
.empty-state-compact { padding: .8rem .7rem; }
.empty-state-compact .empty-state-icon { width: 2.25rem; height: 2.25rem; margin-bottom: .4rem; }
.empty-state-compact h2 { margin-bottom: .25rem; }
.empty-state-compact p { margin-bottom: .6rem; }
.empty-state-compact .button { margin: 0; }

.bottom-nav {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0 max(.25rem, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(.25rem, env(safe-area-inset-left));
  border-top: 1px solid rgb(226 227 236 / 88%);
  background: rgb(255 255 255 / 94%);
  box-shadow: 0 -6px 20px rgb(24 24 45 / 6%);
  backdrop-filter: blur(22px) saturate(150%);
  transition: transform .18s ease;
}
.bottom-nav-item {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 3.35rem;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: .1rem;
  border-radius: var(--radius-sm);
  color: #9293a2;
  font-size: max(clamp(.6rem, 2.5vw, .68rem), var(--font-readable-floor));
  font-weight: 600;
  transition: color .18s ease, background .18s ease, transform .18s ease;
}
.bottom-nav-item svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.85; stroke-linecap: round; stroke-linejoin: round; }
.bottom-nav-item span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bottom-nav-item.is-active { padding: 0; border-radius: 0; background: rgb(231 248 242 / 72%); color: var(--accent-ink); }

.combination-form { display: grid; gap: var(--space-4); }
.combination-form .surface-section { margin: 0; }
.field-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
}
.field-grid > label, .checkbox-fieldset { min-width: 0; }
.field-wide { grid-column: 1 / -1; }
.checkbox-fieldset { margin: 0; padding: .65rem; border: 1px solid var(--border); border-radius: var(--radius); }
.checkbox-fieldset legend { padding: 0 .25rem; color: #4f5060; font-size: .82rem; font-weight: 600; }
.checkbox-fieldset > div { display: flex; flex-wrap: wrap; gap: .45rem 1rem; }
.checkbox-fieldset label, .toggle-list label { display: flex; align-items: center; gap: .4rem; }
.checkbox-fieldset input, .toggle-list input { width: auto; margin: 0; }
.toggle-list { display: grid; gap: .55rem; margin-top: .75rem; }
.budget-strip, .combination-main-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .45rem;
  margin-top: .75rem;
}
.budget-strip span, .combination-main-metrics span {
  display: grid;
  gap: .15rem;
  min-width: 0;
  padding: .6rem;
  border-radius: var(--radius-sm);
  background: var(--surface-soft);
}
.budget-strip small, .combination-main-metrics small { color: var(--muted); font-size: max(.68rem, var(--font-readable-floor)); }
.budget-strip strong, .combination-main-metrics strong { font-variant-numeric: tabular-nums; }
.combination-results { display: grid; gap: .65rem; }
.combination-primary { border-color: #bfe7db; }
.combination-alternative { border-color: #ead59d; }
.combination-submit { width: 100%; min-height: 3rem; margin: 0; }
.combination-legs { display: grid; gap: .35rem; }
.detail-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
.detail-list div { padding: .5rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.detail-list dt { color: var(--muted); font-size: .7rem; }
.detail-list dd { margin: .15rem 0 0; font-weight: 600; }
.combination-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .55rem; }
.combination-actions form, .combination-actions button { width: 100%; margin: 0; }

.bet-slip-bubble {
  position: fixed;
  right: max(.75rem, env(safe-area-inset-right));
  bottom: calc(4.75rem + env(safe-area-inset-bottom));
  z-index: 60;
  display: flex;
  align-items: center;
  gap: .5rem;
  min-height: 3rem;
  max-width: min(12rem, calc(100vw - 1.5rem));
  padding: .55rem .8rem;
  border: 1px solid #b9e4d8;
  border-radius: 999px;
  background: var(--accent);
  color: white;
  box-shadow: var(--shadow-md);
}
.bet-slip-bubble svg { width: 1.3rem; height: 1.3rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.bet-slip-bubble span { display: grid; min-width: 0; text-align: left; }
.bet-slip-bubble strong, .bet-slip-bubble small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bet-slip-bubble small { opacity: .82; font-size: max(.68rem, var(--font-readable-floor)); }
.bet-slip-dialog {
  width: min(28rem, 100%);
  max-height: min(46rem, 88dvh);
  margin: auto 0 0 auto;
  padding: 0;
  border: 0;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-md);
}
.bet-slip-dialog::backdrop { background: rgb(21 24 35 / 48%); }
.bet-slip-dialog > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--border);
}
.bet-slip-dialog h2 { margin: .1rem 0 0; }
.bet-slip-dialog-body { max-height: calc(88dvh - 7rem); padding: .8rem; overflow-y: auto; }
.bet-slip-detail-link { display: block; padding: 0 .9rem .8rem; }
.bet-slip-settings { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: .45rem; }
.bet-slip-items { display: grid; gap: .45rem; margin: .75rem 0; }
.bet-slip-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .6rem;
  padding: .65rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-soft);
}
.bet-slip-item > div:first-child { display: grid; gap: .12rem; min-width: 0; }
.bet-slip-item span, .bet-slip-item small { color: var(--muted); font-size: .72rem; }
.bet-slip-item-odds { display: grid; justify-items: end; align-content: start; gap: .15rem; }
.bet-slip-item-odds form { margin: 0; }
.icon-button {
  min-width: 2rem;
  min-height: 2rem;
  padding: .2rem;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  font-size: 1.25rem;
}
.bet-slip-totals { display: grid; gap: .25rem; margin: .65rem 0; }
.bet-slip-totals div { display: flex; justify-content: space-between; gap: 1rem; }
.bet-slip-totals dd { margin: 0; font-weight: 700; }
.bet-slip-actions { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .45rem; }
.bet-slip-actions form { margin: 0; }
.bet-slip-full { max-width: 42rem; margin-right: auto; margin-left: auto; }

@media (max-width: 680px) {
  .ajax-toast-region { right: .65rem; bottom: calc(4.45rem + env(safe-area-inset-bottom)); width: calc(100vw - 1.3rem); }
  .user-name { display: none; }
  main { padding: .5rem .65rem calc(4.45rem + env(safe-area-inset-bottom)); }
  .has-bet-slip main { padding-bottom: calc(8.35rem + env(safe-area-inset-bottom)); }
  .topbar { min-height: 3.5rem; }
  .brand-word small { display: block; margin-top: .17rem; font-size: max(.6rem, var(--font-readable-floor)); }
  .brand { gap: .4rem; }
  .page { gap: .6rem; }
  .page-header { padding-top: .05rem; }
  .hero, .surface-section { padding: .65rem; border-radius: var(--radius-lg); }
  .section-block { padding-right: 0; padding-left: 0; }
  .card { padding: .62rem; border-radius: var(--radius); }
  h1 { font-size: clamp(1.7rem, 8vw, 2rem); }
  .page-header .match-title-inline { font-size: clamp(1.25rem, 6vw, 1.75rem); }
  .grid { grid-template-columns: 1fr; gap: .45rem; }
  .metrics-grid, .hero > .grid:first-of-type { grid-template-columns: repeat(2, 1fr); }
  .metric-card { min-height: 4rem; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: .35rem; }
  .settings-section { margin-bottom: .75rem; }
  .settings-page .section-heading > p { margin-top: .25rem; }
  .event-card h2 { font-size: .875rem; font-weight: 600; }
  .catalog-event-grid { gap: .55rem; }
  .catalog-event-grid .event-card { padding: .7rem; }
  .catalog-event-grid .compact-predictions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .catalog-event-grid .compact-predictions > span { padding: .4rem; }
  .catalog-event-grid .compact-predictions strong { max-width: none; }
  .catalog-event-grid .odds-strip { grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr)); }
  .catalog-event-grid .add-to-ticket-form { display: none; }
  .catalog-event-grid .odds-offer { padding: .42rem; }
  .catalog-event-grid .odds-offer em { display: none; }
  .catalog-event-grid .event-actions > .button { flex: 1 1 auto; }
  .event-actions { flex-wrap: wrap; }
  .page-header-row { display: block; }
  .page-header-row .button { margin-top: .5rem; }
  .page[data-catalog-page] .page-header-row { display: flex; }
  .advice-actions { grid-template-columns: 1fr; }
  .compact-list-item { grid-template-columns: minmax(0, 1fr) auto; }
  .field-grid { grid-template-columns: 1fr 1fr; }
  .field-grid .field-wide, .checkbox-fieldset { grid-column: 1 / -1; }
  .combination-main-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bottom-nav-item { font-size: max(clamp(.6rem, 2.35vw, .66rem), var(--font-readable-floor)); }
  .recommendation-card { grid-template-columns: minmax(0, 1fr) auto; }
  .bet-slip-settings { grid-template-columns: 1fr 1fr; }
  .bet-slip-settings button { grid-column: 1 / -1; width: 100%; }
  .catalog-menu-row { grid-template-columns: 1fr; gap: .25rem; }
}

@media (min-width: 900px) {
  :root { --font-readable-floor: .7rem; }
  html { font-size: 112.5%; }
  main { padding-top: 1.125rem; padding-bottom: 5.5rem; }
  .catalog-event-grid .event-actions { width: 100%; }
  .catalog-event-grid .event-actions > .button { flex: 1 1 auto; }
  .topbar { padding-right: max(1rem, calc((100vw - 70rem) / 2)); padding-left: max(1rem, calc((100vw - 70rem) / 2)); }
  .bottom-nav {
    right: max(1.5rem, calc((100vw - 46rem) / 2));
    bottom: 1rem;
    left: max(1.5rem, calc((100vw - 46rem) / 2));
    padding: .2rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
  }
  .bet-slip-bubble {
    right: max(1.5rem, calc((100vw - 70rem) / 2));
    bottom: 6rem;
  }
  .bet-slip-dialog {
    height: 100dvh;
    max-height: 100dvh;
    border-radius: var(--radius-lg) 0 0 var(--radius-lg);
  }
  .bet-slip-dialog-body { max-height: calc(100dvh - 7rem); }
}

@media (max-width: 420px) {
  .quick-actions {
    padding-right: 1.25rem;
    scroll-snap-type: x proximity;
    mask-image: linear-gradient(to right, #000 calc(100% - 1.2rem), transparent);
  }
  .quick-actions .button { scroll-snap-align: start; }
  .catalog-period-actions { padding-right: 0; mask-image: none; scroll-snap-type: none; }
}

@media (max-width: 360px) {
  .settings-form-grid { grid-template-columns: 1fr; }
  .settings-field-wide { grid-column: auto; }
  .settings-field #id_sports { grid-template-columns: 1fr; }
  .field-grid, .budget-strip, .detail-list { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

.football-live-metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.football-live-metric { padding: .65rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-live-metric h5 { margin: 0 0 .45rem; }
.football-live-gauge + .football-live-gauge { margin-top: .65rem; }
.football-live-gauge > strong { display: block; margin-bottom: .2rem; font-size: .82rem; }
.football-live-gauge > small { display: block; margin-top: .3rem; color: var(--muted); }
.football-live-gauge-track { position: relative; height: .7rem; overflow: visible; border-radius: 999px; background: color-mix(in srgb, var(--border) 72%, transparent); }
.football-live-gauge-track i { position: absolute; inset: 0 auto 0 0; width: var(--live-observed); border-radius: inherit; background: var(--accent); opacity: .72; }
.football-live-gauge-track b,
.football-live-gauge-track em { position: absolute; top: -.22rem; width: .18rem; height: 1.14rem; border-radius: 999px; transform: translateX(-50%); }
.football-live-gauge-track b { left: var(--live-initial); background: var(--text); }
.football-live-gauge-track em { left: var(--live-final); background: var(--warning); }
.football-live-history { display: flex; gap: .4rem; overflow-x: auto; padding-bottom: .25rem; }
.football-live-history span { min-width: 7.2rem; padding: .45rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-live-history small,
.football-live-history strong { display: block; }
.football-penalty-ranking { display: grid; gap: .35rem; }
.football-penalty-ranking span { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .15rem .55rem; align-items: baseline; padding: .4rem .5rem; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.football-penalty-ranking small { grid-column: 1 / -1; color: var(--muted); }
.football-unified-output .football-penalty-ranking { gap: .22rem; }
.football-unified-output .football-penalty-ranking span { gap: .08rem .35rem; padding: .3rem .38rem; }
.football-unified-output .football-penalty-ranking strong { overflow-wrap: anywhere; font-size: .72rem; }
.football-unified-output .football-penalty-ranking b { color: var(--accent-ink); font-size: .7rem; }
.football-unified-output .football-penalty-ranking small { font-size: max(.58rem, var(--font-readable-floor)); line-height: 1.2; }
.football-player-leaders-by-team { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.football-player-leader-team { min-width: 0; }
.football-player-leader-team-heading { display: flex; gap: .5rem; align-items: center; margin-bottom: .5rem; padding-bottom: .45rem; border-bottom: 1px solid var(--border); }
.football-player-leader-team-heading > span { padding: .16rem .42rem; border-radius: 999px; background: var(--success-soft); color: var(--accent-ink); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 750; }
.football-player-leader-team-heading h4 { min-width: 0; margin: 0; overflow: hidden; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.football-player-leader-team.is-away .football-player-leader-team-heading { flex-direction: row-reverse; }
.football-player-leader-categories { display: grid; gap: .55rem; }
.football-player-leader-categories > section { min-width: 0; padding: .45rem; border-radius: var(--radius-sm); background: var(--surface-soft); }
.football-player-leader-categories h5 { margin: 0 0 .35rem; color: var(--text); font-size: .72rem; }
.football-player-projections > summary { font-weight: 750; }
.football-player-projection-teams { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: .65rem; }
.football-player-projection-team { min-width: 0; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-soft); }
.football-player-projection-team-heading { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .25rem .5rem; align-items: center; padding: .55rem .65rem; border-bottom: 1px solid var(--border); background: var(--surface); }
.football-player-projection-team-heading > span { padding: .16rem .42rem; border-radius: 999px; background: var(--success-soft); color: var(--accent-ink); font-size: max(.6rem, var(--font-readable-floor)); font-weight: 750; }
.football-player-projection-team-heading h4 { min-width: 0; margin: 0; overflow: hidden; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.football-player-projection-team-heading small { color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); white-space: nowrap; }
.football-player-projection-team.is-away .football-player-projection-team-heading { grid-template-columns: auto minmax(0, 1fr) auto; }
.football-player-projection-team.is-away .football-player-projection-team-heading > span { grid-column: 3; grid-row: 1; }
.football-player-projection-team.is-away .football-player-projection-team-heading h4 { grid-column: 2; grid-row: 1; text-align: right; }
.football-player-projection-team.is-away .football-player-projection-team-heading small { grid-column: 1; grid-row: 1; }
.football-player-projection-list { display: grid; }
.football-player-projection-row { margin: 0; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; background: var(--surface); }
.football-player-projection-row:last-child { border-bottom: 0; }
.football-player-projection-row > summary { position: relative; display: grid; grid-template-columns: minmax(8rem, 1.5fr) repeat(3, minmax(3.4rem, .65fr)); gap: .4rem; align-items: center; min-height: 3.35rem; padding: .45rem 1.15rem .45rem .55rem; list-style: none; cursor: pointer; }
.football-player-projection-row > summary::-webkit-details-marker { display: none; }
.football-player-projection-row > summary::after { content: "+"; position: absolute; right: .22rem; color: var(--accent-ink); font-size: .75rem; font-weight: 800; }
.football-player-projection-row[open] > summary::after { content: "−"; }
.football-player-projection-row[open] > summary { background: var(--success-soft); }
.football-player-projection-identity { min-width: 0; padding-right: .35rem; }
.football-player-projection-identity strong,
.football-player-projection-identity small,
.football-player-projection-stat small,
.football-player-projection-stat strong,
.football-player-projection-stat em { display: block; }
.football-player-projection-identity strong { overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.football-player-projection-identity small { margin-top: .12rem; overflow: hidden; color: var(--muted); font-size: max(.58rem, var(--font-readable-floor)); text-overflow: ellipsis; white-space: nowrap; }
.football-player-projection-stat { min-width: 0; text-align: center; }
.football-player-projection-stat small { color: var(--muted); font-size: max(.56rem, var(--font-readable-floor)); }
.football-player-projection-stat strong { color: var(--accent-ink); font-size: .72rem; font-variant-numeric: tabular-nums; }
.football-player-projection-stat em { color: var(--muted); font-size: max(.54rem, var(--font-readable-floor)); font-style: normal; white-space: nowrap; }
.football-player-projection-more { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .35rem; padding: .45rem .55rem .55rem; border-top: 1px dashed var(--border); background: var(--surface-soft); }
.football-player-projection-more > span { min-width: 0; padding: .35rem .4rem; border-radius: var(--radius-sm); background: var(--surface); }
.football-player-projection-more small,
.football-player-projection-more strong,
.football-player-projection-more em { display: block; overflow-wrap: anywhere; }
.football-player-projection-more small { color: var(--muted); font-size: max(.56rem, var(--font-readable-floor)); }
.football-player-projection-more strong { margin-top: .08rem; font-size: .68rem; }
.football-player-projection-more em { color: var(--muted); font-size: max(.54rem, var(--font-readable-floor)); font-style: normal; }
.football-player-projection-data { grid-column: 1 / -1; }
.football-scenario-sequence { margin: .6rem 0; padding-left: 1.4rem; }

@media (min-width: 900px) {
  .football-player-leaders { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .football-live-metric-grid { grid-template-columns: 1fr; }
  .identity-alert-banner { align-items: stretch; flex-direction: column; }
  .identity-alert-banner .button { width: 100%; }
  .identity-review-heading { align-items: flex-start; flex-direction: column; }
  .identity-review-form { grid-template-columns: 1fr; }
  .football-team-metrics { grid-template-columns: 1fr; }
  .football-team-goals-list { grid-template-columns: 1fr; }
  .football-player-leaders-by-team { grid-template-columns: 1fr; }
  .football-player-projection-teams { grid-template-columns: 1fr; }
  .football-player-projection-row > summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .football-player-projection-identity { grid-column: 1 / -1; }
  .football-player-projection-more { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .football-player-projection-data { grid-column: 1 / -1; }
}
