/* Tennis: tournaments by week, finals, champions histories, player results. Clay hub look (theme-tennis). */
.tennis .hub-block__head { flex-wrap: wrap; }
.tennis-subtitle {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: var(--space-4) 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"] .tennis-subtitle { letter-spacing: 0; font-size: var(--step--1); }
.hub-block > .tennis-subtitle:first-child, .tennis-rankings__list > .tennis-subtitle:first-child, .tennis-edition > .tennis-subtitle:first-child { margin-block-start: 0; }
.tennis-note { margin: 0; color: var(--ink-2); font-size: var(--step--1); }
.tennis-more { display: flex; flex-wrap: wrap; gap: var(--space-4); margin: var(--space-3) 0 0; }

/* ---------- A tournament line ---------- */
.tennis-events { display: grid; margin: 0; padding: 0; list-style: none; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface); overflow: hidden; }
.tennis-event {
  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;
}
.tennis-event:last-child { border-block-end: 0; }
.tennis-events--compact .tennis-event { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 760px) {
  .tennis-event { grid-template-columns: 9.5rem minmax(0, 1.2fr) minmax(0, 1fr); }
}
.tennis-event--grand_slam { box-shadow: inset 4px 0 0 var(--hub-accent, #E4F75A); }
:root[dir="rtl"] .tennis-event--grand_slam { box-shadow: inset -4px 0 0 var(--hub-accent, #E4F75A); }
.tennis-event--maroc { background: color-mix(in srgb, var(--atlas-green) 8%, var(--surface)); }
.tennis-event__when { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); font-size: var(--step--1); color: var(--ink-2); }
.tennis-event__status { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 0.6875rem; font-weight: 800; background: var(--surface-3); color: var(--ink); }
.tennis-event__status--in_progress { background: var(--hub, #C0532A); color: #FFFFFF; }
.tennis-event__main { display: grid; gap: 4px; min-inline-size: 0; }
.tennis-event__name { margin: 0; font-weight: 800; }
.tennis-event__name a { color: inherit; }
.tennis-event__tour { display: inline-block; margin-inline-end: 6px; padding: 0 6px; border-radius: var(--radius-s); background: var(--ink); color: var(--surface); font-size: 0.6875rem; font-weight: 800; vertical-align: 2px; }
.tennis-event__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; font-size: var(--step--1); color: var(--ink-2); }
.tennis-event__place { min-inline-size: 0; }
.tennis-event__result { display: grid; gap: 2px; min-inline-size: 0; }
.tennis-event__final { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 6px; margin: 0; font-size: var(--step--1); }
.tennis-event__champion { font-weight: 800; }
.tennis-event__beat { color: var(--ink-2); }
.tennis-event__score { margin: 0; font-size: 0.75rem; color: var(--ink-2); }
:root[dir="rtl"] .tennis-event__score { text-align: end; }

.tennis-chip { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 0.6875rem; font-weight: 800; white-space: nowrap; background: var(--surface-3); color: var(--ink); }
.tennis-chip--grand_slam { background: #1D3A5F; color: #FFFFFF; }
.tennis-chip--finals { background: #3B2A63; color: #FFFFFF; }
.tennis-chip--1000 { background: color-mix(in srgb, var(--hub, #C0532A) 22%, var(--surface)); }
.tennis-chip--clay { background: color-mix(in srgb, #C0532A 18%, var(--surface)); color: #8A3A1C; }
.tennis-chip--grass { background: color-mix(in srgb, #3E8E41 18%, var(--surface)); color: #2C6B2F; }
.tennis-chip--hard { background: color-mix(in srgb, #2F6DB5 16%, var(--surface)); color: #23548D; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .tennis-chip--clay { color: #F0A582; }
  :root:not([data-theme="light"]) .tennis-chip--grass { color: #8BD18E; }
  :root:not([data-theme="light"]) .tennis-chip--hard { color: #9CC3F0; }
}
:root[data-theme="dark"] .tennis-chip--clay { color: #F0A582; }
:root[data-theme="dark"] .tennis-chip--grass { color: #8BD18E; }
:root[data-theme="dark"] .tennis-chip--hard { color: #9CC3F0; }

/* ---------- Calendar ---------- */
.tennis-filter, .tennis-months { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-end: var(--space-3); }
.tennis-filter__link, .tennis-months__link {
  display: inline-flex; align-items: center; gap: 4px; min-block-size: 36px; padding-inline: var(--space-3); border-radius: 999px;
  border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-size: var(--step--1); font-weight: 700; text-decoration: none;
}
.tennis-filter__link[aria-current="page"] { background: var(--hub, #C0532A); border-color: var(--hub, #C0532A); color: #FFFFFF; }
.tennis-months__link { min-block-size: 32px; font-weight: 600; text-transform: capitalize; }
.tennis-month { margin: var(--space-5) 0 var(--space-2); font-size: var(--step-1); scroll-margin-block-start: 80px; }

/* ---------- Rankings and majors on the hub ---------- */
.tennis-rankings { display: grid; gap: var(--space-5); }
@media (min-width: 900px) { .tennis-rankings { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tennis-rankings__list { display: grid; gap: var(--space-2); align-content: start; min-inline-size: 0; }
.ranking__link { color: inherit; text-decoration: none; }
.ranking__link:hover { text-decoration: underline; }

.tennis-slams { display: grid; gap: var(--space-3); margin: 0; padding: 0; list-style: none; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
.tennis-slam { display: grid; gap: var(--space-2); align-content: start; padding: var(--space-4); border-radius: var(--radius-m); background: var(--surface); border: 1px solid var(--line); }
.tennis-slam__name { margin: 0; font-size: var(--step-0); }
.tennis-slam__name a { color: inherit; }
.tennis-slam__draws { display: grid; gap: var(--space-2); margin: 0; }
.tennis-slam__draws dt { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); }
:root[dir="rtl"] .tennis-slam__draws dt { letter-spacing: 0; }
.tennis-slam__draws dd { display: grid; gap: 2px; margin: 0; font-size: var(--step--1); }
.tennis-slam__champion { font-weight: 800; font-size: var(--step-0); }
.tennis-slam__runner, .tennis-slam__score, .tennis-slam__pending { color: var(--ink-2); }

.tennis-players { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-3) 0 0; padding: 0; list-style: none; }
.tennis-players__item { display: grid; gap: 2px; padding: var(--space-2) var(--space-3); border-radius: var(--radius-m); background: var(--surface); border: 1px solid var(--line); box-shadow: inset 0 -3px 0 var(--atlas-green); }
.tennis-players__name { font-weight: 800; color: inherit; }
.tennis-players__why { font-size: 0.75rem; color: var(--ink-2); }

/* ---------- Tournament page ---------- */
.tennis-facts { display: grid; gap: var(--space-3); margin: 0; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); }
.tennis-facts div { display: grid; gap: 4px; align-content: start; padding: var(--space-4); border-radius: var(--radius-m); background: var(--surface); border: 1px solid var(--line); }
.tennis-facts dt { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-2); }
:root[dir="rtl"] .tennis-facts dt { letter-spacing: 0; }
.tennis-facts dd { margin: 0; font-weight: 700; }
.tennis-editions { display: grid; gap: var(--space-5); }
@media (min-width: 900px) { .tennis-editions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tennis-edition { display: grid; gap: var(--space-3); align-content: start; min-inline-size: 0; }
.tennis-final { display: grid; gap: 0; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface); overflow: hidden; }
.tennis-final__row, .tennis-final__score { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: var(--space-3); align-items: baseline; margin: 0; padding: var(--space-3) var(--space-4); border-block-end: 1px solid var(--line); }
.tennis-final__score { border-block-end: 0; }
.tennis-final__row--win { background: color-mix(in srgb, var(--hub, #C0532A) 10%, var(--surface)); }
.tennis-final__row--win .tennis-final__name { font-size: var(--step-1); font-weight: 900; }
.tennis-final__label { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); }
:root[dir="rtl"] .tennis-final__label { letter-spacing: 0; }
.tennis-final__name { font-weight: 700; min-inline-size: 0; }
.tennis-round { margin: 0; font-size: var(--step--1); line-height: 1.6; }
.tennis-round__label { display: block; font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); }
:root[dir="rtl"] .tennis-round__label { letter-spacing: 0; }

/* ---------- Champions history ---------- */
.tennis-history { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface); }
.tennis-history__table { inline-size: 100%; border-collapse: collapse; font-size: var(--step--1); }
.tennis-history__caption { padding: var(--space-3) var(--space-4); text-align: start; font-weight: 800; border-block-end: 1px solid var(--line); }
.tennis-history__table th, .tennis-history__table td { padding: var(--space-2) var(--space-3); text-align: start; border-block-end: 1px solid var(--line); vertical-align: top; }
.tennis-history__table thead th { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); }
:root[dir="rtl"] .tennis-history__table thead th { letter-spacing: 0; }
.tennis-history__table tbody tr:last-child td { border-block-end: 0; }
.tennis-history__champion { font-weight: 800; }
.tennis-history__score { color: var(--ink-2); white-space: nowrap; }
:root[dir="rtl"] .tennis-history__score { text-align: end; }
.tennis-history__row--maroc { background: color-mix(in srgb, var(--atlas-green) 10%, var(--surface)); }
@media (max-width: 599px) {
  .tennis-history__score-head, .tennis-history__score { display: none; }
}
.tennis-earlier { margin-block-start: var(--space-3); }
.tennis-earlier summary { min-block-size: var(--touch, 44px); display: flex; align-items: center; cursor: pointer; font-weight: 700; }

/* ---------- Player page ---------- */
.tennis-hero-rank { margin: 0; }
.tennis-hero-rank__link { display: inline-flex; gap: 4px; padding: 4px 12px; border-radius: 999px; background: rgb(255 255 255 / 0.16); color: #FFFFFF; font-weight: 700; text-decoration: none; }
.tennis-hero-rank__link:hover { background: rgb(255 255 255 / 0.26); }
.tennis-badge { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 0.6875rem; font-weight: 800; background: var(--surface-3); }
.tennis-badge--win { background: var(--hub, #C0532A); color: #FFFFFF; }
.tennis-slam-results { display: grid; gap: 0; margin: 0; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface); overflow: hidden; }
.tennis-slam-results__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: var(--space-3); padding: var(--space-3) var(--space-4); border-block-end: 1px solid var(--line); }
.tennis-slam-results__row:last-child { border-block-end: 0; }
.tennis-slam-results__row dt { font-weight: 700; }
.tennis-slam-results__row dt a { color: inherit; }
.tennis-slam-results__row dd { margin: 0; }
.tennis-slam-results__row--w { background: color-mix(in srgb, var(--hub, #C0532A) 12%, var(--surface)); }
.tennis-slam-results__row--w dd { font-weight: 800; }
