/* Individual sports (motorsport, golf, cycling, snooker): calendars of meetings, sessions and results tables.
   The sport's colours come from sports.css (body.theme-motorsport, theme-golf, theme-cycling, theme-snooker). */
.meetings .hub-block__head { flex-wrap: wrap; }
.meeting-subtitle {
  margin: 0 0 var(--space-2); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-2);
}
:root[dir="rtl"] .meeting-subtitle { letter-spacing: 0; font-size: var(--step--1); }
.meeting-note { margin: 0; color: var(--ink-2); font-size: var(--step--1); }

/* ---------- A meeting in a list ---------- */
.meeting-list { display: grid; margin: 0; padding: 0; list-style: none; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface); overflow: hidden; }
.meeting-row {
  display: grid; gap: var(--space-1) var(--space-4); padding: var(--space-3) var(--space-4); border-block-end: 1px solid var(--line);
  grid-template-columns: minmax(0, 1fr); align-items: center;
}
.meeting-row:last-child { border-block-end: 0; }
@media (min-width: 760px) {
  .meeting-row { grid-template-columns: 11rem minmax(0, 1.2fr) minmax(0, 1fr); }
  .meeting-list--compact .meeting-row, .hub-grid .meeting-row { grid-template-columns: minmax(0, 1fr); }
}
.meeting-row--in_progress { box-shadow: inset 4px 0 0 var(--hub-accent); }
:root[dir="rtl"] .meeting-row--in_progress { box-shadow: inset -4px 0 0 var(--hub-accent); }
.meeting-row--maroc { background: color-mix(in srgb, var(--atlas-green) 8%, var(--surface)); }
.meeting-row__when { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); font-size: var(--step--1); color: var(--ink-2); }
.meeting-row__round, .meeting-row__series {
  display: inline-block; padding: 0 6px; border-radius: var(--radius-s); background: var(--ink); color: var(--surface); font-size: 0.6875rem; font-weight: 800;
}
.meeting-row__main { display: grid; gap: 2px; min-inline-size: 0; }
.meeting-row__name { margin: 0; font-weight: 800; overflow-wrap: anywhere; }
.meeting-row__name a { color: inherit; }
.meeting-row__place { margin: 0; font-size: var(--step--1); color: var(--ink-2); min-inline-size: 0; overflow-wrap: anywhere; }
.meeting-row__result { display: grid; gap: 2px; min-inline-size: 0; font-size: var(--step--1); }
.meeting-row__winner, .meeting-row__runner, .meeting-row__pending { margin: 0; }
.meeting-row__winner { font-weight: 800; }
.meeting-row__runner, .meeting-row__pending { color: var(--ink-2); }
.meeting-row__label { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-2); }
:root[dir="rtl"] .meeting-row__label { letter-spacing: 0; }

.meeting-chip { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 0.6875rem; font-weight: 800; background: var(--surface-3); color: var(--ink); white-space: nowrap; }
.meeting-chip--in_progress, .meeting-chip--live { background: var(--hub-line, var(--hub)); color: #FFFFFF; }
.meeting-chip--cancelled { background: var(--surface-3); color: var(--ink-2); text-decoration: line-through; }
.hub-hero .meeting-chip { background: rgb(255 255 255 / 0.18); color: #FFFFFF; }

/* ---------- A meeting in a box (next, last) ---------- */
.meeting-card {
  display: grid; gap: var(--space-2); align-content: start; margin-block-end: var(--space-5); padding: var(--space-4); border-radius: var(--radius-m);
  background: var(--surface); border: 1px solid var(--line); box-shadow: inset 0 3px 0 var(--hub-line, var(--hub));
}
.meeting-card__kicker { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0; font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-2); }
:root[dir="rtl"] .meeting-card__kicker { letter-spacing: 0; font-size: var(--step--1); }
.meeting-card__name { margin: 0; font-size: var(--step-2); line-height: 1.15; overflow-wrap: anywhere; }
.meeting-card__name a { color: inherit; text-decoration: none; }
.meeting-card__name a:hover { text-decoration: underline; text-decoration-color: var(--hub-line, var(--hub)); }
.meeting-card__meta { margin: 0; color: var(--ink-2); font-size: var(--step--1); }
.meeting-card__subtitle { margin: var(--space-2) 0 0; font-size: var(--step-0); }

/* ---------- Session times ---------- */
.session-times { display: grid; margin: 0; padding: 0; list-style: none; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface); overflow: hidden; }
.session-times__row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px var(--space-3); padding: var(--space-2) var(--space-3); border-block-end: 1px solid var(--line); font-size: var(--step--1); }
.session-times__row:last-child { border-block-end: 0; }
.session-times__row--main .session-times__name { font-weight: 800; }
.session-times__row--current { background: color-mix(in srgb, var(--hub) 9%, var(--surface)); }
.session-times__row--live .session-times__when { color: var(--hub-line, var(--hub)); font-weight: 800; }
.session-times__row--finished .session-times__when { color: var(--ink-2); }
.session-times__name { color: inherit; font-weight: 650; }
.session-times__winner { flex-basis: 100%; color: var(--ink-2); }
.hub-nav__link--live { box-shadow: inset 0 0 0 2px var(--hub-accent); }

/* ---------- Results and standings tables ---------- */
.results { border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface); overflow: hidden; }
.results__table { inline-size: 100%; border-collapse: collapse; font-size: var(--step--1); }
.results__table th, .results__table td { padding: var(--space-2) var(--space-3); text-align: start; border-block-end: 1px solid var(--line); vertical-align: top; }
.results__table thead th { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); white-space: nowrap; }
:root[dir="rtl"] .results__table thead th { letter-spacing: 0; }
.results__table abbr { text-decoration: none; }
.results__table tbody tr:last-child td { border-block-end: 0; }
.results__pos { inline-size: 2.75rem; font-weight: 800; }
.results__points, .results__wins { inline-size: 3rem; text-align: end !important; }
.results__who { inline-size: 100%; min-inline-size: 0; overflow-wrap: anywhere; }
.results__name { font-weight: 750; color: inherit; }
.results__country, .results__team-inline { display: block; font-size: 0.75rem; color: var(--ink-2); }
.results__team { color: var(--ink-2); }
.results__team-inline { display: none; }
.results__detail { overflow-wrap: anywhere; max-inline-size: 16rem; }
.results__detail .num, .results__pos, .results__points { white-space: nowrap; }
.results__row--first { background: color-mix(in srgb, var(--hub) 9%, var(--surface)); }
.results__row--first .results__pos { color: var(--hub-line, var(--hub)); }
.results__row--maroc { box-shadow: inset 3px 0 0 var(--atlas-green); }
:root[dir="rtl"] .results__row--maroc { box-shadow: inset -3px 0 0 var(--atlas-green); }
@media (max-width: 699px) {
  .results__table th, .results__table td { padding: var(--space-2); }
  .results__team { display: none; }
  .results__team-inline { display: block; }
  .results__detail { max-inline-size: 8rem; font-size: 0.75rem; }
  .results__pos { inline-size: 2rem; }
}

.meeting-tables { display: grid; gap: var(--space-5); }
@media (min-width: 900px) { .meeting-tables { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.meeting-tables__item { display: grid; gap: var(--space-2); align-content: start; min-inline-size: 0; }

/* ---------- Previous and next meeting ---------- */
.meeting-pager { display: grid; gap: var(--space-2); }
.meeting-pager__link { display: grid; gap: 2px; padding: var(--space-3); border-radius: var(--radius-m); border: 1px solid var(--line); background: var(--surface); color: var(--ink); text-decoration: none; font-weight: 750; }
.meeting-pager__link:hover { border-color: var(--hub-line, var(--hub)); }
.meeting-pager__link--next { text-align: end; }
.meeting-pager__dir { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); }
:root[dir="rtl"] .meeting-pager__dir { letter-spacing: 0; }
