[hidden] {
  display: none !important;
}

html,
body {
  overflow-x: clip;
}

.home-page {
  margin-top: 0;
}

.topbar {
  position: relative;
  gap: 12px;
  padding-top: max(14px, env(safe-area-inset-top));
  padding-bottom: 14px;
  background: var(--black);
  box-shadow: 0 0 0 100vmax var(--black);
  clip-path: inset(0 -100vmax);
  isolation: isolate;
}

.topbar::before {
  display: none;
}

.topbar > * {
  position: relative;
  z-index: 1;
}

.topbar > div:first-child {
  flex: 0 0 auto;
}

.brand-logo {
  width: min(150px, 21vw);
  max-height: 30px;
}

.top-nav {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.top-nav::-webkit-scrollbar {
  display: none;
}

.mode-button {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 0 6px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 8px;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.06);
  font-size: clamp(0.64rem, 0.68vw, 0.74rem);
  font-weight: 900;
  cursor: pointer;
  white-space: nowrap;
}

.mode-button:hover,
.mode-button:focus-visible,
.mode-button.is-active {
  border-color: var(--brand);
  background: var(--brand);
  outline: 0;
}

.mode-button.login-button {
  min-height: 38px;
  padding: 0 7px;
  border-color: #ffffff;
  color: var(--black);
  background: #ffffff;
  font-size: clamp(0.63rem, 0.66vw, 0.72rem);
}

.mode-button.login-button.is-active,
.mode-button.login-button:hover,
.mode-button.login-button:focus-visible {
  color: #ffffff;
  border-color: var(--brand);
  background: var(--brand);
}

.static-page {
  display: grid;
  min-height: calc(100vh - 130px);
  padding: clamp(34px, 7vw, 84px) 0;
  place-items: center;
}

.static-page-card {
  display: grid;
  gap: 14px;
  width: min(100%, 900px);
  padding: clamp(22px, 4vw, 38px);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 42px rgba(17, 24, 23, 0.1);
}

.static-page-kicker {
  color: var(--brand);
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.static-page-card h1 {
  color: var(--ink);
  font-size: clamp(2rem, 4vw, 3rem);
}

.static-page-card > p:not(.static-page-kicker) {
  max-width: 760px;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.58;
}

.static-page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}

.home-hero {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
  align-items: center;
  margin-right: calc(-1 * max(24px, calc((100vw - 1500px) / 2 + 24px)));
  margin-left: calc(-1 * max(24px, calc((100vw - 1500px) / 2 + 24px)));
  padding-right: max(24px, calc((100vw - 1500px) / 2 + 24px));
  padding-left: max(24px, calc((100vw - 1500px) / 2 + 24px));
  border-radius: 0;
  background: #050505;
}

.home-hero::before {
  background-image:
    linear-gradient(90deg, rgba(5, 5, 5, 0.92), rgba(5, 5, 5, 0.76) 42%, rgba(83, 10, 8, 0.42)),
    url("/assets/home-hero-racing-v44.png");
  background-position: center;
  background-size: cover;
}

.home-hero::after {
  height: 100%;
  background: radial-gradient(circle at 72% 18%, rgba(191, 29, 23, 0.24), transparent 42%);
}

.home-hero-side {
  display: grid;
  gap: 14px;
  align-self: center;
  min-width: 0;
}

.home-gain-card,
.home-race-card {
  max-width: none;
}

.home-quinte-card-shell {
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.home-quinte-card-shell .programme-quinte-card {
  height: 100%;
}

.home-gain-card {
  position: relative;
  display: grid;
  gap: 12px;
  min-height: 254px;
  overflow: hidden;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  color: #ffffff;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.06)),
    rgba(5, 5, 5, 0.38);
  box-shadow: 0 22px 44px rgba(5, 5, 5, 0.26);
  backdrop-filter: blur(14px);
}

.home-gain-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: linear-gradient(180deg, var(--brand), #ff7a5f, #f3d56a);
}

.home-gain-card::after {
  content: "";
  position: absolute;
  right: -58px;
  bottom: -58px;
  width: 158px;
  height: 158px;
  border: 22px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
}

.home-gain-card > * {
  position: relative;
  z-index: 1;
}

.home-gain-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.home-gain-preview-label,
.home-gain-delay {
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.74rem;
  font-weight: 900;
  text-transform: uppercase;
}

.home-gain-preview-label {
  padding: 5px 8px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
}

.home-gain-card strong {
  color: #ffffff;
  font-size: 1.08rem;
  line-height: 1.18;
}

.home-gain-amount {
  display: grid;
  gap: 8px;
}

.home-gain-amount .race-bet-badge {
  justify-self: start;
  width: fit-content;
}

.home-gain-amount b {
  color: #ffffff;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 0.95;
  letter-spacing: 0;
}

.home-gain-number {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  color: var(--ink);
  background: #ffffff;
  font-size: 0.88rem;
  font-weight: 950;
}

.home-gain-visual {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.home-gain-visual i {
  position: absolute;
  display: block;
  width: 18px;
  height: 18px;
  border-radius: 0;
  background: #ffd84e;
  clip-path: polygon(50% 0, 61% 34%, 98% 34%, 68% 55%, 79% 91%, 50% 69%, 21% 91%, 32% 55%, 2% 34%, 39% 34%);
  box-shadow:
    0 0 0 4px rgba(255, 216, 78, 0.1),
    0 0 18px rgba(255, 216, 78, 0.62);
  opacity: 0.86;
}

.home-gain-visual i:nth-child(1) {
  top: 18%;
  right: 18%;
}

.home-gain-visual i:nth-child(2) {
  top: 34%;
  right: 8%;
  width: 12px;
  height: 12px;
}

.home-gain-visual i:nth-child(3) {
  right: 33%;
  bottom: 22%;
}

.home-gain-visual i:nth-child(4) {
  right: 12%;
  bottom: 18%;
  width: 22px;
  height: 22px;
  background: #ffc533;
}

.home-gain-visual i:nth-child(5) {
  top: 12%;
  right: 44%;
  width: 10px;
  height: 10px;
}

.home-gain-visual i::before,
.home-gain-visual i::after {
  content: none;
}

.home-gains-overview {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(360px, 1fr);
  gap: 28px;
  align-items: center;
}

.home-gains-copy {
  display: grid;
  gap: 12px;
}

.home-gains-copy h2 span {
  color: var(--brand);
}

.home-gains-board {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.home-gain-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.home-gain-filters button {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  color: var(--muted);
  background: transparent;
  font-weight: 950;
  cursor: pointer;
}

.home-gain-filters button.is-active {
  border-color: transparent;
  background: transparent;
}

.home-gain-filters .race-bet-badge {
  transform: translateY(1px);
}

.home-filter-all {
  display: inline-grid;
  place-items: center;
  min-height: 31px;
  padding: 0 12px;
  border-radius: 8px;
  color: var(--muted);
  background: #eceff2;
  font-size: 0.8rem;
  font-weight: 950;
}

.home-gain-filters button.is-active .race-bet-badge,
.home-gain-filters button.is-active .home-filter-all {
  color: #ffffff;
  background: var(--black);
}

.home-gain-row-report .race-bet-badge,
.home-gain-filters .race-bet-badge {
  color: #ffffff;
}

.home-gain-list {
  display: grid;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 16px 34px rgba(17, 24, 23, 0.08);
}

.home-gain-row {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(108px, auto) minmax(116px, auto);
  gap: 14px;
  align-items: center;
  min-width: 0;
  padding: 14px;
  border-bottom: 1px solid var(--line);
}

.home-gain-row:last-child {
  border-bottom: 0;
}

.home-gain-row > div:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.home-gain-row > div:first-child > span,
.home-gain-row small,
.home-gains-note {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.34;
}

.home-gain-row strong {
  overflow: hidden;
  color: var(--ink);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-gain-row p {
  display: flex;
  flex-wrap: nowrap;
  gap: 5px;
  color: var(--ink);
}

.home-gain-row-report {
  display: grid;
  justify-items: end;
  gap: 6px;
}

.home-gain-row-report strong {
  color: var(--brand-dark);
  font-size: 1.05rem;
}

.home-gains-note {
  padding-left: 2px;
}

.home-insights-section {
  align-items: center;
}

.home-heatmap-preview {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 18px;
  border: 1px solid rgba(17, 24, 23, 0.08);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(244, 244, 242, 0.94)),
    #ffffff;
  box-shadow: 0 18px 40px rgba(17, 24, 23, 0.1);
}

.home-heatmap-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.home-heatmap-tabs button {
  min-height: 34px;
  padding: 8px 12px;
  border: 0;
  border-radius: 8px;
  color: var(--muted);
  background: #ffffff;
  font-size: 0.86rem;
  font-weight: 950;
  cursor: pointer;
}

.home-heatmap-tabs button.is-active {
  color: var(--black);
  background: #d9e8e5;
}

.home-heatmap-tabs button:hover,
.home-heatmap-tabs button:focus-visible {
  color: #ffffff;
  background: var(--brand);
  outline: 0;
}

.home-heatmap-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.home-heatmap-table {
  width: 100%;
  min-width: 620px;
  border-collapse: separate;
  border-spacing: 0;
}

.home-heatmap-table th,
.home-heatmap-table td {
  padding: 7px 6px;
  border-bottom: 1px solid rgba(17, 24, 23, 0.08);
  text-align: center;
  vertical-align: middle;
}

.home-heatmap-table th {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.home-heatmap-table th:nth-child(2),
.home-heatmap-table td:nth-child(2) {
  text-align: left;
}

.home-heatmap-table td:nth-child(2) {
  min-width: 146px;
}

.home-heatmap-table td:nth-child(2) strong,
.home-heatmap-table td:nth-child(2) small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-heatmap-table td:nth-child(2) strong {
  color: var(--ink);
  font-size: 0.82rem;
}

.home-heatmap-table td:nth-child(2) small {
  color: var(--muted);
  font-size: 0.72rem;
}

.home-heatmap-preview a {
  justify-self: start;
  color: var(--brand-dark);
  font-size: 0.88rem;
  font-weight: 950;
  text-decoration: none;
}

.content-layout.is-quinte {
  display: block;
}

.content-layout.is-quinte .course-column {
  width: 100%;
  max-width: none;
  margin: 0;
}

.content-layout.is-quinte .programme-panel {
  display: none;
}

.content-layout.is-quinte .course-hero {
  position: relative;
  width: 100vw;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  padding: clamp(22px, 3vw, 34px) 24px;
  overflow: hidden;
  border-radius: 0;
  background:
    linear-gradient(115deg, rgba(5, 5, 5, 0.98) 0%, rgba(20, 3, 2, 0.95) 40%, rgba(127, 18, 14, 0.74) 72%, rgba(5, 5, 5, 0.9) 100%),
    linear-gradient(90deg, rgba(5, 5, 5, 0.9), rgba(5, 5, 5, 0.2)),
    url("/assets/quinte-hero-racing.png") center / cover no-repeat;
}

.content-layout.is-quinte .course-hero-top,
.content-layout.is-quinte .hero-panels {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(0, 1fr);
  gap: 12px;
  width: min(100%, 1360px);
  margin-right: auto;
  margin-left: auto;
}

.content-layout.is-quinte .course-hero-top {
  align-items: stretch;
}

.content-layout.is-quinte .race-meta {
  align-self: end;
  margin: 0;
}

.content-layout.is-quinte .race-main {
  gap: 8px;
}

.quinte-date-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.quinte-date-shortcuts button {
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 8px;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
  font-weight: 950;
  cursor: pointer;
}

.quinte-date-shortcuts button:hover,
.quinte-date-shortcuts button:focus-visible {
  border-color: #ffffff;
  background: rgba(255, 255, 255, 0.16);
  outline: 0;
}

.quinte-date-shortcuts button.is-active {
  border-color: #ffffff;
  color: var(--black);
  background: #ffffff;
}

.quinte-title-row,
.race-title-line,
.race-bets {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.quinte-plus-badge {
  display: inline-grid;
  place-items: center;
  min-width: 38px;
  min-height: 34px;
  padding: 0 8px;
  border-radius: 8px;
  color: #ffffff;
  background: var(--brand);
  font-size: 1rem;
  font-weight: 950;
  line-height: 1;
}

#quinte-main-title {
  color: #ffffff;
  font-size: clamp(2rem, 4vw, 3.05rem);
  line-height: 1;
}

.race-title-line {
  gap: 9px;
}

.content-layout.is-quinte #race-title {
  color: #ffffff;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 950;
  line-height: 1.08;
}

.meta-difficulty {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.meta-difficulty i {
  width: 13px;
  height: 13px;
  border-radius: 4px;
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.08);
}

.difficulty-dots {
  --difficulty-color: #2f8f5b;
}

.difficulty-dots i {
  background: #deded9;
}

.difficulty-dots i.is-on {
  background: var(--difficulty-color);
}

.difficulty-dots.difficulty-level-1 {
  --difficulty-color: #2f8f5b;
}

.difficulty-dots.difficulty-level-2 {
  --difficulty-color: #f2c94c;
}

.difficulty-dots.difficulty-level-3 {
  --difficulty-color: #f28c28;
}

.difficulty-dots.difficulty-level-4 {
  --difficulty-color: #d92d20;
}

.weather-meta dd,
.weather-chip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.weather-chip {
  width: fit-content;
  min-height: 26px;
  padding: 3px 8px 3px 4px;
  border-radius: 8px;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.16);
  font-size: 0.82rem;
  font-weight: 850;
  line-height: 1.1;
}

.weather-chip i {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 7px;
  color: var(--ink);
  background: #f3d56a;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
}

.weather-temp i {
  color: #ffffff;
  background: var(--brand);
}

.weather-wind i {
  color: #ffffff;
  background: #16a8cf;
}

.race-bets {
  margin-top: 3px;
}

.race-bet-badge {
  display: inline-grid;
  place-items: center;
  min-height: 30px;
  padding: 0 11px;
  border-radius: 8px;
  color: #ffffff;
  background: #08745f;
  font-size: 0.82rem;
  font-weight: 950;
  line-height: 1;
}

.race-bet-badge.bet-simple {
  background: #16a8cf;
}

.race-bet-badge.bet-couple,
.race-bet-badge.bet-couple-gagnant,
.race-bet-badge.bet-couple-place {
  background: #f26b21;
}

.race-bet-badge.bet-tierce {
  background: #087a3c;
}

.race-bet-badge.bet-quarte {
  background: #0c72b8;
}

.race-bet-badge.bet-quinte {
  background: var(--brand);
}

.race-bet-badge.bet-2sur4 {
  background: #60308f;
}

.race-bet-badge.bet-multi {
  background: #d40078;
}

.race-bet-badge.bet-e-report-plus {
  background: #3b1a75;
}

.quinte-tabs {
  position: sticky;
  z-index: 8;
  top: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: min(100%, 1360px);
  margin: 14px auto 0;
  padding: 10px;
  overflow: visible;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 30px rgba(17, 24, 23, 0.1);
}

.quinte-tab {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #f8f8f6;
  font-size: 0.9rem;
  font-weight: 850;
  cursor: pointer;
}

.quinte-tab:hover,
.quinte-tab:focus-visible {
  border-color: rgba(191, 29, 23, 0.3);
  color: var(--brand-dark);
  background: #fff7f6;
  outline: 0;
}

.quinte-tab.is-active {
  border-color: var(--black);
  color: #ffffff;
  background: var(--black);
}

.quinte-panel {
  display: none;
  width: min(100%, 1360px);
  margin: 0 auto;
  padding: 22px 0;
}

.quinte-panel.is-active {
  display: block;
}

.quinte-ticket-grid {
  margin-bottom: 14px;
}

.quinte-analysis-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.pronostic-layout {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr);
  gap: 14px;
  align-items: start;
}

.pronostic-main,
.pronostic-sidebar {
  min-width: 0;
}

.pronostic-sidebar {
  display: grid;
  gap: 10px;
}

.pronostic-sidebar .ticket-grid,
.pronostic-sidebar .quinte-analysis-list,
.method-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.pronostic-sidebar .ticket-card {
  min-height: 0;
}

.pronostic-sidebar .ticket-card.wide .ticket-numbers {
  grid-template-columns: repeat(5, 34px);
}

.course-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.course-summary-card,
.analysis-runner-card {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 12px 28px rgba(17, 24, 23, 0.08);
}

.course-summary-card-wide {
  grid-column: 1 / -1;
  background: linear-gradient(180deg, #ffffff, rgba(191, 29, 23, 0.06));
}

.course-summary-card:not(.course-summary-card-wide) {
  border-color: rgba(191, 29, 23, 0.16);
  background: linear-gradient(180deg, #fffaf7, #f5ece8);
}

.course-summary-card span {
  display: block;
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 900;
  text-transform: uppercase;
}

.course-summary-card strong {
  display: block;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.28;
}

.course-summary-card strong .weather-chip {
  display: inline-flex;
  margin: 2px 5px 2px 0;
  color: var(--ink);
  background: #ffffff;
  font-size: 0.82rem;
  font-weight: 850;
  text-transform: none;
}

.course-summary-card p {
  color: var(--ink);
  font-size: 0.96rem;
  line-height: 1.45;
}

.analysis-runner-list {
  display: grid;
  gap: 10px;
}

.analysis-runner-card {
  display: grid;
  gap: 12px;
}

.analysis-runner-head {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.analysis-runner-head h3 {
  margin-bottom: 3px;
}

.analysis-runner-head p,
.analysis-runner-text {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.4;
}

.analysis-runner-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.analysis-runner-meta div {
  min-width: 0;
  padding: 9px 10px;
  border-radius: 8px;
  background: #f8f8f6;
}

.analysis-runner-meta dt {
  margin: 0 0 3px;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 900;
  text-transform: uppercase;
}

.analysis-runner-meta dd {
  margin: 0;
  color: var(--ink);
  font-size: 0.85rem;
  font-weight: 850;
  line-height: 1.25;
}

.partants-seo-card,
.partants-lexicon,
.partants-category-card,
.non-starters-card {
  display: grid;
  gap: 12px;
  margin-bottom: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(17, 24, 23, 0.08);
}

.partants-seo-card h3,
.partants-lexicon h3,
.partants-category-head h3,
.non-starters-card h3 {
  color: var(--ink);
  font-size: 1.35rem;
}

.partants-seo-card p,
.partants-category-head p,
.non-starters-card p {
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.52;
}

.partants-seo-card strong {
  color: var(--ink);
}

.content-layout.is-quinte .radar-panel {
  margin-bottom: 14px;
}

.content-layout.is-quinte .radar-table {
  min-width: 1240px;
}

.content-layout.is-quinte .radar-table th,
.content-layout.is-quinte .radar-table td {
  padding: 8px 6px;
  font-size: 0.82rem;
}

.radar-music {
  max-width: 145px;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 400;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.radar-sex {
  color: var(--brand-dark);
  font-weight: 950;
  text-align: center;
}

.radar-entourage {
  min-width: 130px;
}

.radar-entourage strong,
.radar-entourage span {
  display: block;
  line-height: 1.25;
}

.radar-entourage strong {
  color: var(--ink);
  font-weight: 900;
}

.radar-entourage span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.content-layout.is-quinte .radar-cell {
  min-width: 34px;
  min-height: 30px;
  padding: 0 6px;
  font-size: 0.78rem;
}

.content-layout.is-quinte .radar-number {
  width: 30px;
  height: 30px;
}

.equipment-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.equipment-chip {
  display: inline-grid;
  place-items: center;
  min-height: 26px;
  padding: 0 7px;
  border-radius: 6px;
  color: #07523f;
  background: #d9ecdf;
  font-size: 0.74rem;
  font-weight: 900;
}

.lexicon-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.lexicon-grid article {
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8f8f6;
}

.lexicon-grid strong {
  display: block;
  margin-bottom: 4px;
  color: var(--brand-dark);
  font-size: 0.82rem;
}

.lexicon-grid p {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.35;
}

.heatmap-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.heatmap-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 850;
}

.heatmap-legend i {
  width: 34px;
  height: 18px;
  border-radius: 4px;
  background: #f0f0ee;
}

.heatmap-legend i.hot {
  background: var(--brand);
}

.heatmap-legend i.warm {
  background: #f3d56a;
}

.heatmap-legend i.cool {
  background: #c9e2e0;
}

.heatmap-legend i.empty {
  background: #f0f0ee;
}

.partants-category-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.partant-category-tab {
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #f8f8f6;
  font-weight: 900;
  cursor: pointer;
}

.partant-category-tab:hover,
.partant-category-tab:focus-visible {
  border-color: rgba(191, 29, 23, 0.3);
  color: var(--brand-dark);
  background: #fff7f6;
  outline: 0;
}

.partant-category-tab.is-active {
  color: #ffffff;
  border-color: var(--black);
  background: var(--black);
}

.partants-category-table {
  min-width: 720px;
}

.non-starters-card:empty {
  display: none;
}

.radar-table tr.is-non-starter td {
  color: #8c8c88;
  background: #f3f3f1;
}

.radar-table tr.is-non-starter .radar-name,
.radar-table tr.is-non-starter .radar-music,
.radar-table tr.is-non-starter .radar-sex,
.radar-table tr.is-non-starter .radar-entourage strong,
.radar-table tr.is-non-starter .radar-entourage span {
  color: #8c8c88;
  font-weight: 700;
}

.content-layout.is-quinte .radar-number.is-non-starter {
  width: 34px;
  color: #6d6d68;
  background: #ddddda;
  font-size: 0.72rem;
}

.radar-non-starter-cell {
  text-align: center;
}

.radar-non-starter-cell span,
.runner-non-starter {
  display: inline-grid;
  place-items: center;
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid #d9d9d4;
  border-radius: 8px;
  color: #696965;
  background: #ffffff;
  font-size: 0.82rem;
  font-weight: 900;
}

.quinte-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 12px 28px rgba(17, 24, 23, 0.08);
}

.quinte-table {
  width: 100%;
  min-width: 780px;
  border-collapse: collapse;
}

.quinte-table th,
.quinte-table td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}

.quinte-table th {
  color: var(--muted);
  background: #f8f8f6;
  font-size: 0.76rem;
  font-weight: 900;
  text-transform: uppercase;
}

.quinte-table tr:last-child td {
  border-bottom: 0;
}

.quinte-table tr.is-highlight td {
  background: rgba(191, 29, 23, 0.06);
}

.winner-category-card {
  display: grid;
  gap: 14px;
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 32px rgba(17, 24, 23, 0.1);
}

.winner-category-head {
  display: grid;
  gap: 7px;
}

.winner-category-head h3 {
  color: var(--ink);
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  line-height: 1.08;
}

.winner-category-head p,
.winner-category-note {
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.5;
}

.winner-category-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.winner-category-table {
  width: 100%;
  min-width: 860px;
  border-collapse: collapse;
}

.winner-category-table th,
.winner-category-table td {
  padding: 13px 14px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}

.winner-category-table tr:last-child td {
  border-bottom: 0;
}

.winner-category-table th {
  color: var(--ink);
  background: #fbfbfa;
  font-size: 0.8rem;
  font-weight: 950;
}

.winner-category-table tr.is-leading td {
  background: rgba(8, 116, 95, 0.06);
}

.stat-value-pill {
  display: inline-grid;
  place-items: center;
  min-width: 82px;
  min-height: 34px;
  padding: 0 10px;
  border-radius: 6px;
  color: var(--ink);
  background: #eeeeec;
  font-weight: 900;
}

.winner-category-table tr.is-leading .stat-value-pill {
  color: #07523f;
  background: #d9ecdf;
}

.winner-category-note {
  color: var(--ink);
}

.quinte-stat-grid,
.quinte-bet-grid {
  display: grid;
  gap: 10px;
  margin-bottom: 14px;
}

.quinte-stat-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.quinte-bet-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.quinte-stat-grid article,
.bet-advice-card {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 12px 28px rgba(17, 24, 23, 0.08);
}

.quinte-stat-grid article > span,
.bet-advice-card > span {
  display: block;
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 900;
  text-transform: uppercase;
}

.quinte-stat-grid strong {
  display: block;
  margin-bottom: 5px;
  color: var(--brand-dark);
  font-size: 1.7rem;
}

.quinte-stat-grid p,
.bet-advice-card p {
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.35;
}

.bet-advice-card div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  min-height: 42px;
  margin: 8px 0;
}

.bet-advice-card .number-chip {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
}

.content-layout.is-quinte .number-chip {
  border-radius: 8px;
}

.reports-list {
  display: grid;
  gap: 18px;
}

.reports-intro-card,
.report-section {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(17, 24, 23, 0.08);
}

.reports-intro-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.reports-intro-card h3,
.report-section-head h3 {
  color: var(--ink);
  font-size: 1.25rem;
  line-height: 1.18;
}

.reports-intro-card p,
.report-section-head p {
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.reports-arrival-mini {
  display: grid;
  gap: 6px;
  min-width: 180px;
  padding: 10px;
  border-radius: 8px;
  background: #f8f8f6;
}

.reports-arrival-mini span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.reports-arrival-mini p,
.report-combo {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.report-section {
  display: grid;
  gap: 14px;
}

.report-section-head h3 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.report-section-head .race-bet-badge {
  min-height: 24px;
  padding: 0 8px;
  font-size: 0.7rem;
}

.report-source-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.report-source-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfbfa;
}

.report-source-head {
  display: grid;
  gap: 3px;
  padding: 12px;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
}

.report-source-head strong {
  color: var(--ink);
  font-size: 0.95rem;
}

.report-source-head span {
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.25;
}

.report-table {
  width: 100%;
  border-collapse: collapse;
}

.report-table th,
.report-table td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}

.report-table th {
  color: var(--muted);
  background: #f8f8f6;
  font-size: 0.7rem;
  font-weight: 950;
  text-transform: uppercase;
}

.report-table tr:last-child td {
  border-bottom: 0;
}

.report-table td:first-child {
  color: var(--ink);
  font-weight: 850;
}

.report-number {
  width: 22px;
  height: 22px;
  font-size: 0.68rem;
}

.report-amount,
.report-placeholder {
  display: inline-grid;
  place-items: center;
  min-height: 27px;
  padding: 0 9px;
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 900;
}

.report-amount {
  color: #07523f;
  background: #d9ecdf;
}

.report-placeholder {
  color: #77736e;
  background: #eeeeec;
}

.seo-content-card {
  display: grid;
  gap: 12px;
  margin-top: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(17, 24, 23, 0.08);
}

.seo-content-card h3 {
  color: var(--ink);
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  line-height: 1.12;
}

.seo-content-card p,
.seo-content-card li {
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.58;
}

.seo-content-card strong {
  color: var(--ink);
}

.seo-content-card ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
}

.comparator-shell {
  display: grid;
  gap: 16px;
}

.comparator-controls,
.comparator-table-wrap,
.comparator-history-card {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(17, 24, 23, 0.08);
}

.comparator-controls {
  display: grid;
  gap: 14px;
}

.comparator-intro {
  display: grid;
  gap: 5px;
}

.comparator-intro h3,
.comparator-history-head h3 {
  color: var(--ink);
  font-size: 1.25rem;
}

.comparator-intro p,
.comparator-history-head p {
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.48;
}

.comparator-select-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 10px;
  align-items: end;
}

.comparator-select-grid label {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.comparator-select-grid label span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 900;
  text-transform: uppercase;
}

.comparator-select-grid select,
.comparator-select-grid button {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font: inherit;
  font-weight: 850;
}

.comparator-select-grid select {
  min-width: 0;
  padding: 0 10px;
  color: var(--ink);
  background: #f8f8f6;
}

.comparator-select-grid button {
  min-width: 130px;
  padding: 0 15px;
  color: #ffffff;
  background: var(--black);
  cursor: pointer;
}

.comparator-table-wrap {
  overflow-x: auto;
  padding: 0;
}

.comparator-table {
  width: 100%;
  min-width: 920px;
  border-collapse: collapse;
}

.comparator-table th,
.comparator-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  text-align: center;
  vertical-align: middle;
}

.comparator-table th:first-child,
.comparator-table td:first-child {
  width: 32%;
  text-align: left;
}

.comparator-table th {
  color: var(--ink);
  background: #f8f8f6;
  font-size: 0.82rem;
  font-weight: 950;
}

.comparator-table th:not(:first-child) {
  background: #f1efeb;
}

.comparator-table td:first-child strong,
.comparator-table td:first-child span {
  display: block;
}

.comparator-table td:first-child strong {
  color: var(--ink);
  font-size: 0.9rem;
}

.comparator-table td:first-child span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.35;
}

.comparator-table td:not(:first-child) {
  color: var(--ink);
  background: rgba(248, 248, 246, 0.7);
  font-weight: 850;
}

.comparator-table td.is-best {
  color: #07523f;
  background: #d9ecdf;
}

.comparator-table tr:last-child td {
  border-bottom: 0;
}

.comparator-history-card {
  display: grid;
  gap: 14px;
}

.comparator-history-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.comparator-history-pair {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fbfbfa;
}

.comparator-history-pair h4 {
  padding: 12px;
  color: var(--ink);
  background: #ffffff;
  font-size: 0.92rem;
  line-height: 1.25;
}

.comparator-history-pair table {
  width: 100%;
  border-collapse: collapse;
}

.comparator-history-pair th,
.comparator-history-pair td {
  padding: 9px 10px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.76rem;
  text-align: left;
  vertical-align: top;
}

.comparator-history-pair th {
  color: var(--ink);
  background: #f8f8f6;
  font-weight: 950;
}

.category-pill {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 9px;
  border-radius: 999px;
  color: var(--ink);
  background: var(--sky);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.category-pill.favori {
  color: #ffffff;
  background: var(--brand);
}

.category-pill.outsider {
  background: #f3d56a;
}

.category-pill.tocard {
  color: #ffffff;
  background: var(--black);
}

.probability-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.content-layout.is-quinte .probability-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
}

.probability-item {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 4px 2px;
  border: 0;
  background: transparent;
  text-align: center;
}

.probability-item strong {
  color: #ffffff;
  font-size: 1.08rem;
}

.probability-item span {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.7rem;
}

.hero-probability {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.hero-probability .probability-grid {
  align-self: center;
  padding: 10px 12px;
}

.hero-comparison {
  display: grid;
  gap: 10px;
}

.hero-comparison div {
  display: grid;
  gap: 7px;
}

.hero-comparison > div > span {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.hero-comparison p {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.hero-comparison b,
.comparison-number {
  display: inline-grid;
  place-items: center;
  width: 31px;
  height: 31px;
  border-radius: 8px;
  color: var(--ink);
  background: #ffffff;
  font-size: 0.86rem;
  font-weight: 950;
}

.hero-comparison b.is-hit,
.comparison-number.is-hit {
  color: #ffffff;
  background: #1666c1;
}

.hero-card.hero-vs {
  color: var(--ink);
  border-color: rgba(17, 24, 23, 0.1);
  background: #ffffff;
  box-shadow: 0 16px 34px rgba(5, 5, 5, 0.18);
}

.hero-card.hero-vs h3 {
  color: var(--brand-dark);
  border-bottom-color: var(--line);
  background: #ffffff;
}

.hero-card.hero-vs .hero-comparison > div > span {
  color: var(--muted);
}

.hero-card.hero-vs .hero-comparison b,
.hero-card.hero-vs .comparison-number {
  color: var(--ink);
  border: 1px solid #deded9;
  background: #f0f1ee;
}

.hero-card.hero-vs .hero-comparison b.is-podium-hit,
.hero-card.hero-vs .comparison-number.is-podium-hit {
  color: #ffffff;
  border-color: #08745f;
  background: #08745f;
}

.hero-card.hero-vs .hero-comparison b.is-top5-hit,
.hero-card.hero-vs .comparison-number.is-top5-hit {
  color: #07523f;
  border-color: #9ad2b5;
  background: #bfe3cf;
}

.quinte-result-band {
  margin: 0 0 14px;
  padding: 0;
}

.programme-overview {
  display: block;
  width: 100vw;
  margin: 0 calc(50% - 50vw) 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.programme-hero {
  width: 100%;
  color: #ffffff;
  background:
    linear-gradient(115deg, rgba(5, 5, 5, 0.96) 0%, rgba(20, 3, 2, 0.94) 45%, rgba(127, 18, 14, 0.76) 76%, rgba(5, 5, 5, 0.9) 100%),
    url("/assets/quinte-hero-racing.png") center / cover no-repeat;
  box-shadow: 0 18px 42px rgba(5, 5, 5, 0.18);
}

.programme-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 430px);
  gap: clamp(18px, 4vw, 52px);
  width: min(100%, 1360px);
  margin: 0 auto;
  padding: clamp(28px, 5vw, 62px) 24px;
}

.programme-hero-main {
  display: grid;
  gap: 14px;
  align-content: center;
  min-width: 0;
}

.programme-date-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 4px;
}

.programme-date-shortcuts button {
  min-height: 36px;
  padding: 0 18px;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 8px;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
  font-weight: 950;
  cursor: pointer;
}

.programme-date-shortcuts button:hover,
.programme-date-shortcuts button:focus-visible {
  border-color: rgba(255, 255, 255, 0.72);
  background: rgba(255, 255, 255, 0.16);
  outline: 0;
}

.programme-date-shortcuts button.is-active {
  color: var(--black);
  border-color: #ffffff;
  background: #ffffff;
}

.programme-kicker,
.programme-section-head > p,
.programme-table-head > div > p {
  color: #d8a23b;
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.programme-overview #programme-title {
  color: #ffffff;
  font-size: clamp(2.35rem, 5vw, 4.45rem);
  line-height: 0.98;
}

#programme-subtitle {
  color: rgba(255, 255, 255, 0.94);
  font-size: 1.02rem;
  font-weight: 900;
}

.programme-seo-text {
  max-width: 830px;
  color: rgba(255, 255, 255, 0.84);
  font-size: 0.98rem;
  line-height: 1.58;
}

.programme-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 6px;
}

.programme-stat {
  min-width: 0;
  padding: 13px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
}

.programme-stat span {
  display: block;
  margin-bottom: 4px;
  color: rgba(255, 255, 255, 0.66);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.programme-stat strong {
  display: block;
  color: #ffffff;
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  line-height: 1.12;
}

.featured-quinte {
  min-width: 0;
  align-self: center;
}

.programme-quinte-card {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  background: rgba(5, 5, 5, 0.62);
  box-shadow: 0 18px 38px rgba(5, 5, 5, 0.28);
  backdrop-filter: blur(10px);
  cursor: pointer;
}

.programme-quinte-title {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.programme-quinte-title p,
.programme-quinte-prono span {
  margin-bottom: 3px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.76rem;
  font-weight: 950;
  text-transform: uppercase;
}

.programme-quinte-title h2 {
  color: #ffffff;
  font-size: 1.28rem;
  line-height: 1.15;
}

.programme-quinte-meta {
  color: rgba(255, 255, 255, 0.84);
  font-size: 0.9rem;
  line-height: 1.42;
}

.programme-quinte-bets,
.programme-bet-list,
.programme-quinte-tabs,
.programme-quinte-prono p {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.programme-quinte-prono .programme-number {
  color: var(--black);
  border: 1px solid rgba(255, 255, 255, 0.72);
  background: #ffffff;
  box-shadow: 0 5px 12px rgba(5, 5, 5, 0.22);
}

.programme-quinte-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 16px;
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 8px;
  color: var(--black);
  background: #ffffff;
  font-weight: 950;
  cursor: pointer;
}

.programme-quinte-cta:hover,
.programme-quinte-cta:focus-visible {
  color: #ffffff;
  border-color: var(--brand);
  background: var(--brand);
  outline: 0;
}

.programme-quinte-tabs button {
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.1);
  font-size: 0.76rem;
  font-weight: 900;
  cursor: pointer;
}

.programme-quinte-tabs button:hover,
.programme-quinte-tabs button:focus-visible {
  background: var(--brand);
  outline: 0;
}

.race-bet-badge.bet-trio {
  background: #0f8b49;
}

.race-bet-badge.bet-e-super-quatre {
  background: #11733e;
}

.race-bet-badge.bet-e-report-plus {
  background: #3b1a75;
}

.programme-content {
  display: grid;
  gap: 44px;
  width: min(100%, 1360px);
  margin: 0 auto;
  padding: 34px 24px 72px;
}

.programme-legacy-compat {
  display: none !important;
}

.programme-reunions-section,
.programme-table-panel,
.programme-seo-section {
  min-width: 0;
}

.programme-section-head {
  display: grid;
  gap: 6px;
  margin-bottom: 16px;
}

.programme-section-head h2,
.programme-table-head h2 {
  color: var(--ink);
  font-size: clamp(1.5rem, 2.3vw, 2.2rem);
}

.programme-section-head.centered {
  justify-items: center;
  gap: 10px;
  text-align: center;
}

.programme-section-head.centered span {
  max-width: 780px;
  color: var(--muted);
  line-height: 1.52;
}

.programme-reunion-list {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 2px 0 8px;
  scrollbar-width: thin;
}

.programme-reunion-card {
  display: grid;
  grid-template-columns: 50px minmax(118px, 1fr);
  gap: 4px 10px;
  align-items: center;
  min-width: 190px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(17, 24, 23, 0.08);
  text-align: left;
  cursor: pointer;
}

.programme-reunion-card span {
  grid-row: span 2;
  display: grid;
  place-items: center;
  min-height: 48px;
  border-radius: 8px;
  color: #ffffff;
  background: var(--black);
  font-weight: 950;
}

.programme-reunion-card strong {
  overflow: hidden;
  color: var(--ink);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.programme-reunion-card small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: none;
}

.programme-reunion-card.is-active {
  border-color: rgba(191, 29, 23, 0.34);
  background: #fff7f6;
}

.programme-reunion-card.is-active span {
  background: var(--brand);
}

.programme-reunion-card.status-en-cours span,
.programme-reunion-card.status-en-attente-resultat span {
  background: #d8a23b;
}

.programme-reunion-card.status-a-venir span {
  background: #08745f;
}

.programme-table-panel {
  display: grid;
  gap: 14px;
}

.programme-table-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}

.programme-table-head > p {
  max-width: 720px;
  color: var(--muted);
  font-size: 0.93rem;
  line-height: 1.5;
  text-align: right;
}

.programme-discipline-filter {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 26px rgba(17, 24, 23, 0.08);
}

.programme-discipline-filter > div {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.programme-discipline-filter strong {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 950;
  text-transform: uppercase;
}

.programme-discipline-filter p {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.programme-discipline-filter button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #f8f8f6;
  font-weight: 900;
  cursor: pointer;
}

.programme-discipline-filter button.is-active {
  color: #ffffff;
  border-color: var(--black);
  background: var(--black);
}

.programme-discipline-filter button small {
  color: inherit;
  font-size: 0.76rem;
  opacity: 0.72;
}

.programme-discipline-filter .programme-difficulty i {
  width: 10px;
  height: 10px;
}

.programme-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 16px 34px rgba(17, 24, 23, 0.1);
  -webkit-overflow-scrolling: touch;
}

.programme-table {
  width: 100%;
  min-width: 1220px;
  border-collapse: collapse;
}

.programme-table th,
.programme-table td {
  padding: 13px 12px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}

.programme-table th {
  color: var(--muted);
  background: #f8f8f6;
  font-size: 0.75rem;
  font-weight: 950;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}

.programme-table tr:last-child td {
  border-bottom: 0;
}

.programme-table tr.is-quinte-row td {
  background: rgba(191, 29, 23, 0.05);
}

.programme-table td:first-child strong {
  display: block;
  margin-bottom: 5px;
  white-space: nowrap;
}

.course-status-pill {
  display: block;
  margin-top: 3px;
  padding: 0;
  color: var(--muted);
  background: transparent;
  font-size: 0.72rem;
  font-weight: 400 !important;
  letter-spacing: 0;
  line-height: 1.25;
  text-transform: none;
}

.course-status-pill.status-terminee {
  color: var(--muted);
  background: transparent;
}

.course-status-pill.status-en-cours,
.course-status-pill.status-en-attente-resultat {
  color: var(--muted);
  background: transparent;
}

.programme-ref {
  display: inline-grid;
  place-items: center;
  min-width: 52px;
  min-height: 42px;
  padding: 0 7px;
  border-radius: 8px;
  color: #ffffff;
  background: var(--black);
  font-weight: 950;
}

.programme-race-link {
  display: grid;
  gap: 6px;
  width: 100%;
  min-width: 0;
  border: 0;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.programme-race-link strong {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  color: var(--ink);
  line-height: 1.24;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.programme-race-link small {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 400 !important;
  letter-spacing: 0;
}

.programme-bet-list .race-bet-badge,
.programme-quinte-bets .race-bet-badge {
  min-height: 23px;
  padding: 0 8px;
  font-size: 0.68rem;
}

.programme-difficulty-cell {
  min-width: 82px;
}

.programme-difficulty {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-bottom: 0;
}

.programme-difficulty i {
  width: 12px;
  height: 12px;
  border-radius: 4px;
}

.programme-difficulty-cell small,
.programme-seo-card-dots small {
  display: block;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 900;
}

.programme-difficulty-cell small {
  display: none;
}

.programme-comparison-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
}

.programme-comparison-row + .programme-comparison-row {
  margin-top: 7px;
}

.programme-comparison-row > span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.programme-comparison-row p {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
}

.content-layout.is-quinte .runner-stats {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 9px 0 7px;
}

.content-layout.is-quinte .runner-title {
  display: grid;
  gap: 3px;
  justify-content: start;
}

.content-layout.is-quinte .runner-title strong {
  font-size: 1rem;
}

.content-layout.is-quinte .runner-title small,
.content-layout.is-quinte .runner-title em {
  color: var(--muted);
  font-size: 0.76rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.3;
}

.content-layout.is-quinte .runner-title small {
  overflow-wrap: anywhere;
}

.runner-position-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  margin: 0 0 9px;
}

.runner-position-stat {
  min-width: 0;
  padding: 7px 6px;
  border-radius: 8px;
  background: #f0f0ee;
  text-align: center;
}

.runner-position-stat.hot {
  color: #ffffff;
  background: var(--brand);
}

.runner-position-stat.warm {
  background: #f3d56a;
}

.runner-position-stat.cool {
  background: #c9e2e0;
}

.runner-position-stat.empty {
  color: var(--muted);
  background: #f0f0ee;
}

.runner-position-stat span {
  display: block;
  color: currentColor;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.1;
  opacity: 0.78;
}

.runner-position-stat strong {
  display: block;
  margin-top: 2px;
  color: currentColor;
  font-size: 0.82rem;
  line-height: 1.15;
}

.runner-row.is-non-starter {
  border-color: #ddddda;
  color: #8c8c88;
  background: #f3f3f1;
}

.runner-row.is-non-starter .rank-badge {
  color: #6d6d68;
  background: #ddddda;
}

.runner-row.is-non-starter .runner-title strong,
.runner-row.is-non-starter .runner-title small,
.runner-row.is-non-starter .runner-title em {
  color: #8c8c88;
}

.runner-non-starter {
  margin-top: 10px;
  background: #ffffff;
}

.bet-advice-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-height: 0;
  margin: 0 0 8px;
}

.bet-advice-card .bet-advice-head {
  min-height: 0;
  margin: 0 0 8px;
}

.bet-advice-head strong {
  color: var(--ink);
  font-size: 0.95rem;
  line-height: 1.2;
}

.bet-advice-card .bet-advice-head .race-bet-badge {
  min-height: 26px;
  padding: 0 9px;
  font-size: 0.72rem;
}

.programme-number {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  color: var(--ink);
  background: #eceff2;
  font-size: 0.72rem;
  font-weight: 950;
}

.programme-number.is-podium-hit {
  color: #ffffff;
  background: #08745f;
}

.programme-number.is-top5-hit {
  color: #07523f;
  background: #bfe3cf;
}

.programme-comparison-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin-top: -20px;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 12px 26px rgba(17, 24, 23, 0.08);
}

.programme-comparison-legend strong {
  color: var(--ink);
}

.programme-comparison-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--muted);
  font-size: 0.9rem;
}

.programme-difficulty-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.programme-seo-card {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 30px rgba(17, 24, 23, 0.08);
}

.programme-seo-card h3 {
  font-size: 1.05rem;
}

.programme-seo-card strong {
  color: var(--brand-dark);
  font-size: 1.35rem;
}

.programme-seo-card p {
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.48;
}

.programme-seo-card-dots {
  display: grid;
  gap: 4px;
}

.programme-discipline-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.programme-discipline-card {
  display: grid;
  gap: 10px;
  min-height: 178px;
  padding: 18px;
  border: 1px solid rgba(17, 24, 23, 0.08);
  border-radius: 8px;
  background: #dcefe4;
}

.programme-discipline-card.discipline-plat {
  background: #ffd7c8;
}

.programme-discipline-card.discipline-monte {
  background: #dfe5ff;
}

.programme-discipline-card h3 {
  font-size: 1.15rem;
}

.programme-discipline-card strong {
  color: var(--brand-dark);
}

.programme-discipline-card p {
  max-width: 520px;
  color: rgba(17, 17, 17, 0.72);
  line-height: 1.48;
}

.lab-page {
  width: 100%;
  margin-top: 0;
  color: var(--ink);
}

.lab-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
  gap: clamp(18px, 4vw, 46px);
  align-items: end;
  width: 100vw;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  padding: clamp(28px, 5vw, 64px) max(24px, calc((100vw - 1500px) / 2 + 24px));
  overflow: hidden;
  color: #ffffff;
  background:
    linear-gradient(115deg, rgba(5, 5, 5, 0.97), rgba(28, 5, 4, 0.94) 48%, rgba(191, 29, 23, 0.74)),
    url("/assets/home-hero-racing-v44.png") center / cover no-repeat;
}

.lab-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 42%;
  background: linear-gradient(0deg, rgba(5, 5, 5, 0.72), transparent);
  pointer-events: none;
}

.lab-hero > * {
  position: relative;
  z-index: 1;
}

.lab-hero-main {
  display: grid;
  gap: 14px;
  max-width: 850px;
}

.lab-kicker,
.lab-control-label,
.lab-results-head p,
.lab-panel-head span,
.lab-ticket span,
.lab-method-kpis span,
.lab-backtest-grid span,
.lab-library-card span {
  color: var(--brand);
  font-size: 0.74rem;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.lab-hero h1 {
  max-width: 780px;
  color: #ffffff;
  font-size: clamp(2.25rem, 5vw, 4.8rem);
  line-height: 0.98;
}

.lab-hero-main > p:not(.lab-kicker) {
  max-width: 720px;
  color: rgba(255, 255, 255, 0.84);
  font-size: clamp(0.98rem, 1.4vw, 1.12rem);
  line-height: 1.58;
}

.lab-hero-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  max-width: 760px;
}

.lab-hero-stats article,
.lab-hero-card {
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 22px 44px rgba(5, 5, 5, 0.22);
  backdrop-filter: blur(16px);
}

.lab-hero-stats article {
  display: grid;
  gap: 4px;
  padding: 12px;
}

.lab-hero-stats span {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.72rem;
  font-weight: 900;
}

.lab-hero-stats strong {
  color: #ffffff;
  font-size: 1.55rem;
  line-height: 1;
}

.lab-hero-card {
  display: grid;
  gap: 12px;
  padding: 18px;
}

.lab-hero-card .quinte-plus-badge {
  min-width: 42px;
  font-size: 0.78rem;
}

.lab-data-state {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.lab-data-state span {
  padding: 7px 9px;
  border-radius: 8px;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.12);
  font-size: 0.78rem;
  font-weight: 900;
}

.lab-workbench {
  display: grid;
  grid-template-columns: minmax(280px, 345px) minmax(0, 1fr);
  gap: 18px;
  width: min(100%, 1500px);
  margin: 0 auto;
  padding: 22px 24px 56px;
}

.lab-controls,
.lab-panel,
.lab-ticket {
  border: 1px solid rgba(17, 24, 23, 0.09);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 14px 32px rgba(17, 24, 23, 0.08);
}

.lab-controls {
  position: sticky;
  top: 12px;
  align-self: start;
  display: grid;
  gap: 14px;
  max-height: calc(100vh - 24px);
  overflow: auto;
  padding: 14px;
}

.lab-control-block {
  display: grid;
  gap: 9px;
}

.lab-control-block label {
  color: var(--ink);
  font-size: 0.84rem;
  font-weight: 950;
}

.lab-control-block select {
  width: 100%;
  min-height: 42px;
  padding: 0 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #f7f7f5;
  font-weight: 850;
}

.lab-control-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.lab-control-head button,
.lab-control-actions button,
.lab-view-tabs button,
.lab-library-card button {
  min-height: 34px;
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #ffffff;
  font-size: 0.78rem;
  font-weight: 950;
  cursor: pointer;
}

.lab-control-head button:hover,
.lab-control-actions button:hover,
.lab-view-tabs button:hover,
.lab-view-tabs button.is-active,
.lab-library-card button:hover {
  color: #ffffff;
  border-color: var(--brand);
  background: var(--brand);
}

.lab-segmented {
  display: grid;
  gap: 7px;
}

.lab-segmented button {
  display: grid;
  gap: 2px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #f7f7f5;
  text-align: left;
  cursor: pointer;
}

.lab-segmented button.is-active {
  border-color: var(--brand);
  background: #111111;
}

.lab-segmented button.is-active strong,
.lab-segmented button.is-active small {
  color: #ffffff;
}

.lab-segmented strong {
  font-size: 0.9rem;
}

.lab-segmented small,
.lab-criterion p,
.lab-method-text p,
.lab-backtest p,
.lab-library-card p {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.38;
}

.lab-criteria-list {
  display: grid;
  gap: 12px;
}

.lab-criteria-group {
  display: grid;
  gap: 7px;
}

.lab-criteria-group h3 {
  padding-top: 4px;
  color: var(--ink);
  font-size: 0.86rem;
}

.lab-criterion {
  display: grid;
  gap: 7px;
  padding: 10px;
  border: 1px solid rgba(17, 24, 23, 0.08);
  border-radius: 8px;
  background: #f7f7f5;
}

.lab-criterion.is-enabled {
  background: #ffffff;
}

.lab-criterion-top,
.lab-weight-row,
.lab-results-head,
.lab-panel-head,
.lab-score-bars article,
.lab-library-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.lab-criterion-top label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  font-size: 0.84rem;
}

.lab-criterion-top label span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lab-criterion-top i {
  flex: 0 0 auto;
  padding: 5px 7px;
  border-radius: 7px;
  color: #ffffff;
  background: var(--brand-dark);
  font-size: 0.66rem;
  font-style: normal;
  font-weight: 950;
}

.lab-criterion.source-simulated .lab-criterion-top i {
  color: var(--ink);
  background: #f3d56a;
}

.lab-criterion.source-pending .lab-criterion-top i {
  background: #6d7378;
}

.lab-weight-row input {
  width: 100%;
  accent-color: var(--brand);
}

.lab-weight-row strong {
  display: inline-grid;
  place-items: center;
  min-width: 28px;
  min-height: 28px;
  border-radius: 8px;
  color: #ffffff;
  background: var(--black);
  font-size: 0.78rem;
}

.lab-control-actions {
  display: grid;
  gap: 8px;
}

.lab-control-actions .lab-primary-action {
  color: #ffffff;
  border-color: var(--brand);
  background: var(--brand);
}

.lab-results {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.lab-results-head {
  align-items: end;
  padding: 2px 0;
}

.lab-results-head h2 {
  font-size: clamp(1.35rem, 2vw, 2rem);
}

.lab-view-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.lab-ticket-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.lab-ticket {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 13px;
}

.lab-ticket.is-primary {
  color: #ffffff;
  border-color: var(--brand);
  background: linear-gradient(135deg, var(--brand), #111111);
}

.lab-ticket.is-primary span,
.lab-ticket.is-primary small {
  color: rgba(255, 255, 255, 0.82);
}

.lab-ticket p {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.lab-ticket small {
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.3;
}

.lab-main-grid,
.lab-secondary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(340px, 0.75fr);
  gap: 16px;
}

.lab-panel {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 16px;
}

.lab-panel-head {
  align-items: start;
}

.lab-panel-head h3 {
  font-size: 1.08rem;
}

.lab-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.lab-ranking-table {
  width: 100%;
  min-width: 940px;
  border-collapse: separate;
  border-spacing: 0;
}

.lab-ranking-table th,
.lab-ranking-table td {
  padding: 10px 8px;
  border-bottom: 1px solid rgba(17, 24, 23, 0.08);
  text-align: center;
  vertical-align: middle;
}

.lab-ranking-table th {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.lab-ranking-table th:nth-child(3),
.lab-ranking-table td:nth-child(3) {
  text-align: left;
}

.lab-ranking-table td:nth-child(3) strong,
.lab-ranking-table td:nth-child(3) small {
  display: block;
}

.lab-ranking-table td:nth-child(3) small {
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.32;
}

.lab-score-pill {
  display: inline-grid;
  min-width: 48px;
  padding: 6px 8px;
  border-radius: 8px;
  color: #ffffff;
  background: var(--brand);
  font-weight: 950;
}

.lab-ranking-table td > i {
  display: block;
  width: 70px;
  height: 5px;
  margin: 6px auto 0;
  overflow: hidden;
  border-radius: 999px;
  background: #ecece8;
}

.lab-ranking-table td > i::before {
  content: "";
  display: block;
  width: var(--value);
  height: 100%;
  background: linear-gradient(90deg, var(--brand), #f3d56a);
}

.odds-profile {
  display: inline-grid;
  min-width: 78px;
  padding: 6px 8px;
  border-radius: 8px;
  color: #ffffff;
  background: #6d7378;
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: capitalize;
}

.profile-favori {
  background: var(--brand-dark);
}

.profile-outsider {
  color: var(--ink);
  background: #f3d56a;
}

.profile-tocard {
  background: var(--brand);
}

.lab-chart {
  min-height: 280px;
}

.lab-score-bars {
  display: grid;
  gap: 10px;
}

.lab-score-bars article > div {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.lab-score-bars strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 0.86rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lab-score-bars p {
  flex: 1 1 auto;
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #ecece8;
}

.lab-score-bars p i {
  display: block;
  width: var(--value);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--brand), #f3d56a);
}

.lab-score-bars b {
  min-width: 42px;
  text-align: right;
  font-size: 0.86rem;
}

.lab-rank-grid {
  display: grid;
  gap: 10px;
}

.lab-rank-grid article {
  display: grid;
  gap: 8px;
  padding: 10px;
  border-radius: 8px;
  background: #f7f7f5;
}

.lab-rank-grid article > strong {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.86rem;
}

.lab-rank-grid article > strong span {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  color: #ffffff;
  background: var(--black);
}

.lab-market-chart {
  display: grid;
  gap: 12px;
}

.lab-market-chart article {
  display: grid;
  grid-template-columns: 120px 42px 1fr;
  gap: 10px;
  align-items: center;
}

.lab-market-chart span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 950;
}

.lab-market-chart strong {
  font-size: 1.1rem;
}

.lab-market-chart i {
  height: 18px;
  overflow: hidden;
  border-radius: 999px;
  background: #ecece8;
}

.lab-market-chart i::before {
  content: "";
  display: block;
  width: var(--value);
  height: 100%;
  background: linear-gradient(90deg, var(--brand-dark), #f3d56a, var(--brand));
}

.lab-chart-note {
  margin-top: 12px;
  color: var(--muted);
  font-size: 0.82rem;
}

.lab-heatmap .home-heatmap-table {
  min-width: 760px;
}

.lab-method-kpis,
.lab-backtest-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.lab-method-kpis article,
.lab-backtest-grid article {
  display: grid;
  gap: 4px;
  padding: 11px;
  border-radius: 8px;
  background: #f7f7f5;
}

.lab-method-kpis strong,
.lab-backtest-grid strong {
  font-size: 1.05rem;
}

.lab-method-text {
  display: grid;
  gap: 10px;
}

.lab-method-text ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lab-method-text li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #f7f7f5;
  font-size: 0.82rem;
  font-weight: 850;
}

.lab-method-text li span {
  color: var(--brand);
  font-weight: 950;
}

.lab-method-selection {
  display: grid;
  gap: 8px;
}

.lab-method-selection p {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.lab-backtest {
  display: grid;
  gap: 12px;
}

.lab-backtest-curve {
  width: 100%;
  min-height: 150px;
  border-radius: 8px;
  background:
    repeating-linear-gradient(90deg, rgba(17, 24, 23, 0.06) 0 1px, transparent 1px 45px),
    repeating-linear-gradient(0deg, rgba(17, 24, 23, 0.06) 0 1px, transparent 1px 28px),
    #ffffff;
}

.lab-backtest-curve path {
  stroke: rgba(17, 24, 23, 0.16);
  stroke-width: 1;
}

.lab-backtest-curve polyline {
  fill: none;
  stroke: var(--brand);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 4;
}

.lab-library-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.lab-library-card {
  display: grid;
  align-items: start;
  justify-items: start;
  min-height: 182px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f7f7f5;
}

.lab-library-card h4 {
  font-size: 1rem;
}

.blog-page {
  width: 100%;
  margin-top: 0;
  color: var(--ink);
  background: #f7f4f2;
}

.blog-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 390px);
  gap: clamp(18px, 4vw, 48px);
  align-items: end;
  width: 100vw;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
  padding: clamp(34px, 5vw, 72px) max(24px, calc((100vw - 1320px) / 2 + 24px));
  overflow: hidden;
  color: #ffffff;
  background:
    linear-gradient(110deg, rgba(5, 5, 5, 0.96), rgba(25, 6, 5, 0.88) 52%, rgba(192, 24, 21, 0.72)),
    url("/assets/home-hero-racing-v44.png") center / cover no-repeat;
}

.blog-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 40%;
  background: linear-gradient(0deg, rgba(5, 5, 5, 0.68), transparent);
  pointer-events: none;
}

.blog-hero > * {
  position: relative;
  z-index: 1;
}

.blog-hero > div {
  display: grid;
  gap: 14px;
  max-width: 790px;
}

.blog-kicker,
.blog-card-meta,
.blog-side-card > span,
.blog-inline-cta > span {
  color: var(--brand);
  font-size: 0.75rem;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.blog-hero h1 {
  max-width: 760px;
  color: #ffffff;
  font-size: clamp(2.15rem, 4.8vw, 4.4rem);
  line-height: 1;
}

.blog-hero p:not(.blog-kicker) {
  max-width: 720px;
  color: rgba(255, 255, 255, 0.84);
  font-size: clamp(0.98rem, 1.3vw, 1.1rem);
  line-height: 1.6;
}

.blog-hero-card,
.blog-card,
.blog-toolbar,
.blog-article,
.blog-side-card,
.blog-inline-cta {
  border: 1px solid rgba(17, 24, 23, 0.09);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 40px rgba(17, 24, 23, 0.08);
}

.blog-hero-card {
  display: grid;
  gap: 12px;
  padding: 20px;
  color: var(--ink);
}

.blog-hero-card span {
  color: var(--brand);
  font-size: 0.75rem;
  font-weight: 950;
  text-transform: uppercase;
}

.blog-hero-card strong {
  font-size: 1.18rem;
  line-height: 1.22;
}

.blog-hero-card button,
.blog-card button,
.blog-back-button,
.blog-inline-cta button,
.blog-side-card button {
  min-height: 38px;
  padding: 9px 13px;
  border: 1px solid var(--brand);
  border-radius: 8px;
  color: #ffffff;
  background: var(--brand);
  font-size: 0.82rem;
  font-weight: 950;
  cursor: pointer;
}

.blog-hero-card button:hover,
.blog-card button:hover,
.blog-back-button:hover,
.blog-inline-cta button:hover,
.blog-side-card button:hover {
  border-color: #111111;
  background: #111111;
}

.blog-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 330px);
  gap: 22px;
  width: min(100%, 1320px);
  margin: 0 auto;
  padding: 26px 24px 64px;
}

.blog-main {
  display: grid;
  gap: 18px;
  min-width: 0;
}

.blog-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px;
}

.blog-filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.blog-filter-group button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #f7f7f5;
  font-weight: 950;
  cursor: pointer;
}

.blog-filter-group button small {
  display: inline-grid;
  min-width: 24px;
  min-height: 24px;
  border-radius: 7px;
  color: #ffffff;
  background: #111111;
  font-size: 0.7rem;
  place-items: center;
}

.blog-filter-group button.is-active {
  color: #ffffff;
  border-color: #111111;
  background: #111111;
}

.blog-filter-group button.is-active small {
  color: var(--ink);
  background: #ffffff;
}

.blog-sort {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 900;
}

.blog-sort select {
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #ffffff;
  font-weight: 900;
}

.blog-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.blog-card {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 18px;
}

.blog-card.is-featured {
  grid-column: 1 / -1;
  min-height: 250px;
  align-content: end;
  color: #ffffff;
  background:
    linear-gradient(135deg, rgba(17, 17, 17, 0.96), rgba(190, 24, 20, 0.86)),
    #111111;
}

.blog-card.is-featured .blog-card-meta,
.blog-card.is-featured p {
  color: rgba(255, 255, 255, 0.82);
}

.blog-card h2 {
  max-width: 820px;
  font-size: clamp(1.22rem, 2.2vw, 2rem);
  line-height: 1.08;
}

.blog-card p {
  max-width: 780px;
  color: var(--muted);
  line-height: 1.5;
}

.blog-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
}

.blog-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.blog-tags span {
  padding: 6px 8px;
  border-radius: 8px;
  color: var(--ink);
  background: #f1ebe8;
  font-size: 0.72rem;
  font-weight: 900;
}

.blog-card.is-featured .blog-tags span {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.14);
}

.blog-card button {
  justify-self: start;
}

.blog-sidebar {
  display: grid;
  gap: 14px;
  align-self: start;
  position: sticky;
  top: 14px;
}

.blog-side-card {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.blog-side-subscribe {
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.12);
  background: linear-gradient(145deg, #111111, #8e1715);
}

.blog-side-subscribe span,
.blog-side-subscribe p {
  color: rgba(255, 255, 255, 0.82);
}

.blog-side-subscribe strong {
  color: #ffffff;
  font-size: 1.2rem;
  line-height: 1.18;
}

.blog-side-subscribe button {
  color: var(--ink);
  border-color: #ffffff;
  background: #ffffff;
}

.blog-side-card p {
  color: var(--muted);
  line-height: 1.45;
}

#blog-related {
  display: grid;
  gap: 8px;
}

#blog-related button {
  display: grid;
  gap: 4px;
  width: 100%;
  min-height: auto;
  padding: 12px;
  color: var(--ink);
  border-color: rgba(17, 24, 23, 0.08);
  background: #f7f7f5;
  text-align: left;
}

#blog-related button:hover {
  color: #ffffff;
  border-color: #111111;
  background: #111111;
}

#blog-related small {
  color: var(--muted);
  font-size: 0.72rem;
}

#blog-related button:hover small {
  color: rgba(255, 255, 255, 0.76);
}

.blog-article {
  display: grid;
  gap: 20px;
  padding: clamp(20px, 4vw, 34px);
}

.blog-back-button {
  justify-self: start;
  color: var(--ink);
  border-color: var(--line);
  background: #ffffff;
}

.blog-article-header {
  display: grid;
  gap: 12px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(17, 24, 23, 0.1);
}

.blog-article-header h1 {
  max-width: 880px;
  font-size: clamp(2rem, 4vw, 3.3rem);
  line-height: 1.02;
}

.blog-article-header p {
  max-width: 820px;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.58;
}

.blog-article-body {
  display: grid;
  gap: 22px;
  max-width: 820px;
}

.blog-article-body section {
  display: grid;
  gap: 8px;
}

.blog-article-body h2 {
  font-size: 1.42rem;
}

.blog-article-body p {
  color: rgba(17, 17, 17, 0.74);
  font-size: 1rem;
  line-height: 1.72;
}

.blog-inline-cta {
  display: grid;
  gap: 10px;
  max-width: 820px;
  padding: 18px;
  background: #fff4ee;
}

.blog-inline-cta strong {
  font-size: 1.08rem;
  line-height: 1.35;
}

.blog-inline-cta button {
  justify-self: start;
}

@media (max-width: 900px) {
  .quinte-analysis-list,
  .quinte-stat-grid,
  .quinte-bet-grid,
  .pronostic-layout,
  .course-summary-grid,
  .analysis-runner-meta,
  .lexicon-grid,
  .report-source-grid,
  .comparator-select-grid,
  .comparator-history-grid {
    grid-template-columns: 1fr;
  }

  .reports-intro-card {
    display: grid;
  }

  .probability-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .quinte-panel,
  .quinte-tabs {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    padding-right: 14px;
    padding-left: 14px;
  }

  .content-layout.is-quinte .course-hero {
    padding-right: 14px;
    padding-left: 14px;
  }

  .programme-hero-inner,
  .programme-discipline-filter,
  .lab-hero,
  .blog-hero,
  .blog-layout,
  .lab-workbench,
  .lab-main-grid,
  .lab-secondary-grid,
  .content-layout.is-quinte .course-hero-top,
  .content-layout.is-quinte .hero-panels,
  .programme-table-head {
    grid-template-columns: 1fr;
  }

  .programme-hero-inner {
    padding-right: 14px;
    padding-left: 14px;
  }

  .programme-table-head {
    display: grid;
  }

  .programme-table-head > p {
    max-width: none;
    text-align: left;
  }

  .programme-stats,
  .lab-hero-stats,
  .lab-ticket-grid,
  .lab-library-grid,
  .programme-difficulty-grid,
  .programme-discipline-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lab-controls {
    position: static;
    max-height: none;
  }
}

@media (max-width: 620px) {
  body.is-programme-page,
  body.is-lab-page,
  body.is-blog-page,
  body.is-programme-page .app-shell,
  body.is-lab-page .app-shell,
  body.is-blog-page .app-shell,
  .programme-overview,
  .programme-hero,
  .lab-page,
  .lab-hero,
  .blog-page,
  .blog-hero {
    overflow-x: hidden;
  }

  body.is-programme-page .top-nav,
  body.is-lab-page .top-nav,
  body.is-blog-page .top-nav {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-width: none;
  }

  body.is-programme-page .top-nav::-webkit-scrollbar,
  body.is-lab-page .top-nav::-webkit-scrollbar,
  body.is-blog-page .top-nav::-webkit-scrollbar {
    display: none;
  }

  .programme-hero-inner,
  .programme-content,
  .lab-workbench,
  .blog-layout {
    width: 100%;
    max-width: 100%;
  }

  .lab-hero,
  .blog-hero {
    padding-right: 14px;
    padding-left: 14px;
  }

  .lab-workbench {
    padding-right: 14px;
    padding-left: 14px;
  }

  .programme-hero-main,
  .featured-quinte,
  .programme-quinte-card,
  .lab-hero-main,
  .lab-hero-card,
  .blog-hero-card,
  .programme-quinte-title > div {
    min-width: 0;
    max-width: 100%;
  }

  .programme-hero-main,
  .featured-quinte,
  .programme-quinte-card,
  .lab-hero-card,
  .blog-hero-card {
    width: calc(100vw - 28px);
  }

  .programme-overview #programme-title {
    max-width: calc(100vw - 28px);
    font-size: clamp(1.72rem, 8vw, 2rem);
    overflow-wrap: normal;
    word-break: normal;
    white-space: normal;
  }

  .programme-quinte-title h2 {
    font-size: 1.05rem;
    line-height: 1.22;
  }

  .programme-stats,
  .lab-hero-stats,
  .lab-ticket-grid,
  .lab-method-kpis,
  .lab-backtest-grid,
  .lab-library-grid,
  .programme-difficulty-grid,
  .programme-discipline-grid {
    grid-template-columns: 1fr;
  }

  .programme-content {
    padding-right: 14px;
    padding-left: 14px;
  }

  .blog-layout {
    padding-right: 14px;
    padding-left: 14px;
  }

  .programme-reunion-card {
    min-width: 168px;
  }

  .programme-quinte-title h2,
  .lab-hero h1,
  .blog-hero h1,
  .programme-seo-text,
  #programme-subtitle,
  .programme-quinte-meta {
    display: block;
    width: calc(100vw - 28px);
    max-width: calc(100vw - 28px);
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .blog-list {
    grid-template-columns: 1fr;
  }

  .blog-card.is-featured {
    min-height: 0;
  }

  .blog-sidebar {
    position: static;
  }
}

@media (max-width: 980px) {
  .home-hero,
  .home-gains-overview {
    grid-template-columns: 1fr;
  }

  .home-hero-side {
    width: 100%;
  }

  .home-gain-card {
    min-height: 230px;
  }
}

@media (max-width: 680px) {
  .home-gain-card {
    min-height: 0;
  }

  .home-gains-overview {
    gap: 20px;
  }

  .home-gain-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .home-gain-row p,
  .home-gain-row-report {
    justify-content: flex-start;
    justify-items: start;
  }

  .home-gain-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: none;
  }

  .home-gain-filters::-webkit-scrollbar {
    display: none;
  }

  .home-heatmap-preview {
    padding: 12px;
  }
}


/* Navigation dynamique par date - ajout fonctionnel sans modification du design existant */
.date-picker-control {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 38px;
  padding: 0.35rem 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  color: inherit;
  font-size: 0.78rem;
  font-weight: 700;
}

.date-picker-control input {
  width: 9.2rem;
  border: 0;
  outline: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  color-scheme: dark;
}

.quinte-title-row .quinte-plus-badge[hidden] {
  display: none !important;
}

@media (max-width: 720px) {
  .date-picker-control {
    width: 100%;
    justify-content: space-between;
    border-radius: 12px;
  }

  .date-picker-control input {
    width: auto;
    min-width: 8.7rem;
  }
}

/* V51 — ajout ciblé sur la V48 : navigation R/C, identité course, outsiders/tocards */
.course-race-navigation {
  display: grid;
  gap: 6px;
  width: 100%;
  margin: 8px 0 10px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.045);
}
.course-nav-row {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.course-nav-label {
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.course-nav-buttons {
  display: flex;
  gap: 5px;
  min-width: 0;
  overflow-x: auto;
  padding: 1px 1px 3px;
  scrollbar-width: none;
}
.course-nav-buttons::-webkit-scrollbar { display: none; }
.course-nav-button {
  flex: 0 0 auto;
  min-width: 34px;
  min-height: 27px;
  padding: 0 8px;
  border: 1px solid rgba(255, 255, 255, 0.17);
  border-radius: 7px;
  color: rgba(255, 255, 255, 0.82);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.72rem;
  font-weight: 950;
  cursor: pointer;
}
.course-nav-button:hover,
.course-nav-button:focus-visible {
  border-color: rgba(216, 162, 59, 0.88);
  color: #fff;
  outline: 0;
}
.course-nav-button.is-active {
  border-color: var(--gold);
  color: #17120a;
  background: var(--gold);
  box-shadow: 0 5px 15px rgba(216, 162, 59, 0.22);
}
.race-title-line:has(#race-ref.course-ref-highlight) {
  margin: 7px 0 5px;
}
#race-ref.course-ref-highlight {
  padding: 0;
  border: 0;
  color: var(--gold);
  background: transparent;
  font-size: clamp(1.65rem, 3.2vw, 2.25rem);
  font-weight: 1000;
  letter-spacing: -0.035em;
  line-height: 0.95;
  text-shadow: 0 4px 18px rgba(216, 162, 59, 0.18);
}
#race-title[hidden] { display: none !important; }
#quinte-main-title {
  max-width: 950px;
  font-size: clamp(2rem, 4vw, 3.05rem);
  line-height: 1.02;
}
.value-signal {
  position: relative;
  overflow: hidden;
}
.value-signal::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  content: "";
  background: var(--gold);
}
.value-signal.is-longshot::before { background: var(--brand); }
.value-signal-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.value-signal-heading > span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 8px;
  border-radius: 999px;
  color: #4c3507;
  background: rgba(216, 162, 59, 0.2);
  font-size: 0.7rem;
  font-weight: 950;
}
.value-signal.is-longshot .value-signal-heading > span {
  color: #7f120e;
  background: rgba(191, 29, 23, 0.13);
}
@media (max-width: 720px) {
  .course-race-navigation { padding: 7px 8px; }
  .course-nav-row { grid-template-columns: 50px minmax(0, 1fr); gap: 6px; }
  .course-nav-button { min-width: 32px; min-height: 26px; padding: 0 7px; font-size: 0.69rem; }
  #race-ref.course-ref-highlight { font-size: 1.75rem; }
}


/* V52 — affinage pronostic, analyse, programme et labo */
.pronostic-sidebar .ticket-card.value-outsider,
.pronostic-sidebar .ticket-card.value-longshot {
  border-color: rgba(177, 113, 39, 0.48);
  background: linear-gradient(145deg, #fffaf1, #f0dfc5);
}

.pronostic-sidebar .ticket-card.value-longshot {
  border-color: rgba(80, 52, 29, 0.44);
  background: linear-gradient(145deg, #f5e4c8, #dfbd87);
}

.pronostic-sidebar .ticket-card.value-outsider h3,
.pronostic-sidebar .ticket-card.value-longshot h3 {
  color: #704412;
}

.ticket-empty {
  display: inline-grid;
  place-items: center;
  min-height: 34px;
  color: #8a7256;
  font-size: 1.3rem;
  font-weight: 900;
}

.course-summary-card-ochre {
  border-color: rgba(177, 113, 39, 0.48);
  background: linear-gradient(145deg, #f3dfbc, #e5bd7e);
  box-shadow: 0 12px 28px rgba(90, 52, 17, 0.13);
}

.course-summary-card-ochre span {
  color: #6f491f;
}

.course-summary-card-ochre strong,
.course-summary-card-ochre p {
  color: #24160a;
}

.course-summary-card-ochre.course-summary-outsider-prioritaire,
.course-summary-card-ochre.course-summary-tocard-a-surveiller {
  background: linear-gradient(145deg, #e9c98f, #d9a85e);
}

.programme-discipline-filter p,
.programme-difficulty-filter-row {
  flex-wrap: nowrap;
  overflow-x: auto;
  padding-bottom: 3px;
  scrollbar-width: thin;
}

.programme-discipline-filter button {
  flex: 0 0 auto;
  white-space: nowrap;
}

.is-advice-page .programme-table {
  min-width: 1320px;
}

.advice-reunion-row td {
  padding: 13px 15px !important;
  color: #ffffff;
  background: linear-gradient(90deg, #16110c, #7b4e20);
}

.advice-reunion-row strong {
  margin-right: 12px;
  font-size: 1rem;
}

.advice-reunion-row span {
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.8rem;
}

.advice-value-pick {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.advice-value-pick i {
  display: inline-grid;
  place-items: center;
  width: 31px;
  height: 31px;
  border-radius: 7px;
  color: #ffffff;
  background: #a86722;
  font-style: normal;
  font-weight: 950;
}

.advice-value-pick small {
  color: var(--muted);
  white-space: nowrap;
}

.advice-open-course {
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid #9b6224;
  border-radius: 7px;
  color: #ffffff;
  background: #9b6224;
  font-weight: 900;
  cursor: pointer;
}

.lab-criterion.source-derived .lab-criterion-top i {
  color: #2c1c09;
  background: #e7bd78;
}

.lab-backtest p {
  color: var(--muted);
  line-height: 1.48;
}

@media (max-width: 720px) {
  .course-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* V53 — lecture compacte, conseils chronologiques et accès Quinté fiable */
.programme-difficulty-filter-row {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 5px !important;
  overflow: visible !important;
  width: 100%;
  padding: 0 !important;
}

.programme-difficulty-filter-row button {
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 34px;
  padding: 0 5px;
  gap: 3px;
  white-space: nowrap;
  font-size: clamp(0.62rem, 0.68vw, 0.76rem);
}

.programme-difficulty-filter-row button small {
  min-width: 0;
  font-size: clamp(0.6rem, 0.64vw, 0.72rem);
  white-space: nowrap;
}

.programme-difficulty-filter-row .programme-difficulty {
  flex: 0 0 auto;
  gap: 2px;
}

.programme-difficulty-filter-row .programme-difficulty i {
  width: 7px;
  height: 7px;
}

#course-summary-grid.course-summary-grid {
  display: block;
  margin-bottom: 16px;
}

.race-analysis-overview {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 12px;
  color: #ffffff;
  background:
    radial-gradient(circle at 92% 10%, rgba(190, 24, 20, 0.26), transparent 34%),
    linear-gradient(135deg, #100d0b 0%, #251710 52%, #100d0b 100%);
  box-shadow: 0 18px 38px rgba(17, 10, 6, 0.2);
}

.race-analysis-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 18px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.race-analysis-heading span,
.race-analysis-facts span,
.race-value-panel > span {
  display: block;
  margin-bottom: 4px;
  color: #dfa84f;
  font-size: 0.69rem;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.race-analysis-heading h3 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.1rem, 2vw, 1.55rem);
  line-height: 1.08;
}

.race-analysis-time {
  flex: 0 0 auto;
  min-width: 120px;
  padding-left: 16px;
  border-left: 1px solid rgba(255, 255, 255, 0.13);
  text-align: right;
}

.race-analysis-time span {
  color: rgba(255, 255, 255, 0.68);
  text-transform: none;
}

.race-analysis-time strong {
  color: #ffffff;
  font-size: 1.12rem;
}

.race-analysis-facts {
  display: grid;
  grid-template-columns: 1.5fr 0.75fr 1.35fr 0.9fr;
  gap: 0;
  padding: 0 18px;
}

.race-analysis-facts article {
  min-width: 0;
  padding: 13px 14px 13px 0;
}

.race-analysis-facts article + article {
  padding-left: 14px;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.race-analysis-facts strong {
  display: block;
  overflow: hidden;
  color: #ffffff;
  font-size: 0.86rem;
  line-height: 1.35;
  text-overflow: ellipsis;
}

.race-analysis-weather strong {
  overflow: visible;
}

.race-analysis-weather .weather-chip {
  color: #17110b;
  background: rgba(255, 255, 255, 0.92);
}

.race-analysis-values {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 0 12px 12px;
}

.race-value-panel {
  min-width: 0;
  padding: 11px 13px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.065);
}

.race-value-panel.is-outsider {
  border-color: rgba(223, 168, 79, 0.42);
  background: linear-gradient(135deg, rgba(143, 89, 25, 0.38), rgba(255, 255, 255, 0.045));
}

.race-value-panel.is-longshot {
  border-color: rgba(190, 24, 20, 0.42);
  background: linear-gradient(135deg, rgba(121, 18, 14, 0.42), rgba(255, 255, 255, 0.045));
}

.race-value-panel strong {
  display: block;
  color: #ffffff;
  font-size: 0.86rem;
  line-height: 1.35;
}

.pronostic-sidebar .ticket-card.value-outsider,
.pronostic-sidebar .ticket-card.value-longshot {
  border-color: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  background:
    radial-gradient(circle at 100% 0%, rgba(223, 168, 79, 0.2), transparent 42%),
    linear-gradient(145deg, #17120e, #332015);
  box-shadow: 0 14px 30px rgba(17, 10, 6, 0.18);
}

.pronostic-sidebar .ticket-card.value-longshot {
  background:
    radial-gradient(circle at 100% 0%, rgba(190, 24, 20, 0.25), transparent 42%),
    linear-gradient(145deg, #150f0d, #351714);
}

.pronostic-sidebar .ticket-card.value-outsider h3,
.pronostic-sidebar .ticket-card.value-longshot h3,
.pronostic-sidebar .ticket-card.value-outsider .ticket-footer,
.pronostic-sidebar .ticket-card.value-longshot .ticket-footer,
.pronostic-sidebar .ticket-card.value-outsider .ticket-footer span,
.pronostic-sidebar .ticket-card.value-longshot .ticket-footer span {
  color: rgba(255, 255, 255, 0.86);
}

.pronostic-sidebar .ticket-card.value-outsider .number-chip,
.pronostic-sidebar .ticket-card.value-outsider .programme-number,
.pronostic-sidebar .ticket-card.value-longshot .number-chip,
.pronostic-sidebar .ticket-card.value-longshot .programme-number {
  color: #1b1209;
  background: #dfa84f;
}

.pronostic-sidebar .ticket-card.value-longshot .number-chip,
.pronostic-sidebar .ticket-card.value-longshot .programme-number {
  color: #ffffff;
  background: #be1814;
}

.pronostic-sidebar .ticket-card.value-outsider .ticket-empty,
.pronostic-sidebar .ticket-card.value-longshot .ticket-empty {
  color: rgba(255, 255, 255, 0.58);
}

.is-advice-page .programme-reunions-section {
  display: none;
}

.is-advice-page .programme-content {
  padding-top: 24px;
}

.is-advice-page .programme-table {
  min-width: 1220px;
}

.advice-open-course {
  min-height: 29px;
  padding: 0 9px;
  border-color: #be1814;
  border-radius: 6px;
  color: #ffffff;
  background: #be1814;
  font-size: 0.72rem;
  font-weight: 950;
}

.advice-open-course:hover {
  border-color: #94110e;
  background: #94110e;
}

.lab-ticket.is-primary .programme-number,
.lab-ticket.is-primary .number-chip {
  color: #27170a !important;
  border-color: #efc36d !important;
  background: #efc36d !important;
  box-shadow: 0 2px 0 rgba(255, 255, 255, 0.15) inset;
}

@media (max-width: 900px) {
  .programme-difficulty-filter-row button {
    padding: 0 3px;
    font-size: 0.6rem;
  }

  .programme-difficulty-filter-row button small {
    font-size: 0.58rem;
  }

  .programme-difficulty-filter-row .programme-difficulty i {
    width: 6px;
    height: 6px;
  }

  .race-analysis-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .race-analysis-facts article:nth-child(3) {
    border-left: 0;
  }
}

@media (max-width: 620px) {
  .programme-difficulty-filter-row button {
    min-height: 31px;
    gap: 1px;
    padding: 0 2px;
    font-size: 0.54rem;
  }

  .programme-difficulty-filter-row button small {
    font-size: 0.52rem;
  }

  .programme-difficulty-filter-row .programme-difficulty {
    display: none;
  }

  .race-analysis-heading {
    align-items: flex-start;
    padding: 14px;
  }

  .race-analysis-time {
    min-width: 88px;
    padding-left: 10px;
  }

  .race-analysis-facts {
    padding: 0 14px;
  }

  .race-analysis-values {
    grid-template-columns: 1fr;
  }
}

/* V54 — filtres compacts, résultats des sélections et page gains */
@media (min-width: 981px) {
  .programme-discipline-filter {
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  }
}

.programme-difficulty-filter-row {
  gap: 4px !important;
}

.programme-difficulty-filter-row button {
  min-height: 32px;
  padding: 0 4px;
}

.programme-difficulty-filter-row button small {
  min-width: 18px;
  font-size: 0.7rem;
  text-align: center;
}

.programme-difficulty-filter-row .programme-difficulty {
  gap: 1px;
}

.programme-difficulty-filter-row .programme-difficulty i {
  width: 8px;
  height: 8px;
}

.is-advice-page .programme-number.is-podium-hit,
.is-results-page .programme-number.is-podium-hit {
  color: #ffffff;
  background: #08745f;
  box-shadow: 0 0 0 1px rgba(4, 82, 63, 0.2);
}

.is-advice-page .programme-number.is-top5-hit,
.is-results-page .programme-number.is-top5-hit {
  color: #07523f;
  background: #bfe3cf;
  box-shadow: 0 0 0 1px rgba(7, 82, 63, 0.12);
}

.is-results-page #programme-date-shortcuts,
.is-results-page #featured-quinte,
.is-results-page #programme-stats,
.is-results-page .programme-reunions-section,
.is-results-page .programme-comparison-legend,
.is-results-page #programme-difficulty-section,
.is-results-page #programme-discipline-section {
  display: none !important;
}

.is-results-page .programme-hero-inner {
  grid-template-columns: minmax(0, 1fr);
}

.is-results-page .programme-hero-main {
  max-width: 940px;
}

.is-results-page .programme-content {
  padding-top: 28px;
}

.is-results-page .programme-table-panel {
  gap: 16px;
}

.is-results-page .programme-table-head {
  align-items: end;
}

.is-results-page .programme-discipline-filter {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.results-gain-filter-wrap {
  display: grid;
  gap: 9px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 12px 28px rgba(17, 24, 23, 0.08);
}

.results-gain-filter-wrap > strong {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.results-gain-filter {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  overflow: visible !important;
  padding: 0 !important;
}

.results-gain-filter button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid #deded9;
  border-radius: 8px;
  color: #211d18;
  background: #f6f5f2;
  font-size: 0.76rem;
  font-weight: 900;
  cursor: pointer;
}

.results-gain-filter button b {
  display: inline-grid;
  place-items: center;
  min-width: 25px;
  height: 22px;
  padding: 0 5px;
  border-radius: 6px;
  color: #ffffff;
  background: #08745f;
  font-size: 0.68rem;
}

.results-gain-filter button:nth-child(3) b,
.results-gain-filter button:nth-child(4) b {
  background: #d77416;
}

.results-gain-filter button:nth-child(5) b,
.results-gain-filter button:nth-child(6) b {
  background: #6c2ba3;
}

.results-gain-filter button:nth-child(7) b,
.results-gain-filter button:nth-child(8) b,
.results-gain-filter button:nth-child(9) b {
  background: #be1814;
}

.results-gain-filter button.is-active {
  color: #ffffff;
  border-color: #12100e;
  background: #12100e;
}

.is-results-page .programme-table {
  min-width: 1120px;
}

.results-gain-row td:nth-child(3) strong {
  display: block;
  margin-bottom: 4px;
}

.results-gain-row td:nth-child(3) small {
  display: block;
  color: var(--muted);
  font-size: 0.74rem;
}

.results-game-badge {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 0 9px;
  border-radius: 7px;
  color: #ffffff;
  background: #08745f;
  font-size: 0.71rem;
  font-weight: 950;
  white-space: nowrap;
}

.results-game-badge.bet-couple,
.results-game-badge.bet-2sur4,
.results-game-badge.bet-trio {
  background: #d77416;
}

.results-game-badge.bet-multi,
.results-game-badge.bet-tierce {
  background: #6c2ba3;
}

.results-game-badge.bet-quarte,
.results-game-badge.bet-quinte {
  background: #be1814;
}

.results-report {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 62px;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 6px;
  color: #6f6a62;
  background: #efefec;
  white-space: nowrap;
}

.results-report.is-known {
  color: #ffffff;
  background: #08745f;
}

.results-open-course {
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid #be1814;
  border-radius: 6px;
  color: #ffffff;
  background: #be1814;
  font-size: 0.7rem;
  font-weight: 950;
  cursor: pointer;
  white-space: nowrap;
}

.results-open-course:hover {
  border-color: #94110e;
  background: #94110e;
}

.lab-ticket.is-primary .programme-number,
.lab-ticket.is-primary .number-chip {
  color: #ffffff !important;
  border-color: #9d1512 !important;
  background: #be1814 !important;
}

@media (max-width: 980px) {
  .programme-difficulty-filter-row button {
    min-height: 31px;
    padding: 0 3px;
  }

  .results-gain-filter {
    flex-wrap: wrap !important;
  }
}


/* V55 — filtres compacts, badges de gains et base labo lisible */
.programme-discipline-filter {
  grid-template-columns: minmax(0, 1.65fr) minmax(330px, 0.85fr);
  gap: 8px;
  padding: 8px 9px;
}

.programme-discipline-filter > div {
  gap: 4px;
  min-width: 0;
}

.programme-discipline-filter strong {
  font-size: 0.66rem;
  font-weight: 800;
}

.programme-discipline-filter p {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  align-items: center;
  gap: 4px;
  min-width: 0;
  overflow: visible;
}

.programme-discipline-filter button {
  justify-content: center;
  gap: 4px;
  min-width: 0;
  min-height: 30px;
  padding: 0 4px;
  border-radius: 6px;
  font-size: clamp(0.58rem, 0.66vw, 0.7rem);
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.programme-discipline-filter button span:not(.difficulty-dots) {
  min-width: 0;
}

.programme-discipline-filter button small {
  flex: 0 0 auto;
  font-size: 0.62rem;
  font-weight: 600;
  opacity: 0.7;
}

.programme-discipline-filter .programme-difficulty {
  gap: 1px;
}

.programme-discipline-filter .programme-difficulty i {
  width: 7px;
  height: 7px;
}

.programme-difficulty-filter-row button {
  padding-right: 3px;
  padding-left: 3px;
}

/* Filtres Gains/Résultats : uniquement les badges habituels du site. */
.is-results-page .programme-discipline-filter {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.results-gain-filter-wrap {
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.results-gain-filter {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center;
  gap: 6px !important;
  overflow: visible !important;
  padding: 0 !important;
}

.results-gain-filter button {
  display: inline-flex;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 7px;
  color: inherit;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.results-gain-filter button:hover {
  transform: translateY(-1px);
}

.results-gain-filter button.is-active {
  color: inherit;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

.results-gain-filter .race-bet-badge,
.results-filter-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 27px;
  padding: 0 9px;
  border-radius: 7px;
  color: #ffffff;
  font-size: 0.71rem;
  font-weight: 950;
  white-space: nowrap;
}

.results-filter-all {
  background: #12100e;
}

.results-gain-filter button.is-active .race-bet-badge,
.results-gain-filter button.is-active .results-filter-all {
  box-shadow: 0 0 0 2px #12100e, 0 4px 10px rgba(17, 16, 14, 0.16);
}

/* La carte Base reste rouge dégradée ; ses numéros redeviennent blancs sur ocre. */
.lab-ticket.is-primary .programme-number,
.lab-ticket.is-primary .number-chip {
  color: #ffffff !important;
  border-color: #d59a2f !important;
  background: #d59a2f !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset !important;
}

@media (max-width: 720px) {
  .programme-discipline-filter {
    grid-template-columns: 1fr;
  }

  .programme-discipline-filter button {
    font-size: 0.58rem;
  }
}

/* V56 — données historiques internes connectées */
.lab-criterion.source-historical {
  border-color: rgba(187, 132, 41, 0.34);
  background: linear-gradient(145deg, rgba(255, 251, 242, 0.98), rgba(248, 237, 211, 0.88));
}

.lab-criterion.source-historical .lab-criterion-top i {
  background: #b67a1e;
  color: #fff;
}

/* === V60 : conseils spécialisés par type de pari === */
.bet-advice-card.strategy-card {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 15px;
}

.bet-advice-card.strategy-card .bet-advice-head {
  display: flex;
  min-height: 0;
  margin: 0;
}

.bet-advice-card.strategy-card .advice-objective {
  margin: 0;
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.42;
}

.bet-advice-card.strategy-card .advice-profile-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  min-height: 0;
  margin: 0;
}

.bet-advice-card.strategy-card .advice-profile {
  display: grid;
  gap: 7px;
  min-height: 0;
  margin: 0;
  padding: 10px;
  border: 1px solid #e2e4e5;
  border-radius: 8px;
  background: #f8f9f9;
}

.bet-advice-card.strategy-card .advice-profile.is-safe {
  border-left: 4px solid #25875f;
}

.bet-advice-card.strategy-card .advice-profile.is-balanced {
  border-left: 4px solid #d49a20;
}

.bet-advice-card.strategy-card .advice-profile.is-offensive {
  border-left: 4px solid #c72a20;
}

.bet-advice-card.strategy-card .advice-profile-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  min-height: 0;
  margin: 0;
}

.bet-advice-card.strategy-card .advice-profile-top > span {
  color: var(--ink);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.bet-advice-card.strategy-card .advice-profile-top em {
  padding: 3px 7px;
  border-radius: 999px;
  color: #5a554d;
  background: #ececea;
  font-size: 0.69rem;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.bet-advice-card.strategy-card .advice-profile-numbers {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 7px;
  min-height: 0;
  margin: 0;
}

.bet-advice-card.strategy-card .advice-pick {
  display: grid;
  justify-items: center;
  gap: 3px;
  min-width: 36px;
}

.bet-advice-card.strategy-card .advice-pick small {
  color: #77736e;
  font-size: 0.58rem;
  font-weight: 800;
  line-height: 1;
}

.bet-advice-card.strategy-card .advice-pick.role-base .number-chip {
  color: #ffffff;
  background: #151515;
}

.bet-advice-card.strategy-card .advice-pick.role-outsider .number-chip {
  color: #ffffff;
  background: #c78a16;
}

.bet-advice-card.strategy-card .advice-pick.role-longshot .number-chip {
  color: #ffffff;
  background: #b72720;
}

.bet-advice-card.strategy-card .advice-profile p {
  margin: 0;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.38;
}

.bet-advice-card.strategy-card .advice-index-note {
  display: block;
  margin-top: 1px;
  color: #88847e;
  font-size: 0.66rem;
  line-height: 1.35;
}

@media (max-width: 620px) {
  .bet-advice-card.strategy-card {
    padding: 12px;
  }

  .bet-advice-card.strategy-card .advice-profile-top {
    align-items: flex-start;
  }

  .bet-advice-card.strategy-card .advice-profile-top em {
    font-size: 0.64rem;
  }
}

/* === V61 : typographie compacte pronostic et comparateur === */
/* Pronostic : textes des cartes de la colonne droite uniquement. */
.pronostic-sidebar .ticket-card h3,
.pronostic-sidebar .signal-item h3,
.pronostic-sidebar .method-side-item h3 {
  font-size: 0.84rem;
  line-height: 1.28;
}

.pronostic-sidebar .ticket-footer,
.pronostic-sidebar .ticket-footer span,
.pronostic-sidebar .signal-item p,
.pronostic-sidebar .method-side-item p {
  font-size: 0.76rem;
  line-height: 1.43;
}

/* Les numéros et leurs pastilles gardent leur taille actuelle. */
.pronostic-sidebar .ticket-numbers,
.pronostic-sidebar .signal-numbers,
.pronostic-sidebar .number-chip,
.pronostic-sidebar .programme-number {
  font-size: revert;
}

/* Comparateur : première colonne inchangée, colonnes chevaux plus compactes. */
.comparator-table th:not(:first-child) {
  font-size: 0.75rem;
  line-height: 1.25;
}

.comparator-table td:not(:first-child) {
  font-size: 0.82rem;
  line-height: 1.32;
}

@media (max-width: 720px) {
  .pronostic-sidebar .ticket-card h3,
  .pronostic-sidebar .signal-item h3,
  .pronostic-sidebar .method-side-item h3 {
    font-size: 0.82rem;
  }

  .pronostic-sidebar .ticket-footer,
  .pronostic-sidebar .ticket-footer span,
  .pronostic-sidebar .signal-item p,
  .pronostic-sidebar .method-side-item p {
    font-size: 0.74rem;
  }
}

/* === V62 : tableaux compacts, filtres cohérents et derniers gains réels === */
/* Pronostics et conseils : donner la priorité aux numéros Base et Sélection 5. */
@media (min-width: 981px) {
  .is-advice-page .programme-table {
    min-width: 1160px;
    table-layout: fixed;
  }

  .is-advice-page .programme-table th:nth-child(1),
  .is-advice-page .programme-table td:nth-child(1) { width: 86px; }
  .is-advice-page .programme-table th:nth-child(2),
  .is-advice-page .programme-table td:nth-child(2) { width: 68px; }
  .is-advice-page .programme-table th:nth-child(3),
  .is-advice-page .programme-table td:nth-child(3) { width: 250px; }
  .is-advice-page .programme-table th:nth-child(4),
  .is-advice-page .programme-table td:nth-child(4) { width: 78px; }
  .is-advice-page .programme-table th:nth-child(5),
  .is-advice-page .programme-table td:nth-child(5) { width: 176px; }
  .is-advice-page .programme-table th:nth-child(6),
  .is-advice-page .programme-table td:nth-child(6),
  .is-advice-page .programme-table th:nth-child(7),
  .is-advice-page .programme-table td:nth-child(7) { width: 104px; }
  .is-advice-page .programme-table th:nth-child(8),
  .is-advice-page .programme-table td:nth-child(8) { width: 126px; }

  .is-advice-page .programme-table td:nth-child(4),
  .is-advice-page .programme-table td:nth-child(5) {
    white-space: nowrap;
  }

  .is-advice-page .programme-table td:nth-child(4) .programme-number,
  .is-advice-page .programme-table td:nth-child(5) .programme-number {
    margin-right: 4px;
  }

  .is-advice-page .programme-race-link strong {
    font-size: 0.82rem;
    line-height: 1.2;
  }

  .is-advice-page .programme-race-link small {
    font-size: 0.72rem;
    line-height: 1.25;
  }
}

.is-advice-page .advice-open-course {
  min-height: 34px;
  padding: 6px 14px;
  line-height: 1.15;
}

/* Gains et résultats : difficulté en pastilles seulement et date plus discrète. */
.is-results-page .results-gain-row td:first-child strong {
  font-size: 0.8rem;
  font-weight: 850;
}

.is-results-page .results-gain-row td:nth-child(4) small {
  display: none;
}

.is-results-page .results-gain-row td:nth-child(4) .programme-difficulty {
  justify-content: flex-start;
}

/* Même interaction pour les badges de filtres sur l'accueil et la page Gains. */
.home-gain-filters button,
.results-gain-filter button {
  transition: transform 160ms ease;
}

.home-gain-filters button:hover,
.home-gain-filters button.is-active,
.results-gain-filter button:hover,
.results-gain-filter button.is-active {
  transform: translateY(-2px);
}

.home-gain-filters button:hover .race-bet-badge,
.home-gain-filters button:hover .home-filter-all,
.home-gain-filters button.is-active .race-bet-badge,
.home-gain-filters button.is-active .home-filter-all,
.results-gain-filter button:hover .race-bet-badge,
.results-gain-filter button:hover .results-filter-all,
.results-gain-filter button.is-active .race-bet-badge,
.results-gain-filter button.is-active .results-filter-all {
  color: #ffffff !important;
  background: #12100e !important;
  box-shadow: 0 6px 12px rgba(17, 16, 14, 0.2) !important;
}

/* Bloc d'accueil : trois derniers gains officiels, sans numéros de chevaux. */
.home-gain-slide-content {
  display: grid;
  gap: 10px;
  min-width: 0;
  animation: home-gain-slide-in 260ms ease both;
}

.home-gain-slide-counter {
  color: rgba(255, 255, 255, 0.66);
  font-size: 0.72rem;
  font-weight: 900;
}

.home-gain-slide-content > strong {
  max-width: 92%;
}

.home-gain-amount small {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.74rem;
  font-weight: 800;
}

.home-gain-slider-dots {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
}

.home-gain-slider-dots button {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.38);
  cursor: pointer;
  transition: width 160ms ease, background 160ms ease, transform 160ms ease;
}

.home-gain-slider-dots button:hover {
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.72);
}

.home-gain-slider-dots button.is-active {
  width: 22px;
  background: #ffffff;
}

@keyframes home-gain-slide-in {
  from { opacity: 0; transform: translateX(8px); }
  to { opacity: 1; transform: translateX(0); }
}

/* === V63 : pastilles outsider/tocard et labo pleine largeur === */
/* Pronostics et conseils : uniquement le numéro, à la taille des pastilles Base. */
.is-advice-page .advice-value-pick {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: 0;
}

.is-advice-page .advice-value-pick i {
  width: 24px;
  height: 24px;
  border-radius: 8px;
  font-size: 0.72rem;
  line-height: 1;
}

.is-advice-page .advice-value-pick.is-outsider i {
  color: #ffffff;
  background: #a86722;
}

.is-advice-page .advice-value-pick.is-longshot i {
  color: #ffffff;
  background: #be1814;
}

.is-advice-page .advice-value-pick small {
  display: none !important;
}

@media (min-width: 981px) {
  .is-advice-page .programme-table th:nth-child(6),
  .is-advice-page .programme-table td:nth-child(6),
  .is-advice-page .programme-table th:nth-child(7),
  .is-advice-page .programme-table td:nth-child(7) {
    width: 66px;
    text-align: center;
  }
}

/* Labo : exploiter réellement toute la largeur du navigateur. */
body.is-lab-page {
  overflow-x: hidden;
}

@media (min-width: 901px) {
  body.is-lab-page .lab-workbench {
    box-sizing: border-box;
    grid-template-columns: minmax(350px, 390px) minmax(0, 1fr);
    gap: 16px;
    width: 100vw;
    max-width: none;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    padding: 20px clamp(14px, 1.6vw, 28px) 56px;
  }

  body.is-lab-page .lab-controls {
    overflow-x: hidden;
    overflow-y: auto;
  }

  body.is-lab-page .lab-criterion-top {
    align-items: flex-start;
  }

  body.is-lab-page .lab-criterion-top label {
    flex: 1 1 auto;
    min-width: 0;
  }

  body.is-lab-page .lab-criterion-top label span {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    line-height: 1.28;
  }

  body.is-lab-page .lab-main-grid {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 400px);
    gap: 14px;
  }

  body.is-lab-page .lab-ranking-table {
    min-width: 820px;
  }
}

/* Lecture graphique / Score : numéro, nom, barre et note restent lisibles. */
.lab-score-bars {
  gap: 8px;
}

.lab-score-bars article {
  display: grid;
  grid-template-columns: minmax(145px, 1.15fr) minmax(90px, 1fr) 48px;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 8px;
  border: 1px solid rgba(17, 24, 23, 0.07);
  border-radius: 8px;
  background: #f7f7f5;
}

.lab-score-bars article > div {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.lab-score-bars .programme-number {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  color: #ffffff;
  background: #111111;
  font-size: 0.75rem;
}

.lab-score-bars strong {
  display: -webkit-box;
  overflow: hidden;
  color: #171717;
  font-size: 0.78rem;
  line-height: 1.18;
  text-overflow: clip;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.lab-score-bars p {
  min-width: 0;
  height: 14px;
  margin: 0;
  border: 1px solid rgba(17, 24, 23, 0.08);
  background: #e4e4df;
}

.lab-score-bars p i {
  min-width: 5px;
  background: linear-gradient(90deg, #be1814 0%, #df8f2e 62%, #f3d56a 100%);
  box-shadow: 0 0 0 1px rgba(190, 24, 20, 0.08) inset;
}

.lab-score-bars b {
  display: inline-grid;
  place-items: center;
  min-width: 48px;
  min-height: 28px;
  padding: 4px 6px;
  border-radius: 7px;
  color: #ffffff;
  background: #111111;
  text-align: center;
  font-size: 0.78rem;
}

@media (min-width: 901px) and (max-width: 1450px) {
  body.is-lab-page .lab-workbench {
    grid-template-columns: minmax(330px, 360px) minmax(0, 1fr);
  }

  body.is-lab-page .lab-main-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .lab-score-bars article {
    grid-template-columns: minmax(120px, 1fr) minmax(72px, 0.9fr) 44px;
    gap: 7px;
    padding: 7px;
  }

  .lab-score-bars strong {
    font-size: 0.72rem;
  }
}

/* === V64 : colonne labo naturelle et bibliothèque supprimée === */
/* Sur un écran desktop normal, la colonne de filtres suit la hauteur réelle
   de son contenu : le défilement se fait avec la page, sans ascenseur interne. */
@media (min-width: 901px) {
  body.is-lab-page .lab-controls {
    max-height: none;
    overflow-x: hidden;
    overflow-y: visible;
  }
}

/* Sur un écran très bas, on réactive un ascenseur interne afin que les boutons
   du bas restent accessibles sans bloquer l'interface. */
@media (min-width: 901px) and (max-height: 720px) {
  body.is-lab-page .lab-controls {
    max-height: calc(100vh - 24px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
}

/* === V65 : blocs du labo compacts et alignés en haut === */
/* La colonne de résultats ne s'étire plus jusqu'à la hauteur de la longue
   colonne de filtres. Chaque rangée garde uniquement la hauteur de son contenu. */
@media (min-width: 901px) {
  body.is-lab-page .lab-results {
    align-self: start;
    align-content: start;
    grid-auto-rows: max-content;
    height: auto;
    min-height: 0;
  }

  body.is-lab-page .lab-ticket-grid,
  body.is-lab-page .lab-main-grid,
  body.is-lab-page .lab-secondary-grid {
    align-content: start;
  }

  body.is-lab-page .lab-main-grid,
  body.is-lab-page .lab-secondary-grid {
    align-items: start;
  }

  body.is-lab-page .lab-ticket,
  body.is-lab-page .lab-panel {
    align-content: start;
    align-self: start;
    height: auto;
    min-height: 0;
  }

  body.is-lab-page .lab-ticket {
    grid-template-rows: max-content max-content max-content;
  }

  body.is-lab-page .lab-chart {
    min-height: 0;
  }
}

/* === V66 : tendance réelle et navigation de date du labo === */
/* La date du laboratoire adopte la même hiérarchie ocre que les autres pages. */
body.is-lab-page .lab-kicker {
  color: #d8a23b;
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.is-lab-page .lab-date-shortcuts {
  margin-bottom: 0;
}

body.is-lab-page .lab-date-shortcuts button {
  transform: translateY(0);
  transition: transform 150ms ease, background 150ms ease, border-color 150ms ease;
}

body.is-lab-page .lab-date-shortcuts button:hover,
body.is-lab-page .lab-date-shortcuts button:focus-visible {
  transform: translateY(-2px);
}

/* Performance réelle : 4 KPI + une courbe compacte réellement alimentée. */
.lab-performance-visual {
  display: grid;
  gap: 7px;
  padding: 11px 12px 8px;
  border: 1px solid rgba(17, 24, 23, 0.08);
  border-radius: 9px;
  background: linear-gradient(180deg, #fbfbfa 0%, #ffffff 100%);
}

.lab-performance-visual-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.lab-performance-visual-head > div:first-child {
  display: grid;
  gap: 2px;
}

.lab-performance-visual-head span {
  color: var(--brand);
  font-size: 0.7rem;
  font-weight: 950;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.lab-performance-visual-head strong {
  color: var(--ink);
  font-size: 0.88rem;
}

.lab-performance-trend {
  display: grid;
  justify-items: end;
  gap: 1px;
  text-align: right;
}

.lab-performance-trend b {
  font-size: 0.78rem;
}

.lab-performance-trend small {
  color: var(--muted);
  font-size: 0.67rem;
}

.lab-performance-trend.is-up b { color: #1f8c5d; }
.lab-performance-trend.is-down b { color: var(--brand); }
.lab-performance-trend.is-stable b { color: #9b6224; }

.lab-performance-visual .lab-backtest-curve {
  display: block;
  width: 100%;
  min-height: 116px;
  max-height: 132px;
  border-radius: 0;
  background: transparent;
}

.lab-performance-visual .lab-backtest-curve path {
  display: none;
}

.lab-performance-visual .lab-backtest-curve polyline {
  fill: none;
  stroke: var(--brand);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 4;
  vector-effect: non-scaling-stroke;
}

.lab-performance-guides line {
  stroke: rgba(17, 24, 23, 0.09);
  stroke-width: 1;
  stroke-dasharray: 4 5;
  vector-effect: non-scaling-stroke;
}

.lab-performance-area {
  fill: url(#lab-performance-fill);
}

.lab-performance-dots circle {
  fill: #ffffff;
  stroke: var(--brand);
  stroke-width: 2.5;
  vector-effect: non-scaling-stroke;
}

.lab-performance-scale {
  display: flex;
  justify-content: space-between;
  color: var(--muted);
  font-size: 0.64rem;
  font-weight: 800;
}

@media (max-width: 620px) {
  .lab-performance-visual-head {
    align-items: stretch;
  }

  .lab-performance-trend small {
    max-width: 115px;
  }
}

/* === V67 : navigation de dates simplifiée === */
/* Pronostics et conseils est exclusivement consacré aux courses du jour. */
body.is-advice-page #programme-date-shortcuts {
  display: none !important;
}

/* === V68 : accueil historique et gains officiels === */
.home-archive-context,
.home-mini-result-date {
  margin: 0;
  color: #a66418;
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.home-mini-result-date {
  grid-column: 1 / -1;
  padding-bottom: 8px;
}

#home-race-card .programme-quinte-bets {
  display: none !important;
}

/* === V69 : sous-menu Quinté et page conseils simplifiée === */
.nav-menu-item {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  align-items: stretch;
}

.nav-menu-item > .mode-button {
  width: 100%;
}

.top-submenu {
  position: absolute;
  z-index: 1000;
  top: calc(100% + 8px);
  left: 50%;
  display: grid;
  gap: 4px;
  min-width: 190px;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 9px;
  background: #080808;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.34);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, -5px);
  transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
}

.top-submenu::before {
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  height: 10px;
  content: "";
}

.nav-menu-item:hover .top-submenu,
.nav-menu-item:focus-within .top-submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

.top-submenu button {
  min-height: 34px;
  padding: 0 12px;
  border: 0;
  border-radius: 7px;
  color: #ffffff;
  background: transparent;
  font-size: 0.74rem;
  font-weight: 900;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
}

.top-submenu button:hover,
.top-submenu button:focus-visible,
.top-submenu button.is-active {
  color: #ffffff;
  background: var(--brand);
  outline: 0;
}

@media (min-width: 1180px) {
  .top-nav {
    overflow: visible;
  }
}

/* La navigation de date et les sélecteurs de courses vivent désormais dans le sous-menu du haut. */
body.is-quinte-page #quinte-date-shortcuts,
body.is-quinte-page #course-race-navigation {
  display: none !important;
}

body.is-quinte-page .quinte-title-row {
  margin-top: 1px;
}

body.is-quinte-page .race-title-line {
  margin-top: 2px;
}

body.is-quinte-page #race-title {
  display: block !important;
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(0.96rem, 1.45vw, 1.22rem);
  font-weight: 850;
  line-height: 1.24;
}

/* Pronostics et conseils reprend la structure simple de Gains et résultats. */
body.is-advice-page #featured-quinte,
body.is-advice-page #programme-stats,
body.is-advice-page .programme-reunions-section,
body.is-advice-page #programme-difficulty-section,
body.is-advice-page #programme-discipline-section {
  display: none !important;
}

body.is-advice-page .programme-hero-inner {
  grid-template-columns: minmax(0, 1fr);
}

body.is-advice-page .programme-hero-main {
  width: min(100%, 980px);
  max-width: 980px;
}

body.is-advice-page .programme-content {
  padding-top: 28px;
}

body.is-advice-page .programme-table-panel {
  gap: 16px;
}

/* === V70 : accueil Quinté simplifié et sous-menu au premier plan === */
/* Le clip plein écran de l'en-tête masquait le menu déroulant sous le premier bloc. */
.topbar {
  z-index: 5000;
  overflow: visible;
  clip-path: none;
  box-shadow: none;
}

.topbar::before {
  position: absolute;
  z-index: 0;
  top: 0;
  bottom: 0;
  left: 50%;
  display: block;
  width: 100vw;
  content: "";
  background: var(--black);
  transform: translateX(-50%);
}

.nav-menu-item {
  z-index: 5001;
}

.top-submenu {
  z-index: 10000;
}

@media (min-width: 1180px) {
  .top-nav {
    overflow: visible !important;
  }
}

/* Sur l'accueil, le CTA est désormais l'unique action du bloc Quinté. */
#home-race-card .programme-quinte-cta {
  width: 100%;
  margin-top: 4px;
}

/* === V71 : accueil archives, historique navigateur, filtres et tableaux === */
/* Les filtres restent regroupés, mais chaque bouton conserve une largeur adaptée à son contenu. */
body.is-programme-page:not(.is-results-page) .programme-discipline-filter p,
body.is-advice-page .programme-discipline-filter p {
  display: flex;
  flex-wrap: wrap;
  grid-auto-flow: initial;
  grid-auto-columns: initial;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  overflow: visible;
}

body.is-programme-page:not(.is-results-page) .programme-discipline-filter button,
body.is-advice-page .programme-discipline-filter button {
  flex: 0 0 auto;
  width: auto;
  min-width: max-content;
  padding-right: 10px;
  padding-left: 10px;
}

/* Pronostics et conseils : difficulté visible comme sur Gains/Résultats. */
body.is-advice-page #programme-discipline-section {
  display: block !important;
}

body.is-advice-page #programme-difficulty-section {
  display: none !important;
}

body.is-advice-page .advice-course-row td:nth-child(4) small {
  display: none;
}

body.is-advice-page .advice-course-row td:nth-child(4) .programme-difficulty {
  justify-content: flex-start;
}

@media (min-width: 981px) {
  body.is-advice-page .programme-table {
    min-width: 1240px;
    table-layout: fixed;
  }

  body.is-advice-page .programme-table th:nth-child(1),
  body.is-advice-page .programme-table td:nth-child(1) { width: 86px; }
  body.is-advice-page .programme-table th:nth-child(2),
  body.is-advice-page .programme-table td:nth-child(2) { width: 68px; }
  body.is-advice-page .programme-table th:nth-child(3),
  body.is-advice-page .programme-table td:nth-child(3) { width: 224px; }
  body.is-advice-page .programme-table th:nth-child(4),
  body.is-advice-page .programme-table td:nth-child(4) { width: 84px; }
  body.is-advice-page .programme-table th:nth-child(5),
  body.is-advice-page .programme-table td:nth-child(5) { width: 78px; }
  body.is-advice-page .programme-table th:nth-child(6),
  body.is-advice-page .programme-table td:nth-child(6) { width: 176px; }
  body.is-advice-page .programme-table th:nth-child(7),
  body.is-advice-page .programme-table td:nth-child(7),
  body.is-advice-page .programme-table th:nth-child(8),
  body.is-advice-page .programme-table td:nth-child(8) { width: 104px; }
  body.is-advice-page .programme-table th:nth-child(9),
  body.is-advice-page .programme-table td:nth-child(9) { width: 126px; }

  body.is-advice-page .programme-table td:nth-child(4) {
    white-space: normal;
  }

  body.is-advice-page .programme-table td:nth-child(5),
  body.is-advice-page .programme-table td:nth-child(6) {
    white-space: nowrap;
  }

  body.is-advice-page .programme-table td:nth-child(5) .programme-number,
  body.is-advice-page .programme-table td:nth-child(6) .programme-number {
    margin-right: 4px;
  }
}

/* Le bloc Quinté du Programme reprend exactement la version simplifiée de l'accueil. */
body.is-programme-page:not(.is-advice-page):not(.is-results-page) #featured-quinte .programme-quinte-cta {
  width: 100%;
  margin-top: 4px;
}

/* === V72 : Quinté Programme daté et sélection vs arrivée === */
/* Le bloc Quinté du Programme s'aligne sur le bas des cartes Réunions, Courses et À suivre. */
body.is-programme-page:not(.is-advice-page):not(.is-results-page) #featured-quinte {
  align-self: end;
}

/* Pronostics : huit chevaux comparés à l'arrivée officielle des cinq premiers. */
body.is-advice-page .advice-selection-vs-cell {
  vertical-align: top;
}

body.is-advice-page .advice-selection-vs-cell .programme-comparison-row {
  align-content: start;
  gap: 4px;
}

body.is-advice-page .advice-selection-vs-cell .programme-comparison-row + .programme-comparison-row {
  margin-top: 9px;
  padding-top: 8px;
  border-top: 1px solid rgba(17, 24, 23, 0.09);
}

body.is-advice-page .advice-selection-vs-cell .programme-comparison-row > span {
  font-size: 0.66rem;
  line-height: 1.1;
}

body.is-advice-page .advice-selection-vs-cell .programme-comparison-row p {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px;
  min-height: 24px;
  white-space: nowrap;
}

body.is-advice-page .advice-selection-vs-cell .programme-number {
  flex: 0 0 auto;
  margin-right: 0 !important;
}

@media (min-width: 981px) {
  body.is-advice-page .programme-table {
    min-width: 1360px;
  }

  body.is-advice-page .programme-table th:nth-child(6),
  body.is-advice-page .programme-table td:nth-child(6) {
    width: 286px;
    white-space: normal;
  }
}

/* === V73 : sélection vs arrivée compacte === */
/* Les deux rangées restent explicites par leur position : sélection puis arrivée. */
body.is-advice-page .advice-selection-vs-cell .programme-comparison-row {
  display: block;
}

body.is-advice-page .advice-selection-vs-cell .programme-comparison-row p {
  margin: 0;
}

@media (min-width: 981px) {
  body.is-advice-page .programme-table th:nth-child(6),
  body.is-advice-page .programme-table td:nth-child(6) {
    width: 248px;
  }
}

/* === V74 : largeur exacte sélection vs arrivée === */
/* La colonne se cale sur la largeur réelle des huit pastilles au lieu de
   récupérer l'espace restant du tableau. */
@media (min-width: 981px) {
  body.is-advice-page .programme-table {
    table-layout: auto;
  }

  body.is-advice-page .programme-table th:nth-child(6),
  body.is-advice-page .programme-table td:nth-child(6) {
    width: 1%;
    min-width: 244px;
    max-width: 244px;
    white-space: nowrap;
  }

  body.is-advice-page .advice-selection-vs-cell .programme-comparison-row p {
    width: max-content;
    max-width: 220px;
  }
}

/* Sans arrivée officielle, aucune seconde ligne ni mention d'attente. */
body.is-advice-page .advice-selection-vs-cell .advice-selection-row:only-child {
  margin-bottom: 0;
}

/* === V75 : alignement compact du tableau Pronostics === */
/* Une sélection seule est centrée verticalement comme les autres cellules. */
body.is-advice-page .advice-selection-vs-cell.selection-only {
  vertical-align: middle;
}

body.is-advice-page .advice-selection-vs-cell.has-arrival {
  vertical-align: top;
}

body.is-advice-page .advice-selection-vs-cell.selection-only .advice-selection-row {
  display: flex;
  align-items: center;
  min-height: 34px;
}

/* Outsider et Tocard : numéro et tiret occupent exactement le même axe. */
body.is-advice-page .advice-course-row td:nth-child(7),
body.is-advice-page .advice-course-row td:nth-child(8) {
  padding-right: 6px;
  padding-left: 6px;
  text-align: center;
  vertical-align: middle;
}

body.is-advice-page .advice-course-row td:nth-child(7) .advice-value-pick,
body.is-advice-page .advice-course-row td:nth-child(8) .advice-value-pick {
  display: inline-flex;
  width: auto;
  min-width: 24px;
  align-items: center;
  justify-content: center;
}

body.is-advice-page .advice-course-row td:nth-child(7) > .empty-state,
body.is-advice-page .advice-course-row td:nth-child(8) > .empty-state {
  display: inline-flex;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  color: rgba(17, 24, 23, 0.48);
  font-size: 0.58rem;
  font-weight: 650;
  line-height: 1;
}

/* Le tableau tient dans la largeur desktop : la colonne de sélection se termine
   juste après la 8e pastille et les colonnes techniques restent compactes. */
@media (min-width: 981px) {
  body.is-advice-page .programme-table {
    width: 100%;
    min-width: 1100px;
    table-layout: auto;
  }

  body.is-advice-page .programme-table th,
  body.is-advice-page .programme-table td {
    padding-right: 8px;
    padding-left: 8px;
  }

  body.is-advice-page .programme-table th:nth-child(1),
  body.is-advice-page .programme-table td:nth-child(1) {
    width: 74px;
  }

  body.is-advice-page .programme-table th:nth-child(2),
  body.is-advice-page .programme-table td:nth-child(2) {
    width: 56px;
  }

  body.is-advice-page .programme-table th:nth-child(3),
  body.is-advice-page .programme-table td:nth-child(3) {
    width: auto;
    min-width: 188px;
  }

  body.is-advice-page .programme-table th:nth-child(4),
  body.is-advice-page .programme-table td:nth-child(4) {
    width: 72px;
  }

  body.is-advice-page .programme-table th:nth-child(5),
  body.is-advice-page .programme-table td:nth-child(5) {
    width: 64px;
  }

  body.is-advice-page .programme-table th:nth-child(6),
  body.is-advice-page .programme-table td:nth-child(6) {
    width: 230px;
    min-width: 230px;
    max-width: 230px;
  }

  body.is-advice-page .advice-selection-vs-cell .programme-comparison-row p {
    width: 213px;
    max-width: 213px;
    gap: 3px;
  }

  body.is-advice-page .programme-table th:nth-child(7),
  body.is-advice-page .programme-table td:nth-child(7),
  body.is-advice-page .programme-table th:nth-child(8),
  body.is-advice-page .programme-table td:nth-child(8) {
    width: 62px;
    min-width: 62px;
    max-width: 62px;
    text-align: center;
  }

  body.is-advice-page .programme-table th:nth-child(9),
  body.is-advice-page .programme-table td:nth-child(9) {
    width: 116px;
    min-width: 116px;
    max-width: 116px;
    text-align: center;
  }

  body.is-advice-page .advice-open-course {
    max-width: 100%;
    padding-right: 11px;
    padding-left: 11px;
    white-space: nowrap;
  }
}

/* === V76 : équilibre des colonnes Pronostics === */
@media (min-width: 981px) {
  /* Le tableau reste contenu dans la largeur disponible. */
  body.is-advice-page .programme-table {
    width: 100%;
    min-width: 1060px;
    table-layout: fixed;
  }

  /* Nom / discipline : colonne plus courte, avec retour à la ligne naturel. */
  body.is-advice-page .programme-table th:nth-child(3),
  body.is-advice-page .programme-table td:nth-child(3) {
    width: 158px;
    min-width: 158px;
    max-width: 158px;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  body.is-advice-page .programme-table td:nth-child(3) strong,
  body.is-advice-page .programme-table td:nth-child(3) .programme-race-name,
  body.is-advice-page .programme-table td:nth-child(3) a {
    white-space: normal;
    line-height: 1.18;
  }

  /* Difficulté et Base restent compactes, sans être collées à la sélection. */
  body.is-advice-page .programme-table th:nth-child(4),
  body.is-advice-page .programme-table td:nth-child(4) {
    width: 66px;
    min-width: 66px;
    max-width: 66px;
  }

  body.is-advice-page .programme-table th:nth-child(5),
  body.is-advice-page .programme-table td:nth-child(5) {
    width: 72px;
    min-width: 72px;
    max-width: 72px;
    padding-right: 13px;
  }

  /* Sélection : largeur exacte des huit numéros, avec espace côté Base. */
  body.is-advice-page .programme-table th:nth-child(6),
  body.is-advice-page .programme-table td:nth-child(6) {
    width: 232px;
    min-width: 232px;
    max-width: 232px;
    padding-left: 13px;
    padding-right: 11px;
  }

  body.is-advice-page .advice-selection-vs-cell .programme-comparison-row p {
    width: 215px;
    max-width: 215px;
    gap: 3px;
  }

  /* Outsider et Tocard respirent davantage l'un par rapport à l'autre. */
  body.is-advice-page .programme-table th:nth-child(7),
  body.is-advice-page .programme-table td:nth-child(7),
  body.is-advice-page .programme-table th:nth-child(8),
  body.is-advice-page .programme-table td:nth-child(8) {
    width: 66px;
    min-width: 66px;
    max-width: 66px;
  }

  body.is-advice-page .programme-table th:nth-child(7),
  body.is-advice-page .programme-table td:nth-child(7) {
    padding-right: 11px;
  }

  body.is-advice-page .programme-table th:nth-child(8),
  body.is-advice-page .programme-table td:nth-child(8) {
    padding-left: 11px;
  }

  /* Le bouton reste contenu dans sa colonne. */
  body.is-advice-page .programme-table th:nth-child(9),
  body.is-advice-page .programme-table td:nth-child(9) {
    width: 112px;
    min-width: 112px;
    max-width: 112px;
    padding-right: 5px;
    padding-left: 5px;
  }

  body.is-advice-page .advice-open-course {
    width: 100%;
    max-width: 102px;
    padding-right: 9px;
    padding-left: 9px;
    box-sizing: border-box;
  }
}

/* === V77 : largeur Nom et Sélection === */
@media (min-width: 981px) {
  /* Nom / discipline légèrement élargi. Le retour à la ligne reste autorisé. */
  body.is-advice-page .programme-table th:nth-child(3),
  body.is-advice-page .programme-table td:nth-child(3) {
    width: 180px;
    min-width: 180px;
    max-width: 180px;
  }

  /* Sélection vs arrivée : 8 pastilles de 24 px + 7 espaces de 3 px. */
  body.is-advice-page .programme-table th:nth-child(6),
  body.is-advice-page .programme-table td:nth-child(6) {
    width: 225px;
    min-width: 225px;
    max-width: 225px;
    padding-right: 6px;
    padding-left: 6px;
  }

  body.is-advice-page .advice-selection-vs-cell .programme-comparison-row p {
    width: 213px;
    min-width: 213px;
    max-width: 213px;
  }
}

/* === V78 : ajustement Nom, Sélection et statut En cours === */
@media (min-width: 981px) {
  /* Nom / discipline encore légèrement élargi. */
  body.is-advice-page .programme-table th:nth-child(3),
  body.is-advice-page .programme-table td:nth-child(3) {
    width: 198px;
    min-width: 198px;
    max-width: 198px;
  }

  /* Sélection vs arrivée : 8 pastilles de 24 px + 7 espaces de 3 px. */
  body.is-advice-page .programme-table th:nth-child(6),
  body.is-advice-page .programme-table td:nth-child(6) {
    width: 213px;
    min-width: 213px;
    max-width: 213px;
    padding-right: 0;
    padding-left: 0;
  }

  body.is-advice-page .advice-selection-vs-cell .programme-comparison-row p {
    width: 213px;
    min-width: 213px;
    max-width: 213px;
  }
}

/* Le statut En cours reste lisible au même emplacement que À venir et Terminé. */
.course-status-pill.status-en-cours,
.course-status-pill.status-en-attente-resultat {
  font-weight: 600 !important;
}

/* === V79 : authentification et espace membre === */
.mode-button.login-button.is-account-link {
  min-height: 34px;
  padding: 0 4px;
  border-color: transparent;
  color: #ffffff;
  background: transparent;
  text-decoration: none;
}

.mode-button.login-button.is-account-link:hover,
.mode-button.login-button.is-account-link:focus-visible,
.mode-button.login-button.is-account-link.is-active {
  border-color: transparent;
  color: var(--brand);
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.auth-page,
.account-page {
  min-height: calc(100vh - 130px);
  padding: clamp(34px, 6vw, 78px) 0;
}

.auth-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 520px);
  gap: clamp(28px, 6vw, 80px);
  align-items: center;
  width: min(100%, 1120px);
  margin: 0 auto;
}

.auth-intro {
  display: grid;
  gap: 15px;
}

.auth-kicker,
.auth-form-heading > span {
  color: var(--brand);
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.auth-intro h1,
.account-card h1 {
  color: var(--ink);
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.04;
}

.auth-intro > p,
.account-card > p {
  color: var(--muted);
  line-height: 1.65;
}

.auth-intro ul {
  display: grid;
  gap: 10px;
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
}

.auth-intro li {
  position: relative;
  padding-left: 24px;
  color: var(--ink);
  line-height: 1.5;
}

.auth-intro li::before {
  position: absolute;
  top: 0;
  left: 0;
  color: var(--brand);
  content: "✓";
  font-weight: 950;
}

.auth-card,
.account-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 20px 50px rgba(17, 24, 23, 0.12);
}

.auth-card {
  padding: clamp(22px, 4vw, 36px);
}

.auth-form {
  display: grid;
  gap: 17px;
}

.auth-form-heading {
  display: grid;
  gap: 6px;
  margin-bottom: 3px;
}

.auth-form-heading h2 {
  color: var(--ink);
  font-size: clamp(1.55rem, 3vw, 2.05rem);
}

.auth-form > p:not(.auth-message):not(.auth-captcha-note) {
  margin-top: -4px;
  color: var(--muted);
  line-height: 1.55;
}

.auth-form label {
  display: grid;
  gap: 7px;
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 850;
}

.auth-form label small {
  color: var(--muted);
  font-size: 0.73rem;
  font-weight: 600;
}

.auth-form input {
  width: 100%;
  min-height: 48px;
  padding: 0 13px;
  border: 1px solid #c9ccc7;
  border-radius: 7px;
  color: var(--ink);
  background: #ffffff;
  font: inherit;
  font-weight: 650;
}

.auth-form input:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(163, 27, 23, 0.12);
  outline: 0;
}

.auth-submit,
.account-logout {
  min-height: 48px;
  border: 1px solid var(--brand);
  border-radius: 7px;
  color: #ffffff;
  background: var(--brand);
  font-size: 0.9rem;
  font-weight: 950;
  cursor: pointer;
}

.auth-submit:hover,
.auth-submit:focus-visible,
.account-logout:hover,
.account-logout:focus-visible {
  filter: brightness(0.9);
  outline: 0;
}

.auth-submit:disabled,
.account-logout:disabled {
  cursor: wait;
  opacity: 0.62;
}

.auth-text-link {
  justify-self: center;
  padding: 2px;
  border: 0;
  color: var(--brand);
  background: transparent;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 850;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.auth-message {
  padding: 11px 13px;
  border: 1px solid rgba(163, 27, 23, 0.25);
  border-radius: 7px;
  color: #7f1613;
  background: rgba(163, 27, 23, 0.06);
  font-size: 0.84rem;
  font-weight: 750;
  line-height: 1.45;
}

.auth-message.is-success {
  border-color: rgba(31, 115, 70, 0.28);
  color: #17603a;
  background: rgba(31, 115, 70, 0.07);
}

.auth-captcha-note {
  color: var(--muted);
  font-size: 0.7rem;
  line-height: 1.45;
  text-align: center;
}

.account-card {
  display: grid;
  gap: 15px;
  width: min(100%, 780px);
  margin: 0 auto;
  padding: clamp(24px, 5vw, 42px);
}

.account-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 10px 0;
}

.account-details > div {
  display: grid;
  gap: 8px;
  min-height: 112px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8f8f5;
}

.account-details dt {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.account-details dd {
  margin: 0;
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 950;
  overflow-wrap: anywhere;
}

.account-logout {
  justify-self: start;
  min-width: 160px;
  padding: 0 18px;
  color: var(--brand);
  background: #ffffff;
}

@media (max-width: 820px) {
  .auth-layout {
    grid-template-columns: 1fr;
  }

  .auth-intro {
    max-width: 650px;
  }

  .account-details {
    grid-template-columns: 1fr;
  }
}

/* === V80 : tri chevaux, Programme, Abonnement et gains === */

/* Programme : sélection seule centrée verticalement et aucune arrivée factice. */
body.is-programme-page:not(.is-advice-page):not(.is-results-page) .programme-selection-vs-cell.selection-only {
  vertical-align: middle;
}

body.is-programme-page:not(.is-advice-page):not(.is-results-page)
  .programme-selection-vs-cell.selection-only
  .programme-selection-row {
  display: flex;
  min-height: 36px;
  align-items: center;
}

body.is-programme-page:not(.is-advice-page):not(.is-results-page) .programme-selection-vs-cell.has-arrival {
  vertical-align: top;
}

/* Accueil : mise en avant explicite du plus gros gain récent. */
.home-gain-context-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.home-gain-context-line .home-gain-delay {
  margin: 0;
}

.home-gain-largest {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 8px;
  border: 1px solid rgba(255, 216, 78, 0.46);
  border-radius: 999px;
  color: #1a1710;
  background: #ffd84e;
  font-size: 0.64rem;
  font-weight: 950;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

/* Page Abonnement originale PronoTurf Plus. */
.static-page.is-subscription-page {
  display: block;
  min-height: calc(100vh - 90px);
  padding: 0;
  background:
    linear-gradient(180deg, #f5f1eb 0, #faf9f7 34%, #ffffff 100%);
}

.subscription-page-inner {
  width: min(100%, 1500px);
  margin: 0 auto;
  padding: clamp(34px, 5vw, 74px) max(24px, calc((100vw - 1500px) / 2 + 24px)) 72px;
}

.subscription-pricing-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(520px, 1.08fr);
  gap: clamp(34px, 6vw, 82px);
  align-items: center;
}

.subscription-pricing-copy {
  display: grid;
  gap: 18px;
}

.subscription-kicker,
.subscription-section-heading > p {
  margin: 0;
  color: var(--brand);
  font-size: 0.76rem;
  font-weight: 950;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.subscription-pricing-copy h1 {
  max-width: 720px;
  margin: 0;
  color: var(--ink);
  font-size: clamp(2.25rem, 4.7vw, 4.65rem);
  line-height: 0.98;
  letter-spacing: -0.045em;
}

.subscription-intro {
  max-width: 700px;
  margin: 0;
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.65;
}

.subscription-feature-list {
  display: grid;
  gap: 10px;
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
}

.subscription-feature-list li {
  position: relative;
  padding-left: 30px;
  color: var(--ink);
  font-size: 0.96rem;
  font-weight: 750;
  line-height: 1.4;
}

.subscription-feature-list li::before {
  content: "✓";
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  width: 21px;
  height: 21px;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  background: var(--brand);
  font-size: 0.72rem;
  font-weight: 950;
}

.subscription-assurance {
  display: grid;
  gap: 4px;
  margin-top: 4px;
  padding: 16px 18px;
  border-left: 4px solid #b98a35;
  border-radius: 0 8px 8px 0;
  background: rgba(185, 138, 53, 0.1);
}

.subscription-assurance strong {
  color: var(--ink);
  font-size: 0.92rem;
}

.subscription-assurance span {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.subscription-plan-panel {
  display: grid;
  gap: 14px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid rgba(17, 24, 23, 0.1);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 28px 70px rgba(17, 24, 23, 0.14);
}

.subscription-plan-list {
  display: grid;
  gap: 10px;
}

.subscription-plan-card {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
  width: 100%;
  min-height: 100px;
  padding: 15px 16px;
  border: 1px solid rgba(17, 24, 23, 0.12);
  border-radius: 10px;
  color: var(--ink);
  background: #f7f6f3;
  text-align: left;
  cursor: pointer;
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.subscription-plan-card:hover,
.subscription-plan-card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(201, 30, 24, 0.45);
  outline: 0;
  box-shadow: 0 12px 24px rgba(17, 24, 23, 0.08);
}

.subscription-plan-card.is-selected {
  border-color: var(--brand);
  color: #ffffff;
  background: linear-gradient(135deg, #1a1918, #8e1713 72%, var(--brand));
  box-shadow: 0 18px 34px rgba(122, 21, 17, 0.22);
}

.subscription-plan-radio {
  position: relative;
  width: 18px;
  height: 18px;
  border: 2px solid currentColor;
  border-radius: 50%;
  opacity: 0.55;
}

.subscription-plan-card.is-selected .subscription-plan-radio {
  opacity: 1;
}

.subscription-plan-card.is-selected .subscription-plan-radio::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: #ffffff;
}

.subscription-plan-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.subscription-plan-main strong {
  font-size: 1rem;
}

.subscription-plan-main small {
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.7;
}

.subscription-plan-main em {
  margin-top: 4px;
  font-size: 0.76rem;
  font-style: normal;
  line-height: 1.35;
  opacity: 0.72;
}

.subscription-plan-price {
  display: grid;
  justify-items: end;
  gap: 2px;
  min-width: 128px;
}

.subscription-plan-price > small {
  padding: 4px 7px;
  border-radius: 999px;
  color: #3e2b05;
  background: #f3d56a;
  font-size: 0.58rem;
  font-weight: 950;
  text-transform: uppercase;
}

.subscription-plan-price > strong {
  font-size: clamp(1.45rem, 2.4vw, 2.1rem);
  line-height: 1;
}

.subscription-plan-price > span {
  font-size: 0.7rem;
  font-weight: 800;
  opacity: 0.68;
}

.subscription-selection-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 4px 2px;
  border-top: 1px solid var(--line);
}

.subscription-selection-summary span {
  color: var(--muted);
  font-size: 0.78rem;
}

.subscription-selection-summary strong {
  color: var(--ink);
  font-size: 0.9rem;
}

.subscription-submit {
  width: 100%;
  min-height: 50px;
  border: 0;
  border-radius: 8px;
  color: #ffffff;
  background: var(--brand);
  font-size: 0.92rem;
  font-weight: 950;
  cursor: pointer;
}

.subscription-submit.is-unavailable {
  background: linear-gradient(135deg, #9b211d, var(--brand));
  box-shadow: 0 12px 22px rgba(201, 30, 24, 0.2);
}

.subscription-submit:hover,
.subscription-submit:focus-visible {
  filter: brightness(1.06);
  outline: 3px solid rgba(201, 30, 24, 0.18);
}

.subscription-unavailable-note {
  margin: -4px 0 0;
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.4;
  text-align: center;
}

.subscription-trust-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(44px, 7vw, 88px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.08);
  box-shadow: 0 24px 54px rgba(17, 24, 23, 0.18);
}

.subscription-trust-strip article {
  display: grid;
  gap: 5px;
  min-height: 128px;
  align-content: center;
  padding: 22px;
  color: #ffffff;
  background: linear-gradient(145deg, #111111, #24201c);
  text-align: center;
}

.subscription-trust-strip strong {
  color: #f3d56a;
  font-size: 1.35rem;
}

.subscription-trust-strip span {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.78rem;
  line-height: 1.4;
}

.subscription-benefits,
.subscription-faq {
  display: grid;
  gap: 28px;
  margin-top: clamp(54px, 8vw, 96px);
}

.subscription-section-heading {
  display: grid;
  gap: 8px;
  max-width: 790px;
}

.subscription-section-heading h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.75rem, 3.2vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
}

.subscription-benefit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.subscription-benefit-grid article {
  display: grid;
  gap: 10px;
  min-height: 210px;
  align-content: start;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 18px 38px rgba(17, 24, 23, 0.07);
}

.subscription-benefit-grid article > span {
  color: var(--brand);
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0.08em;
}

.subscription-benefit-grid h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1.18rem;
}

.subscription-benefit-grid p,
.subscription-faq-list p {
  margin: 0;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.6;
}

.subscription-faq-list {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 18px 38px rgba(17, 24, 23, 0.06);
}

.subscription-faq-list details + details {
  border-top: 1px solid var(--line);
}

.subscription-faq-list summary {
  position: relative;
  padding: 20px 54px 20px 22px;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 900;
  cursor: pointer;
  list-style: none;
}

.subscription-faq-list summary::-webkit-details-marker {
  display: none;
}

.subscription-faq-list summary::after {
  content: "+";
  position: absolute;
  top: 50%;
  right: 22px;
  transform: translateY(-50%);
  color: var(--brand);
  font-size: 1.2rem;
}

.subscription-faq-list details[open] summary::after {
  content: "−";
}

.subscription-faq-list details p {
  padding: 0 22px 22px;
}

@media (max-width: 1080px) {
  .subscription-pricing-hero {
    grid-template-columns: 1fr;
  }

  .subscription-pricing-copy h1,
  .subscription-intro {
    max-width: 900px;
  }
}

@media (max-width: 760px) {
  .subscription-page-inner {
    padding-right: 16px;
    padding-left: 16px;
  }

  .subscription-plan-card {
    grid-template-columns: 20px minmax(0, 1fr);
  }

  .subscription-plan-price {
    grid-column: 2;
    justify-items: start;
    min-width: 0;
    margin-top: 7px;
  }

  .subscription-trust-strip,
  .subscription-benefit-grid {
    grid-template-columns: 1fr;
  }

  .subscription-trust-strip article {
    min-height: 104px;
  }

  .subscription-selection-summary {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* === V81 : légende entre les filtres et le tableau === */
.programme-table-panel > .programme-comparison-legend {
  margin-top: 0;
  margin-bottom: 0;
  padding: 10px 12px;
  box-shadow: none;
}

body.is-advice-page .programme-table-panel > .programme-comparison-legend {
  display: flex !important;
}

/* === V82 : page Abonnement pleine largeur === */
#static-page.is-subscription-page {
  width: 100vw;
  max-width: none;
  margin-right: calc(50% - 50vw);
  margin-left: calc(50% - 50vw);
}

#static-page.is-subscription-page .subscription-page-inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-right: clamp(20px, 3.2vw, 58px);
  padding-left: clamp(20px, 3.2vw, 58px);
}

@media (max-width: 760px) {
  #static-page.is-subscription-page .subscription-page-inner {
    padding-right: 16px;
    padding-left: 16px;
  }
}

/* === V85 : accès premium sécurisé et aperçu public === */
.premium-menu-lock {
  display: inline-grid;
  place-items: center;
  margin-right: 4px;
  font-size: 0.72em;
  line-height: 1;
  vertical-align: 0.02em;
}

.mode-button.is-premium-unlocked .premium-menu-lock,
.quinte-tab.is-premium-unlocked .premium-menu-lock {
  opacity: 0.82;
}

.premium-access-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  padding: 18px 20px;
  border: 1px solid rgba(164, 112, 32, 0.28);
  border-radius: 9px;
  background: linear-gradient(135deg, rgba(184, 132, 47, 0.12), rgba(255, 255, 255, 0.98));
  box-shadow: 0 8px 24px rgba(51, 38, 18, 0.06);
}

.premium-access-notice.is-compact {
  min-height: 72px;
  padding: 12px 14px;
}

.premium-access-notice > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.premium-access-kicker {
  color: #9b681c;
  font-size: 0.68rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.premium-access-notice strong {
  color: var(--ink);
  font-size: 0.98rem;
  line-height: 1.25;
}

.premium-access-notice p {
  margin: 0;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.45;
}

.premium-subscribe-button {
  flex: 0 0 auto;
  min-height: 38px;
  padding: 0 17px;
  border: 1px solid var(--brand);
  border-radius: 7px;
  color: #fff;
  background: var(--brand);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 950;
  cursor: pointer;
}

.premium-subscribe-button:hover,
.premium-subscribe-button:focus-visible {
  filter: brightness(0.9);
  outline: 0;
}

.premium-cell-blank {
  display: block;
  width: min(100%, 118px);
  min-width: 34px;
  height: 17px;
  margin: 0 auto;
  border: 1px solid rgba(164, 112, 32, 0.15);
  border-radius: 5px;
  background: linear-gradient(90deg, rgba(184, 132, 47, 0.08), rgba(184, 132, 47, 0.16), rgba(184, 132, 47, 0.08));
}

.premium-preview-lines {
  display: grid;
  gap: 7px;
  width: 100%;
}

.premium-preview-lines i {
  display: block;
  width: 100%;
  height: 9px;
  border-radius: 999px;
  background: linear-gradient(90deg, #ece8df 0 72%, transparent 72%);
}

.premium-preview-lines i:nth-child(2) { width: 86%; }
.premium-preview-lines i:nth-child(3) { width: 66%; }
.premium-preview-lines i:nth-child(4) { width: 77%; }

.premium-empty-panel {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 132px;
  padding: 24px;
  border: 1px dashed rgba(164, 112, 32, 0.32);
  border-radius: 8px;
  color: #79551f;
  background: rgba(184, 132, 47, 0.06);
  font-size: 0.8rem;
  font-weight: 800;
  text-align: center;
}

.premium-home-preview {
  display: grid;
  gap: 13px;
  width: 100%;
}

.premium-home-preview strong {
  color: var(--ink);
  font-size: 0.86rem;
}

.premium-home-preview span {
  color: #8b611f;
  font-size: 0.74rem;
  font-weight: 850;
}

.programme-table-panel > .premium-access-notice {
  margin: 10px 0 12px;
}

.is-premium-preview .programme-table td .premium-cell-blank {
  width: 100%;
  max-width: 152px;
}

.premium-advice-preview {
  min-height: 208px;
}

.premium-advice-preview > small {
  color: #8b611f;
  font-size: 0.72rem;
  font-weight: 850;
}

#bet-advice > .premium-access-notice {
  grid-column: 1 / -1;
}

.premium-pronostic-runner .runner-main {
  min-height: 98px;
}

.premium-runner-data-placeholder {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 13px;
}

.premium-runner-data-placeholder span {
  min-height: 36px;
  padding: 10px 7px;
  border: 1px solid rgba(164, 112, 32, 0.18);
  border-radius: 6px;
  color: #8a6a38;
  background: rgba(184, 132, 47, 0.06);
  font-size: 0.68rem;
  font-weight: 850;
  text-align: center;
}

.premium-ticket-preview .premium-preview-lines {
  margin: 14px 0 7px;
}

.premium-probability-preview strong {
  color: #a7772f;
}

#hero-prono-vs-arrival > .premium-access-notice {
  min-height: 100%;
  border: 0;
  box-shadow: none;
}

.race-analysis-values .race-value-panel strong {
  font-size: 0.78rem;
}

#radar-panel > .premium-access-notice,
#quinte-panel-cotes > .premium-access-notice,
.comparator-shell > .premium-access-notice {
  margin-bottom: 12px;
}

#stats-table .premium-cell-blank,
#odds-table .premium-cell-blank,
.partants-category-table .premium-cell-blank,
#comparator-table .premium-cell-blank {
  max-width: 86px;
}

#lab-ranking-table .premium-access-notice {
  margin: 8px;
}

.premium-lab-ticket {
  min-height: 78px;
}

.is-premium-preview #lab-page [disabled] {
  cursor: not-allowed;
  opacity: 0.64;
}

.has-premium-access .premium-generated {
  display: none !important;
}

@media (max-width: 760px) {
  .premium-access-notice {
    align-items: stretch;
    flex-direction: column;
  }

  .premium-subscribe-button {
    width: 100%;
  }

  .premium-runner-data-placeholder {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* === V86 : preuves publiques et mentions premium harmonisées === */
.premium-locked-text {
  display: inline-block;
  max-width: 100%;
  color: #93651f;
  font-size: 0.58rem;
  font-weight: 850;
  line-height: 1.15;
  text-align: center;
  white-space: normal;
}

.premium-runner-data-placeholder span {
  display: grid;
  align-content: center;
  gap: 4px;
  min-height: 46px;
  padding: 5px 3px;
  border: 0;
  background: transparent;
}

.premium-runner-data-placeholder b {
  color: var(--ink);
  font-size: 0.67rem;
}

.premium-runner-data-placeholder small,
.premium-ticket-preview .ticket-footer {
  color: #93651f;
  font-size: 0.56rem;
  font-weight: 850;
  line-height: 1.15;
}

.premium-ticket-preview {
  min-height: 68px;
}

.premium-advice-preview {
  min-height: 150px;
}

.premium-advice-preview > .premium-locked-text {
  margin-top: auto;
  text-align: left;
}

.premium-cell-blank,
.premium-preview-lines {
  display: none !important;
}

.premium-radar-lock-cell {
  min-width: 420px;
  padding: 12px !important;
  vertical-align: middle !important;
  background: #fff !important;
}

.premium-radar-lock-cell > div {
  display: grid;
  place-items: center;
  min-height: 100%;
  padding: 38px 20px;
  border: 1px solid rgba(164, 112, 32, 0.26);
  border-radius: 8px;
  color: #93651f;
  background: rgba(184, 132, 47, 0.045);
  font-size: 0.78rem;
  font-weight: 900;
  text-align: center;
}

#stats-table td:first-child,
#stats-table td:last-child,
#odds-table td:nth-last-child(-n + 2),
.partants-category-table td:nth-last-child(-n + 2),
#comparator-table td:not(:first-child) {
  vertical-align: middle;
}

#lab-page > .premium-access-notice {
  margin: 18px auto;
  width: min(1500px, calc(100% - 32px));
}

.is-premium-preview #lab-page #lab-course-select,
.is-premium-preview #lab-page [data-lab-date-role] {
  opacity: 1;
  cursor: pointer;
}

@media (max-width: 900px) {
  .premium-radar-lock-cell {
    min-width: 240px;
  }
}
/* === V87 : accès historique, calendrier labo et interface premium allégée === */
.premium-menu-lock {
  position: relative;
  display: inline-block;
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  margin-right: 5px;
  vertical-align: -2px;
}

.premium-menu-lock::before {
  content: "";
  position: absolute;
  left: 2px;
  bottom: 1px;
  width: 10px;
  height: 8px;
  border-radius: 2px;
  background: currentColor;
}

.premium-menu-lock::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 0;
  width: 6px;
  height: 7px;
  border: 2px solid currentColor;
  border-bottom: 0;
  border-radius: 6px 6px 0 0;
  transform-origin: right bottom;
  transition: transform 160ms ease, left 160ms ease;
}

.premium-menu-lock.is-open::after {
  left: 6px;
  transform: translate(3px, -1px) rotate(34deg);
}

.mode-button.is-premium-unlocked .premium-menu-lock,
.quinte-tab.is-premium-unlocked .premium-menu-lock,
.is-premium-unlocked .premium-menu-lock {
  color: #2d8b57;
  opacity: 1;
}

.is-premium-locked .premium-menu-lock {
  color: #8d6a2a;
}

.premium-row-locked-text {
  display: block;
  width: 100%;
  color: #93651f;
  font-size: 0.58rem;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
}

.premium-shared-table-cell {
  vertical-align: middle !important;
  text-align: center !important;
}

.premium-runner-data-placeholder {
  position: relative;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding-bottom: 19px;
}

.premium-runner-data-placeholder span {
  min-height: 22px;
  padding: 3px 4px;
}

.premium-runner-row-lock {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
}

#lab-ticket-grid {
  position: relative;
}

.premium-lab-ticket-row-lock {
  grid-column: 1 / -1;
  margin-top: -8px;
  padding: 0 6px 4px;
  text-align: center;
}

.premium-lab-ticket {
  min-height: 54px;
}

.lab-calendar-field {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 4px 7px 4px 10px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 7px;
  background: rgba(16, 10, 10, 0.42);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
}

.lab-calendar-field input {
  min-width: 142px;
  padding: 5px 7px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 5px;
  color: #111;
  background: #fff;
  font: inherit;
}

.lab-no-data-card,
.lab-no-data-wide {
  display: grid;
  place-items: center;
  min-height: 90px;
  padding: 18px;
  border: 1px dashed rgba(164, 112, 32, 0.34);
  border-radius: 8px;
  color: #79551f;
  background: rgba(184, 132, 47, 0.06);
  font-weight: 800;
  text-align: center;
}

.lab-no-data-wide {
  grid-column: 1 / -1;
}

.runner-equipment-icon {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  min-height: 23px;
  padding: 2px 5px;
  border: 1px solid rgba(23, 97, 72, 0.2);
  border-radius: 999px;
  color: #176148;
  background: #e6f3ed;
  line-height: 1;
  white-space: nowrap;
}

.runner-equipment-icon svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.runner-equipment-icon b {
  font-size: 0.62rem;
  font-weight: 900;
}

.runner-equipment-icon.is-blinkers {
  color: #49307c;
  border-color: rgba(73, 48, 124, 0.2);
  background: #eee8fa;
}

.runner-equipment-icon.is-other {
  color: #525252;
  border-color: #ddd;
  background: #f1f1f1;
}

.quinte-tab[hidden] {
  display: none !important;
}

.has-public-history-access .premium-generated,
.has-public-history-access .premium-locked-text,
.has-public-history-access .premium-row-locked-text {
  display: none !important;
}

@media (max-width: 760px) {
  .lab-calendar-field {
    width: 100%;
    justify-content: space-between;
  }
  .lab-calendar-field input {
    min-width: 0;
    width: 150px;
  }
}

/* === V88 : cadenas images, badge reCAPTCHA et Google Analytics === */
.premium-menu-lock {
  width: 16px;
  height: 16px;
  flex-basis: 16px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.premium-menu-lock::before,
.premium-menu-lock::after {
  content: none !important;
  display: none !important;
}

.premium-menu-lock.is-closed {
  background-image: url("/assets/cadenas-ferme.png?v=88a");
}

.premium-menu-lock.is-open {
  background-image: url("/assets/cadenas-ouvert.png?v=88a");
}

.mode-button.is-premium-unlocked .premium-menu-lock,
.quinte-tab.is-premium-unlocked .premium-menu-lock,
.is-premium-unlocked .premium-menu-lock,
.is-premium-locked .premium-menu-lock {
  color: inherit;
  opacity: 1;
}

.grecaptcha-badge {
  visibility: hidden !important;
}

body.is-auth-page .grecaptcha-badge {
  visibility: visible !important;
}

/* === V90 : interface recentrée, données en attente, presse et confrontations === */
#static-page.is-subscription-page .subscription-page-inner {
  width: min(100%, 1180px);
  max-width: 1180px;
  margin-right: auto;
  margin-left: auto;
  padding-right: clamp(20px, 3vw, 40px);
  padding-left: clamp(20px, 3vw, 40px);
}

.stats-grid article.is-data-pending {
  border-style: dashed;
  background: #fbfaf7;
}

.stats-grid article.is-data-pending strong {
  color: #8a6c36;
  font-size: 1rem;
}

.category-pill.is-pending {
  color: #725b31;
  background: #f2ead8;
}

.press-consensus-tools {
  display: grid;
  gap: 12px;
  margin-bottom: 14px;
}

.press-consensus-summary,
.press-data-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #ffffff;
}

.press-consensus-summary strong,
.press-data-notice strong {
  color: var(--ink);
}

.press-consensus-summary span,
.press-data-notice p {
  margin: 0;
  color: var(--muted);
  font-size: 0.88rem;
}

.press-consensus-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.press-consensus-tabs button {
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: #ffffff;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 850;
  cursor: pointer;
}

.press-consensus-tabs button.is-active {
  color: #ffffff;
  border-color: var(--black);
  background: var(--black);
}

.comparator-history-empty {
  margin: 0;
  padding: 18px;
  color: var(--muted);
  background: #fafaf8;
  font-size: 0.88rem;
  line-height: 1.55;
}

@media (max-width: 760px) {
  #static-page.is-subscription-page .subscription-page-inner {
    width: 100%;
    padding-right: 14px;
    padding-left: 14px;
  }

  .press-consensus-summary,
  .press-data-notice {
    align-items: flex-start;
    flex-direction: column;
  }

  .press-consensus-tabs {
    display: grid;
    grid-template-columns: 1fr;
  }
}

/* === V91 : préférences de pronostics et test e-mail dans Mon compte === */
.account-layout {
  display: grid;
  gap: 22px;
  width: min(100%, 1180px);
  margin: 0 auto;
}

.account-layout .account-card {
  width: 100%;
  margin: 0;
}

.account-summary-card {
  grid-template-columns: 1fr;
}

.account-preferences-card {
  display: grid;
  gap: 22px;
  padding: clamp(24px, 4vw, 42px);
}

.account-preferences-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
}

.account-preferences-heading > div {
  display: grid;
  gap: 7px;
}

.account-preferences-heading h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.55rem, 3vw, 2.15rem);
}

.account-preferences-heading p:last-child {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.account-preferences-status {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 5px 11px;
  border: 1px solid rgba(163, 27, 23, 0.2);
  border-radius: 999px;
  color: var(--brand);
  background: rgba(163, 27, 23, 0.06);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.account-preferences-status.is-active {
  border-color: rgba(31, 115, 70, 0.28);
  color: #17603a;
  background: rgba(31, 115, 70, 0.08);
}

.account-premium-notice {
  margin: 0;
  padding: 13px 15px;
  border: 1px solid rgba(163, 27, 23, 0.22);
  border-radius: 8px;
  color: #7f1613;
  background: rgba(163, 27, 23, 0.06);
  font-weight: 800;
}

.account-preference-master-grid,
.account-schedule-grid {
  display: grid;
  gap: 14px;
}

.account-preference-master-grid {
  grid-template-columns: 1fr;
}

.account-schedule-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.account-switch-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: start;
  min-height: 102px;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #f8f8f5;
  cursor: pointer;
}

.account-switch-card > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.account-switch {
  position: relative;
  width: 42px;
  height: 24px;
  margin-top: 1px;
  border-radius: 999px;
  background: #c8cbc6;
  transition: background 160ms ease;
}

.account-switch::after {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.22);
  content: "";
  transition: transform 160ms ease;
}

.account-switch-card > input:checked + .account-switch {
  background: #176f4f;
}

.account-switch-card > input:checked + .account-switch::after {
  transform: translateX(18px);
}

.account-switch-card > input:focus-visible + .account-switch {
  box-shadow: 0 0 0 3px rgba(163, 27, 23, 0.15);
}

.account-switch-card > span:last-child {
  display: grid;
  gap: 5px;
}

.account-switch-card strong {
  color: var(--ink);
  font-size: 0.94rem;
}

.account-switch-card small,
.account-schedule-grid small {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.45;
}

.account-schedule-grid label {
  display: grid;
  gap: 7px;
  color: var(--ink);
  font-size: 0.84rem;
  font-weight: 850;
}

.account-schedule-grid input,
.account-schedule-grid select {
  width: 100%;
  min-height: 46px;
  padding: 0 12px;
  border: 1px solid #c9ccc7;
  border-radius: 7px;
  color: var(--ink);
  background: #ffffff;
  font: inherit;
  font-weight: 700;
}

.account-send-days {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
}

.account-send-days legend {
  margin-bottom: 10px;
  color: var(--ink);
  font-size: 0.84rem;
  font-weight: 900;
}

.account-send-days > div {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}

.account-send-days label {
  cursor: pointer;
}

.account-send-days input {
  position: absolute;
  opacity: 0;
}

.account-send-days span {
  display: flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--muted);
  background: #f8f8f5;
  font-size: 0.76rem;
  font-weight: 900;
}

.account-send-days input:checked + span {
  border-color: #176f4f;
  color: #ffffff;
  background: #176f4f;
}

.account-prediction-choice-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.account-principal-choice,
.account-game-choice {
  min-height: 64px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
}

.account-principal-choice {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: auto 1fr;
  gap: 11px;
  align-items: center;
  padding: 14px 16px;
  cursor: pointer;
}

.account-principal-choice > span {
  display: grid;
  gap: 4px;
}

.account-principal-choice strong {
  color: var(--ink);
}

.account-principal-choice small {
  color: var(--muted);
  line-height: 1.4;
}

.account-game-choice {
  display: grid;
  grid-template-columns: minmax(115px, 0.55fr) minmax(260px, 1.45fr);
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
}

.account-game-toggle {
  display: flex;
  gap: 9px;
  align-items: center;
  color: var(--ink);
  font-weight: 900;
  cursor: pointer;
}

.account-principal-choice input,
.account-game-toggle input {
  width: 18px;
  height: 18px;
  accent-color: #176f4f;
}

.account-profile-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.account-profile-options label {
  cursor: pointer;
}

.account-profile-options input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.account-profile-options span {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  padding: 6px 8px;
  border: 1px solid #c9ccc7;
  border-radius: 7px;
  color: var(--muted);
  background: #f8f8f5;
  font-size: 0.74rem;
  font-weight: 900;
  text-align: center;
  transition: 150ms ease;
}

.account-profile-options input:checked + span {
  border-color: #176f4f;
  color: #ffffff;
  background: #176f4f;
}

.account-profile-options input:focus-visible + span {
  box-shadow: 0 0 0 3px rgba(23, 111, 79, 0.16);
}

.account-preferences-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.account-preferences-actions .auth-submit,
.account-secondary-button {
  min-height: 48px;
  padding: 0 18px;
}

.account-secondary-button {
  border: 1px solid var(--brand);
  border-radius: 7px;
  color: var(--brand);
  background: #ffffff;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 950;
  cursor: pointer;
}

.account-secondary-button:hover,
.account-secondary-button:focus-visible {
  background: rgba(163, 27, 23, 0.06);
  outline: 0;
}

.account-preferences-message {
  margin: 0;
}

.account-preferences-footnote {
  margin: -4px 0 0;
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.5;
}

.account-preferences-card [disabled] {
  cursor: not-allowed;
  opacity: 0.58;
}

@media (max-width: 760px) {
  .account-preferences-heading {
    display: grid;
  }

  .account-preferences-status {
    justify-self: start;
  }

  .account-preference-master-grid,
  .account-schedule-grid,
  .account-prediction-choice-list {
    grid-template-columns: 1fr;
  }

  .account-send-days > div {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .account-game-choice {
    grid-template-columns: 1fr;
  }
}



/* === V91.1 : activation simplifiée et profils multiples === */
.account-switch-card {
  min-height: 88px;
}


/* === V91.2 : aperçu réel du récapitulatif quotidien === */
.account-digest-button {
  min-height: 48px;
  padding: 0 18px;
  border: 1px solid #176f4f;
  border-radius: 7px;
  color: #ffffff;
  background: #176f4f;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 950;
  cursor: pointer;
}

.account-digest-button:hover,
.account-digest-button:focus-visible {
  background: #0f5e40;
  outline: 0;
}


/* === V92.1 : Mes stratégies du laboratoire === */
.lab-strategy-library {
  width: min(1420px, calc(100% - 48px));
  margin: 28px auto 0;
  padding: 28px;
  border: 1px solid rgba(116, 30, 25, 0.14);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 22px 55px rgba(72, 25, 20, 0.08);
}

.lab-strategy-library-head,
.lab-library-title-row,
.lab-strategy-meta,
.lab-library-actions,
.lab-strategy-dialog-head,
.lab-strategy-dialog-actions,
.lab-strategy-form-summary {
  display: flex;
  align-items: center;
}

.lab-strategy-library-head {
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}

.lab-strategy-library-head h2,
.lab-library-card h3,
.lab-strategy-dialog h2 {
  margin: 0;
  color: #241b19;
}

.lab-strategy-library-head > div > p:last-child {
  margin: 8px 0 0;
  color: #746763;
}

.lab-strategy-list {
  display: grid;
  gap: 16px;
}

.lab-library-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  padding: 20px;
  border: 1px solid #eaded9;
  border-radius: 18px;
  background: #fff;
}

.lab-library-card.is-current {
  border-color: rgba(190, 24, 20, 0.45);
  box-shadow: 0 0 0 3px rgba(190, 24, 20, 0.08);
}

.lab-library-title-row {
  justify-content: space-between;
  gap: 18px;
}

.lab-library-title-row span {
  display: block;
  margin-bottom: 4px;
  color: #9a5d51;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.lab-library-card-main > p {
  margin: 10px 0 14px;
  color: #71645f;
}

.lab-strategy-meta {
  flex-wrap: wrap;
  gap: 8px;
}

.lab-strategy-meta span,
.lab-strategy-form-summary span {
  padding: 7px 10px;
  border-radius: 999px;
  background: #f7f3f1;
  color: #685d58;
  font-size: 0.78rem;
}

.lab-library-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 370px;
}

.lab-library-actions button,
.lab-strategy-empty button,
.lab-strategy-dialog-actions button,
.lab-strategy-library-head > button {
  min-height: 40px;
  padding: 9px 14px;
  border: 1px solid #dfd2cd;
  border-radius: 11px;
  background: #fff;
  color: #4c3d38;
  font-weight: 800;
  cursor: pointer;
}

.lab-library-actions button.is-danger {
  color: #a42520;
}

.lab-library-actions .lab-primary-action,
.lab-strategy-dialog-actions .lab-primary-action,
.lab-strategy-library-head .lab-primary-action {
  border-color: #be1814;
  background: #be1814;
  color: #fff;
}

.lab-strategy-empty {
  padding: 26px;
  border: 1px dashed #d8c8c2;
  border-radius: 16px;
  text-align: center;
  color: #71645f;
}

.lab-strategy-empty strong {
  display: block;
  margin-bottom: 6px;
  color: #352925;
}

.lab-strategy-message {
  margin: 0 0 16px;
}

.lab-strategy-modal[hidden] {
  display: none !important;
}

.lab-strategy-modal {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
}

.lab-strategy-modal-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(31, 20, 17, 0.62);
  backdrop-filter: blur(4px);
}

.lab-strategy-dialog {
  position: relative;
  z-index: 1;
  width: min(620px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  padding: 26px;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 30px 90px rgba(26, 12, 9, 0.28);
}

.lab-strategy-dialog-head {
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 22px;
}

.lab-strategy-close {
  width: 40px;
  height: 40px;
  border: 1px solid #e0d5d1;
  border-radius: 50%;
  background: #fff;
  color: #5e4f49;
  font-size: 1.6rem;
  cursor: pointer;
}

.lab-strategy-field {
  display: grid;
  gap: 8px;
  margin-top: 16px;
  color: #433631;
  font-weight: 800;
}

.lab-strategy-field input,
.lab-strategy-field textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #d9ccc7;
  border-radius: 12px;
  background: #fff;
  color: #2e2421;
  font: inherit;
}

.lab-strategy-field textarea {
  resize: vertical;
}

.lab-strategy-form-summary {
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.lab-strategy-dialog-actions {
  justify-content: flex-end;
  gap: 10px;
  margin-top: 22px;
}

body.is-modal-open {
  overflow: hidden;
}

@media (max-width: 840px) {
  .lab-strategy-library {
    width: min(100% - 24px, 1420px);
    padding: 20px;
  }

  .lab-strategy-library-head,
  .lab-library-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .lab-strategy-library-head {
    display: grid;
  }

  .lab-library-actions {
    justify-content: flex-start;
    max-width: none;
  }
}


/* === V92.3 : backtest simple des stratégies === */
.lab-strategy-backtests {
  width: min(1180px, calc(100% - 32px));
  margin: 24px auto 56px;
  padding: 28px;
  border: 1px solid #e7dfdb;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(39, 31, 28, 0.08);
}
.lab-strategy-backtests-head,
.lab-backtest-result-head,
.lab-backtest-form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.lab-strategy-backtests-head h2 { margin: 3px 0 6px; }
.lab-strategy-backtests-head p { margin: 0; color: #6d6561; }
.lab-backtest-server-badge {
  flex: 0 0 auto;
  padding: 8px 12px;
  border-radius: 999px;
  background: #e6f4ed;
  color: #176945;
  font-size: .78rem;
  font-weight: 800;
}
.lab-backtest-form {
  margin-top: 22px;
  padding: 20px;
  border: 1px solid #eadfda;
  border-radius: 16px;
  background: #fbf9f8;
}
.lab-backtest-selected { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.lab-backtest-selected span { color: #756d69; font-size: .82rem; }
.lab-backtest-selected strong { font-size: 1.08rem; }
.lab-backtest-presets { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.lab-backtest-presets button {
  border: 1px solid #dfd5d0;
  background: #fff;
  color: #342d2a;
  border-radius: 10px;
  font-weight: 750;
}
.lab-backtest-presets button { padding: 9px 14px; }
.lab-backtest-presets button.is-active { background: #1d7655; border-color: #1d7655; color: #fff; }
.lab-backtest-date-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lab-backtest-date-grid label { display: grid; gap: 7px; font-weight: 750; }
.lab-backtest-date-grid span { font-size: .82rem; }
.lab-backtest-date-grid input { min-height: 44px; border: 1px solid #d9cfca; border-radius: 9px; padding: 0 12px; background: #fff; }
.lab-backtest-form-actions { margin-top: 16px; align-items: flex-end; }
.lab-backtest-form-actions p { max-width: 720px; margin: 0; color: #746b67; font-size: .78rem; }
.lab-backtest-message { margin-top: 16px; }
.lab-backtest-result { margin-top: 20px; }
.lab-backtest-empty,
.lab-backtest-loading { padding: 22px; border: 1px dashed #d9cfca; border-radius: 14px; background: #fbfaf9; }
.lab-backtest-empty p,
.lab-backtest-loading p { margin: 6px 0 0; color: #716965; }
.lab-backtest-result-head { padding: 16px 18px; border-radius: 14px; background: #201b19; color: #fff; }
.lab-backtest-result-head div { display: grid; gap: 4px; }
.lab-backtest-result-head span { color: #d8c9c2; font-size: .76rem; text-transform: uppercase; letter-spacing: .05em; }
.lab-backtest-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.lab-backtest-kpis article { padding: 16px; border: 1px solid #e8dfda; border-radius: 13px; background: #fff; }
.lab-backtest-kpis span { display: block; color: #736a66; font-size: .78rem; }
.lab-backtest-kpis strong { display: block; margin-top: 7px; font-size: 1.42rem; }
.lab-backtest-kpis small { display: block; margin-top: 5px; color: #807772; }
.lab-backtest-delta.is-positive { color: #17714d; }
.lab-backtest-delta.is-negative { color: #b41e1a; }
.lab-backtest-delta.is-neutral { color: #756c68; }
.lab-backtest-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.lab-backtest-comparison div { padding: 15px; border-radius: 12px; background: #f4f0ee; }
.lab-backtest-comparison span { display: block; color: #716965; font-size: .78rem; }
.lab-backtest-comparison strong { display: block; margin-top: 5px; }
.lab-backtest-comparison p { grid-column: 1 / -1; margin: 0; color: #766d69; font-size: .78rem; }
.lab-backtest-disciplines { margin-top: 20px; }
.lab-backtest-disciplines h3 { margin-bottom: 10px; }
.lab-backtest-disciplines { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.lab-backtest-disciplines h3 { grid-column: 1 / -1; }
.lab-backtest-disciplines article { padding: 13px; border: 1px solid #e6ddd8; border-radius: 12px; }
.lab-backtest-disciplines span,
.lab-backtest-disciplines small { display: block; color: #746c68; font-size: .76rem; }
.lab-backtest-disciplines strong { display: block; margin: 5px 0; font-size: 1.15rem; }
.lab-backtest-samples { margin-top: 20px; }
.lab-backtest-samples table { width: 100%; border-collapse: collapse; }
.lab-backtest-samples th,
.lab-backtest-samples td { padding: 10px; border-bottom: 1px solid #eee6e2; text-align: left; vertical-align: middle; }
.lab-backtest-samples td small { display: block; color: #776f6b; max-width: 240px; }
.lab-backtest-disclaimer { margin: 16px 0 0; color: #746b67; font-size: .78rem; }
@media (max-width: 900px) {
  .lab-backtest-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lab-backtest-disciplines { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .lab-strategy-backtests { width: calc(100% - 18px); padding: 18px; }
  .lab-strategy-backtests-head,
  .lab-backtest-result-head,
  .lab-backtest-form-actions { align-items: stretch; flex-direction: column; }
  .lab-backtest-date-grid,
  .lab-backtest-kpis,
  .lab-backtest-comparison,
  .lab-backtest-disciplines { grid-template-columns: 1fr; }
  .lab-backtest-comparison p,
  .lab-backtest-disciplines h3 { grid-column: auto; }
}

/* === V92.5 : automatisation explicite des stratégies === */
.lab-strategy-automation {
  display: grid;
  gap: 8px;
  grid-column: 1 / -1;
  padding-top: 14px;
  border-top: 1px solid #eee4df;
}

.lab-strategy-automation-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #e9ded8;
  border-radius: 10px;
  background: #fbf9f8;
  cursor: pointer;
}

.lab-strategy-automation-option input {
  width: 17px;
  height: 17px;
  margin: 2px 0 0;
  accent-color: #187a57;
  flex: 0 0 auto;
}

.lab-strategy-automation-option span {
  display: grid;
  gap: 2px;
}

.lab-strategy-automation-option strong {
  font-size: 0.88rem;
}

.lab-strategy-automation-option small {
  color: #756d69;
  line-height: 1.35;
}

.lab-strategy-automation-option:has(input:disabled) {
  opacity: 0.58;
  cursor: not-allowed;
}

@media (min-width: 900px) {
  .lab-strategy-automation {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* === V92.6 : aperçu des stratégies automatiques du jour === */
.lab-automation-preview {
  margin-top: 22px;
  padding: 24px;
  border: 1px solid #eadfda;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(56, 35, 28, 0.07);
}

.lab-automation-preview-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.lab-automation-preview-head h2,
.lab-automation-preview-head p {
  margin-top: 0;
}

.lab-automation-preview-head p:last-child {
  margin-bottom: 0;
  color: #6f6763;
}

.lab-automation-message {
  margin: 16px 0 0;
}

.lab-automation-preview-content {
  margin-top: 16px;
}

.lab-automation-empty {
  padding: 18px;
  border: 1px dashed #ddd0c9;
  border-radius: 12px;
  background: #faf8f7;
}

.lab-automation-empty p {
  margin: 6px 0 0;
  color: #756d69;
}

.lab-automation-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.lab-automation-summary article {
  display: grid;
  gap: 4px;
  padding: 13px;
  border: 1px solid #eadfda;
  border-radius: 11px;
  background: #faf8f7;
}

.lab-automation-summary span {
  color: #756d69;
  font-size: .76rem;
}

.lab-automation-summary strong {
  font-size: 1rem;
}

.lab-automation-groups {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

.lab-automation-group {
  padding: 16px;
  border: 1px solid #eadfda;
  border-radius: 13px;
  background: #fff;
}

.lab-automation-group-head,
.lab-automation-course-head,
.lab-automation-selection,
.lab-automation-comparison {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.lab-automation-group-head span,
.lab-automation-course-head span {
  color: #b4211b;
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
}

.lab-automation-group-head h3,
.lab-automation-course-head h4 {
  margin: 3px 0 0;
}

.lab-automation-course-head p {
  margin: 4px 0 0;
  color: #756d69;
  font-size: .82rem;
}

.lab-automation-course-list {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}

.lab-automation-course {
  padding: 13px;
  border: 1px solid #eee4df;
  border-radius: 10px;
  background: #fbf9f8;
}

.lab-automation-course-head > strong {
  flex: 0 0 auto;
  color: #176f51;
  font-size: .82rem;
}

.lab-automation-selection {
  margin-top: 11px;
  align-items: center;
}

.lab-automation-selection > span {
  color: #756d69;
  font-size: .78rem;
}

.lab-automation-selection div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.lab-automation-selection b {
  display: inline-grid;
  place-items: center;
  min-width: 29px;
  height: 29px;
  padding: 0 7px;
  border-radius: 8px;
  background: #176f51;
  color: #fff;
}

.lab-automation-comparison {
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: 9px;
  color: #756d69;
  font-size: .76rem;
}

.lab-automation-comparison span {
  padding: 4px 7px;
  border-radius: 999px;
  background: #f0ecea;
}

.lab-automation-storage-note {
  margin: 14px 0 0;
  color: #756d69;
  font-size: .78rem;
}

@media (max-width: 820px) {
  .lab-automation-preview-head,
  .lab-automation-group-head,
  .lab-automation-course-head {
    display: grid;
  }

  .lab-automation-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 540px) {
  .lab-automation-preview {
    padding: 17px;
  }

  .lab-automation-summary {
    grid-template-columns: 1fr;
  }
}

/* === V92.7 : génération contrôlée et stockage compact === */
.lab-automation-preview-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.lab-automation-preview-actions button {
  min-height: 42px;
}

@media (max-width: 700px) {
  .lab-automation-preview-actions {
    width: 100%;
    justify-content: stretch;
  }

  .lab-automation-preview-actions button {
    width: 100%;
  }
}

/* === V92.10 : historique des pronostics automatiques === */
.lab-history {
  margin-top: 22px;
  padding: 24px;
  border: 1px solid #eadfda;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(56, 35, 28, 0.07);
}

.lab-history-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.lab-history-head h2,
.lab-history-head p {
  margin-top: 0;
}

.lab-history-head p:last-child {
  margin-bottom: 0;
  color: #6f6763;
}

.lab-history-message {
  margin: 16px 0 0;
}

.lab-history-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 16px;
  padding: 15px;
  border: 1px solid #eadfda;
  border-radius: 12px;
  background: #faf8f7;
}

.lab-history-filters label {
  display: grid;
  gap: 5px;
}

.lab-history-filters label > span {
  color: #6f6763;
  font-size: .76rem;
  font-weight: 800;
}

.lab-history-filters input,
.lab-history-filters select {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid #d8cbc5;
  border-radius: 8px;
  background: #fff;
}

.lab-history-filter-actions {
  display: flex;
  align-items: end;
  gap: 8px;
  grid-column: 1 / -1;
}

.lab-history-content {
  margin-top: 16px;
}

.lab-history-empty {
  padding: 18px;
  border: 1px dashed #ddd0c9;
  border-radius: 12px;
  background: #faf8f7;
}

.lab-history-empty p {
  margin: 6px 0 0;
  color: #756d69;
}

.lab-history-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.lab-history-summary article {
  display: grid;
  gap: 4px;
  padding: 13px;
  border: 1px solid #eadfda;
  border-radius: 11px;
  background: #faf8f7;
}

.lab-history-summary span {
  color: #756d69;
  font-size: .76rem;
}

.lab-history-summary strong {
  font-size: 1.05rem;
}

.lab-history-list {
  display: grid;
  gap: 12px;
}

.lab-history-card {
  padding: 16px;
  border: 1px solid #eadfda;
  border-radius: 13px;
  background: #fff;
}

.lab-history-card-head,
.lab-history-card-foot {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.lab-history-card-head > div:first-child > span {
  color: #b4211b;
  font-size: .75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.lab-history-card-head h3 {
  margin: 4px 0 0;
  font-size: 1rem;
}

.lab-history-card-head p {
  margin: 4px 0 0;
  color: #756d69;
  font-size: .8rem;
}

.lab-history-card-date {
  display: grid;
  flex: 0 0 auto;
  gap: 2px;
  text-align: right;
}

.lab-history-card-date small {
  color: #756d69;
}

.lab-history-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 11px;
}

.lab-history-badges span {
  padding: 5px 8px;
  border-radius: 999px;
  background: #f0ecea;
  color: #665d59;
  font-size: .72rem;
  font-weight: 800;
}

.lab-history-badges .is-sent,
.lab-history-badges .is-known,
.lab-history-badges .is-success {
  background: #e3f4eb;
  color: #176f4f;
}

.lab-history-badges .is-queued,
.lab-history-badges .is-pending {
  background: #fff1cf;
  color: #8a5a00;
}

.lab-history-badges .is-not-sent,
.lab-history-badges .is-unknown,
.lab-history-badges .is-failure {
  background: #f6e4e2;
  color: #9d2621;
}

.lab-history-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin-top: 12px;
}

.lab-history-grid > div {
  padding: 11px;
  border: 1px solid #eee4df;
  border-radius: 9px;
  background: #fbf9f8;
}

.lab-history-grid > div > span {
  color: #756d69;
  font-size: .72rem;
  font-weight: 800;
}

.lab-history-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}

.lab-history-numbers b {
  display: inline-grid;
  place-items: center;
  min-width: 27px;
  height: 27px;
  padding: 0 6px;
  border-radius: 7px;
  background: #ece7e4;
  color: #332b28;
}

.lab-history-numbers b.is-selection {
  background: #176f4f;
  color: #fff;
}

.lab-history-numbers b.is-arrival {
  background: #a31b17;
  color: #fff;
}

.lab-history-numbers b.is-match {
  background: #f2cf65;
  color: #4a3500;
}

.lab-history-missing {
  color: #9a918d;
}

.lab-history-card-foot {
  align-items: center;
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid #eee4df;
}

.lab-history-card-foot > div {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  color: #756d69;
  font-size: .76rem;
}

.lab-history-card-foot a {
  color: #a31b17;
  font-weight: 900;
  text-decoration: none;
}

.lab-history-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 15px;
}

.lab-history-pagination span {
  color: #756d69;
  font-size: .8rem;
}

@media (max-width: 900px) {
  .lab-history-filters,
  .lab-history-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lab-history-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .lab-history {
    padding: 17px;
  }

  .lab-history-head,
  .lab-history-card-head,
  .lab-history-card-foot {
    display: grid;
  }

  .lab-history-card-date {
    text-align: left;
  }

  .lab-history-filters,
  .lab-history-grid,
  .lab-history-summary {
    grid-template-columns: 1fr;
  }

  .lab-history-filter-actions,
  .lab-history-pagination {
    display: grid;
  }

  .lab-history-filter-actions button,
  .lab-history-pagination button {
    width: 100%;
  }
}



/* === V93.1 : statistiques et fiabilité des stratégies === */
.lab-strategy-performance { display:grid; gap:10px; margin-top:14px; padding:13px; border:1px solid #eadfda; border-radius:12px; background:#fbf9f8; }
.lab-strategy-performance.is-loading,.lab-strategy-performance.is-empty { color:#71645f; }
.lab-strategy-performance.is-empty>div { display:grid; gap:3px; }
.lab-strategy-performance.is-empty span,.lab-strategy-performance-head span { color:#8b7770; font-size:.72rem; font-weight:900; letter-spacing:.03em; text-transform:uppercase; }
.lab-strategy-performance.is-empty p,.lab-strategy-performance>p,.lab-strategy-performance>small { margin:0; color:#756d69; font-size:.76rem; line-height:1.45; }
.lab-strategy-performance-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.lab-strategy-performance-head>div { display:grid; gap:3px; }
.lab-strategy-reliability { flex:0 0 auto; padding:6px 9px; border-radius:999px; background:#f0ecea; color:#665d59; font-size:.7rem; font-style:normal; font-weight:900; }
.lab-strategy-reliability.is-low { background:#fff1cf; color:#8a5a00; }
.lab-strategy-reliability.is-medium { background:#e7eef9; color:#2c5790; }
.lab-strategy-reliability.is-reinforced { background:#e3f4eb; color:#176f4f; }
.lab-strategy-performance-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.lab-strategy-performance-kpis article { display:grid; gap:3px; padding:9px; border-radius:9px; background:#fff; }
.lab-strategy-performance-kpis span { color:#756d69; font-size:.68rem; }
.lab-strategy-performance-kpis strong { font-size:.86rem; }
@media(max-width:900px){.lab-strategy-performance-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:520px){.lab-strategy-performance-head{display:grid}.lab-strategy-reliability{justify-self:start}.lab-strategy-performance-kpis{grid-template-columns:1fr}}

/* === V93.2 : comparateur des stratégies === */
.lab-strategy-comparison {
  margin-top: 22px;
  padding: 24px;
  border: 1px solid #eadfda;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(56, 35, 28, 0.07);
}

.lab-strategy-comparison-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.lab-strategy-comparison-head h2,
.lab-strategy-comparison-head p {
  margin-top: 0;
}

.lab-strategy-comparison-head p:last-child {
  margin-bottom: 0;
  color: #6f6763;
}

.lab-strategy-comparison-controls {
  display: flex;
  align-items: end;
  gap: 9px;
  flex: 0 0 auto;
}

.lab-strategy-comparison-controls label {
  display: grid;
  gap: 5px;
}

.lab-strategy-comparison-controls label > span {
  color: #756d69;
  font-size: .72rem;
  font-weight: 900;
}

.lab-strategy-comparison-controls select {
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid #d8cbc5;
  border-radius: 8px;
  background: #fff;
}

.lab-strategy-comparison-message {
  margin: 16px 0 0;
}

.lab-strategy-comparison-content {
  margin-top: 16px;
}

.lab-strategy-comparison-empty {
  padding: 18px;
  border: 1px dashed #ddd0c9;
  border-radius: 12px;
  background: #faf8f7;
}

.lab-strategy-comparison-empty p {
  margin: 6px 0 0;
  color: #756d69;
}

.lab-strategy-comparison-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 13px;
}

.lab-strategy-comparison-summary article {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid #eadfda;
  border-radius: 10px;
  background: #faf8f7;
}

.lab-strategy-comparison-summary span {
  color: #756d69;
  font-size: .72rem;
}

.lab-strategy-comparison-summary strong {
  font-size: .94rem;
}

.lab-strategy-comparison-table-wrap {
  overflow-x: auto;
  border: 1px solid #eadfda;
  border-radius: 12px;
}

.lab-strategy-comparison-table {
  width: 100%;
  min-width: 1120px;
  border-collapse: collapse;
  background: #fff;
}

.lab-strategy-comparison-table th,
.lab-strategy-comparison-table td {
  padding: 12px 11px;
  border-bottom: 1px solid #eee4df;
  text-align: left;
  vertical-align: middle;
  white-space: nowrap;
}

.lab-strategy-comparison-table thead th {
  background: #faf8f7;
  color: #756d69;
  font-size: .7rem;
  text-transform: uppercase;
}

.lab-strategy-comparison-table tbody tr:last-child th,
.lab-strategy-comparison-table tbody tr:last-child td {
  border-bottom: 0;
}

.lab-strategy-comparison-table tbody tr.is-current {
  background: #fff9f3;
}

.lab-strategy-comparison-table td small {
  display: block;
  margin-top: 3px;
  color: #8b817d;
  font-size: .68rem;
}

.lab-strategy-comparison-name {
  display: grid;
  gap: 3px;
  min-width: 170px;
}

.lab-strategy-comparison-name span {
  color: #8b7770;
  font-size: .7rem;
  font-weight: 800;
}

.lab-strategy-comparison-table td.is-positive strong {
  color: #176f4f;
}

.lab-strategy-comparison-table td.is-negative strong {
  color: #9d2621;
}

.lab-strategy-comparison-table td.is-neutral strong {
  color: #665d59;
}

.lab-strategy-comparison-note {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  margin-top: 12px;
  padding: 11px 13px;
  border-radius: 10px;
  background: #fff6df;
  color: #71501a;
  font-size: .76rem;
  line-height: 1.45;
}

@media (max-width: 980px) {
  .lab-strategy-comparison-head {
    display: grid;
  }

  .lab-strategy-comparison-controls {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .lab-strategy-comparison-controls button {
    grid-column: 1 / -1;
  }
}

@media (max-width: 620px) {
  .lab-strategy-comparison {
    padding: 17px;
  }

  .lab-strategy-comparison-controls,
  .lab-strategy-comparison-summary {
    grid-template-columns: 1fr;
  }

  .lab-strategy-comparison-controls button {
    grid-column: auto;
  }

  .lab-strategy-comparison-note {
    display: grid;
  }
}

/* === V93.3 : harmonisation de l’interface du laboratoire === */
body.is-lab-page .lab-strategy-library,
body.is-lab-page .lab-strategy-comparison,
body.is-lab-page .lab-automation-preview,
body.is-lab-page .lab-history,
body.is-lab-page .lab-strategy-backtests {
  color: #312a27;
  font-family: inherit;
}

body.is-lab-page .lab-strategy-library-head,
body.is-lab-page .lab-strategy-comparison-head,
body.is-lab-page .lab-automation-preview-head,
body.is-lab-page .lab-history-head,
body.is-lab-page .lab-strategy-backtests-head {
  align-items: flex-start;
}

body.is-lab-page .lab-strategy-library-head .lab-kicker,
body.is-lab-page .lab-strategy-comparison-head .lab-kicker,
body.is-lab-page .lab-automation-preview-head .lab-kicker,
body.is-lab-page .lab-history-head .lab-kicker,
body.is-lab-page .lab-strategy-backtests-head .lab-kicker {
  margin: 0 0 3px;
  color: #c58b1d;
  font-size: .72rem;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: .075em;
}

body.is-lab-page .lab-strategy-library-head h2,
body.is-lab-page .lab-strategy-comparison-head h2,
body.is-lab-page .lab-automation-preview-head h2,
body.is-lab-page .lab-history-head h2,
body.is-lab-page .lab-strategy-backtests-head h2 {
  margin: 0;
  color: #2f2927;
  font-size: 1.22rem;
  font-weight: 850;
  line-height: 1.22;
  letter-spacing: -.015em;
}

body.is-lab-page .lab-section-purpose {
  max-width: 820px;
  margin: 7px 0 0 !important;
  color: #6d6460 !important;
  font-size: .86rem;
  font-weight: 500;
  line-height: 1.5;
}

body.is-lab-page .lab-section-purpose strong {
  color: #493f3b;
  font-weight: 850;
}

body.is-lab-page .lab-strategy-library button,
body.is-lab-page .lab-strategy-comparison button,
body.is-lab-page .lab-automation-preview button,
body.is-lab-page .lab-history button,
body.is-lab-page .lab-strategy-backtests button,
body.is-lab-page .lab-strategy-comparison select,
body.is-lab-page .lab-history select,
body.is-lab-page .lab-history input,
body.is-lab-page .lab-strategy-backtests select,
body.is-lab-page .lab-strategy-backtests input {
  font-family: inherit;
  font-size: .8rem;
}

body.is-lab-page .lab-strategy-comparison-controls label > span,
body.is-lab-page .lab-history-filters label > span,
body.is-lab-page .lab-backtest-date-grid label > span {
  color: #716762;
  font-size: .71rem;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: none;
}

body.is-lab-page .lab-library-card h3 {
  color: #2f2927;
  font-size: 1rem;
  font-weight: 850;
  line-height: 1.25;
}

body.is-lab-page .lab-library-title-row span {
  color: #9a5d51;
  font-size: .71rem;
  font-weight: 850;
}

body.is-lab-page .lab-library-card-main > p {
  color: #6d6460;
  font-size: .84rem;
  line-height: 1.48;
}

body.is-lab-page .lab-strategy-meta span {
  color: #665d59;
  font-size: .72rem;
  font-weight: 800;
}

body.is-lab-page .lab-strategy-performance-head strong {
  color: #312a27;
  font-size: .9rem;
  line-height: 1.3;
}

body.is-lab-page .lab-strategy-performance-kpis span,
body.is-lab-page .lab-strategy-comparison-summary span,
body.is-lab-page .lab-history-summary span {
  color: #756d69;
  font-size: .7rem;
  font-weight: 650;
}

body.is-lab-page .lab-strategy-performance-kpis strong,
body.is-lab-page .lab-strategy-comparison-summary strong,
body.is-lab-page .lab-history-summary strong {
  color: #312a27;
  font-size: .88rem;
  font-weight: 850;
}

body.is-lab-page .lab-strategy-comparison-table {
  color: #312a27;
  font-size: .79rem;
}

body.is-lab-page .lab-strategy-comparison-table thead th {
  color: #716762;
  font-size: .67rem;
  font-weight: 850;
  letter-spacing: .025em;
}

body.is-lab-page .lab-strategy-comparison-table tbody th,
body.is-lab-page .lab-strategy-comparison-table tbody td {
  color: #312a27;
  font-size: .79rem;
}

body.is-lab-page .lab-strategy-comparison-name > strong {
  color: #2f2927;
  font-size: .88rem;
  font-weight: 850;
}

body.is-lab-page .lab-strategy-comparison-name span,
body.is-lab-page .lab-strategy-comparison-table td small {
  color: #7c716c;
  font-size: .68rem;
  font-weight: 650;
}

body.is-lab-page .lab-strategy-reliability {
  font-size: .67rem;
  font-weight: 850;
}

body.is-lab-page .lab-strategy-comparison-empty,
body.is-lab-page .lab-automation-empty,
body.is-lab-page .lab-history-empty,
body.is-lab-page .lab-strategy-empty {
  color: #6d6460;
  font-size: .84rem;
  line-height: 1.48;
}

body.is-lab-page .lab-strategy-comparison-empty strong,
body.is-lab-page .lab-automation-empty strong,
body.is-lab-page .lab-history-empty strong,
body.is-lab-page .lab-strategy-empty strong {
  color: #3d3431;
  font-size: .87rem;
  font-weight: 850;
}

@media (max-width: 720px) {
  body.is-lab-page .lab-strategy-library-head h2,
  body.is-lab-page .lab-strategy-comparison-head h2,
  body.is-lab-page .lab-automation-preview-head h2,
  body.is-lab-page .lab-history-head h2,
  body.is-lab-page .lab-strategy-backtests-head h2 {
    font-size: 1.12rem;
  }

  body.is-lab-page .lab-section-purpose {
    font-size: .82rem;
  }
}

/* === V93.4 : outils sous la colonne de résultats et boutons homogènes === */
body.is-lab-page .lab-results-tools {
  display: grid;
  gap: 16px;
  min-width: 0;
  margin-top: 2px;
}

body.is-lab-page .lab-results-tools > .lab-strategy-library,
body.is-lab-page .lab-results-tools > .lab-strategy-comparison,
body.is-lab-page .lab-results-tools > .lab-automation-preview,
body.is-lab-page .lab-results-tools > .lab-history,
body.is-lab-page .lab-results-tools > .lab-strategy-backtests {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 20px;
  border: 1px solid rgba(17, 24, 23, 0.09);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 14px 32px rgba(17, 24, 23, 0.07);
}

body.is-lab-page .lab-results-tools .lab-strategy-library-head,
body.is-lab-page .lab-results-tools .lab-strategy-comparison-head,
body.is-lab-page .lab-results-tools .lab-automation-preview-head,
body.is-lab-page .lab-results-tools .lab-history-head,
body.is-lab-page .lab-results-tools .lab-strategy-backtests-head {
  gap: 16px;
  margin-bottom: 16px;
}

body.is-lab-page .lab-results-tools .lab-section-purpose {
  max-width: 760px;
}

/* Système de boutons commun aux outils personnels du laboratoire. */
body.is-lab-page .lab-results-tools button {
  box-sizing: border-box;
  min-height: 38px;
  padding: 9px 13px;
  border: 1px solid #d9ceca;
  border-radius: 8px;
  color: #443a36;
  background: #ffffff;
  box-shadow: none;
  font-family: inherit;
  font-size: .76rem;
  font-weight: 850;
  line-height: 1.15;
  text-align: center;
  cursor: pointer;
  transition:
    color .16s ease,
    background-color .16s ease,
    border-color .16s ease,
    box-shadow .16s ease,
    transform .16s ease;
}

body.is-lab-page .lab-results-tools button:hover:not(:disabled),
body.is-lab-page .lab-results-tools button:focus-visible:not(:disabled) {
  border-color: #b8aaa4;
  background: #f7f3f1;
  outline: 0;
  transform: translateY(-1px);
}

body.is-lab-page .lab-results-tools button.lab-primary-action {
  color: #ffffff;
  border-color: #be1814;
  background: #be1814;
  box-shadow: 0 6px 14px rgba(190, 24, 20, .14);
}

body.is-lab-page .lab-results-tools button.lab-primary-action:hover:not(:disabled),
body.is-lab-page .lab-results-tools button.lab-primary-action:focus-visible:not(:disabled) {
  color: #ffffff;
  border-color: #9f120f;
  background: #9f120f;
  box-shadow: 0 8px 18px rgba(190, 24, 20, .2);
}

body.is-lab-page .lab-results-tools button.lab-secondary-action {
  color: #443a36;
  border-color: #d9ceca;
  background: #ffffff;
}

body.is-lab-page .lab-results-tools button.lab-secondary-action:hover:not(:disabled),
body.is-lab-page .lab-results-tools button.lab-secondary-action:focus-visible:not(:disabled) {
  color: #9f120f;
  border-color: rgba(190, 24, 20, .42);
  background: #fff8f7;
}

body.is-lab-page .lab-results-tools button.lab-danger-action,
body.is-lab-page .lab-results-tools .lab-library-actions button.is-danger {
  color: #a42520;
  border-color: rgba(164, 37, 32, .36);
  background: #ffffff;
}

body.is-lab-page .lab-results-tools button.lab-danger-action:hover:not(:disabled),
body.is-lab-page .lab-results-tools .lab-library-actions button.is-danger:hover:not(:disabled),
body.is-lab-page .lab-results-tools button.lab-danger-action:focus-visible:not(:disabled) {
  color: #ffffff;
  border-color: #a42520;
  background: #a42520;
}

body.is-lab-page .lab-results-tools button:disabled {
  color: #a69c98;
  border-color: #e4ddda;
  background: #f5f2f0;
  box-shadow: none;
  cursor: not-allowed;
  opacity: .72;
  transform: none;
}

/* Actions et filtres alignés de la même manière. */
body.is-lab-page .lab-results-tools .lab-library-actions,
body.is-lab-page .lab-results-tools .lab-automation-preview-actions,
body.is-lab-page .lab-results-tools .lab-history-filter-actions,
body.is-lab-page .lab-results-tools .lab-backtest-presets,
body.is-lab-page .lab-results-tools .lab-backtest-form-actions {
  gap: 8px;
}

body.is-lab-page .lab-results-tools .lab-library-actions button,
body.is-lab-page .lab-results-tools .lab-automation-preview-actions button,
body.is-lab-page .lab-results-tools .lab-history-head > button,
body.is-lab-page .lab-results-tools .lab-strategy-library-head > button,
body.is-lab-page .lab-results-tools .lab-strategy-comparison-controls > button {
  white-space: nowrap;
}

body.is-lab-page .lab-results-tools .lab-backtest-server-badge {
  padding: 7px 10px;
  border: 1px solid #cfe7dc;
  border-radius: 999px;
  color: #176f4f;
  background: #eaf6f0;
  font-size: .7rem;
  font-weight: 850;
}

/* Les cartes restent compactes dans la colonne droite. */
body.is-lab-page .lab-results-tools .lab-library-card {
  gap: 16px;
  padding: 16px;
  border-radius: 12px;
}

body.is-lab-page .lab-results-tools .lab-strategy-performance {
  margin-top: 12px;
}

body.is-lab-page .lab-results-tools .lab-strategy-comparison-table-wrap {
  width: 100%;
}

/* Sur tablette/mobile, les outils suivent naturellement les résultats. */
@media (max-width: 900px) {
  body.is-lab-page .lab-results-tools {
    margin-top: 0;
  }

  body.is-lab-page .lab-results-tools > .lab-strategy-library,
  body.is-lab-page .lab-results-tools > .lab-strategy-comparison,
  body.is-lab-page .lab-results-tools > .lab-automation-preview,
  body.is-lab-page .lab-results-tools > .lab-history,
  body.is-lab-page .lab-results-tools > .lab-strategy-backtests {
    padding: 18px;
  }
}

@media (max-width: 620px) {
  body.is-lab-page .lab-results-tools > .lab-strategy-library,
  body.is-lab-page .lab-results-tools > .lab-strategy-comparison,
  body.is-lab-page .lab-results-tools > .lab-automation-preview,
  body.is-lab-page .lab-results-tools > .lab-history,
  body.is-lab-page .lab-results-tools > .lab-strategy-backtests {
    width: 100%;
    padding: 15px;
    border-radius: 10px;
  }

  body.is-lab-page .lab-results-tools button {
    min-height: 40px;
  }

  body.is-lab-page .lab-results-tools .lab-strategy-library-head > button,
  body.is-lab-page .lab-results-tools .lab-history-head > button {
    width: 100%;
  }
}

/* === V93.5 : analyse par discipline === */
body.is-lab-page .lab-discipline-analysis {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid #eadfda;
  border-radius: 12px;
  background: #fbf9f8;
}

body.is-lab-page .lab-discipline-analysis[hidden] {
  display: none !important;
}

body.is-lab-page .lab-discipline-analysis-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

body.is-lab-page .lab-discipline-analysis-head h3 {
  margin: 0;
  color: #2f2927;
  font-size: 1rem;
  font-weight: 850;
  line-height: 1.25;
}

body.is-lab-page .lab-discipline-analysis-head p:last-child {
  max-width: 720px;
  margin: 6px 0 0;
  color: #6d6460;
  font-size: .8rem;
  line-height: 1.48;
}

body.is-lab-page .lab-discipline-analysis-head p:last-child strong {
  color: #493f3b;
}

body.is-lab-page .lab-discipline-analysis-head label {
  display: grid;
  flex: 0 0 220px;
  gap: 5px;
}

body.is-lab-page .lab-discipline-analysis-head label > span {
  color: #716762;
  font-size: .71rem;
  font-weight: 800;
}

body.is-lab-page .lab-discipline-analysis-head select {
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid #d8cbc5;
  border-radius: 8px;
  color: #443a36;
  background: #fff;
  font-family: inherit;
  font-size: .78rem;
}

body.is-lab-page .lab-discipline-analysis-content {
  margin-top: 14px;
}

body.is-lab-page .lab-discipline-table-wrap {
  overflow-x: auto;
  border: 1px solid #eadfda;
  border-radius: 10px;
  background: #fff;
}

body.is-lab-page .lab-discipline-table {
  width: 100%;
  min-width: 880px;
  border-collapse: collapse;
  color: #312a27;
  font-size: .77rem;
}

body.is-lab-page .lab-discipline-table th,
body.is-lab-page .lab-discipline-table td {
  padding: 11px 10px;
  border-bottom: 1px solid #eee4df;
  text-align: left;
  vertical-align: middle;
}

body.is-lab-page .lab-discipline-table thead th {
  color: #716762;
  background: #faf8f7;
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .02em;
  text-transform: uppercase;
}

body.is-lab-page .lab-discipline-table tbody tr:last-child th,
body.is-lab-page .lab-discipline-table tbody tr:last-child td {
  border-bottom: 0;
}

body.is-lab-page .lab-discipline-table td small {
  display: block;
  margin-top: 2px;
  color: #7c716c;
  font-size: .67rem;
}

body.is-lab-page .lab-discipline-table td.is-positive strong {
  color: #176f4f;
}

body.is-lab-page .lab-discipline-table td.is-negative strong {
  color: #9d2621;
}

body.is-lab-page .lab-discipline-table td.is-neutral strong {
  color: #665d59;
}

body.is-lab-page .lab-discipline-bar {
  display: block;
  width: 82px;
  height: 4px;
  margin-top: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: #eee7e4;
}

body.is-lab-page .lab-discipline-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #d49b25, #be1814);
}

body.is-lab-page .lab-discipline-note {
  margin: 10px 0 0;
  color: #756d69;
  font-size: .72rem;
  line-height: 1.45;
}

body.is-lab-page .lab-discipline-empty {
  padding: 14px;
  border: 1px dashed #ddd0c9;
  border-radius: 9px;
  color: #6d6460;
  background: #fff;
  font-size: .8rem;
}

body.is-lab-page .lab-discipline-empty p {
  margin: 4px 0 0;
}

@media (max-width: 720px) {
  body.is-lab-page .lab-discipline-analysis-head {
    display: grid;
  }

  body.is-lab-page .lab-discipline-analysis-head label {
    width: 100%;
  }

  body.is-lab-page .lab-discipline-analysis-head select {
    width: 100%;
  }
}

/* === V93.6 : mode simple / avancé et filtres de courses === */
body.is-lab-page .lab-control-mode-block {
  display: grid;
  gap: 8px;
}

body.is-lab-page .lab-control-mode {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 4px;
  border: 1px solid rgba(49, 42, 39, .1);
  border-radius: 10px;
  background: #f3f0ee;
}

body.is-lab-page .lab-control-mode button {
  min-height: 36px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 7px;
  color: #665d59;
  background: transparent;
  font-family: inherit;
  font-size: .74rem;
  font-weight: 850;
  cursor: pointer;
}

body.is-lab-page .lab-control-mode button.is-active {
  color: #fff;
  border-color: #be1814;
  background: #be1814;
  box-shadow: 0 5px 12px rgba(190, 24, 20, .16);
}

body.is-lab-page #lab-control-mode-help,
body.is-lab-page #lab-criteria-help {
  display: block;
  color: #817671;
  font-size: .68rem;
  line-height: 1.42;
}

body.is-lab-page #lab-criteria-block .lab-control-head {
  align-items: flex-start;
}

body.is-lab-page #lab-criteria-block .lab-control-head > div {
  display: grid;
  gap: 3px;
}

.lab-strategy-dialog {
  max-width: 760px;
}

.lab-strategy-filters {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 16px;
  border: 1px solid #e1d7d2;
  border-radius: 12px;
  background: #faf8f7;
}

.lab-strategy-filters legend {
  padding: 0 6px;
  color: #312a27;
  font-size: .9rem;
  font-weight: 850;
}

.lab-strategy-filters-intro {
  margin: 0;
  color: #756d69;
  font-size: .76rem;
  line-height: 1.48;
}

.lab-filter-mode {
  display: inline-grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  width: min(100%, 360px);
  padding: 4px;
  border-radius: 9px;
  background: #eee9e6;
}

.lab-filter-mode button {
  min-height: 36px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 7px;
  color: #665d59;
  background: transparent;
  font-family: inherit;
  font-size: .74rem;
  font-weight: 850;
  cursor: pointer;
}

.lab-filter-mode button.is-active {
  color: #fff;
  border-color: #be1814;
  background: #be1814;
}

.lab-filter-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}

.lab-filter-grid-simple {
  grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr));
}

.lab-filter-field {
  display: grid;
  align-content: start;
  gap: 5px;
}

.lab-filter-field > span,
.lab-filter-disciplines > span {
  color: #625853;
  font-size: .72rem;
  font-weight: 850;
}

.lab-filter-field input,
.lab-filter-field select {
  width: 100%;
  min-height: 40px;
  box-sizing: border-box;
  padding: 8px 10px;
  border: 1px solid #d8cbc5;
  border-radius: 8px;
  color: #3f3734;
  background: #fff;
  font-family: inherit;
  font-size: .78rem;
}

.lab-filter-field small {
  color: #8a7f7a;
  font-size: .66rem;
  line-height: 1.35;
}

.lab-filter-span-2 {
  grid-column: span 2;
}

.lab-filter-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.lab-filter-checks label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 34px;
  padding: 6px 9px;
  border: 1px solid #ddd2cd;
  border-radius: 999px;
  color: #5c514d;
  background: #fff;
  font-size: .72rem;
  font-weight: 750;
}

.lab-filter-checks input {
  margin: 0;
}

.lab-filter-advanced[hidden] {
  display: none !important;
}

.lab-filter-summary {
  margin: 0;
  padding: 10px 12px;
  border-radius: 9px;
  color: #665d59;
  background: #fff;
  font-size: .72rem;
  line-height: 1.45;
}

.lab-filter-summary strong {
  color: #312a27;
}

body.is-lab-page .lab-strategy-filter-label {
  margin: 10px 0 0;
  padding: 8px 10px;
  border-radius: 8px;
  color: #716762;
  background: #f7f3f1;
  font-size: .7rem;
  line-height: 1.42;
}

body.is-lab-page .lab-strategy-filter-label strong {
  color: #493f3b;
}

@media (max-width: 760px) {
  .lab-filter-grid,
  .lab-filter-grid-simple {
    grid-template-columns: 1fr;
  }

  .lab-filter-span-2 {
    grid-column: auto;
  }
}

/* === V93.7 : statistiques financières des backtests === */
body.is-lab-page .lab-financial-section {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid #e5dbd6;
  border-radius: 14px;
  background: #fbf9f8;
}

body.is-lab-page .lab-financial-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

body.is-lab-page .lab-financial-head > div:first-child > span {
  color: #c58b1d;
  font-size: .69rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

body.is-lab-page .lab-financial-head h3 {
  margin: 4px 0 0;
  color: #2f2927;
  font-size: 1rem;
  font-weight: 850;
}

body.is-lab-page .lab-financial-head p {
  max-width: 720px;
  margin: 6px 0 0;
  color: #736a66;
  font-size: .76rem;
  line-height: 1.48;
}

body.is-lab-page .lab-financial-coverage {
  flex: 0 0 auto;
  min-width: 150px;
  padding: 10px 12px;
  border: 1px solid #ddd2cd;
  border-radius: 10px;
  background: #fff;
  text-align: right;
}

body.is-lab-page .lab-financial-coverage strong,
body.is-lab-page .lab-financial-coverage span {
  display: block;
}

body.is-lab-page .lab-financial-coverage strong {
  color: #312a27;
  font-size: 1rem;
}

body.is-lab-page .lab-financial-coverage span {
  margin-top: 2px;
  color: #7b716c;
  font-size: .68rem;
}

body.is-lab-page .lab-financial-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin-top: 14px;
}

body.is-lab-page .lab-financial-kpis article {
  padding: 13px;
  border: 1px solid #e6ddd8;
  border-radius: 11px;
  background: #fff;
}

body.is-lab-page .lab-financial-kpis span,
body.is-lab-page .lab-financial-kpis small {
  display: block;
  color: #746b67;
  font-size: .7rem;
  line-height: 1.35;
}

body.is-lab-page .lab-financial-kpis strong {
  display: block;
  margin: 6px 0 4px;
  color: #312a27;
  font-size: 1.13rem;
  font-weight: 850;
}

body.is-lab-page .lab-financial-kpis .is-positive strong,
body.is-lab-page .lab-financial-comparison .is-positive {
  color: #176f4f;
}

body.is-lab-page .lab-financial-kpis .is-negative strong,
body.is-lab-page .lab-financial-comparison .is-negative {
  color: #a42520;
}

body.is-lab-page .lab-financial-kpis .is-neutral strong,
body.is-lab-page .lab-financial-comparison .is-neutral {
  color: #5f5652;
}

body.is-lab-page .lab-financial-kpis .lab-backtest-delta {
  display: inline-block;
  margin-top: 4px;
}

body.is-lab-page .lab-financial-comparison {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin-top: 10px;
}

body.is-lab-page .lab-financial-comparison article {
  padding: 13px;
  border-radius: 10px;
  background: #f1ece9;
}

body.is-lab-page .lab-financial-comparison span,
body.is-lab-page .lab-financial-comparison small {
  display: block;
  color: #746b67;
  font-size: .71rem;
}

body.is-lab-page .lab-financial-comparison strong {
  display: block;
  margin: 5px 0;
  font-size: 1rem;
}

body.is-lab-page .lab-financial-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

body.is-lab-page .lab-financial-meta span {
  padding: 5px 8px;
  border: 1px solid #dfd5d0;
  border-radius: 999px;
  color: #716762;
  background: #fff;
  font-size: .67rem;
  font-weight: 750;
}

body.is-lab-page .lab-financial-warning {
  margin: 11px 0 0;
  color: #7c716c;
  font-size: .7rem;
  line-height: 1.45;
}

body.is-lab-page .lab-financial-empty {
  margin-top: 12px;
  padding: 13px;
  border: 1px dashed #ddcfc8;
  border-radius: 10px;
  color: #6f6560;
  background: #fff;
  font-size: .76rem;
}

body.is-lab-page .lab-financial-empty p {
  margin: 4px 0 0;
  line-height: 1.45;
}

body.is-lab-page .lab-backtest-samples .is-positive {
  color: #176f4f;
}

body.is-lab-page .lab-backtest-samples .is-negative {
  color: #a42520;
}

body.is-lab-page .lab-backtest-samples .is-neutral {
  color: #5f5652;
}

body.is-lab-page .lab-financial-unavailable {
  color: #8a7f7a;
  font-size: .7rem;
}

@media (max-width: 1050px) {
  body.is-lab-page .lab-financial-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  body.is-lab-page .lab-financial-head {
    display: grid;
  }

  body.is-lab-page .lab-financial-coverage {
    width: 100%;
    box-sizing: border-box;
    text-align: left;
  }

  body.is-lab-page .lab-financial-kpis,
  body.is-lab-page .lab-financial-comparison {
    grid-template-columns: 1fr;
  }
}

/* === V93.8 : graphiques de performance des backtests === */
body.is-lab-page .lab-charts-section {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid #e5dbd6;
  border-radius: 14px;
  background: #ffffff;
}

body.is-lab-page .lab-charts-head > div > span {
  color: #c58b1d;
  font-size: .69rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

body.is-lab-page .lab-charts-head h3 {
  margin: 4px 0 0;
  color: #2f2927;
  font-size: 1rem;
  font-weight: 850;
}

body.is-lab-page .lab-charts-head p {
  max-width: 820px;
  margin: 6px 0 0;
  color: #736a66;
  font-size: .76rem;
  line-height: 1.48;
}

body.is-lab-page .lab-charts-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 15px;
}

body.is-lab-page .lab-chart-card {
  min-width: 0;
  padding: 15px;
  border: 1px solid #e6ddd8;
  border-radius: 12px;
  background: #fbf9f8;
}

body.is-lab-page .lab-chart-card.is-wide {
  grid-column: 1 / -1;
}

body.is-lab-page .lab-chart-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 13px;
}

body.is-lab-page .lab-chart-card > header span,
body.is-lab-page .lab-chart-card > header small {
  color: #786f6a;
  font-size: .67rem;
}

body.is-lab-page .lab-chart-card > header span {
  font-weight: 850;
  letter-spacing: .035em;
  text-transform: uppercase;
}

body.is-lab-page .lab-chart-card > header h4 {
  margin: 3px 0 0;
  color: #312a27;
  font-size: .9rem;
  font-weight: 850;
}

body.is-lab-page .lab-line-chart svg {
  display: block;
  width: 100%;
  max-height: 260px;
  overflow: visible;
  border: 1px solid #ebe2de;
  border-radius: 10px;
  background:
    linear-gradient(to bottom, transparent 24%, rgba(49, 42, 39, .045) 25%, transparent 26%),
    linear-gradient(to bottom, transparent 49%, rgba(49, 42, 39, .045) 50%, transparent 51%),
    linear-gradient(to bottom, transparent 74%, rgba(49, 42, 39, .045) 75%, transparent 76%),
    #fff;
}

body.is-lab-page .lab-chart-zero {
  stroke: #b8aaa4;
  stroke-width: 1;
  stroke-dasharray: 5 5;
}

body.is-lab-page .lab-chart-line {
  fill: none;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.is-lab-page .lab-chart-line.is-custom {
  stroke: #be1814;
}

body.is-lab-page .lab-chart-line.is-standard {
  stroke: #c58b1d;
}

body.is-lab-page .lab-chart-legend,
body.is-lab-page .lab-chart-scale {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 14px;
  margin-top: 9px;
  color: #716762;
  font-size: .69rem;
}

body.is-lab-page .lab-chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

body.is-lab-page .lab-chart-legend i {
  width: 17px;
  height: 3px;
  border-radius: 999px;
}

body.is-lab-page .lab-chart-legend i.is-custom {
  background: #be1814;
}

body.is-lab-page .lab-chart-legend i.is-standard {
  background: #c58b1d;
}

body.is-lab-page .lab-horizontal-bars {
  display: grid;
  gap: 11px;
}

body.is-lab-page .lab-horizontal-bar {
  display: grid;
  gap: 5px;
}

body.is-lab-page .lab-horizontal-bar-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  color: #554b47;
  font-size: .73rem;
}

body.is-lab-page .lab-horizontal-bar-head strong {
  color: #312a27;
  font-size: .76rem;
}

body.is-lab-page .lab-horizontal-bar-track {
  display: block;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8e0dc;
}

body.is-lab-page .lab-horizontal-bar-track i {
  display: block;
  min-width: 2px;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #d7a53d, #be1814);
}

body.is-lab-page .lab-horizontal-bars.is-odds .lab-horizontal-bar-track i {
  background: linear-gradient(90deg, #8d817b, #c58b1d);
}

body.is-lab-page .lab-horizontal-bar small {
  color: #817671;
  font-size: .65rem;
  line-height: 1.35;
}

body.is-lab-page .lab-dual-bars {
  display: grid;
  gap: 15px;
}

body.is-lab-page .lab-dual-bar {
  display: grid;
  gap: 6px;
}

body.is-lab-page .lab-dual-bar > span {
  color: #554b47;
  font-size: .73rem;
  font-weight: 800;
}

body.is-lab-page .lab-dual-bar > div {
  position: relative;
  height: 25px;
  overflow: hidden;
  border-radius: 7px;
  background: #e9e2de;
}

body.is-lab-page .lab-dual-bar > div i {
  position: absolute;
  inset: 0 auto 0 0;
  min-width: 2px;
  border-radius: inherit;
}

body.is-lab-page .lab-dual-bar > div i.is-custom {
  background: rgba(190, 24, 20, .74);
}

body.is-lab-page .lab-dual-bar > div i.is-standard {
  background: rgba(197, 139, 29, .72);
}

body.is-lab-page .lab-dual-bar small {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  box-sizing: border-box;
  padding: 0 8px;
  color: #312a27;
  font-size: .66rem;
  font-weight: 750;
}

body.is-lab-page .lab-streak-chart {
  display: grid;
  gap: 11px;
}

body.is-lab-page .lab-streak-strip {
  display: grid;
  grid-template-columns: repeat(40, minmax(3px, 1fr));
  align-items: end;
  gap: 3px;
  min-height: 76px;
  padding: 10px;
  border: 1px solid #e8dfda;
  border-radius: 10px;
  background: #fff;
}

body.is-lab-page .lab-streak-strip i {
  display: block;
  min-height: 22px;
  border-radius: 4px 4px 2px 2px;
}

body.is-lab-page .lab-streak-strip i.is-win {
  height: 66px;
  background: #2b8665;
}

body.is-lab-page .lab-streak-strip i.is-loss {
  height: 38px;
  background: #be3a34;
}

body.is-lab-page .lab-streak-values {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  color: #716762;
  font-size: .7rem;
}

body.is-lab-page .lab-streak-values span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

body.is-lab-page .lab-streak-values i {
  width: 9px;
  height: 9px;
  border-radius: 3px;
}

body.is-lab-page .lab-streak-values i.is-win {
  background: #2b8665;
}

body.is-lab-page .lab-streak-values i.is-loss {
  background: #be3a34;
}

body.is-lab-page .lab-streak-chart > small {
  color: #817671;
  font-size: .65rem;
}

body.is-lab-page .lab-chart-empty {
  padding: 16px;
  border: 1px dashed #d9cec8;
  border-radius: 10px;
  color: #716762;
  background: #fff;
  font-size: .73rem;
}

body.is-lab-page .lab-chart-empty p {
  margin: 5px 0 0;
  line-height: 1.4;
}

body.is-lab-page .lab-charts-warning {
  margin: 12px 0 0;
  color: #7c716c;
  font-size: .69rem;
  line-height: 1.45;
}

@media (max-width: 800px) {
  body.is-lab-page .lab-charts-grid {
    grid-template-columns: 1fr;
  }

  body.is-lab-page .lab-chart-card.is-wide {
    grid-column: auto;
  }

  body.is-lab-page .lab-streak-strip {
    grid-template-columns: repeat(20, minmax(4px, 1fr));
  }
}

@media (max-width: 520px) {
  body.is-lab-page .lab-chart-card > header {
    display: grid;
  }

  body.is-lab-page .lab-chart-legend,
  body.is-lab-page .lab-chart-scale {
    display: grid;
    justify-content: start;
  }
}

/* === V94 : gestion avancée des non-partants === */
body.is-lab-page .lab-history-badges .is-non-starter {
  color: #76540b;
  border-color: #e4c77f;
  background: #fff3d9;
}

body.is-lab-page .lab-history-badges .is-blocked {
  color: #991f1a;
  border-color: #e6aaa6;
  background: #fff0ef;
}

body.is-lab-page .lab-history-non-starter-alert {
  margin: 12px 0;
  padding: 12px 14px;
  border: 1px solid #e4c77f;
  border-radius: 10px;
  color: #684b0d;
  background: #fff6e3;
}

body.is-lab-page .lab-history-non-starter-alert strong {
  display: block;
  font-size: .78rem;
  font-weight: 900;
}

body.is-lab-page .lab-history-non-starter-alert p {
  margin: 4px 0 0;
  font-size: .72rem;
  line-height: 1.45;
}

body.is-lab-page .lab-history-numbers .is-original {
  color: #746b67;
  border-color: #d9d0cc;
  background: #f2efed;
}

body.is-lab-page .lab-history-numbers .is-updated {
  color: #176f4f;
  border-color: #9fcab8;
  background: #ebf7f1;
}

/* === V94.1 : préférences e-mail avancées === */
.account-preferences-status.is-paused {
  border-color: rgba(197, 139, 29, 0.34);
  color: #76540b;
  background: rgba(197, 139, 29, 0.12);
  text-transform: none;
}

.account-email-advanced {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fbfbf8;
}

.account-email-advanced > summary {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
}

.account-email-advanced > summary::-webkit-details-marker {
  display: none;
}

.account-email-advanced > summary::after {
  color: #8a1815;
  content: "+";
  font-size: 1.25rem;
  font-weight: 900;
}

.account-email-advanced[open] > summary::after {
  content: "−";
}

.account-email-advanced > summary > span {
  display: grid;
  gap: 3px;
}

.account-email-advanced > summary strong {
  font-size: 0.87rem;
}

.account-email-advanced > summary small,
.account-email-advanced-grid small,
.account-inline-switch small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.42;
}

.account-email-advanced-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 0 16px 14px;
}

.account-email-advanced-grid label {
  display: grid;
  gap: 7px;
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 850;
}

.account-email-advanced-grid input,
.account-email-advanced-grid select {
  width: 100%;
  min-height: 44px;
  box-sizing: border-box;
  padding: 0 11px;
  border: 1px solid #c9ccc7;
  border-radius: 7px;
  color: var(--ink);
  background: #fff;
  font: inherit;
  font-weight: 700;
}

.account-inline-switch {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 11px;
  align-items: start;
  margin: 0 16px 14px;
  padding: 13px;
  border: 1px solid rgba(23, 111, 79, 0.17);
  border-radius: 8px;
  background: rgba(23, 111, 79, 0.045);
  cursor: pointer;
}

.account-inline-switch > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.account-inline-switch > input:checked + .account-switch {
  background: #176f4f;
}

.account-inline-switch > input:checked + .account-switch::after {
  transform: translateX(18px);
}

.account-inline-switch > span:last-child {
  display: grid;
  gap: 4px;
}

.account-inline-switch strong {
  color: var(--ink);
  font-size: 0.82rem;
}

.account-strategy-email-note {
  margin: 0 16px 15px;
  padding: 10px 12px;
  border-left: 3px solid #c58b1d;
  color: #6f625c;
  background: #fff9ed;
  font-size: 0.72rem;
  line-height: 1.45;
}

@media (max-width: 760px) {
  .account-email-advanced-grid {
    grid-template-columns: 1fr;
  }
}

/* === V94.4 : ergonomie mobile dédiée === */
.mobile-menu-toggle,
.mobile-menu-backdrop,
.mobile-bottom-nav,
.lab-mobile-nav,
.quinte-tabs-more {
  display: none;
}

.quinte-tabs-shell {
  position: relative;
  width: min(100%, 1360px);
  margin: 14px auto 0;
}

.quinte-tabs-shell .quinte-tabs {
  width: 100%;
  margin: 0;
}

@media (max-width: 900px) {
  :root {
    --ptp-mobile-header-height: 58px;
    --ptp-mobile-bottom-height: 68px;
    --ptp-mobile-gutter: 11px;
  }

  html {
    max-width: 100%;
    overflow-x: hidden;
    scroll-padding-top: 118px;
  }

  body {
    max-width: 100%;
    overflow-x: hidden;
    padding-bottom: calc(
      var(--ptp-mobile-bottom-height)
      + env(safe-area-inset-bottom)
    );
    -webkit-text-size-adjust: 100%;
  }

  body.mobile-menu-open {
    overflow: hidden;
    touch-action: none;
  }

  body,
  button,
  input,
  select,
  textarea {
    font-size: 15px;
  }

  .app-shell,
  main,
  main > section,
  .content-layout,
  .course-column,
  .programme-overview,
  .programme-content,
  .lab-page,
  .lab-workbench,
  .blog-page,
  .static-page,
  .auth-page,
  .account-page {
    min-width: 0;
    max-width: 100%;
  }

  img,
  svg,
  canvas,
  video {
    max-width: 100%;
  }

  .topbar {
    position: sticky;
    z-index: 1100;
    top: 0;
    display: flex;
    min-height: var(--ptp-mobile-header-height);
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding:
      max(8px, env(safe-area-inset-top))
      11px
      8px;
    background: #080808;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
    clip-path: none;
  }

  .topbar > div:first-child {
    display: flex;
    min-width: 0;
    align-items: center;
  }

  .brand-logo {
    width: min(142px, 48vw);
    max-height: 30px;
    object-fit: contain;
    object-position: left center;
  }

  .mobile-menu-toggle {
    position: relative;
    z-index: 1300;
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    padding: 10px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 10px;
    background: rgba(255, 255, 255, .06);
    place-content: center;
    gap: 4px;
    cursor: pointer;
  }

  .mobile-menu-toggle span {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: #fff;
    transition:
      transform 170ms ease,
      opacity 170ms ease;
  }

  body.mobile-menu-open .mobile-menu-toggle span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }

  body.mobile-menu-open .mobile-menu-toggle span:nth-child(2) {
    opacity: 0;
  }

  body.mobile-menu-open .mobile-menu-toggle span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

  .top-nav {
    position: fixed;
    z-index: 1250;
    inset:
      0
      auto
      0
      0;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 6px;
    width: min(84vw, 340px);
    min-width: 0;
    height: 100dvh;
    padding:
      calc(68px + env(safe-area-inset-top))
      14px
      calc(24px + env(safe-area-inset-bottom));
    overflow-x: hidden;
    overflow-y: auto;
    border-right: 1px solid rgba(255, 255, 255, .14);
    background:
      linear-gradient(180deg, #080808, #16110f);
    box-shadow: 22px 0 50px rgba(0, 0, 0, .4);
    opacity: 0;
    visibility: hidden;
    transform: translateX(-105%);
    transition:
      transform 190ms ease,
      opacity 190ms ease,
      visibility 190ms ease;
    scrollbar-width: none;
  }

  .top-nav::-webkit-scrollbar {
    display: none;
  }

  body.mobile-menu-open .top-nav {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
  }

  .top-nav .mode-button {
    display: flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: flex-start;
    padding: 0 13px;
    border-color: rgba(255, 255, 255, .12);
    border-radius: 9px;
    font-size: .82rem;
    text-align: left;
  }

  .top-nav .mode-button.is-active {
    border-color: #be1814;
    background: #be1814;
  }

  .top-nav .login-button {
    margin-top: 6px;
    color: #111;
    background: #fff;
  }

  .nav-menu-item {
    display: grid;
    width: 100%;
  }

  .top-submenu {
    position: static;
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    min-width: 0;
    width: 100%;
    margin-top: 4px;
    padding: 5px 0 3px 12px;
    border: 0;
    border-left: 2px solid rgba(197, 139, 29, .65);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }

  .top-submenu::before {
    display: none;
  }

  .top-submenu button {
    min-height: 36px;
    padding: 0 10px;
    color: rgba(255, 255, 255, .78);
    font-size: .73rem;
  }

  .mobile-menu-backdrop {
    position: fixed;
    z-index: 1200;
    inset: 0;
    display: block;
    border: 0;
    background: rgba(0, 0, 0, .54);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
      opacity 190ms ease,
      visibility 190ms ease;
  }

  body.mobile-menu-open .mobile-menu-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .mobile-bottom-nav {
    position: fixed;
    z-index: 1150;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    min-height: var(--ptp-mobile-bottom-height);
    padding:
      5px
      5px
      max(5px, env(safe-area-inset-bottom));
    border-top: 1px solid #dedbd6;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 -10px 28px rgba(28, 22, 19, .12);
    backdrop-filter: blur(18px);
  }

  .mobile-bottom-nav button {
    display: grid;
    min-width: 0;
    min-height: 54px;
    padding: 5px 2px;
    border: 0;
    border-radius: 9px;
    color: #77716d;
    background: transparent;
    place-items: center;
    align-content: center;
    gap: 3px;
    cursor: pointer;
  }

  .mobile-bottom-nav button svg {
    width: 21px;
    height: 21px;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .mobile-bottom-nav button span {
    max-width: 100%;
    overflow: hidden;
    font-size: .59rem;
    font-weight: 850;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mobile-bottom-nav button.is-active {
    color: #fff;
    background: #16110f;
  }

  .mobile-bottom-nav button.is-active svg {
    color: #e7b94e;
  }

  .home-hero h1,
  .programme-overview #programme-title,
  .lab-hero h1,
  #quinte-main-title,
  .static-page-card h1,
  .auth-card h1,
  .account-page h1 {
    max-width: 100%;
    font-size: clamp(1.62rem, 7.2vw, 2.12rem);
    line-height: 1.04;
    overflow-wrap: anywhere;
  }

  .section-heading h2,
  .programme-table-head h2,
  .lab-results-head h2,
  .lab-panel-head h3,
  .lab-strategy-library-head h2,
  .lab-strategy-comparison-head h2,
  .lab-automation-preview-head h2,
  .lab-history-head h2,
  .lab-strategy-backtests-head h2 {
    max-width: 100%;
    font-size: clamp(1.02rem, 5vw, 1.32rem);
    line-height: 1.15;
    overflow-wrap: anywhere;
  }

  .home-hero p,
  .programme-hero p,
  .lab-hero-main > p:not(.lab-kicker),
  .section-heading p,
  .lab-section-purpose,
  .static-page-card > p:not(.static-page-kicker) {
    font-size: .82rem;
    line-height: 1.48;
  }

  .home-actions,
  .static-page-actions,
  .auth-actions,
  .account-form-actions {
    width: 100%;
  }

  .home-cta,
  .static-page-actions button,
  .auth-actions button,
  .account-form-actions button,
  .premium-subscribe-button,
  .advice-open-course,
  .lab-primary-action,
  .lab-secondary-action {
    max-width: 100%;
    min-height: 40px;
    padding: 9px 12px;
    font-size: .78rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .home-hero,
  .programme-hero,
  .lab-hero,
  .blog-hero {
    width: 100vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
  }

  .home-hero,
  .programme-hero-inner,
  .programme-content,
  .content-layout,
  .lab-workbench,
  .blog-layout,
  .static-page,
  .auth-page,
  .account-page {
    padding-right: var(--ptp-mobile-gutter);
    padding-left: var(--ptp-mobile-gutter);
  }

  .home-hero {
    grid-template-columns: 1fr;
    gap: 15px;
    padding-top: 25px;
    padding-bottom: 25px;
  }

  .home-hero-content,
  .home-hero-side,
  .home-gain-card,
  .home-race-card,
  .programme-quinte-card {
    min-width: 0;
    max-width: 100%;
  }

  .home-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .home-actions .home-cta {
    width: 100%;
  }

  .home-kpis,
  .programme-stats {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 1px 1px 7px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .home-kpis::-webkit-scrollbar,
  .programme-stats::-webkit-scrollbar {
    display: none;
  }

  .home-kpis article,
  .programme-stats article {
    flex: 0 0 min(73vw, 255px);
    scroll-snap-align: start;
  }

  .programme-date-shortcuts,
  .programme-discipline-filter p,
  .programme-difficulty-filter-row,
  .programme-tabs,
  .home-gain-filters,
  .partants-category-tabs,
  .press-consensus-tabs {
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    padding-bottom: 5px !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .programme-date-shortcuts::-webkit-scrollbar,
  .programme-discipline-filter p::-webkit-scrollbar,
  .programme-difficulty-filter-row::-webkit-scrollbar,
  .programme-tabs::-webkit-scrollbar,
  .home-gain-filters::-webkit-scrollbar,
  .partants-category-tabs::-webkit-scrollbar,
  .press-consensus-tabs::-webkit-scrollbar {
    display: none;
  }

  .programme-date-shortcuts button,
  .programme-discipline-filter button,
  .programme-difficulty-filter-row button,
  .programme-tab,
  .partants-category-tab,
  .press-consensus-tabs button {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content !important;
    min-height: 34px;
    padding-right: 10px;
    padding-left: 10px;
    font-size: .69rem;
    white-space: nowrap;
    scroll-snap-align: start;
  }

  .programme-table-wrap,
  .quinte-table-wrap,
  .radar-table-wrap,
  .comparator-table-wrap,
  .winner-category-table-wrap,
  .home-heatmap-table-wrap,
  .lab-table-wrap,
  .lab-discipline-table-wrap,
  .lab-strategy-comparison-table-wrap,
  .lab-history-table-wrap,
  .report-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .programme-table,
  .quinte-table,
  .radar-table,
  .winner-category-table,
  .report-table {
    font-size: .69rem;
  }

  .programme-table th,
  .programme-table td,
  .quinte-table th,
  .quinte-table td,
  .radar-table th,
  .radar-table td,
  .winner-category-table th,
  .winner-category-table td,
  .report-table th,
  .report-table td {
    padding: 8px 7px;
  }

  .content-layout.is-quinte {
    display: block;
    width: 100%;
    margin: 0;
  }

  .content-layout.is-quinte .course-column {
    width: 100%;
    min-width: 0;
  }

  .content-layout.is-quinte .course-hero {
    padding: 18px 11px 15px;
  }

  .content-layout.is-quinte .course-hero-top,
  .content-layout.is-quinte .hero-panels {
    grid-template-columns: 1fr;
  }

  .content-layout.is-quinte #race-title,
  #race-ref.course-ref-highlight {
    font-size: 1.35rem;
    line-height: 1.05;
    overflow-wrap: anywhere;
  }

  .race-meta {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: none;
  }

  .race-meta::-webkit-scrollbar {
    display: none;
  }

  .race-meta > * {
    flex: 0 0 auto;
    min-width: max-content;
  }

  .hero-panels {
    gap: 8px;
  }

  .hero-card {
    min-width: 0;
    padding: 11px;
  }

  .hero-card h3 {
    font-size: .72rem;
  }

  .quinte-tabs-shell {
    position: sticky;
    z-index: 88;
    top: calc(
      var(--ptp-mobile-header-height)
      + env(safe-area-inset-top)
    );
    width: calc(100% + (2 * var(--ptp-mobile-gutter)));
    max-width: none;
    margin:
      8px
      calc(-1 * var(--ptp-mobile-gutter))
      0;
    border-top: 1px solid #e4dfdb;
    border-bottom: 1px solid #d8d2cd;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 8px 19px rgba(45, 34, 29, .09);
    backdrop-filter: blur(14px);
  }

  .quinte-tabs-shell::after {
    position: absolute;
    z-index: 1;
    top: 0;
    right: 0;
    bottom: 0;
    width: 54px;
    content: "";
    background: linear-gradient(90deg, rgba(255,255,255,0), #fff 48%);
    pointer-events: none;
  }

  .quinte-tabs-shell.is-at-end::after,
  .quinte-tabs-shell:not(.is-scrollable)::after {
    opacity: 0;
  }

  .quinte-tabs {
    position: static;
    z-index: auto;
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 5px;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 7px 48px 7px 9px;
    overflow-x: auto;
    overflow-y: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    scroll-padding-inline: 10px 48px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .quinte-tabs::-webkit-scrollbar {
    display: none;
  }

  .quinte-tab {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: .69rem;
    scroll-snap-align: center;
    white-space: nowrap;
  }

  .quinte-tabs-more {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: 7px;
    display: grid;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid #d7d1cc;
    border-radius: 999px;
    color: #fff;
    background: #16110f;
    box-shadow: 0 5px 13px rgba(22, 17, 15, .24);
    place-items: center;
    transform: translateY(-50%);
    cursor: pointer;
  }

  .quinte-tabs-more[hidden],
  .quinte-tabs-shell:not(.is-scrollable) .quinte-tabs-more {
    display: none !important;
  }

  .quinte-tabs-more svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.3;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform 170ms ease;
  }

  .quinte-tabs-shell.is-at-end .quinte-tabs-more svg {
    transform: rotate(180deg);
  }

  .quinte-panel {
    width: 100%;
    max-width: 100%;
    padding: 14px 0;
  }

  .quinte-analysis-list,
  .course-summary-grid,
  .probability-grid,
  .runner-stats,
  .pronostic-layout,
  .arrival-layout {
    grid-template-columns: 1fr;
  }

  .analysis-runner-list,
  .runner-list,
  .pronostic-runner-list {
    gap: 8px;
  }

  .analysis-runner,
  .runner-card,
  .pronostic-runner,
  .ticket-card {
    min-width: 0;
    padding: 10px;
  }

  .number-chip,
  .programme-number,
  .radar-number {
    transform: scale(.92);
    transform-origin: center;
  }

  .lab-mobile-nav {
    position: sticky;
    z-index: 86;
    top: calc(
      var(--ptp-mobile-header-height)
      + env(safe-area-inset-top)
    );
    display: flex;
    gap: 5px;
    width: 100vw;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
    padding: 7px 10px;
    overflow-x: auto;
    border-bottom: 1px solid #ddd6d1;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 8px 18px rgba(45, 34, 29, .08);
    backdrop-filter: blur(14px);
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .lab-mobile-nav::-webkit-scrollbar {
    display: none;
  }

  .lab-mobile-nav button {
    flex: 0 0 auto;
    min-height: 33px;
    padding: 0 11px;
    border: 1px solid #ddd5d0;
    border-radius: 999px;
    color: #5f5752;
    background: #fff;
    font-size: .69rem;
    font-weight: 850;
    white-space: nowrap;
    scroll-snap-align: start;
  }

  .lab-mobile-nav button.is-active {
    color: #fff;
    border-color: #16110f;
    background: #16110f;
  }

  .lab-hero {
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: start;
    padding:
      24px
      var(--ptp-mobile-gutter)
      18px;
  }

  .lab-hero-main {
    gap: 9px;
  }

  .lab-hero h1 {
    font-size: clamp(1.6rem, 7.2vw, 2rem);
  }

  .lab-hero-main > p:not(.lab-kicker) {
    font-size: .79rem;
  }

  .lab-hero-stats {
    display: flex;
    gap: 7px;
    max-width: 100%;
    overflow-x: auto;
    padding-bottom: 4px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .lab-hero-stats::-webkit-scrollbar {
    display: none;
  }

  .lab-hero-stats article {
    flex: 0 0 min(46vw, 150px);
    padding: 9px;
    scroll-snap-align: start;
  }

  .lab-hero-stats strong {
    font-size: 1.15rem;
  }

  .lab-hero-card {
    gap: 8px;
    width: 100%;
    padding: 11px;
  }

  .lab-workbench {
    display: grid;
    grid-template-columns: 1fr;
    gap: 11px;
    width: 100%;
    padding:
      11px
      var(--ptp-mobile-gutter)
      28px;
  }

  .lab-controls {
    position: static;
    gap: 10px;
    max-height: none;
    padding: 10px;
    border-radius: 10px;
  }

  .lab-control-block {
    gap: 7px;
  }

  .lab-control-block label,
  .lab-control-label {
    font-size: .72rem;
  }

  .lab-control-block select {
    min-height: 40px;
    font-size: .77rem;
  }

  .lab-control-mode button {
    min-height: 34px;
    font-size: .69rem;
  }

  .lab-segmented {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 4px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .lab-segmented::-webkit-scrollbar {
    display: none;
  }

  .lab-segmented button {
    flex: 0 0 min(70vw, 230px);
    min-width: 0;
    padding: 9px;
    scroll-snap-align: start;
  }

  .lab-segmented strong {
    font-size: .78rem;
  }

  .lab-segmented small,
  .lab-criterion p,
  .lab-method-text p,
  .lab-backtest p,
  .lab-library-card p {
    font-size: .69rem;
  }

  .lab-criteria-list {
    gap: 8px;
  }

  .lab-criterion {
    gap: 6px;
    padding: 8px;
  }

  .lab-criterion-top label {
    font-size: .75rem;
  }

  .lab-control-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    padding-top: 2px;
  }

  .lab-control-actions button {
    width: 100%;
    min-width: 0;
    min-height: 39px;
    padding: 7px;
    font-size: .69rem;
    line-height: 1.16;
    overflow-wrap: anywhere;
    white-space: normal;
  }

  .lab-results {
    min-width: 0;
  }

  .lab-results-head {
    display: grid;
    gap: 9px;
    align-items: start;
  }

  .lab-view-tabs {
    display: flex;
    width: 100%;
    gap: 5px;
    overflow-x: auto;
    padding-bottom: 3px;
    scrollbar-width: none;
  }

  .lab-view-tabs::-webkit-scrollbar {
    display: none;
  }

  .lab-view-tabs button {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 0 10px;
    font-size: .68rem;
    white-space: nowrap;
  }

  .lab-ticket-grid {
    display: flex;
    grid-template-columns: none;
    gap: 8px;
    overflow-x: auto;
    padding: 1px 1px 7px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .lab-ticket-grid::-webkit-scrollbar {
    display: none;
  }

  .lab-ticket {
    flex: 0 0 min(79vw, 310px);
    min-width: 0;
    padding: 10px;
    scroll-snap-align: start;
  }

  .lab-main-grid,
  .lab-secondary-grid,
  .lab-charts-grid,
  .lab-strategy-performance-kpis,
  .lab-strategy-comparison-summary,
  .lab-backtest-kpis {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .lab-panel {
    min-width: 0;
    padding: 10px;
    border-radius: 10px;
  }

  .lab-panel-head {
    display: grid;
    gap: 3px;
    align-items: start;
  }

  .lab-panel-head span {
    font-size: .62rem;
    line-height: 1.25;
  }

  .lab-ranking-table {
    min-width: 660px;
    font-size: .66rem;
  }

  .lab-ranking-table th,
  .lab-ranking-table td {
    padding: 7px 6px;
  }

  .lab-heatmap {
    max-width: 100%;
    overflow-x: auto;
    padding-bottom: 5px;
    -webkit-overflow-scrolling: touch;
  }

  .lab-heatmap > * {
    min-width: 620px;
  }

  .lab-results-tools {
    min-width: 0;
  }

  body.is-lab-page .lab-results-tools > .lab-strategy-library,
  body.is-lab-page .lab-results-tools > .lab-strategy-comparison,
  body.is-lab-page .lab-results-tools > .lab-automation-preview,
  body.is-lab-page .lab-results-tools > .lab-history,
  body.is-lab-page .lab-results-tools > .lab-strategy-backtests {
    width: 100%;
    min-width: 0;
    margin-top: 11px;
    padding: 11px;
    border-radius: 10px;
  }

  .lab-strategy-library-head,
  .lab-strategy-comparison-head,
  .lab-automation-preview-head,
  .lab-history-head,
  .lab-strategy-backtests-head {
    display: grid;
    gap: 9px;
  }

  body.is-lab-page .lab-section-purpose {
    margin-top: 5px !important;
    font-size: .72rem !important;
  }

  body.is-lab-page .lab-strategy-library-head > button,
  body.is-lab-page .lab-history-head > button,
  body.is-lab-page .lab-automation-preview-actions,
  body.is-lab-page .lab-automation-preview-actions button {
    width: 100%;
  }

  .lab-strategy-list,
  .lab-library-grid {
    grid-template-columns: 1fr;
  }

  .lab-library-card {
    display: grid;
    gap: 8px;
    align-items: start;
    padding: 10px;
  }

  .lab-library-card-actions,
  .lab-history-filter-actions,
  .lab-strategy-dialog-actions {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 3px;
    scrollbar-width: none;
  }

  .lab-library-card-actions::-webkit-scrollbar,
  .lab-history-filter-actions::-webkit-scrollbar,
  .lab-strategy-dialog-actions::-webkit-scrollbar {
    display: none;
  }

  .lab-library-card-actions button,
  .lab-history-filter-actions button,
  .lab-strategy-dialog-actions button {
    flex: 0 0 auto;
    min-height: 36px;
    padding: 7px 10px;
    font-size: .68rem;
    white-space: nowrap;
  }

  .lab-history-filters,
  .lab-filter-grid,
  .lab-backtest-date-grid,
  .lab-strategy-comparison-controls {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 10px;
  }

  .lab-strategy-comparison-table,
  .lab-discipline-table,
  .lab-history-table {
    min-width: 780px;
    font-size: .66rem;
  }

  .lab-chart-card,
  .lab-strategy-performance,
  .lab-discipline-analysis {
    min-width: 0;
    padding: 10px;
  }

  .lab-strategy-modal {
    align-items: end;
    padding: 0;
  }

  .lab-strategy-dialog {
    width: 100%;
    max-width: 100%;
    max-height: calc(
      100dvh
      - var(--ptp-mobile-header-height)
    );
    padding: 14px 11px calc(14px + env(safe-area-inset-bottom));
    border-radius: 16px 16px 0 0;
  }

  .toast {
    right: 10px;
    bottom: calc(
      var(--ptp-mobile-bottom-height)
      + env(safe-area-inset-bottom)
      + 10px
    );
    left: 10px;
    max-width: none;
  }
}

@media (max-width: 520px) {
  :root {
    --ptp-mobile-gutter: 9px;
  }

  .brand-logo {
    width: min(132px, 46vw);
  }

  .home-actions {
    grid-template-columns: 1fr;
  }

  .home-kpis article,
  .programme-stats article {
    flex-basis: min(80vw, 270px);
  }

  .quinte-tab,
  .lab-mobile-nav button {
    font-size: .66rem;
  }

  .course-summary-grid {
    grid-template-columns: 1fr;
  }

  .programme-table,
  .quinte-table,
  .radar-table,
  .winner-category-table,
  .report-table {
    font-size: .65rem;
  }

  .lab-control-actions {
    grid-template-columns: 1fr;
  }

  .lab-ticket {
    flex-basis: min(84vw, 295px);
  }

  .mobile-bottom-nav button span {
    font-size: .56rem;
  }
}

/* === V94.4.1 : correctifs mobile de recette === */

.difficulty-dots {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  line-height: 1;
}

.difficulty-dots i {
  display: inline-block;
  flex: 0 0 auto;
  border-radius: 999px;
}

.programme-difficulty-label {
  display: none;
}

.programme-ref {
  grid-template-rows: repeat(2, auto);
  align-content: center;
  min-width: 48px;
  min-height: 52px;
  padding: 6px 8px;
  line-height: 1;
}

.programme-ref > span {
  display: block;
  line-height: 1.05;
}

.advice-open-course-short {
  display: none;
}

@media (max-width: 900px) {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html,
  body {
    width: 100%;
    max-width: 100%;
    margin: 0;
    overflow-x: hidden !important;
  }

  .app-shell,
  main,
  main > section,
  .home-page,
  .programme-overview,
  .programme-hero,
  .programme-hero-inner,
  .programme-content,
  .content-layout,
  .content-layout.is-quinte,
  .content-layout.is-quinte .course-column,
  .content-layout.is-quinte .course-hero,
  .lab-page,
  .lab-hero,
  .lab-mobile-nav,
  .lab-workbench,
  .blog-page,
  .blog-hero,
  .static-page,
  .auth-page,
  .account-page {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  main {
    overflow-x: hidden;
  }

  .topbar {
    width: 100% !important;
    max-width: 100% !important;
  }

  .home-hero,
  .programme-hero-inner,
  .programme-content,
  .content-layout,
  .lab-hero,
  .lab-workbench,
  .blog-hero,
  .blog-layout,
  .static-page,
  .auth-page,
  .account-page {
    padding-right: var(--ptp-mobile-gutter) !important;
    padding-left: var(--ptp-mobile-gutter) !important;
  }

  .programme-overview {
    margin-bottom: 34px !important;
  }

  .content-layout.is-quinte .course-hero {
    padding-right: var(--ptp-mobile-gutter) !important;
    padding-left: var(--ptp-mobile-gutter) !important;
  }

  .lab-mobile-nav {
    padding-right: var(--ptp-mobile-gutter);
    padding-left: var(--ptp-mobile-gutter);
  }

  .mobile-nav-duplicate {
    display: none !important;
  }

  .top-nav {
    color: #171817;
    border-right-color: #ded9d5;
    background: #ffffff;
    box-shadow: 22px 0 50px rgba(0, 0, 0, .28);
  }

  .top-nav .mode-button {
    color: #171817;
    border-color: #ded9d5;
    background: #ffffff;
    pointer-events: auto;
  }

  .top-nav .mode-button:hover,
  .top-nav .mode-button:focus-visible {
    color: #ffffff;
    border-color: #a91713;
    background: #a91713;
    outline: 0;
  }

  .top-nav .mode-button.is-active {
    color: #ffffff;
    border-color: #a91713;
    background: #a91713;
  }

  .mobile-menu-backdrop {
    background: rgba(0, 0, 0, .38);
  }

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

  body.mobile-quinte-picker-open {
    overflow: hidden;
    touch-action: none;
  }

  .mobile-quinte-picker {
    position: fixed;
    z-index: 1420;
    inset: 0;
    display: grid;
    align-items: end;
  }

  .mobile-quinte-picker[hidden] {
    display: none !important;
  }

  .mobile-quinte-picker-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(0, 0, 0, .52);
  }

  .mobile-quinte-picker-panel {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 13px;
    width: 100%;
    padding:
      16px
      14px
      calc(
        var(--ptp-mobile-bottom-height)
        + env(safe-area-inset-bottom)
        + 16px
      );
    border-radius: 18px 18px 0 0;
    background: #ffffff;
    box-shadow: 0 -18px 50px rgba(0, 0, 0, .25);
  }

  .mobile-quinte-picker-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .mobile-quinte-picker-head span {
    display: block;
    margin-bottom: 2px;
    color: #b48221;
    font-size: .66rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .mobile-quinte-picker-head h2 {
    margin: 0;
    color: #171817;
    font-size: 1.22rem;
  }

  .mobile-quinte-picker-head > button {
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #ddd8d4;
    border-radius: 999px;
    color: #171817;
    background: #f6f4f2;
    font-size: 1.45rem;
    place-items: center;
  }

  .mobile-quinte-picker-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .mobile-quinte-picker-options button {
    display: grid;
    min-width: 0;
    min-height: 84px;
    gap: 4px;
    align-content: center;
    padding: 10px 7px;
    border: 1px solid #ddd7d3;
    border-radius: 11px;
    color: #171817;
    background: #f8f7f5;
    text-align: center;
  }

  .mobile-quinte-picker-options button:nth-child(2) {
    color: #ffffff;
    border-color: #a91713;
    background: #a91713;
  }

  .mobile-quinte-picker-options strong {
    font-size: .78rem;
  }

  .mobile-quinte-picker-options small {
    color: inherit;
    font-size: .61rem;
    line-height: 1.25;
    opacity: .76;
  }

  .programme-stats {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px !important;
    width: 100%;
    overflow: visible !important;
    padding: 0 !important;
    scroll-snap-type: none !important;
  }

  .programme-stats article {
    flex: initial !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 9px 7px;
  }

  .programme-stat span {
    font-size: .59rem;
  }

  .programme-stat strong {
    font-size: .78rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
  }

  .programme-difficulty-filter-row {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 5px !important;
    width: 100% !important;
    overflow: visible !important;
    padding: 0 !important;
    scroll-snap-type: none !important;
  }

  .programme-difficulty-filter-row button {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center;
    gap: 3px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 47px !important;
    padding: 5px 2px !important;
    white-space: normal !important;
  }

  .programme-difficulty-filter-row .programme-difficulty {
    display: inline-flex;
    justify-content: center;
    min-height: 9px;
  }

  .programme-difficulty-filter-row .programme-difficulty i {
    width: 7px !important;
    height: 7px !important;
  }

  .programme-difficulty-label {
    display: block;
    max-width: 100%;
    overflow: hidden;
    font-size: .56rem;
    font-weight: 800;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .programme-difficulty-filter-row button small {
    font-size: .57rem !important;
  }

  .programme-table-wrap,
  .quinte-table-wrap,
  .radar-table-wrap,
  .comparator-table-wrap,
  .winner-category-table-wrap,
  .home-heatmap-table-wrap,
  .lab-table-wrap,
  .lab-discipline-table-wrap,
  .lab-strategy-comparison-table-wrap,
  .lab-history-table-wrap,
  .report-table-wrap {
    width: 100%;
    max-width: 100%;
  }

  body.is-advice-page .advice-open-course {
    display: inline-flex;
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    min-height: 36px !important;
    align-items: center;
    justify-content: center;
    padding: 5px 4px !important;
    font-size: .61rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
  }

  .advice-open-course-long {
    display: none;
  }

  .advice-open-course-short {
    display: inline;
  }

  body.is-advice-page .programme-table th:nth-child(9),
  body.is-advice-page .programme-table td:nth-child(9) {
    width: 82px !important;
    min-width: 82px !important;
    max-width: 82px !important;
    padding-right: 5px !important;
    padding-left: 5px !important;
  }

  .programme-ref {
    min-width: 46px;
    min-height: 50px;
    padding: 6px;
    font-size: .72rem;
  }

  .lab-ticket-grid > .lab-ticket,
  .lab-ticket-grid > .lab-ticket-card {
    display: grid;
    flex: 0 0 min(79vw, 310px);
    min-width: 0;
    min-height: 116px;
    gap: 7px;
    align-content: start;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #ffffff;
    scroll-snap-align: start;
  }

  .lab-ticket-grid > .premium-lab-ticket {
    color: var(--ink);
    background: #ffffff;
  }

  .lab-ticket-grid > .premium-lab-ticket span {
    color: var(--brand);
    font-size: .72rem;
    font-weight: 950;
    text-transform: uppercase;
  }

  .lab-ticket-grid > .premium-lab-ticket small {
    color: var(--muted);
    font-size: .68rem;
    line-height: 1.35;
  }

  .premium-lab-ticket-row-lock {
    flex: 0 0 min(79vw, 310px);
    display: grid;
    min-height: 116px;
    place-items: center;
    padding: 11px;
    border: 1px dashed rgba(169, 23, 19, .32);
    border-radius: 10px;
    background: rgba(169, 23, 19, .05);
    scroll-snap-align: start;
  }

  .lab-results-head {
    width: 100%;
    min-width: 0;
  }

  .lab-results-head > div:first-child,
  #lab-course-title {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .lab-main-grid,
  .lab-secondary-grid,
  .lab-charts-grid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .lab-panel,
  .lab-chart-card,
  .lab-strategy-performance,
  .lab-discipline-analysis {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
  }

  .lab-ranking-panel,
  .lab-ranking-panel .lab-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
  }
}

@media (max-width: 520px) {
  .programme-stat strong {
    font-size: .7rem;
  }

  .mobile-quinte-picker-options {
    gap: 6px;
  }

  .mobile-quinte-picker-options button {
    min-height: 78px;
    padding-right: 4px;
    padding-left: 4px;
  }

  .mobile-quinte-picker-options strong {
    font-size: .72rem;
  }

  .mobile-quinte-picker-options small {
    font-size: .56rem;
  }
}

/* === V94.4.2 : correctifs mobile de largeur et navigation === */

.mobile-menu-brand {
  display: none;
}

@media (max-width: 900px) {
  html,
  body {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    background: #f2f2ef;
    overflow-x: hidden !important;
  }

  body {
    padding-top: 0 !important;
    padding-bottom: calc(
      var(--ptp-mobile-bottom-height)
      + env(safe-area-inset-bottom)
    ) !important;
  }

  .app-shell {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #f2f2ef;
    overflow-x: hidden !important;
  }

  main,
  main > section,
  .home-page,
  .programme-overview,
  .programme-page,
  .lab-page,
  .blog-page,
  .static-page,
  .auth-page,
  .account-page {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .home-hero,
  .programme-hero,
  .lab-hero,
  .blog-hero,
  .content-layout.is-quinte .course-hero {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  .topbar {
    width: 100% !important;
    max-width: none !important;
  }

  body.mobile-menu-open .topbar {
    z-index: 1350;
  }

  .mobile-menu-backdrop {
    z-index: 1200;
    background: rgba(0, 0, 0, .46);
  }

  .top-nav {
    z-index: 1360;
    gap: 8px;
    padding:
      calc(20px + env(safe-area-inset-top))
      14px
      calc(24px + env(safe-area-inset-bottom));
    color: #ffffff;
    border-right: 1px solid rgba(197, 139, 29, .4);
    background:
      radial-gradient(
        circle at 20% 0,
        rgba(169, 23, 19, .34),
        transparent 38%
      ),
      linear-gradient(180deg, #090807 0%, #17110f 100%);
    box-shadow: 24px 0 55px rgba(0, 0, 0, .42);
  }

  .mobile-menu-brand {
    display: grid;
    gap: 8px;
    padding: 6px 4px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
  }

  .mobile-menu-brand img {
    width: min(190px, 64vw);
    max-height: 42px;
    object-fit: contain;
    object-position: left center;
  }

  .mobile-menu-brand span {
    color: #d8aa45;
    font-size: .65rem;
    font-weight: 950;
    letter-spacing: .11em;
    text-transform: uppercase;
  }

  .top-nav .mode-button {
    min-height: 48px;
    color: #ffffff;
    border-color: rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .055);
  }

  .top-nav .mode-button:hover,
  .top-nav .mode-button:focus-visible,
  .top-nav .mode-button.is-active {
    color: #ffffff;
    border-color: #b91c17;
    background:
      linear-gradient(90deg, #a91713, #c12a22);
  }

  .top-nav .mode-button::after {
    margin-left: auto;
    color: #d8aa45;
    content: "›";
    font-size: 1.1rem;
    font-weight: 900;
  }

  .lab-date-shortcuts {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  .lab-date-shortcuts > button {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding-right: 6px !important;
    padding-left: 6px !important;
    white-space: nowrap !important;
  }

  .lab-date-shortcuts .lab-calendar-field {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    width: 100%;
    min-width: 0;
    margin-top: 1px;
    padding: 8px 10px;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 9px;
    color: #ffffff;
    background: rgba(0, 0, 0, .24);
  }

  .lab-date-shortcuts .lab-calendar-field span {
    font-size: .68rem;
    font-weight: 900;
    white-space: nowrap;
  }

  .lab-date-shortcuts .lab-calendar-field input {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 0 8px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 7px;
    color: #171817;
    background: #ffffff;
    font-size: .72rem;
    font-weight: 800;
  }

  .programme-comparison-legend {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .programme-comparison-legend strong {
    font-size: .92rem;
  }

  .programme-comparison-legend span {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    min-width: 0;
    font-size: .78rem;
    line-height: 1.42;
  }

  .programme-comparison-legend .programme-number {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    aspect-ratio: 1 / 1;
    flex: 0 0 32px;
    font-size: .78rem;
    line-height: 1;
  }

  .content-layout.is-quinte .probability-grid,
  .hero-probability .probability-grid,
  #winner-probability {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100%;
    max-width: 100%;
    padding: 8px 4px !important;
  }

  .probability-item {
    min-width: 0;
    padding: 7px 3px;
  }

  .probability-item strong {
    display: block;
    min-width: 0;
    font-size: clamp(.9rem, 4.8vw, 1.08rem);
    line-height: 1.1;
    overflow-wrap: normal;
    white-space: nowrap;
  }

  .probability-item span {
    font-size: .63rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 520px) {
  .lab-date-shortcuts .lab-calendar-field {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .lab-date-shortcuts .lab-calendar-field span {
    white-space: normal;
  }

  .probability-item strong {
    font-size: .9rem;
  }

  .probability-item span {
    font-size: .58rem;
  }
}

/* === V94.4.3 : plein écran mobile et compte dans le burger === */

@media (max-width: 900px) {
  html {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    background: #f2f2ef;
    overflow-x: hidden !important;
  }

  body {
    position: relative;
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    overflow-x: hidden !important;
  }

  body > .app-shell {
    position: relative !important;
    right: auto !important;
    left: 50% !important;
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    margin-right: -50vw !important;
    margin-left: -50vw !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    transform: none !important;
    overflow-x: clip !important;
  }

  body > .app-shell > .topbar {
    position: sticky;
    right: auto !important;
    left: 0 !important;
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 11px !important;
    padding-left: 11px !important;
    transform: none !important;
  }

  body > .app-shell > .topbar::before {
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    transform: none !important;
  }

  body > .app-shell > main {
    position: relative !important;
    left: 0 !important;
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    transform: none !important;
    overflow-x: clip !important;
  }

  body > .app-shell > main > section,
  body > .app-shell > main > .home-page,
  body > .app-shell > main > .programme-overview,
  body > .app-shell > main > .programme-page,
  body > .app-shell > main > .lab-page,
  body > .app-shell > main > .blog-page,
  body > .app-shell > main > .static-page,
  body > .app-shell > main > .auth-page,
  body > .app-shell > main > .account-page {
    position: relative !important;
    left: 0 !important;
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    transform: none !important;
  }

  .home-hero,
  .programme-hero,
  .lab-hero,
  .blog-hero,
  .content-layout.is-quinte .course-hero {
    position: relative !important;
    left: 0 !important;
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    transform: none !important;
  }

  .content-layout,
  .programme-content,
  .lab-workbench,
  .blog-layout {
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

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

  .mobile-menu-brand {
    gap: 0;
    padding-bottom: 14px;
  }

  .mobile-menu-brand span {
    display: none !important;
  }

  #auth-nav-button {
    display: flex !important;
  }
}

@supports (width: 100dvw) {
  @media (max-width: 900px) {
    body,
    body > .app-shell,
    body > .app-shell > .topbar,
    body > .app-shell > main,
    body > .app-shell > main > section,
    body > .app-shell > main > .home-page,
    body > .app-shell > main > .programme-overview,
    body > .app-shell > main > .programme-page,
    body > .app-shell > main > .lab-page,
    body > .app-shell > main > .blog-page,
    body > .app-shell > main > .static-page,
    body > .app-shell > main > .auth-page,
    body > .app-shell > main > .account-page,
    .home-hero,
    .programme-hero,
    .lab-hero,
    .blog-hero,
    .content-layout.is-quinte .course-hero,
    .content-layout,
    .programme-content,
    .lab-workbench,
    .blog-layout {
      width: 100dvw !important;
      min-width: 100dvw !important;
      max-width: 100dvw !important;
    }
  }
}
/* === V95 : footer, pages légales, cookies et correction Quinté === */
.site-footer{position:relative;z-index:3;color:rgba(255,255,255,.82);background:radial-gradient(circle at 15% 0,rgba(169,23,19,.28),transparent 32%),linear-gradient(180deg,#17110f,#070706)}
.site-footer-main{display:grid;grid-template-columns:minmax(280px,1.45fr) repeat(3,minmax(160px,.72fr));gap:34px;width:min(100% - 40px,1380px);margin:0 auto;padding:54px 0 38px}
.site-footer-brand{display:grid;gap:16px;align-content:start}.site-footer-brand img{width:min(240px,100%);max-height:54px;object-fit:contain;object-position:left}.site-footer-brand h2{max-width:560px;margin:0;color:#fff;font-size:clamp(1.15rem,1.8vw,1.65rem);line-height:1.12}.site-footer-brand p{max-width:610px;margin:0;font-size:.84rem;line-height:1.55}
.site-footer-socials{display:flex;gap:9px}.site-footer-socials a{display:grid;width:42px;height:42px;border:1px solid rgba(255,255,255,.17);border-radius:10px;color:#fff;background:rgba(255,255,255,.06);place-items:center}.site-footer-socials a:hover,.site-footer-socials a:focus-visible{background:#a91713;outline:0}.site-footer-socials svg{width:21px;height:21px;fill:currentColor}.site-footer-socials svg rect,.site-footer-socials svg circle{fill:none;stroke:currentColor;stroke-width:2}.site-footer-socials .site-footer-social-play{fill:#070706}
.site-footer-column{display:grid;gap:9px;align-content:start}.site-footer-column h2{margin:0 0 5px;color:#d8aa45;font-size:.78rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.site-footer-column button,.site-footer-column a{width:fit-content;max-width:100%;padding:0;border:0;color:rgba(255,255,255,.78);background:transparent;font:inherit;font-size:.77rem;line-height:1.4;text-align:left;text-decoration:none;cursor:pointer}.site-footer-column button:hover,.site-footer-column a:hover{color:#fff;text-decoration:underline;text-decoration-color:#d8aa45;text-underline-offset:4px}
.site-footer-responsible{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;width:min(100% - 40px,1380px);margin:0 auto;padding:20px 22px;border:1px solid rgba(216,170,69,.32);border-radius:12px;background:rgba(216,170,69,.08)}.site-footer-responsible-icon{display:grid;width:58px;height:58px;border:2px solid #d8aa45;border-radius:50%;color:#d8aa45;font-weight:950;place-items:center}.site-footer-responsible strong{display:block;margin-bottom:4px;color:#fff}.site-footer-responsible p{margin:0;font-size:.76rem;line-height:1.45}.site-footer-responsible button{min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;background:#a91713;font-size:.72rem;font-weight:900}
.site-footer-bottom{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:min(100% - 40px,1380px);margin:0 auto;padding:24px 0 34px;color:rgba(255,255,255,.53);font-size:.65rem;line-height:1.45}.site-footer-bottom p{margin:0}
.legal-static-page{min-height:70vh;background:#f3f3f0}.legal-page-inner{width:min(100% - 32px,1040px);margin:0 auto;padding:38px 0 64px}.legal-page-hero{display:grid;gap:11px;margin-bottom:18px;padding:28px;border-radius:14px;color:#fff;background:linear-gradient(110deg,rgba(0,0,0,.86),rgba(116,14,12,.84)),url('/assets/hero-horses.jpg');background-position:center;background-size:cover}.legal-page-hero img{width:min(220px,65vw);max-height:48px;object-fit:contain;object-position:left}.legal-page-hero p{margin:7px 0 0;color:#d8aa45;font-size:.7rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.legal-page-hero h1{margin:0;font-size:clamp(1.8rem,4vw,3rem);line-height:1.04}.legal-page-hero>div{max-width:720px;color:rgba(255,255,255,.82);font-size:.88rem;line-height:1.5}.legal-page-hero small{color:rgba(255,255,255,.62);font-size:.65rem}.legal-document{display:grid;gap:14px}
.legal-section,.legal-callout,.responsible-hero,.legal-faq details{padding:22px;border:1px solid #ddd9d4;border-radius:12px;background:#fff;box-shadow:0 8px 20px rgba(36,29,25,.04)}.legal-section h2{margin:0 0 10px;color:#171817;font-size:1.1rem}.legal-section p,.legal-section li,.legal-callout p,.legal-faq p{color:#655f5b;font-size:.82rem;line-height:1.62}.legal-section ul,.legal-section ol{display:grid;gap:7px;margin:0;padding-left:20px}.legal-section a,.legal-contact-cards a{color:#941915}.legal-identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.legal-identity-grid>div{padding:12px;border:1px solid #e5e1dd;border-radius:8px;background:#faf9f7}.legal-identity-grid dt{margin-bottom:4px;color:#8a1815;font-size:.65rem;font-weight:950;text-transform:uppercase}.legal-identity-grid dd{margin:0;color:#171817;font-size:.8rem;line-height:1.4}.legal-callout{border-color:rgba(23,111,79,.25);background:rgba(23,111,79,.06)}.legal-callout-warning{border-color:rgba(197,139,29,.35);background:rgba(197,139,29,.08)}.legal-table-wrap{max-width:100%;overflow-x:auto}.legal-table{width:100%;min-width:620px;border-collapse:collapse}.legal-table th,.legal-table td{padding:11px;border-bottom:1px solid #e4e0dc;color:#655f5b;font-size:.76rem;line-height:1.45;text-align:left;vertical-align:top}.legal-table th{color:#171817;background:#f7f5f2}.legal-inline-button{min-height:40px;padding:0 14px;border:0;border-radius:8px;color:#fff;background:#a91713;font-weight:900}.legal-section details{margin-top:12px;padding:13px;border:1px solid #e3dfdb;border-radius:8px;background:#faf9f7}.legal-section summary,.legal-faq summary{color:#171817;font-weight:900;cursor:pointer}.legal-page-related{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.legal-page-related button{min-height:34px;padding:0 11px;border:1px solid #d8d3cf;border-radius:999px;color:#5f5752;background:#fff;font-size:.68rem;font-weight:850}
.responsible-hero{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;color:#fff;background:linear-gradient(120deg,#17110f,#7e1411)}.responsible-hero>span{display:grid;width:68px;height:68px;border:3px solid #d8aa45;border-radius:50%;color:#d8aa45;font-size:1.2rem;font-weight:950;place-items:center}.responsible-hero h2,.responsible-hero p{margin:0;color:#fff}.help-steps{display:grid;gap:10px}.help-steps article{display:grid;grid-template-columns:48px 1fr;gap:12px;padding:13px;border:1px solid #e4e0dc;border-radius:9px}.help-steps article>span{display:grid;width:42px;height:42px;border-radius:9px;color:#fff;background:#a91713;font-size:.72rem;font-weight:950;place-items:center}.help-steps h2,.help-steps p{margin:0}.legal-faq{display:grid;gap:9px}.legal-faq details{padding:16px 18px}.legal-contact-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.legal-contact-cards>*{display:grid;gap:5px;padding:16px;border:1px solid #dfdbd7;border-radius:10px;color:inherit;background:#fff;text-decoration:none}.legal-contact-cards strong{color:#171817}.legal-contact-cards span{color:#655f5b;font-size:.76rem;line-height:1.4}
.cookie-banner{position:fixed;z-index:1700;right:18px;bottom:18px;left:18px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;max-width:1040px;margin:0 auto;padding:18px;border:1px solid rgba(216,170,69,.42);border-radius:13px;color:#fff;background:#15110f;box-shadow:0 18px 50px rgba(0,0,0,.3)}.cookie-banner[hidden],.cookie-modal[hidden]{display:none!important}.cookie-banner strong{display:block;margin-bottom:3px}.cookie-banner p{margin:0;color:rgba(255,255,255,.72);font-size:.74rem;line-height:1.45}.cookie-banner-actions,.cookie-modal-actions{display:flex;gap:7px}.cookie-primary,.cookie-secondary{min-height:39px;padding:0 12px;border-radius:8px;font-size:.7rem;font-weight:900}.cookie-primary{border:1px solid #a91713;color:#fff;background:#a91713}.cookie-secondary{border:1px solid rgba(255,255,255,.22);color:inherit;background:transparent}.cookie-modal{position:fixed;z-index:1800;inset:0;display:grid;place-items:center;padding:16px}.cookie-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.55)}.cookie-modal-panel{position:relative;z-index:1;display:grid;gap:16px;width:min(100%,620px);max-height:min(720px,90vh);padding:22px;overflow-y:auto;border-radius:14px;background:#fff;box-shadow:0 22px 70px rgba(0,0,0,.33)}.cookie-modal-head{display:flex;align-items:center;justify-content:space-between}.cookie-modal-head span{color:#b48221;font-size:.65rem;font-weight:950;text-transform:uppercase}.cookie-modal-head h2{margin:2px 0 0}.cookie-modal-head>button{display:grid;width:38px;height:38px;border:1px solid #ddd8d4;border-radius:50%;background:#f7f5f2;font-size:1.3rem;place-items:center}.cookie-modal-panel>p{margin:0;color:#655f5b;font-size:.78rem;line-height:1.5}.cookie-choice-list{display:grid;gap:9px}.cookie-choice-list article,.cookie-choice-list label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid #e0dcd8;border-radius:9px}.cookie-choice-list strong,.cookie-choice-list small{display:block}.cookie-choice-list small{margin-top:4px;color:#716a65;font-size:.68rem}.cookie-required{color:#1b7655;font-size:.66rem;font-weight:900}.cookie-choice-list label>input{position:absolute;width:1px;height:1px;opacity:0}.cookie-toggle{position:relative;width:46px;height:26px;border-radius:999px;background:#cbc6c2}.cookie-toggle:after{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;content:'';background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .16s}.cookie-choice-list input:checked+.cookie-toggle{background:#1b7655}.cookie-choice-list input:checked+.cookie-toggle:after{transform:translateX(20px)}body.cookie-modal-open{overflow:hidden}
@media(max-width:900px){body.is-quinte-page .content-layout,body.is-course-page .content-layout{width:100vw!important;min-width:100vw!important;max-width:100vw!important;margin:0!important;padding:0!important}body.is-quinte-page .course-column,body.is-course-page .course-column{width:100vw!important;min-width:100vw!important;max-width:100vw!important;margin:0!important;background:#f2f2ef}body.is-quinte-page .course-hero,body.is-course-page .course-hero{width:100vw!important;min-width:100vw!important;max-width:100vw!important;margin:0!important;border-radius:0!important}body.is-quinte-page .quinte-tabs-shell,body.is-course-page .quinte-tabs-shell{width:100vw!important;margin:0!important}body.is-quinte-page .quinte-panel,body.is-course-page .quinte-panel{width:100%;padding-right:var(--ptp-mobile-gutter);padding-left:var(--ptp-mobile-gutter)}.site-footer-main{grid-template-columns:1fr 1fr;gap:26px 18px;width:calc(100% - 22px);padding:36px 0 28px}.site-footer-brand{grid-column:1/-1}.site-footer-responsible{grid-template-columns:auto 1fr;width:calc(100% - 22px);padding:15px}.site-footer-responsible button{grid-column:1/-1;width:100%}.site-footer-bottom{grid-template-columns:1fr;gap:8px;width:calc(100% - 22px);padding-bottom:calc(var(--ptp-mobile-bottom-height) + env(safe-area-inset-bottom) + 24px)}.legal-page-inner{width:calc(100% - 20px);padding:18px 0 36px}.legal-page-hero,.legal-section,.legal-callout,.responsible-hero,.legal-faq details{padding:16px;border-radius:10px}.legal-identity-grid,.legal-contact-cards{grid-template-columns:1fr}.cookie-banner{right:9px;bottom:calc(var(--ptp-mobile-bottom-height) + env(safe-area-inset-bottom) + 9px);left:9px;grid-template-columns:1fr;gap:12px;padding:14px}.cookie-banner-actions{display:grid;grid-template-columns:1fr 1fr}.cookie-banner-actions .cookie-primary{grid-column:1/-1}.cookie-modal{align-items:end;padding:0}.cookie-modal-panel{width:100%;max-height:86dvh;padding:17px 12px calc(17px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0}.cookie-modal-actions{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:560px){.site-footer-main{grid-template-columns:1fr}.site-footer-brand{grid-column:auto}.site-footer-column{padding-top:3px;border-top:1px solid rgba(255,255,255,.1)}.responsible-hero{grid-template-columns:1fr}.help-steps article{grid-template-columns:42px 1fr}}

/* === V95.0.1 : footer et pages légales en pleine largeur === */

/*
 * Le fond occupe toute la largeur de la fenêtre, même lorsque l’application
 * est placée dans un conteneur central. Le contenu du footer reste centré.
 */
.site-footer {
  position: relative;
  left: 50%;
  width: 100vw;
  min-width: 100vw;
  max-width: 100vw;
  margin-top: 0;
  margin-right: -50vw;
  margin-bottom: 0;
  margin-left: -50vw;
  padding: 0;
  color: rgba(255, 255, 255, .82);
  background: #050505;
  overflow: hidden;
}

.site-footer-main,
.site-footer-responsible,
.site-footer-bottom {
  position: relative;
  z-index: 1;
}

.site-footer-main {
  width: min(calc(100% - 40px), 1380px);
  margin-right: auto;
  margin-left: auto;
}

.site-footer-responsible {
  width: min(calc(100% - 40px), 1380px);
  margin-right: auto;
  margin-left: auto;
}

.site-footer-bottom {
  width: min(calc(100% - 40px), 1380px);
  margin: 0 auto;
  padding-bottom: 28px;
}

.site-footer-bottom:last-child {
  margin-bottom: 0;
}

/*
 * Le fond des pages juridiques prend toute la largeur, comme la page
 * Abonnement. Le document est centré sur la même largeur maximale de 1180 px.
 */
#static-page.legal-static-page,
.legal-static-page {
  position: relative;
  left: 50%;
  width: 100vw;
  min-width: 100vw;
  max-width: 100vw;
  margin-right: -50vw;
  margin-left: -50vw;
  background: #f3f3f0;
}

#static-page.legal-static-page .legal-page-inner,
.legal-static-page .legal-page-inner {
  width: min(100%, 1180px);
  max-width: 1180px;
  margin-right: auto;
  margin-left: auto;
  padding:
    38px
    clamp(20px, 3vw, 40px)
    64px;
  box-sizing: border-box;
}

/* Aucun espace parasite après le footer. */
.site-footer + *,
.app-shell > .site-footer:last-child {
  margin-bottom: 0;
}

@media (max-width: 900px) {
  .site-footer {
    left: 0;
    width: 100dvw;
    min-width: 100dvw;
    max-width: 100dvw;
    margin-right: 0;
    margin-left: 0;
    background: #050505;
  }

  .site-footer-main,
  .site-footer-responsible,
  .site-footer-bottom {
    width: calc(100% - 22px);
  }

  /*
   * La zone nécessaire à la barre fixe du bas reste noire : il ne s’agit
   * plus d’une marge blanche située sous le footer.
   */
  .site-footer-bottom {
    margin-bottom: 0;
    padding-bottom: calc(
      var(--ptp-mobile-bottom-height)
      + env(safe-area-inset-bottom)
      + 18px
    );
    background: #050505;
  }

  #static-page.legal-static-page,
  .legal-static-page {
    left: 0;
    width: 100dvw;
    min-width: 100dvw;
    max-width: 100dvw;
    margin-right: 0;
    margin-left: 0;
  }

  #static-page.legal-static-page .legal-page-inner,
  .legal-static-page .legal-page-inner {
    width: 100%;
    max-width: 1180px;
    padding:
      18px
      14px
      36px;
  }
}

@supports not (width: 100dvw) {
  @media (max-width: 900px) {
    .site-footer,
    #static-page.legal-static-page,
    .legal-static-page {
      width: 100vw;
      min-width: 100vw;
      max-width: 100vw;
    }
  }
}

/* === V95.0.2 : suppression de la marge blanche sous le footer === */
@media (max-width: 900px) {
  html,
  body {
    background: #050505 !important;
  }

  body {
    padding-bottom: 0 !important;
  }

  .app-shell {
    min-height: 100dvh;
  }

  .site-footer {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  .site-footer::after {
    content: "";
    display: block;
    width: 100%;
    height: calc(
      var(--ptp-mobile-bottom-height)
      + env(safe-area-inset-bottom)
    );
    background: #050505;
  }

  .site-footer-bottom {
    margin-bottom: 0 !important;
    padding-bottom: 18px !important;
  }
}

@supports not (min-height: 100dvh) {
  @media (max-width: 900px) {
    .app-shell {
      min-height: 100vh;
    }
  }
}

