/* FR UEFA hubs. Shared league components remain unchanged on other pages. */
.uefa-page { --uefa-accent: #2754c6; --uefa-tint: #edf2ff; }
.uefa-page[data-uefa="europa-league"] { --uefa-accent: #99500e; --uefa-tint: #fff5eb; }
.uefa-page[data-uefa="conference-league"] { --uefa-accent: #187049; --uefa-tint: #edf8f1; }
[data-theme="dark"] .uefa-page { --uefa-accent: #9bb8ff; --uefa-tint: #19243b; }
[data-theme="dark"] .uefa-page[data-uefa="europa-league"] { --uefa-accent: #ffc18f; --uefa-tint: #2c251f; }
[data-theme="dark"] .uefa-page[data-uefa="conference-league"] { --uefa-accent: #86d9ad; --uefa-tint: #182c25; }

/* Hero and reading column. */
.uefa-page main { width: 100%; margin: 0; padding: 0 0 48px; }
.uefa-page .uefa-editorial { width: min(860px, calc(100% - 40px)); margin: 32px auto 0; min-width: 0; }
.league-title-page .league-title-hub { width: 100%; margin: 24px 0; }
.league-title-page #uefa-title-panel { max-width: 860px; margin: 0 auto 32px; padding: 24px 0; }
.league-title-page #pl1-fiabilite { margin-top: 32px; }
.uefa-page .pl1-hero h1 span { white-space: nowrap; }
.uefa-updated { color: var(--pl1-muted); font-size: .8rem; margin-top: 16px; }
.uefa-page .uefa-editorial h2 { color: var(--pl1-text); line-height: 1.35; letter-spacing: -.02em; }
.uefa-page [hidden] { display: none !important; }
.uefa-page [id] { scroll-margin-top: 85px; }
.uefa-page :is(a,button,summary,[tabindex]):focus-visible { outline: 3px solid var(--uefa-accent); outline-offset: 4px; }

/* Two reading paths; both panels remain in the server-rendered HTML. */
.uefa-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 5px; margin: 0 0 32px; border: 1px solid var(--pl1-border); border-radius: 14px; background: var(--uefa-tint); }
.uefa-tabs a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px 12px; box-sizing: border-box; border-radius: 10px; text-decoration: none; text-align: center; color: var(--pl1-muted); font-size: .94rem; font-weight: 650; line-height: 1.35; }
.uefa-tabs a[aria-selected="true"] { background: var(--uefa-accent); color: #fff; }
.uefa-tabs a:hover { text-decoration: underline; text-underline-offset: 4px; }
[data-theme="dark"] .uefa-tabs a[aria-selected="true"] { color: #101827; }
.uefa-tab-panel { margin-bottom: 28px; }

/* Title forecast: one answer and five clubs. */
.uefa-panel { margin-bottom: 28px; }
.uefa-favorites h2 { font-size: clamp(1.35rem, 3vw, 1.8rem); margin: 0 0 16px; }
.uefa-answer { color: var(--pl1-text); font-size: 1rem; line-height: 1.7; max-width: 680px; margin: 0 0 24px; }
.uefa-source,.uefa-method { color: var(--pl1-muted); font-size: .8rem; line-height: 1.65; }
.uefa-source { margin: 16px 0 8px; }
.uefa-method summary { cursor: pointer; padding: 10px 0; }
.uefa-method p { max-width: 680px; }
.uefa-table-scroll { overflow-x: auto; }
.uefa-table-scroll table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.uefa-table-scroll caption { text-align: left; font-size: .8rem; color: var(--pl1-muted); padding: 15px 0; }
.uefa-table-scroll th,.uefa-table-scroll td { text-align: left; padding: 14px 8px; border-bottom: 1px solid var(--pl1-border); }
.uefa-table-scroll th[scope="row"] { font-weight: 600; }
.uefa-table-scroll th:last-child,.uefa-table-scroll td:last-child { text-align: right; }
.uefa-favorites .uefa-table-scroll { border: 1px solid var(--pl1-border); border-radius: 14px; padding: 8px 20px; background: var(--pl1-surface); }
.uefa-favorites thead th { font-size: .78rem; font-weight: 500; color: var(--pl1-muted); padding: 8px 0 12px; }
.uefa-favorites tbody th,.uefa-favorites tbody td { padding: 18px 0; }
.uefa-favorites tbody tr:last-child > * { border-bottom: 0; }
.uefa-favorites tbody td { font-size: 1.2rem; font-variant-numeric: tabular-nums; white-space: nowrap; padding-left: 16px; }
.uefa-favorites tbody tr:first-child td { color: var(--uefa-accent); }
.uefa-team { display: inline-flex; align-items: center; gap: 12px; vertical-align: middle; max-width: 100%; }
.uefa-team img { flex: 0 0 36px; width: 36px; height: 36px; object-fit: contain; padding: 4px; box-sizing: border-box; background: #f7f9fc; border-radius: 8px; }
.uefa-team > span { min-width: 0; overflow-wrap: anywhere; }
.uefa-page .uefa-team-link { color: inherit; text-decoration: underline; text-decoration-color: var(--pl1-border); text-underline-offset: 3px; }
.uefa-page .uefa-team-link:hover { color: var(--uefa-accent); text-decoration-color: currentColor; }

/* Secondary information and qualification zones. */
.uefa-secondary { border-top: 1px solid var(--pl1-border); }
.uefa-secondary:last-child { border-bottom: 1px solid var(--pl1-border); }
.uefa-secondary > summary { padding: 20px 2px; min-height: 52px; box-sizing: border-box; color: var(--pl1-text); cursor: pointer; font-size: .9rem; font-weight: 550; }
.uefa-secondary > section { margin: 0 0 20px; }
.uefa-secondary .pl1-seo-section,.uefa-secondary .pl1-faq-section { padding: 18px; }
.uefa-table-scroll [data-zone="direct"] td:first-child { border-left: 3px solid #25834d; }
.uefa-table-scroll [data-zone="playoff"] td:first-child { border-left: 3px solid #b17a19; }
.uefa-table-scroll [data-zone="out"] td:first-child { border-left: 3px solid var(--pl1-muted); }
.uefa-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .78rem; margin-top: 12px; }
.uefa-legend span { padding-left: 7px; border-left: 3px solid var(--pl1-muted); }
.uefa-legend [data-zone="direct"] { border-color: #25834d; }
.uefa-legend [data-zone="playoff"] { border-color: #b17a19; }

/* Scoped overrides of the shared calendar and performance stylesheet. */
.uefa-page #uefa-calendar { margin-bottom: 32px; }
.uefa-page #uefa-calendar .pl1-calendar-head { display: block; }
.uefa-page #uefa-calendar #pl1-calendar-title { font-size: 1.2rem !important; line-height: 1.35; margin-bottom: 12px; }
.uefa-page #uefa-calendar .pl1-section-sub { font-size: .9rem; max-width: none; }
.uefa-page #uefa-calendar .pl1-calendar-help { display: none; }
.uefa-page #uefa-calendar .pl1-calendar-layout { grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr) !important; }
.uefa-page #uefa-calendar .pl1-calendar-fixture .pl1-match-team { font-size: .85rem !important; }
.uefa-page #uefa-reliability { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--pl1-border); }
.uefa-page #uefa-reliability .pl1-performance { width: 100%; box-sizing: border-box; }
.uefa-page #uefa-reliability .pl1-performance-grid { grid-template-columns: minmax(0, 1fr); }
.uefa-page #uefa-reliability #pl1-performance-title { font-size: 1.2rem !important; line-height: 1.4; }
.uefa-page #uefa-reliability .pl1-info-note { font-size: .85rem !important; line-height: 1.7; margin: 12px 0 22px; max-width: 720px; }
.uefa-page #uefa-reliability .pl1-performance-card small { font-size: .8rem !important; }
.uefa-page #uefa-reliability .pl1-chart-card { margin-top: 20px; padding-top: 24px; border-top: 1px solid var(--pl1-border); }
.uefa-page .pl1-ad-section { margin: 36px 0; }

@media (max-width: 760px) {
  .uefa-page #uefa-calendar .pl1-calendar-layout { grid-template-columns: minmax(0, 1fr) !important; }
  .uefa-page #uefa-calendar .pl1-calendar-day { font-size: .78rem !important; }
}
@media (max-width: 560px) {
  .uefa-page .uefa-editorial { width: calc(100% - 32px); margin-top: 24px; }
  .league-title-page .league-title-hub { width: 100%; }
  .uefa-tabs { margin-bottom: 26px; }
  .uefa-tabs a { font-size: .85rem; padding: 8px 6px; }
  .uefa-favorites .uefa-table-scroll { padding: 5px 14px; }
  .uefa-favorites table { font-size: .88rem; }
  .uefa-favorites tbody td { font-size: 1.08rem; }
  .uefa-team { gap: 10px; }
  .uefa-team img { width: 30px; height: 30px; flex-basis: 30px; }
  .uefa-page #uefa-calendar #pl1-calendar-title,.uefa-page #uefa-reliability #pl1-performance-title { font-size: 1.05rem !important; }
  .uefa-page #uefa-reliability .pl1-performance-cards { grid-template-columns: minmax(0, 1fr) !important; gap: 12px; }
  .uefa-page #uefa-reliability .pl1-performance-card { padding: 16px !important; }
}
/* Keep accessible chart tables available to readers without widening the page. */
.uefa-page .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0 !important; }
.uefa-page table.sr-only { table-layout: fixed; }
/* CONMEBOL hubs share the editorial components, with their own accents. */
.uefa-page[data-uefa="copa-libertadores"] { --uefa-accent: #80601c; --uefa-tint: #fbf6e9; }
.uefa-page[data-uefa="copa-sudamericana"] { --uefa-accent: #196c81; --uefa-tint: #edf7fa; }
[data-theme="dark"] .uefa-page[data-uefa="copa-libertadores"] { --uefa-accent: #e6c775; --uefa-tint: #30291c; }
[data-theme="dark"] .uefa-page[data-uefa="copa-sudamericana"] { --uefa-accent: #88d4e5; --uefa-tint: #172d36; }
.uefa-page #uefa-format > p { color: var(--pl1-muted); font-size: .9rem; line-height: 1.7; margin: 0 0 20px; }

/* Domestic title ranking: a compact card, expanded within its own viewport. */
.title-ranking { border: 1px solid var(--pl1-border); border-radius: 16px; background: var(--pl1-card, #fff); overflow: hidden; }
.title-ranking-heading { padding: 20px 20px 12px; font-weight: 650; color: var(--pl1-text); }
.title-ranking-scroll { overflow: auto; scrollbar-width: thin; scrollbar-color: var(--uefa-accent) var(--uefa-tint); scrollbar-gutter: stable; }
.title-ranking.is-expanded .title-ranking-scroll { max-height: 440px; overscroll-behavior-y: contain; }
.title-ranking table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .9rem; }
.title-ranking thead th { position: sticky; top: 0; z-index: 1; background: var(--uefa-tint); color: var(--pl1-muted); padding: 12px 16px; font-size: .76rem; font-weight: 500; text-align: left; }
.uefa-favorites .title-ranking tbody :is(th,td) { padding: 14px 16px; border-bottom: 1px solid var(--pl1-border); text-align: left; }
.uefa-favorites .title-ranking .title-ranking-rank { width: 22px; padding-right: 0; color: var(--pl1-muted); font-size: .8rem; }
.uefa-favorites .title-ranking tbody th { font-weight: 550; }
.title-ranking :is(th,td):last-child { text-align: right; white-space: nowrap; }
.uefa-favorites .title-ranking tbody td:last-child { text-align: right; font-size: 1rem; }
.title-ranking-toggle { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; min-height: 52px; padding: 14px; border: 0; border-top: 1px solid var(--pl1-border); background: var(--uefa-tint); color: var(--uefa-accent); font: inherit; font-size: .9rem; font-weight: 650; cursor: pointer; }
.title-ranking-toggle:hover { text-decoration: underline; text-underline-offset: 4px; }
.title-ranking.is-expanded .title-ranking-toggle span { transform: rotate(180deg); }
[data-theme="dark"] .title-ranking { background: #151f30; }
@media (max-width: 560px) {
  .title-ranking-heading { padding: 16px 12px; }
  .uefa-favorites .title-ranking tbody :is(th,td), .title-ranking thead th { padding: 12px 8px; }
  .title-ranking .uefa-team { gap: 7px; }
  .title-ranking.is-expanded .title-ranking-scroll { max-height: 380px; }
}
