/*! Copyright (c) 2025-2026 Markus Schüssler. All rights reserved.
 * SPDX-License-Identifier: LicenseRef-Markus-Schuessler-Proprietary; see repository LICENSE.
 */
.contest-globe {
  min-width: 0;
  color: var(--ui-color-text);
  background: var(--ui-color-surface);
  padding: 1rem;
  border: 1px solid var(--ui-color-border);
  border-radius: var(--ui-radius-lg, 8px);
}
.contest-globe *, .contest-globe *::before, .contest-globe *::after { box-sizing: border-box; }
.contest-globe__header { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; }
.contest-globe__header > div { flex: 1 1 20rem; min-width: 0; }
.contest-globe__header h1, .contest-globe__header h2 { margin: 0; color: var(--ui-color-text); font-size: 1.5rem; line-height: 1.25; font-weight: 600; }
.contest-globe__header p { margin: .5rem 0 0; color: var(--ui-color-text-muted); line-height: 1.5; }
.contest-globe .contest-globe__season { margin: .25rem 0 0; color: var(--ui-color-text); font-size: 1.125rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.contest-globe__back { display: inline-flex; align-items: center; min-height: 44px; gap: .5rem; margin-bottom: .25rem; color: var(--ui-color-primary); text-decoration: none; font-size: .875rem; }
.contest-globe__guest { display: flex; align-items: center; flex-wrap: wrap; gap: .25rem 1rem; border-bottom: 1px solid var(--ui-color-border); padding: .75rem 0; }
.contest-globe__guest p { flex: 1 1 24rem; margin: 0; color: var(--ui-color-text-muted); font-size: .875rem; line-height: 1.5; }
.contest-globe__guest a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ui-color-primary); font-weight: 500; }
.contest-globe__scope { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1rem 0; border: 1px solid var(--ui-color-border); border-radius: var(--ui-radius-md, 6px); overflow: hidden; }
.contest-globe__scope a { display: flex; align-items: center; justify-content: center; gap: .5rem; min-width: 0; min-height: 44px; padding: .625rem .75rem; text-decoration: none; color: var(--ui-color-text-muted); font-weight: 500; line-height: 1.3; text-align: center; }
.contest-globe__scope a + a { border-left: 1px solid var(--ui-color-border); }
.contest-globe__scope a[aria-current="page"], .contest-globe__entities a[aria-current="page"] { background: var(--ui-color-surface-hover); color: var(--ui-color-primary-strong); font-weight: 600; }
.contest-globe__scope a:hover, .contest-globe__entities a:hover { background: var(--ui-color-surface-hover); color: var(--ui-color-primary-strong); }
.contest-globe__scope i { flex: 0 0 auto; }
.contest-globe__filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .75rem; margin: 0 0 1rem; }
.contest-globe__filters label { display: flex; flex: 1 1 10rem; flex-direction: column; min-width: 0; gap: .375rem; color: var(--ui-color-text-muted); font-size: .875rem; font-weight: 500; }
.contest-globe__filters .contest-globe__year { flex: .4 1 6rem; }
.contest-globe__filters .contest-globe__context-filter { flex: 1.5 1 13rem; }
.contest-globe__filters select { width: 100%; min-height: 44px; border: 1px solid var(--ui-color-border-strong); border-radius: var(--ui-radius-md, 6px); padding: .5rem .625rem; background-color: var(--ui-color-surface); color: var(--ui-color-text); font: inherit; font-size: 1rem; box-shadow: none; }
.contest-globe__filters button { min-width: 44px; min-height: 44px; padding: .625rem .875rem; border: 1px solid var(--ui-color-primary); border-radius: var(--ui-radius-md, 6px); background: var(--ui-color-primary); color: var(--ui-color-on-primary); font: inherit; font-size: 1rem; font-weight: 600; cursor: pointer; }
.contest-globe__filters button:hover { background: var(--ui-color-primary-strong); border-color: var(--ui-color-primary-strong); }
.contest-globe__entities { display: flex; width: fit-content; max-width: 100%; gap: .25rem; border-bottom: 1px solid var(--ui-color-border); margin: 0 0 1rem; }
.contest-globe__entities a { min-width: 7rem; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: .625rem 1rem; color: var(--ui-color-text-muted); text-decoration: none; font-weight: 500; border-radius: var(--ui-radius-md, 6px) var(--ui-radius-md, 6px) 0 0; }
.contest-globe__ranking-header { display: flex; align-items: baseline; flex-wrap: wrap; gap: .375rem 1rem; margin-bottom: .75rem; }
.contest-globe__ranking-header h2, .contest-globe__ranking-header h3 { margin: 0; color: var(--ui-color-text); font-size: 1.125rem; font-weight: 600; }
.contest-globe__ranking-header p { margin: 0; color: var(--ui-color-text-muted); font-size: .875rem; line-height: 1.4; }
.contest-globe__ranking, .contest-globe__flight-table { width: 100%; border-collapse: collapse; text-align: left; font-size: .9375rem; }
.contest-globe__ranking { table-layout: fixed; }
.contest-globe__ranking > thead > tr > th { padding: .5rem .5rem; border-bottom: 1px solid var(--ui-color-border); color: var(--ui-color-text-muted); font-size: .8125rem; font-weight: 500; }
.contest-globe__ranking > thead > tr > th:first-child { width: 3.25rem; }
.contest-globe__ranking > thead > tr > th:last-child { width: 8.5rem; }
.contest-globe__entry > td, .contest-globe__entry > th { vertical-align: top; padding: .875rem .5rem .375rem; border: 0; background: transparent; }
.contest-globe__ranking > tbody > .contest-globe__entry:not(:first-child) > td, .contest-globe__ranking > tbody > .contest-globe__entry:not(:first-child) > th { border-top: 1px solid var(--ui-color-border); }
.contest-globe__rank { font-variant-numeric: tabular-nums; color: var(--ui-color-text-muted); }
.contest-globe__identity { font-weight: 400; overflow-wrap: anywhere; }
.contest-globe__name { display: block; width: fit-content; max-width: 100%; font-weight: 600; color: var(--ui-color-text); line-height: 1.35; }
.contest-globe a.contest-globe__name { color: var(--ui-color-primary); text-decoration: none; min-height: 44px; padding: .5rem 0; margin-top: -.5rem; margin-bottom: -.5rem; }
.contest-globe__meta { display: block; color: var(--ui-color-text-muted); font-size: .8125rem; margin-top: .25rem; line-height: 1.45; }
.contest-globe__number { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.contest-globe__score { font-weight: 600; }
.contest-globe__score > span { font-size: .8125rem; color: var(--ui-color-text-muted); font-weight: 400; }
.contest-globe__contributions > td { padding: 0 .5rem .375rem 3.75rem; border: 0; }
.contest-globe details > summary { width: fit-content; max-width: 100%; min-height: 44px; padding: .625rem .25rem; color: var(--ui-color-primary); line-height: 1.4; font-size: .875rem; cursor: pointer; }
.contest-globe details[open] > summary { font-weight: 600; }
.contest-globe__flight-scroll { position: relative; max-width: 100%; overflow-x: auto; margin: .25rem 0 .75rem; border: 1px solid var(--ui-color-border); border-radius: var(--ui-radius-sm, 4px); }
.contest-globe__flight-table { min-width: 26rem; font-size: .875rem; }
.contest-globe__flight-table th { padding: .5rem .625rem; background: var(--ui-color-surface-alt); color: var(--ui-color-text-muted); font-weight: 500; }
.contest-globe__flight-table td { padding: .375rem .625rem; border-top: 1px solid var(--ui-color-border); color: var(--ui-color-text); }
.contest-globe__flight-table th:nth-child(2), .contest-globe__flight-table th:nth-child(3) { text-align: right; }
.contest-globe__flight-table a { min-height: 44px; display: inline-flex; align-items: center; color: var(--ui-color-primary); white-space: nowrap; }
.contest-globe__club-pilots { margin: 0 0 .5rem; padding-left: 1.25rem; }
.contest-globe__club-pilots > li { padding: .5rem 0; }
.contest-globe__club-pilots > li + li { border-top: 1px solid var(--ui-color-border); }
.contest-globe__club-pilots > li::marker { color: var(--ui-color-text-muted); font-size: .8125rem; }
.contest-globe__pilot-line { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; min-width: 0; color: var(--ui-color-text); font-size: .9375rem; }
.contest-globe__pilot-line > :first-child { min-width: 0; overflow-wrap: anywhere; }
.contest-globe__pilot-line > a { color: var(--ui-color-primary); min-height: 44px; display: inline-flex; align-items: center; }
.contest-globe__empty { margin: 0; padding: 1.25rem 0; color: var(--ui-color-text-muted); line-height: 1.5; }
.contest-globe__note { color: var(--ui-color-text-muted); font-size: .875rem; line-height: 1.5; margin: 1rem 0; }
.contest-globe__rules { border-top: 1px solid var(--ui-color-border); margin-top: 1rem; padding-top: .25rem; color: var(--ui-color-text-muted); font-size: .875rem; line-height: 1.5; }
.contest-globe__rules p { margin: .5rem 0; }
.contest-globe__rules ul { padding-left: 1.25rem; margin: .75rem 0 .25rem; }
.contest-globe__rules li + li { margin-top: .375rem; }
.contest-globe__discovery-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; }
.contest-globe__discovery-bottom p { margin: 0; flex: 1 1 17rem; color: var(--ui-color-text-muted); font-size: .875rem; line-height: 1.5; }
.contest-globe__discovery-bottom > a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; color: var(--ui-color-primary); font-weight: 500; }
.contest-globe a:focus-visible, .contest-globe button:focus-visible, .contest-globe select:focus-visible, .contest-globe summary:focus-visible, .contest-globe [tabindex]:focus-visible { outline: 2px solid var(--ui-color-focus); outline-offset: 2px; }
.contest-globe__scope a:focus-visible { outline-offset: -3px; }
@media (max-width: 600px) {
  .contest-globe { padding: .75rem; }
  .contest-globe__header h1, .contest-globe__header h2 { font-size: 1.375rem; }
  .contest-globe__scope a { padding: .625rem .25rem; gap: .375rem; font-size: .875rem; }
  .contest-globe__scope i { display: none; }
  .contest-globe__filters label { flex-basis: calc(65% - .375rem); }
  .contest-globe__filters .contest-globe__year { flex-basis: calc(35% - .375rem); }
  .contest-globe__filters .contest-globe__context-filter { flex-basis: 100%; }
  .contest-globe__filters button { width: 100%; }
  .contest-globe__ranking > thead > tr > th { padding-left: .25rem; padding-right: .25rem; }
  .contest-globe__ranking > thead > tr > th:first-child { width: 2.5rem; }
  .contest-globe__ranking > thead > tr > th:last-child { width: 6rem; }
  .contest-globe__entry > td, .contest-globe__entry > th { padding-left: .25rem; padding-right: .25rem; }
  .contest-globe__contributions > td { padding-left: .25rem; padding-right: .25rem; }
  .contest-globe__flight-table { min-width: 24rem; }
  .contest-globe__flight-table th, .contest-globe__flight-table td { padding-left: .5rem; padding-right: .5rem; }
  .contest-globe__club-pilots { padding-left: 1.125rem; }
  .contest-globe__entities { width: 100%; }
  .contest-globe__entities a { flex: 1 1 0; }
}
