/* OC München: shared typography and colours, with room for wide result tables. Poppins (OFL, fonts/OFL.txt) as WOFF2,
   the TTF files remain the fallback. */
@font-face {
  font-family: Poppins;
  src: url("fonts/Poppins-Light.woff2") format("woff2"), url("fonts/Poppins-Light.ttf") format("truetype");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}
@font-face {
  font-family: Poppins;
  src: url("fonts/Poppins-Regular.woff2") format("woff2"), url("fonts/Poppins-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Poppins;
  src: url("fonts/Poppins-Bold.woff2") format("woff2"), url("fonts/Poppins-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

body.cup-site {
  --cup-green: #007c33;
  --cup-bright-green: #05a848;
  --cup-ink: #303030;
  --cup-text: #515151;
  --cup-line: #dce6df;
  --cup-soft: #f1f7f3;
  margin: 0;
  padding: 14px clamp(10px, 2vw, 28px) 24px;
  background: #fff;
  color: var(--cup-text);
  font: 400 14px/1.5 Poppins, Arial, sans-serif;
}
.cup-site *, .cup-site *::before, .cup-site *::after { box-sizing: border-box; }
.cup-site :is(p, table, tr, td, th, ul, li, input, textarea, select, button) {
  color: inherit;
  background-color: transparent;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
.cup-content, .cup-debug {
  max-width: 1440px;
  min-width: 0;
  margin-inline: auto;
  overflow-x: auto;
}
.cup-site table { border-collapse: separate; border-spacing: 0; margin: 0 0 12px; }
.cup-site table table { margin-bottom: 0; }
.cup-site td, .cup-site th { padding: 3px 6px; vertical-align: top; }
.cup-site td[align="right"], .cup-site th[align="right"] { font-variant-numeric: tabular-nums; }
.cup-site :is(h1, h2, h3, h4, h5, .pageHead, .pagehead) {
  color: var(--cup-ink);
  font-family: inherit;
  font-weight: 300;
  line-height: 1.3;
  margin: 16px 0 10px;
}
.cup-site h1 { font-size: clamp(23px, 2.4vw, 29px); }
.cup-site h2, .cup-site .pageHead, .cup-site .pagehead { font-size: 21px; }
.cup-site h3 { font-size: 18px; }
.cup-site h4 { font-size: 16px; }
.cup-site h1:first-child { margin-top: 0; }
.cup-site p { margin: 0 0 10px; }
.cup-site a:link, .cup-site a:visited { color: var(--cup-green); text-decoration: none; }
.cup-site a:hover { color: #005d27; text-decoration: underline; text-underline-offset: 3px; }
.cup-site a:focus-visible, .cup-site :is(button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--cup-bright-green);
  outline-offset: 3px;
}
.cup-site a:not([href]) { color: inherit; }
.cup-site img { max-width: 100%; height: auto; }
.cup-site .small, .cup-site .verysmall { font-size: 11px; }
.cup-site .bigger { font-size: 16px; }
.cup-site .infoHead {
  color: #145a32;
  background: #eaf4ed;
  font-size: inherit;
  font-weight: 700;
}
.cup-site .info { background: #fff; }
.cup-site :is([class^="b-"], [class*=" b-"], [class^="info-"]) { border-color: var(--cup-line); }
.cup-site td.nullified { background: #f5eaf2; }
.cup-site .error, .cup-site .warning, .cup-site .success {
  display: inline-block;
  padding: 9px 12px;
  border: 1px solid;
  border-radius: 4px;
  line-height: 1.6;
}
.cup-site .error { color: #9c2525; background: #fff0ef; border-color: #e5b9b5; }
.cup-site .warning { color: #6b5310; background: #fff9db; border-color: #e4d797; }
.cup-site .success { color: #166134; background: #edf8f0; border-color: #b6d8c1; }
.cup-site pre { max-width: 100%; overflow-x: auto; font-size: 14px; }

/* Shared internal navigation: one row of compact menus (Serien, Allgemein, ..., Läufe, Kategorien). A menu opens its
   links below its label (details/summary: works without JavaScript; _cup/cup.js keeps one open at a time and closes it
   on Escape or a click elsewhere). A group with one link is that link. The rows come in legacy tables
   (cup_navigation_row); a table of such rows becomes the row of menus. */
.cup-site table:has(> tbody > tr.cup-nav-row) { position: relative; display: block; margin: 0 0 14px; }
.cup-site table:has(> tbody > tr.cup-nav-row) > tbody { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cup-site .cup-nav-row { display: block; }
.cup-site .cup-nav-row > .cup-nav-cell { display: block; padding: 0; }
.cup-site .cup-nav-access { order: 1; margin-left: auto; }
.cup-site .cup-nav-menu { position: relative; }
.cup-site .cup-nav-menu > summary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 4px 10px;
  border: 1px solid var(--cup-line);
  border-radius: 4px;
  background: #fff;
  color: var(--cup-ink);
  font-size: 14px;
  line-height: 1.3;
  white-space: nowrap;
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.cup-site .cup-nav-menu > summary::-webkit-details-marker { display: none; }
.cup-site .cup-nav-menu > summary::after {
  content: "";
  width: 5px;
  height: 5px;
  margin: -3px 1px 0;
  border: solid currentColor;
  border-width: 0 1.5px 1.5px 0;
  transform: rotate(45deg);
}
.cup-site .cup-nav-menu[open] > summary::after { margin-top: 3px; transform: rotate(225deg); }
.cup-site .cup-nav-menu > summary:hover, .cup-site .cup-nav-menu[open] > summary { border-color: var(--cup-green); background: var(--cup-soft); }
.cup-site .cup-nav-active > summary { border-color: #9cc9ad; }
.cup-site .cup-nav-current { padding: 1px 6px; border-radius: 3px; color: #fff; background: var(--cup-green); font-size: 12px; }
.cup-site .cup-nav-menu > .cup-nav-links {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  left: 0;
  width: max-content;
  min-width: 100%;
  max-width: min(440px, calc(100vw - 24px));
  padding: 8px;
  border: 1px solid var(--cup-line);
  border-radius: 5px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(20, 50, 30, .14);
}
.cup-site .cup-nav-menu.cup-nav-menu-end > .cup-nav-links { left: auto; right: 0; }
.cup-site .cup-nav-single .cup-nav-link { min-height: 36px; padding: 4px 10px; font-size: 14px; }
.cup-nav-links, .cup-category-nav { display: flex; flex-wrap: wrap; gap: 4px; }
.cup-site :is(.cup-nav-link, .cup-nav-year, .cup-category-nav a) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 3px 8px;
  border: 1px solid var(--cup-line);
  border-radius: 4px;
  background: #fff;
  color: var(--cup-green);
  font-size: 12px;
  line-height: 1.45;
  text-decoration: none;
  white-space: nowrap;
}
.cup-site :is(.cup-nav-link, .cup-nav-year, .cup-category-nav a):hover {
  border-color: var(--cup-green);
  background: var(--cup-soft);
  text-decoration: none;
}
.cup-site :is(.cup-nav-link, .cup-nav-year)[aria-current="page"] {
  color: #fff;
  border-color: var(--cup-green);
  background: var(--cup-green);
}
.cup-site .cup-nav-year { min-width: 46px; font-variant-numeric: tabular-nums; }
.cup-site .cup-current-series { padding: 12px 16px; margin-bottom: 16px; background: var(--cup-soft); border-left: 3px solid var(--cup-bright-green); }
.cup-site .cup-current-series h2 { margin: 0 0 8px; font-size: 19px; }
.cup-site .cup-intro { margin-top: -4px; font-weight: 300; font-size: 16px; }
.cup-site .cup-home-help { margin-top: 16px; }
.cup-site .cup-home-logo { float: right; width: 180px; max-width: 35%; margin: 0 0 12px 16px; }
.cup-site .cup-series-top { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; margin-bottom: 16px; }
.cup-site .cup-series-controls { min-width: 0; }
.cup-site .cup-series-top > .cup-table-scroll { margin: 0; }
.cup-site .cup-series-logo { width: 160px; max-width: 100%; margin: 8px 0; }
.cup-site table:not(:has(td, th)) { display: none; }

@media (min-width: 800px) {
  /* logo and the races of the series side by side, the logo as high as the table of races (it does not count for the
     height of the row: absolutely placed in its column, scaled with object-fit) */
  .cup-site .cup-series-top { display: flex; align-items: stretch; gap: 24px; }
  .cup-site .cup-series-top > .cup-series-controls { position: relative; flex: 0 1 460px; min-width: 140px; min-height: 120px; }
  .cup-site .cup-series-top > .cup-table-scroll { flex: 0 1 760px; min-width: 0; }
  .cup-site .cup-series-logo { width: auto; max-width: none; margin: 0; }
  .cup-site .cup-series-logo:has(> img:only-child) { position: absolute; inset: 0; }
  .cup-site .cup-series-logo > img:only-child { width: 100%; height: 100%; object-fit: contain; object-position: left top; }
}

/* Forms and maintenance panels use the same controls throughout the application. */
.cup-site .cup-panel { border: 1px solid var(--cup-line); border-radius: 5px; overflow: hidden; }
.cup-site .cup-panel > tbody > tr > td { border: 0; padding: 8px 10px; }
.cup-site .cup-panel > tbody > tr:first-child > td { background: var(--cup-soft); }
body.cup-site :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea, button) {
  max-width: 100%;
  height: auto;
  min-height: 36px;
  margin: 0;
  padding: 5px 8px;
  color: var(--cup-ink);
  border: 1px solid #b6c9bc;
  border-radius: 4px;
  background: #fff;
  font: inherit;
  line-height: 1.4;
  vertical-align: middle;
  appearance: none;
}
body.cup-site select { appearance: auto; }
body.cup-site :is(input[type="submit"], input[type="button"], input[type="reset"], button) {
  padding: 6px 12px;
  color: #fff;
  background: var(--cup-green);
  border-color: var(--cup-green);
  cursor: pointer;
}
.cup-site :is(input[type="submit"], input[type="button"], button):hover { background: #005d27; }
.cup-site :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--cup-green); }
.cup-site .cup-winner-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  padding: 12px;
  margin: 0 0 16px;
  border: 1px solid var(--cup-line);
  border-radius: 5px;
  background: var(--cup-soft);
}
.cup-winner-filters label { display: flex; flex: 1 1 120px; min-width: 0; flex-direction: column; gap: 4px; font-size: 12px; }
.cup-winner-filters label[for="winner-club"] { flex-grow: 2; }
.cup-site .cup-winner-filters select { width: 100%; min-height: 32px; font-size: 14px; }
.cup-site .cup-winner-filters button { min-height: 32px; }
.cup-site .cup-winner-title { margin-bottom: 4px; font-size: 19px; }
.cup-site .cup-result-summary { margin-bottom: 10px; color: #626c65; font-size: 12px; }
.cup-site .cup-category-nav { margin-bottom: 10px; }

/* A result table scrolls independently on narrow screens. */
.cup-site .cup-table-scroll { max-width: 100%; overflow-x: auto; margin: 0 0 16px; border: 1px solid var(--cup-line); border-radius: 5px; }
.cup-site .cup-table-scroll > table { width: 100%; margin: 0; }
.cup-site .cup-results { font-size: 13px; font-variant-numeric: tabular-nums; }
.cup-site .cup-results :is(td, th) { padding: 3px 6px; }
.cup-site .cup-results td.info { border-width: 0 0 1px; white-space: nowrap; }
.cup-site .cup-results tr:nth-child(even) td.info { background: #f7faf8; }
.cup-site .cup-results tr:hover td.info { background: #edf6ef; }
.cup-site .cup-results .infoHead { padding: 5px 6px; border-width: 0 0 1px; }
.cup-site .cup-winner-table { min-width: 500px; text-align: left; font-size: 14px; }
.cup-site .cup-winner-table :is(th, td) { padding: 5px 10px; vertical-align: middle; }
.cup-site .cup-winner-table thead th { color: #626c65; font-size: 12px; font-weight: 400; background: #fafcfb; }
.cup-site .cup-winner-category th { padding: 7px 10px; color: #145a32; background: #eaf4ed; font-size: 13px; font-weight: 700; border-block: 1px solid var(--cup-line); scroll-margin-top: 12px; }
.cup-site .cup-category-count { margin-left: 12px; color: #626c65; font-size: 11px; font-weight: 400; white-space: nowrap; }
.cup-site .cup-winner-row td { border-bottom: 1px solid #edf1ee; }
.cup-site .cup-winner-row:nth-child(odd) td { background: #fafcfb; }
.cup-site .cup-winner-row:hover td { background: #f0f7f2; }
.cup-site .cup-winner-row td:first-child { width: 64px; }
.cup-site .cup-winner-name { color: var(--cup-ink); }
.cup-site .cup-points { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cup-site .cup-rank { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; font-size: 12px; font-variant-numeric: tabular-nums; }
.cup-site .cup-rank-1 { background: #fff0a8; color: #65520c; border-radius: 50%; }
.cup-site .cup-rank-2 { background: #e8edef; color: #46535d; border-radius: 50%; }
.cup-site .cup-rank-3 { background: #f5e6d8; color: #78523b; border-radius: 50%; }
.cup-site .cup-empty { padding: 28px; text-align: center; }
.cup-site .cup-club-index, .cup-site .cup-club-filters { max-width: 760px; }
.cup-site .cup-club-table { text-align: left; }
.cup-site .cup-club-table :is(th, td) { padding: 6px 10px; border-bottom: 1px solid #edf1ee; }
.cup-site .cup-club-table thead th { color: #145a32; background: #eaf4ed; font-weight: 700; }
.cup-site .cup-club-row:nth-child(even) td { background: #f7faf8; }
.cup-site .cup-club-row:hover td { background: #edf6ef; }
.cup-site .cup-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.cup-site .cup-debug { margin-top: 32px; padding-top: 16px; border-top: 1px solid var(--cup-line); font-size: 12px; color: #626c65; }
.cup-site .cup-debug pre { margin: 0; font-size: 12px; }

/* Compact result reading, with the full original matrix one button away. */
.cup-site [hidden] { display: none !important; }
.cup-site .cup-nav-primary .cup-nav-link { min-height: 36px; font-size: 14px; }
.cup-site .cup-series-top { gap: 16px; margin-bottom: 14px; }
.cup-site .cup-series-top > .cup-series-controls { flex: 0 0 130px; min-width: 0; min-height: 0; }
.cup-site .cup-series-logo, .cup-site .cup-series-logo:has(> img:only-child) { position: static; width: 130px; max-width: 100%; margin: 0; }
.cup-site .cup-series-logo > img:only-child { width: 100%; height: auto; }
.cup-site .cup-series-logo img { display: block; max-width: 100%; height: auto; }
.cup-site .cup-calendar { flex: 0 1 760px; min-width: 0; width: 100%; }
.cup-site .cup-calendar > summary, .cup-site .cup-legend > summary { padding: 6px 0; color: var(--cup-green); cursor: pointer; }
.cup-site .cup-calendar .cup-table-scroll { margin: 6px 0 0; }
.cup-site .cup-legend { margin: 12px 0; max-width: 1100px; }
.cup-site .cup-result-tools { display: flex; flex-wrap: wrap; align-items: end; gap: 8px 12px; padding: 10px 0; margin: 0 0 10px; max-width: 1100px; }
.cup-site .cup-result-tools label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; }
.cup-site .cup-result-tools label:first-child { flex: 1 1 180px; }
.cup-site .cup-result-tools select { max-width: 230px; }
.cup-site .cup-result-count { align-self: center; margin-left: auto; color: #626c65; font-size: 12px; }
body.cup-site button.cup-secondary, body.cup-site .cup-result-views button { background: #fff; color: var(--cup-green); }
.cup-site .cup-result-views { display: flex; gap: 4px; }
body.cup-site .cup-result-views button[aria-pressed="true"] { background: var(--cup-green); color: #fff; }
.cup-site .cup-result-section { margin: 0 0 18px; }
.cup-site .cup-result-section > h2 { margin: 12px 0 7px; font-size: 20px; }
.cup-site .cup-category-rule { max-width: 100%; font-size: 12px; line-height: 1.5; margin-bottom: 8px; }
.cup-site .cup-results-scroll { max-height: 68vh; overflow: auto; overscroll-behavior-x: contain; }
.cup-site .cup-results-scroll thead th { position: sticky; top: 0; z-index: 4; background: #eaf4ed; }
.cup-site .cup-results-scroll .cup-col-rank { position: sticky; left: 0; z-index: 2; width: 40px; min-width: 40px; background: #fff; }
.cup-site .cup-results-scroll .cup-col-name { position: sticky; left: 40px; z-index: 2; min-width: 180px; background: #fff; }
.cup-site .cup-results-scroll thead .cup-col-rank, .cup-site .cup-results-scroll thead .cup-col-name { z-index: 6; background: #eaf4ed; }
.cup-site .cup-results-scroll tr:nth-child(even) td.cup-col-rank, .cup-site .cup-results-scroll tr:nth-child(even) td.cup-col-name { background: #f7faf8; }
.cup-site .cup-col-points, .cup-site .cup-col-time { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cup-site th.cup-col-name, .cup-site th.cup-col-club { text-align: left; }
.cup-site.cup-view-compact .cup-result-section .cup-results-scroll { max-width: 1100px; }
.cup-site.cup-view-compact .cup-col-extra { display: none; }
.cup-site.cup-view-compact .cup-handicap { display: none; }
.cup-site.cup-view-compact .cup-matrix { min-width: 0; font-size: 14px; }
.cup-site.cup-view-compact .cup-col-club { white-space: normal; }
.cup-site.cup-view-compact .cup-matrix td { padding: 3px 6px; }
.cup-site .cup-row-details { display: inline; margin-left: 8px; white-space: normal; font-size: 12px; }
.cup-site .cup-row-details > summary { display: inline-flex; min-height: 32px; align-items: center; cursor: pointer; color: var(--cup-green); text-decoration: underline; text-underline-offset: 2px; }
.cup-site .cup-row-details dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 12px; max-width: 400px; margin: 8px 0; padding: 8px; background: var(--cup-soft); border: 1px solid var(--cup-line); }
.cup-site .cup-row-details dt { font-weight: 700; }
.cup-site .cup-row-details dd { margin: 0; overflow-wrap: anywhere; }
.cup-site.cup-view-detailed .cup-row-details, .cup-site .cup-mobile-details { display: none; }
.cup-site .cup-winner-table .cup-rank { height: 18px; width: 22px; }
.cup-site .cup-winner-table td { padding: 3px 10px; }
.cup-site .cup-handicap { color: #626c65; font-size: 11px; }
.cup-site .cup-login { max-width: 410px; }

@media (max-width: 640px) {
  .cup-site .cup-series-top { display: flex; align-items: start; }
  .cup-site .cup-series-top > .cup-series-controls { flex-basis: 100px; }
  .cup-site .cup-result-tools { gap: 8px; }
  .cup-site .cup-result-tools label:first-child { flex-basis: 100%; }
  .cup-site .cup-result-tools select { max-width: 170px; }
  .cup-site .cup-result-tools label { order: 1; }
  .cup-site .cup-result-tools label:first-child { order: 0; }
  .cup-site .cup-result-count { order: 2; align-self: end; margin-bottom: 7px; font-size: 11px; }
  .cup-site .cup-result-tools > button, .cup-site .cup-result-views { order: 3; }
  .cup-site .cup-result-views { margin-left: auto; }
  .cup-site.cup-view-compact .cup-col-club { display: none; }
  .cup-site.cup-view-compact .cup-col-name { min-width: 0; white-space: normal; }
  .cup-site.cup-view-compact .cup-winner-table, .cup-site.cup-view-compact .cup-matrix { min-width: 0; }
  .cup-site.cup-view-compact .cup-result-section .cup-results-scroll > table { table-layout: fixed; width: 100%; }
  .cup-site.cup-view-compact .cup-results td.cup-col-name { white-space: normal; overflow-wrap: anywhere; }
  .cup-site.cup-view-compact .cup-results-scroll .cup-col-rank { width: 40px; padding-inline: 4px; }
  .cup-site.cup-view-compact .cup-col-points { width: 76px; }
  .cup-site.cup-view-compact .cup-col-time { width: 82px; }
  .cup-site .cup-row-details { margin-left: 4px; }
  .cup-site .cup-mobile-details { display: inline; }
  .cup-site .cup-results-scroll { max-height: 65vh; }
  .cup-site.cup-view-compact .cup-results-scroll { max-height: none; }
  .cup-site .cup-nav-menu > summary,
  .cup-site :is(.cup-nav-link, .cup-nav-year, .cup-category-nav a),
  .cup-site :is(.cup-nav-single, .cup-nav-primary) .cup-nav-link,
  .cup-site .cup-row-details > summary,
  body.cup-site :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, button) { min-height: 44px; }
  body.cup-site :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) { font-size: 16px; }
}

@media (max-width: 640px) {
  body.cup-site { padding: 12px 10px 20px; font-size: 14px; }
  .cup-site .cup-series-logo { width: 110px; margin: 0; }
  /* the open menu spans the row of menus, within the window */
  .cup-site .cup-nav-menu { position: static; }
  .cup-site .cup-nav-menu > .cup-nav-links, .cup-site .cup-nav-menu.cup-nav-menu-end > .cup-nav-links {
    left: 0;
    right: auto;
    width: min(100%, calc(100vw - 24px));
    min-width: 0;
    max-width: none;
  }
  .cup-site :is(.cup-nav-link, .cup-nav-year, .cup-category-nav a) { min-height: 44px; padding: 6px 9px; }
  /* wide legacy tables (statistics, averages) scroll on their own; the page keeps the width of the window */
  .cup-site .cup-content > table:not(:has(> tbody > tr.cup-nav-row)) { display: block; width: fit-content; max-width: 100%; overflow-x: auto; }
  .cup-site .cup-winner-filters { gap: 8px; padding: 10px; }
  .cup-winner-filters label[for="winner-club"] { flex-basis: 100%; }
  .cup-site .cup-winner-filters button { width: 100%; }
  .cup-site .cup-winner-table :is(th, td) { padding: 4px 8px; }
  .cup-site .cup-current-series { padding: 12px; }
}
/* Page heads: the cup above the heading of the page; the footer with Impressum, Datenschutz and the Veranstalter-Login. */
.cup-site .cup-kicker { margin: 0 0 2px; color: #626c65; font-size: 13px; letter-spacing: .02em; }
.cup-site .cup-kicker + h1 { margin-top: 0; }
.cup-site .cup-footer { clear: both; margin: 28px 0 0; padding-top: 10px; border-top: 1px solid var(--cup-line); color: #626c65; font-size: 12px; }
.cup-site .cup-run-links { margin-bottom: 8px; }
.cup-site .cup-run-links td { padding: 0 6px 0 0; }
.cup-site .cup-run-links p { margin: 0; }

/* Result rows keep one line of text: every cell on the baseline (a row with a Details button does not shift), digits
   of equal width, places right-aligned. */
.cup-site .cup-results :is(td, th) { vertical-align: baseline; }
.cup-site .cup-results .cup-col-rank { text-align: right; font-variant-numeric: tabular-nums; }
.cup-site :is(.cup-num, .cup-average td[align="right"]) { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Search and filters in a panel (closed on phones, see cup-results.js). */
.cup-site .cup-result-panel { max-width: 1100px; margin: 0 0 10px; border: 1px solid var(--cup-line); border-radius: 5px; background: var(--cup-soft); }
.cup-site .cup-result-panel > summary { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 6px 12px; color: var(--cup-green); list-style: none; cursor: pointer; }
.cup-site .cup-result-panel > summary::-webkit-details-marker { display: none; }
/* the arrow of the menus: right while closed, down while open */
.cup-site .cup-result-panel > summary::before {
  content: "";
  flex: none;
  width: 6px;
  height: 6px;
  margin: 0 0 0 1px;
  border: solid currentColor;
  border-width: 0 1.5px 1.5px 0;
  transform: rotate(-45deg);
}
.cup-site .cup-result-panel[open] > summary::before { margin-top: -4px; transform: rotate(45deg); }
.cup-site .cup-result-panel-count { margin-left: auto; color: #626c65; font-size: 12px; font-variant-numeric: tabular-nums; }
.cup-site .cup-result-panel > .cup-result-tools { margin: 0; padding: 2px 12px 12px; }
/* Siegerliste: serie, places and club in the same kind of panel; the summary names the current choice */
.cup-site .cup-winner-panel > .cup-winner-filters { margin: 0; padding: 2px 12px 12px; border: 0; border-radius: 0; background: none; }
.cup-site .cup-winner-panel .cup-result-panel-count { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cup-site .cup-result-panel .cup-result-count { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Läufe: one line per run (number, date, place, results). */
.cup-site .cup-run-list { max-width: 860px; margin: 0 0 16px; padding: 0; list-style: none; border: 1px solid var(--cup-line); border-radius: 5px; }
.cup-site .cup-run { display: grid; grid-template-columns: 5.2em 9.2em minmax(0, 1fr) minmax(0, auto); gap: 2px 14px; align-items: baseline; padding: 8px 12px; border-bottom: 1px solid #edf1ee; }
.cup-site .cup-run:last-child { border-bottom: 0; }
.cup-site .cup-run:nth-child(even) { background: #fafcfb; }
.cup-site .cup-run-number { color: var(--cup-ink); font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cup-site .cup-run-date { font-variant-numeric: tabular-nums; white-space: nowrap; }
.cup-site .cup-run-place { color: var(--cup-ink); overflow-wrap: anywhere; }
.cup-site .cup-run-results { white-space: nowrap; }
.cup-site .cup-run-note { margin-left: 6px; color: #626c65; font-size: 12px; }
.cup-site .cup-run-results > .cup-run-note:first-child { margin-left: 0; }
.cup-site .cup-run-next { box-shadow: inset 3px 0 0 var(--cup-bright-green); background: var(--cup-soft) !important; }
.cup-site .cup-run-next-note { color: #145a32; font-weight: 700; }

/* Start page: last and next run, the leaders of the current ranking and a name search. */
.cup-site .cup-home-cards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; clear: both; margin: 16px 0 20px; }
.cup-site .cup-home-card { padding: 12px 14px; border: 1px solid var(--cup-line); border-radius: 5px; background: #fff; }
.cup-site .cup-home-card h2 { margin: 0 0 6px; color: #145a32; font-size: 15px; font-weight: 700; }
.cup-site .cup-home-card h3 { margin: 12px 0 4px; color: #145a32; font-size: 13px; font-weight: 700; }
.cup-site .cup-home-run { margin: 0 0 6px; color: var(--cup-ink); font-size: 15px; }
.cup-site .cup-home-action { margin: 0; }
.cup-site .cup-home-note { color: #626c65; font-size: 12px; }
.cup-site .cup-home-search label { display: block; margin-bottom: 4px; font-size: 12px; }
.cup-site .cup-home-search-row { display: flex; gap: 6px; }
.cup-site .cup-home-search-row input { flex: 1 1 auto; min-width: 0; }
.cup-site .cup-home-leaders { margin: 0 0 6px; padding: 0; list-style: none; }
.cup-site .cup-home-leaders li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 8px; align-items: baseline; padding: 3px 0; border-bottom: 1px solid #edf1ee; }
.cup-site .cup-home-leader { color: var(--cup-ink); overflow-wrap: anywhere; }
.cup-site .cup-home-ranking .cup-home-action { margin-top: 10px; }
@media (min-width: 800px) {
  .cup-site .cup-home-cards { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); grid-template-rows: auto 1fr; align-items: start; }
  .cup-site .cup-home-ranking { grid-column: 2; grid-row: 1 / span 2; }
}

/* Regeln und Kategorien. */
.cup-site :is(.cup-rules, .cup-rules-categories) { max-width: 900px; }
.cup-site .cup-rules-steps { margin: 0 0 10px; padding-left: 22px; }
.cup-site .cup-rules-steps li { margin: 0 0 6px; }
.cup-site .cup-rules-links { font-size: 13px; }
.cup-site .cup-rules-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px 16px; }
.cup-site .cup-rules-category h3 { margin: 4px 0 6px; color: #145a32; font-size: 16px; font-weight: 700; }
.cup-site .cup-rules-table { width: 100%; border: 1px solid var(--cup-line); border-radius: 5px; text-align: left; }
.cup-site .cup-rules-table :is(th, td) { padding: 5px 8px; border-bottom: 1px solid #edf1ee; }
.cup-site .cup-rules-table thead th { color: #145a32; background: #eaf4ed; font-size: 12px; }
.cup-site .cup-rules-table tbody tr:last-child td { border-bottom: 0; }
.cup-site .cup-rules-note { color: #626c65; font-size: 12px; }
.cup-site .cup-admin-heading { margin-top: 28px; padding-top: 12px; border-top: 1px solid var(--cup-line); }

@media (max-width: 640px) {
  .cup-site .cup-result-panel > summary { min-height: 44px; }
  .cup-site .cup-run { grid-template-columns: 4.6em minmax(0, 1fr); padding: 8px 10px; }
  .cup-site .cup-run > :not(.cup-run-number) { grid-column: 2; }
  .cup-site .cup-run-results { white-space: normal; }
  .cup-site .cup-home-logo { width: 110px; }
  .cup-site h1 { font-size: 23px; }
}

@media print {
  body.cup-site { padding: 0; font: 10pt/1.4 Arial, sans-serif; }
  .cup-content, .cup-site .cup-table-scroll { max-width: none; overflow: visible; }
  .cup-site .cup-nav-row, .cup-site .cup-category-nav, .cup-site .cup-winner-filters, .cup-site .cup-result-panel, .cup-site .cup-debug { display: none; }
  .cup-site .cup-table-scroll { border: 0; }
  .cup-site .cup-results { font-size: 8pt; }
  .cup-site .cup-results :is(td, th) { padding: 3px 4px; }
  .cup-site .cup-winner-table { min-width: 0; font-size: 10pt; }
  .cup-site .cup-winner-category { break-after: avoid; }
  .cup-site tr { break-inside: avoid; }
  .cup-site .cup-series-logo, .cup-site .cup-home-logo { display: none; }
  .cup-site .cup-result-tools, .cup-site .cup-result-panel, .cup-site .cup-row-details, .cup-site .cup-footer { display: none !important; }
  .cup-site .cup-results-scroll { max-height: none; overflow: visible; }
  .cup-site .cup-col-extra, .cup-site .cup-col-club { display: table-cell !important; }
  .cup-site .cup-results-scroll :is(th, td) { position: static; min-width: 0; }
  .cup-site .cup-calendar:not([open]) > :not(summary) { display: block; }
}
