:root {
  --badge-live-bg: rgb(var(--brand-pink-rgb) / 0.14);
  --badge-live-fg: color-mix(in srgb, var(--brand-pink) 92%, #fff);
  --badge-success-bg: rgb(var(--brand-green-rgb) / 0.14);
  --badge-success-fg: color-mix(in srgb, var(--brand-green) 96%, var(--brand-deep));
  --badge-warning-bg: rgb(var(--brand-yellow-rgb) / 0.16);
  --badge-warning-fg: color-mix(in srgb, var(--brand-yellow) 69%, var(--brand-deep));
  --badge-info-bg: rgb(var(--brand-blue-rgb) / 0.13);
  --badge-info-fg: var(--brand-blue);
  --badge-muted-bg: rgba(109, 116, 128, .13);
  --badge-muted-fg: #59606b;
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  min-height: 24px;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

.badge i {
  font-size: 1em;
  line-height: 1;
}

.badge-group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.badge-live { background: var(--badge-live-bg); color: var(--badge-live-fg); }
.badge-success { background: var(--badge-success-bg); color: var(--badge-success-fg); }
.badge-warning { background: var(--badge-warning-bg); color: var(--badge-warning-fg); }
.badge-info { background: var(--badge-info-bg); color: var(--badge-info-fg); }
.badge-muted { background: var(--badge-muted-bg); color: var(--badge-muted-fg); }

.badge-tests {
  background: rgb(var(--brand-blue-rgb) / 0.12);
  color: var(--brand-blue);
}

.badge-medals {
  background: rgb(var(--brand-yellow-rgb) / 0.16);
  color: color-mix(in srgb, var(--brand-orange) 81%, var(--brand-deep));
}

.badge-athletes {
  background: rgb(var(--brand-pink-rgb) / 0.13);
  color: color-mix(in srgb, var(--brand-pink) 95%, var(--brand-deep));
}

.badge-states {
  background: rgb(var(--brand-green-rgb) / 0.14);
  color: color-mix(in srgb, var(--brand-green) 79%, var(--brand-deep));
}

.badge-date {
  background: rgb(var(--brand-deep-rgb) / 0.08);
  color: var(--brand-deep);
  border: 1px solid rgb(var(--brand-deep-rgb) / 0.08);
}

.badge-time {
  background: rgb(var(--brand-blue-rgb) / 0.11);
  color: var(--brand-blue);
  border: 1px solid rgb(var(--brand-blue-rgb) / 0.12);
}

.badge-featured {
  background: var(--brand-green);
  color: #fff;
}

.badge-category {
  background: rgb(var(--brand-green-rgb) / 0.13);
  color: color-mix(in srgb, var(--brand-green) 79%, var(--brand-deep));
}

.badge-venue {
  background: rgb(var(--brand-blue-rgb) / 0.12);
  color: color-mix(in srgb, var(--brand-blue) 97%, var(--brand-deep));
}

.badge-capacity {
  background: rgb(var(--brand-deep-rgb) / 0.1);
  color: var(--brand-deep);
}

.badge-gold {
  background: rgb(var(--brand-yellow-rgb) / 0.18);
  color: color-mix(in srgb, var(--brand-orange) 81%, var(--brand-deep));
}

.badge-silver {
  background: rgba(155, 163, 170, .22);
  color: #59606b;
}

.badge-bronze {
  background: rgba(183, 98, 19, .16);
  color: #9a520f;
}

.badge-dark,
.on-image .badge,
.live-card .badge,
.news-card .badge,
.media-card .badge {
  background: rgb(var(--brand-deep-rgb) / 0.72);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .16);
  backdrop-filter: blur(10px);
}

.live-card .badge-live,
.news-card .badge-featured {
  border: 0;
  color: #fff;
}

.live-card .badge-live { background: var(--brand-pink); }
.news-card .badge-featured { background: var(--brand-green); }
.on-image .badge-date,
.on-image .badge-time,
.news-card .badge-date,
.live-card .badge-time {
  background: rgb(var(--brand-deep-rgb) / 0.72);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .16);
}

.badge-link {
  color: color-mix(in srgb, var(--brand-blue) 88%, var(--brand-deep));
  font-weight: 800;
}

.badge-link:hover {
  text-decoration: underline;
}

.badge-score {
  background: rgb(var(--brand-deep-rgb) / 0.08);
  color: var(--brand-deep);
  font-size: 12px;
}

.badge-position {
  background: var(--brand-deep);
  color: #fff;
}

.badge-file {
  background: rgb(var(--brand-pink-rgb) / 0.12);
  color: color-mix(in srgb, var(--brand-pink) 95%, var(--brand-deep));
}

.badge-size {
  background: rgb(var(--brand-deep-rgb) / 0.1);
  color: #3f4650;
}

.compact-row .badge,
.agenda-row .badge,
.result-row .badge,
.table-card .badge {
  vertical-align: middle;
}

.compact-row .badge-group,
.agenda-row .badge-group,
.result-row .badge-group {
  gap: 6px;
}

.agenda-row .event-main,
.result-row .result-main,
.compact-row .compact-meta {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.table-card td .badge-group {
  justify-content: flex-start;
}

.doc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.progress-28 { --p: 28%; }
.progress-31 { --p: 31%; }
.progress-41 { --p: 41%; }

html[data-theme="dark"] .badge:not(.badge-dark),
html[data-theme="dark"] .badge-date,
html[data-theme="dark"] .badge-category,
html[data-theme="dark"] .badge-info,
html[data-theme="dark"] .badge-score,
html[data-theme="dark"] .badge-file,
html[data-theme="dark"] .badge-size,
html[data-theme="dark"] .badge-capacity {
  color: color-mix(in srgb, var(--brand-blue) 16%, #fff);
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .12);
}

html[data-theme="dark"] .badge-info {
  color: color-mix(in srgb, var(--brand-blue) 33%, #fff);
  background: rgb(var(--brand-blue-rgb) / 0.18);
}

html[data-theme="dark"] .badge-category {
  color: color-mix(in srgb, var(--brand-green) 46%, #fff);
  background: rgb(var(--brand-green-rgb) / 0.16);
}

html[data-theme="dark"] .badge-date,
html[data-theme="dark"] .badge-size,
html[data-theme="dark"] .badge-capacity {
  color: color-mix(in srgb, var(--brand-blue) 28%, #fff);
  background: rgba(255, 255, 255, .07);
}

.news-detail-meta .badge,
html[data-theme="dark"] .news-detail-meta .badge {
  color: #ffffff;
  background: rgb(var(--brand-deep-rgb) / 0.55);
  border: 1px solid rgba(255, 255, 255, .18);
}

.news-detail-meta .badge .bi,
html[data-theme="dark"] .news-detail-meta .badge .bi {
  color: var(--brand-yellow);
}
.medal-loading[hidden] { display: none; }
.medal-loading { display: flex; align-items: center; gap: 10px; padding: 16px; margin-bottom: 12px; border-radius: 12px; background: color-mix(in srgb, var(--brand-blue) 9%, #fff); color: color-mix(in srgb, var(--brand-blue) 39%, var(--brand-deep)); font-weight: 600; }
.medal-loading-spinner { width: 20px; height: 20px; border: 3px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: medal-loading-spin .8s linear infinite; }
.medal-content-loading { opacity: .45; pointer-events: none; }
.medal-filter-tabs a[aria-disabled="true"], .m-tabs a[aria-disabled="true"] { opacity: .45; cursor: wait; }
html[data-theme="dark"] .medal-loading { background: color-mix(in srgb, var(--brand-blue) 46%, var(--brand-deep)); color: color-mix(in srgb, var(--brand-blue) 8%, #fff); }
@keyframes medal-loading-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .medal-loading-spinner { animation: none; } }
/* Athlete medal pagination: independent of section headings and hero buttons. */
.athlete-medal-pagination { display:grid; grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"previous summary next"; align-items:center; gap:12px; margin:20px 0 24px; }
.athlete-medal-page { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 16px; border:1px solid var(--brand-blue); border-radius:12px; background:var(--brand-blue); color:#fff; font-size:14px; font-weight:700; text-decoration:none; line-height:1.3; }
.athlete-medal-page.previous { grid-area:previous; }
.athlete-medal-page.next { grid-area:next; }
.athlete-medal-page-summary { grid-area:summary; margin:0; min-width:0; text-align:center; color:color-mix(in srgb, var(--brand-blue) 35%, var(--brand-deep)); font-size:14px; line-height:1.5; }
.athlete-medal-page-summary strong, .athlete-medal-page-summary span { display:block; }
.athlete-medal-page-summary span { color:#586b79; font-size:12px; }
.athlete-medal-page[href]:hover { background:color-mix(in srgb, var(--brand-blue) 65%, var(--brand-deep)); border-color:color-mix(in srgb, var(--brand-blue) 65%, var(--brand-deep)); color:#fff; }
.athlete-medal-page[href]:focus-visible { outline:3px solid var(--brand-blue); outline-offset:3px; }
.athlete-medal-page[aria-disabled="true"] { background:#edf1f4; border-color:color-mix(in srgb, var(--brand-blue) 23%, #fff); color:#758491; cursor:default; }
html[data-theme="dark"] .athlete-medal-page-summary { color:color-mix(in srgb, var(--brand-blue) 9%, #fff); }
html[data-theme="dark"] .athlete-medal-page-summary span { color:color-mix(in srgb, var(--brand-blue) 41%, #fff); }
html[data-theme="dark"] .athlete-medal-page[aria-disabled="true"] { background:color-mix(in srgb, var(--brand-blue) 49%, var(--brand-deep)); border-color:#40515e; color:#91a2af; }
.mobile-page .athlete-medal-pagination { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-areas:"summary summary" "previous next"; }
@media (max-width:600px) {
  .athlete-medal-pagination { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-areas:"summary summary" "previous next"; }
  .athlete-medal-page { padding-inline:10px; }
}

/* Results owns its search layout; document forms have a different grid. */
.results-filter-bar { display:grid; grid-template-columns:minmax(200px,1fr) minmax(180px,280px) auto auto; align-items:end; gap:12px; padding:16px; margin-bottom:24px; background:var(--card,#fff); border:1px solid var(--line,color-mix(in srgb, var(--brand-blue) 18%, #fff)); border-radius:16px; }
.results-filter-bar label { display:grid; gap:8px; min-width:0; font-size:13px; font-weight:700; color:var(--muted,#536679); }
.results-filter-bar input,.results-filter-bar select { box-sizing:border-box; width:100%; min-width:0; height:48px; border:1px solid color-mix(in srgb, var(--brand-blue) 27%, #fff); border-radius:10px; padding:10px 12px; background:#fff; color:color-mix(in srgb, var(--brand-blue) 26%, var(--brand-deep)); font:inherit; font-size:16px; }
.results-filter-bar > .btn { height:48px; min-width:96px; margin:0; display:inline-flex; align-items:center; justify-content:center; white-space:nowrap; }
.results-filter-bar > .btn.ghost { background:#eef3f7; color:color-mix(in srgb, var(--brand-blue) 55%, var(--brand-deep)); border:1px solid color-mix(in srgb, var(--brand-blue) 27%, #fff); }
.results-filter-bar > .btn.ghost:hover { background:color-mix(in srgb, var(--brand-blue) 15%, #fff); }
.results-filter-bar :is(input,select):focus-visible { outline:2px solid var(--brand-blue); outline-offset:2px; }
@media(max-width:760px) { .results-filter-bar { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } .results-filter-bar > label:first-child { grid-column:1/-1; } }
html[data-theme="dark"] .results-filter-bar { background:var(--brand-deep); }
html[data-theme="dark"] .results-filter-bar :is(input,select) { background:var(--brand-deep); color:color-mix(in srgb, var(--brand-blue) 7%, #fff); border-color:#435260; }
