/* ============================================
   SFE — Shuttlecock Federation of Europe
   Design System & Complete Styles
   ============================================ */

/* ---------- Google Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');

/* ---------- CSS Custom Properties ---------- */
:root {
  /* Colors */
  --color-primary: #0B1D51;
  --color-primary-light: #132B6E;
  --color-primary-dark: #070F2B;
  --color-secondary: #C5A44E;
  --color-secondary-light: #D4B96D;
  --color-secondary-dark: #A88A3A;
  --color-white: #FFFFFF;
  --color-surface: #F4F6FA;
  --color-surface-alt: #EEF1F8;
  --color-text-primary: #1A1A2E;
  --color-text-secondary: #5A5A7A;
  --color-text-light: #8A8AA0;
  --color-border: #E2E6F0;
  --color-success: #2ECC71;
  --color-alert: #E74C3C;
  --color-info: #3498DB;
  
  /* Gradients */
  --gradient-primary: linear-gradient(135deg, #0B1D51 0%, #1A3A8F 100%);
  --gradient-hero: linear-gradient(135deg, #0B1D51 0%, #132B6E 40%, #1A3A8F 100%);
  --gradient-gold: linear-gradient(135deg, #C5A44E 0%, #D4B96D 50%, #C5A44E 100%);
  --gradient-card: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(244,246,250,0.98) 100%);
  
  /* Typography */
  --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --fs-display: clamp(2.5rem, 5vw, 4rem);
  --fs-h1: clamp(2rem, 4vw, 3rem);
  --fs-h2: clamp(1.6rem, 3vw, 2.25rem);
  --fs-h3: clamp(1.25rem, 2.5vw, 1.5rem);
  --fs-h4: clamp(1.1rem, 2vw, 1.25rem);
  --fs-body: clamp(0.95rem, 1.5vw, 1.05rem);
  --fs-small: clamp(0.8rem, 1.2vw, 0.9rem);
  --fs-xs: 0.75rem;
  
  /* Spacing */
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.25rem;
  --space-xl: 1.5rem;
  --space-2xl: 2.25rem;
  --space-3xl: 3rem;
  --space-4xl: 4.25rem;
  --space-section: clamp(2.75rem, 5vw, 4.75rem);
  
  /* Borders & Radius */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;
  
  /* Shadows */
  --shadow-sm: 0 1px 3px rgba(11, 29, 81, 0.06);
  --shadow-md: 0 4px 12px rgba(11, 29, 81, 0.08);
  --shadow-lg: 0 8px 30px rgba(11, 29, 81, 0.12);
  --shadow-xl: 0 16px 50px rgba(11, 29, 81, 0.16);
  --shadow-card: 0 2px 12px rgba(11, 29, 81, 0.06), 0 0 0 1px rgba(11, 29, 81, 0.03);
  --shadow-card-hover: 0 8px 30px rgba(11, 29, 81, 0.12), 0 0 0 1px rgba(197, 164, 78, 0.2);
  
  /* Transitions */
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 400ms ease;
  --transition-spring: 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  
  /* Layout */
  --container-max: 1280px;
  --container-narrow: 900px;
  --nav-height: 80px;
  --nav-height-scrolled: 64px;
}

/* ---------- Reset & Base ---------- */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: var(--nav-height);
}

body {
  font-family: var(--font-family);
  font-size: var(--fs-body);
  color: var(--color-text-primary);
  background-color: var(--color-white);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

.skip-link {
  position: fixed;
  top: var(--space-md);
  left: 50%;
  transform: translate(-50%, calc(-100% - var(--space-md)));
  z-index: 1200;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.875rem 1.25rem;
  border-radius: var(--radius-full);
  background: var(--color-white);
  color: var(--color-primary);
  border: 1px solid rgba(11, 29, 81, 0.12);
  box-shadow: var(--shadow-lg);
  font-weight: 700;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.skip-link:focus-visible {
  transform: translate(-50%, 0);
  outline: 3px solid rgba(197, 164, 78, 0.45);
  outline-offset: 2px;
  box-shadow: 0 10px 30px rgba(11, 29, 81, 0.18);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
  transition: color var(--transition-fast);
}

ul, ol {
  list-style: none;
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

input, textarea, select {
  font-family: inherit;
  font-size: inherit;
}

/* ---------- Utility Classes ---------- */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--space-xl);
}

.container--narrow {
  max-width: var(--container-narrow);
}

.section {
  padding: var(--space-section) 0;
}

.section--tight {
  padding: 0 0 var(--space-2xl);
}

.section--page-entry {
  position: relative;
  margin-top: -0.2rem;
  padding-top: clamp(1rem, 2vw, 1.35rem);
}

.section--surface {
  background-color: var(--color-surface);
}

.section--primary {
  background: var(--gradient-primary);
  color: var(--color-white);
}

.section--today {
  padding: clamp(1.5rem, 3vw, 2.5rem) 0 var(--space-2xl);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), var(--color-surface));
}

.section-header {
  text-align: center;
  margin-bottom: var(--space-2xl);
}

.section-header--home {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-lg);
  text-align: left;
}

.section-header--home > div {
  max-width: 720px;
}

.section-header h2 {
  font-size: var(--fs-h2);
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: var(--space-md);
  position: relative;
}

.section--primary .section-header h2 {
  color: var(--color-white);
}

.section-header p {
  font-size: var(--fs-body);
  color: var(--color-text-secondary);
  max-width: 640px;
  margin: 0 auto;
}

.section--primary .section-header p {
  color: rgba(255,255,255,0.75);
}

.section-header__route {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.05em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
}

.section-header__route::after {
  content: '';
  width: 0.42rem;
  height: 0.42rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.72;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.section-header__route:hover::after,
.section-header__route:focus-visible::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 1;
}

.section-header__route--light {
  color: rgba(255,255,255,0.9);
}

.section-divider {
  width: 60px;
  height: 3px;
  background: var(--gradient-gold);
  border-radius: var(--radius-full);
  margin: var(--space-md) auto;
}

/* Text helpers */
.text-gold { color: var(--color-secondary); }
.text-primary { color: var(--color-primary); }
.text-muted { color: var(--color-text-secondary); }
.text-center { text-align: center; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }

/* ---------- Buttons ---------- */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  padding: 0.8rem 1.65rem;
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: 0.005em;
  border-radius: 11px;
  border: 1px solid transparent;
  font-family: var(--font-family);
  transition:
    transform 0.18s cubic-bezier(0.2, 0.7, 0.3, 1),
    box-shadow 0.22s ease,
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
  white-space: nowrap;
  cursor: pointer;
}

.btn:active {
  transform: translateY(0.5px) !important;
}

.btn--primary {
  background: var(--color-primary);
  color: var(--color-white);
  box-shadow: 0 1px 2px rgba(7, 15, 43, 0.2), 0 6px 18px -6px rgba(11, 29, 81, 0.5);
}

.btn--primary:hover {
  background: #0d2563;
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(7, 15, 43, 0.22), 0 12px 28px -8px rgba(11, 29, 81, 0.55);
}

.btn--secondary {
  background: var(--color-secondary);
  color: var(--color-primary-dark);
  font-weight: 700;
  box-shadow: 0 1px 2px rgba(120, 90, 20, 0.2), 0 6px 18px -6px rgba(168, 138, 58, 0.5);
}

.btn--secondary:hover {
  background: var(--color-secondary-light);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(120, 90, 20, 0.22), 0 14px 28px -8px rgba(168, 138, 58, 0.55);
}

.btn--outline {
  background: var(--color-white);
  color: var(--color-primary);
  border-color: var(--color-border);
  box-shadow: 0 1px 2px rgba(11, 29, 81, 0.05);
}

.btn--outline:hover {
  border-color: var(--color-primary);
  background: #fafbfd;
  transform: translateY(-1px);
}

.btn--outline-light {
  background: rgba(255, 255, 255, 0.08);
  color: var(--color-white);
  border-color: rgba(255, 255, 255, 0.22);
}

.btn--outline-light:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.45);
  transform: translateY(-1px);
}

.btn--white {
  background: var(--color-white);
  color: var(--color-primary);
  border-color: var(--color-border);
  box-shadow: 0 1px 2px rgba(11, 29, 81, 0.05);
}

.btn--white:hover {
  border-color: var(--color-primary);
  background: #fafbfd;
  transform: translateY(-1px);
}

.btn--sm {
  padding: 0.5rem 1.1rem;
  font-size: var(--fs-xs);
  border-radius: 8px;
}

.btn--lg {
  padding: 1rem 2rem;
  font-size: var(--fs-body);
  border-radius: 13px;
}

.btn:focus-visible,
.nav__link:focus-visible,
.tab:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--color-white), 0 0 0 5px var(--color-secondary);
}

/* ---------- Cards ---------- */
.card {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  transition: all var(--transition-base);
  overflow: hidden;
}

.card:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-4px);
}

.card__image {
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
  background: var(--color-surface);
}

.card__body {
  padding: var(--space-xl);
}

.card__tag {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  font-size: var(--fs-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: var(--radius-full);
  background: rgba(11, 29, 81, 0.06);
  color: var(--color-primary);
  margin-bottom: var(--space-sm);
}

.card__tag--gold {
  background: rgba(197, 164, 78, 0.12);
  color: var(--color-secondary-dark);
}

.card__title {
  font-size: var(--fs-h4);
  font-weight: 700;
  margin-bottom: var(--space-sm);
  line-height: 1.3;
  color: var(--color-primary);
}

.card__text {
  font-size: var(--fs-small);
  color: var(--color-text-secondary);
  line-height: 1.6;
}

.card__meta {
  font-size: var(--fs-xs);
  color: var(--color-text-light);
  margin-top: var(--space-md);
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

/* Glass card variant */
.card--glass {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: var(--color-white);
}

.card--glass .card__title { color: var(--color-white); }
.card--glass .card__text { color: rgba(255, 255, 255, 0.75); }

/* ---------- Navigation ---------- */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: var(--nav-height);
  transition: all var(--transition-base);
  background: transparent;
}

.nav.scrolled {
  height: var(--nav-height-scrolled);
  background: rgba(11, 29, 81, 0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.2);
}

.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--space-xl);
}

.nav__logo {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  z-index: 1001;
}

.nav__logo img {
  height: 50px;
  width: auto;
  transition: height var(--transition-base);
}

.nav.scrolled .nav__logo img {
  height: 40px;
}

.nav__logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.nav__logo-text strong {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--color-white);
  letter-spacing: 0.02em;
}

.nav__logo-text span {
  font-size: 0.65rem;
  color: var(--color-secondary);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 500;
}

.nav__links {
  display: flex;
  align-items: center;
  gap: 0;
}

.nav__link {
  position: relative;
  padding: 0.5rem 0.85rem;
  font-size: 0.82rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  transition: color var(--transition-fast);
  white-space: nowrap;
}

.nav__link:hover,
.nav__link.active {
  color: var(--color-secondary);
}

.nav__link::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) scaleX(0);
  width: 20px;
  height: 2px;
  background: var(--color-secondary);
  border-radius: var(--radius-full);
  transition: transform var(--transition-base);
}

.nav__link:hover::after,
.nav__link.active::after {
  transform: translateX(-50%) scaleX(1);
}

.nav__login-cta {
  margin-left: 0.35rem;
  padding-inline: 0.9rem;
  border: 1px solid rgba(197, 164, 78, 0.48);
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.06);
  color: var(--color-white);
  font-weight: 850;
}

.nav__login-cta::after {
  display: none;
}

.nav__login-cta:hover,
.nav__login-cta:focus-visible,
.nav__login-cta.active {
  border-color: rgba(197, 164, 78, 0.82);
  background: rgba(197, 164, 78, 0.14);
  color: var(--color-secondary);
}

.nav__portal-link {
  color: rgba(255, 255, 255, 0.9);
  font-weight: 850;
}

.nav__login-cta--logout {
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.82);
}

.nav__login-cta--logout:hover,
.nav__login-cta--logout:focus-visible {
  border-color: rgba(255, 255, 255, 0.38);
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-white);
}

/* Dropdown */
.nav__dropdown {
  position: relative;
}

.nav__dropdown-trigger {
  display: flex;
  align-items: center;
  gap: 4px;
}

.nav__dropdown-trigger svg {
  width: 12px;
  height: 12px;
  transition: transform var(--transition-fast);
}

.nav__dropdown:hover .nav__dropdown-trigger svg {
  transform: rotate(180deg);
}

.nav__dropdown-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 220px;
  background: var(--color-white);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-xl);
  padding: var(--space-sm);
  opacity: 0;
  visibility: hidden;
  transition: all var(--transition-fast);
  transform-origin: top center;
}

.nav__dropdown:hover .nav__dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.nav__dropdown-link {
  display: block;
  padding: 0.6rem 1rem;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--color-text-primary);
  border-radius: var(--radius-sm);
  transition: all var(--transition-fast);
}

.nav__dropdown-link:hover {
  background: var(--color-surface);
  color: var(--color-primary);
}

/* Mobile hamburger */
.nav__hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  z-index: 1001;
  width: 28px;
  cursor: pointer;
  padding: 4px 0;
}

.nav__hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--color-white);
  border-radius: var(--radius-full);
  transition: all var(--transition-base);
}

.nav__hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translateY(5px) translateX(4px);
}

.nav__hamburger.active span:nth-child(2) {
  opacity: 0;
}

.nav__hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translateY(-5px) translateX(4px);
}

/* Language selector */
.nav__lang {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  margin-left: var(--space-md);
  padding: 0.35rem 0.75rem;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--color-secondary);
  border: 1px solid rgba(197, 164, 78, 0.3);
  border-radius: var(--radius-full);
  transition: all var(--transition-fast);
}

.nav__lang:hover {
  background: rgba(197, 164, 78, 0.1);
}

/* Mobile nav drawer */
@media (max-width: 1024px) {
  .nav__hamburger {
    display: flex;
  }
  
  .nav__links {
    position: fixed;
    top: 0;
    right: 0;
    width: 320px;
    max-width: 85vw;
    height: 100vh;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: calc(var(--nav-height) + var(--space-xl)) var(--space-xl) var(--space-xl);
    background: var(--color-primary-dark);
    transform: translateX(100%);
    transition: transform var(--transition-slow);
    overflow-y: auto;
  }
  
  .nav__links.open {
    transform: translateX(0);
  }
  
  .nav__link {
    width: 100%;
    padding: 0.85rem 0;
    font-size: 1rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
  }

  .nav__portal-link {
    margin-top: auto;
    padding: 0.95rem 1rem;
    border: 1px solid rgba(197, 164, 78, 0.35);
    border-radius: 14px;
    background: rgba(197, 164, 78, 0.08);
  }

  .nav__login-cta,
  .nav__login-cta--logout {
    margin-left: 0;
    margin-top: 0.7rem;
    justify-content: center;
    padding: 0.95rem 1rem;
    border-radius: 14px;
    text-align: center;
  }
  
  .nav__dropdown-menu {
    position: static;
    transform: none;
    background: rgba(255,255,255,0.05);
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    margin-top: var(--space-xs);
    padding: 0 var(--space-md);
  }
  
  .nav__dropdown-link {
    color: rgba(255,255,255,0.7);
    font-size: 0.9rem;
  }
  
  .nav__dropdown-link:hover {
    background: rgba(255,255,255,0.05);
    color: var(--color-secondary);
  }
  
  .nav__lang {
    margin-left: 0;
    margin-top: var(--space-lg);
  }
}

/* Mobile overlay */
.nav-overlay {
  position: fixed;
  inset: 0;
  background: rgba(2, 8, 24, 0.54);
  backdrop-filter: blur(4px);
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: all var(--transition-base);
}

.nav-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* ---------- Hero Section ---------- */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  background: #071126;
  overflow: hidden;
  isolation: isolate;
}

.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(7,15,43,0.98) 0%, rgba(7,15,43,0.9) 38%, rgba(7,15,43,0.58) 70%, rgba(7,15,43,0.86) 100%),
    linear-gradient(180deg, rgba(7,15,43,0.32) 0%, rgba(7,15,43,0.7) 54%, rgba(7,15,43,0.96) 100%);
  z-index: 1;
}

.hero::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: clamp(7rem, 16vh, 11rem);
  background: linear-gradient(180deg, transparent 0%, rgba(7,15,43,0.48) 38%, rgba(255,255,255,0.96) 100%);
  z-index: 1;
  pointer-events: none;
}

.hero__image-layer {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero__image-layer img,
.hero__image-layer video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 58% 48%;
  filter: saturate(1.04) contrast(1.04) brightness(0.94);
}

.hero__image-layer video {
  z-index: 1;
}

.hero__content {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.58fr);
  gap: clamp(var(--space-xl), 4vw, var(--space-3xl));
  align-items: center;
  padding-top: calc(var(--nav-height) + var(--space-3xl));
  padding-bottom: calc(var(--space-4xl) + var(--space-xl));
}

.hero__copy {
  max-width: 760px;
  animation: fadeInUp 0.8s ease-out;
}

.hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 7px 15px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: var(--radius-full);
  color: rgba(220, 230, 255, 0.85);
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: var(--space-lg);
}

.hero__eyebrow::before {
  content: '';
  flex-shrink: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-secondary);
  box-shadow: 0 0 0 4px rgba(197, 164, 78, 0.22);
}

.hero__title {
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 800;
  color: var(--color-white);
  line-height: 1.04;
  letter-spacing: -0.03em;
  margin-bottom: var(--space-lg);
  max-width: 880px;
  text-wrap: balance;
  text-shadow: 0 6px 28px rgba(0, 0, 0, 0.28);
}

.hero__subtitle {
  font-size: clamp(1.02rem, 1.8vw, 1.34rem);
  color: rgba(255, 255, 255, 0.88);
  font-weight: 500;
  margin-bottom: var(--space-2xl);
  max-width: 720px;
  text-shadow: 0 8px 30px rgba(0,0,0,0.28);
}

.hero__actions {
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
  align-items: center;
  max-width: 720px;
}

.hero__portal-smartlink {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  margin-top: var(--space-md);
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.92rem;
}

.hero__portal-smartlink a {
  color: var(--color-white);
  font-weight: 850;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.28);
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.hero__portal-smartlink a:hover,
.hero__portal-smartlink a:focus-visible {
  color: var(--color-secondary-light);
  border-color: rgba(220, 186, 90, 0.62);
  outline: none;
}

.portal-smartlink {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  color: var(--color-text-secondary);
  font-size: 0.92rem;
  line-height: 1.55;
}

.portal-smartlink a {
  color: var(--color-primary);
  font-weight: 850;
  text-decoration: none;
  border-bottom: 1px solid rgba(11, 29, 81, 0.18);
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.portal-smartlink a:hover,
.portal-smartlink a:focus-visible {
  color: var(--color-secondary);
  border-color: rgba(197, 164, 78, 0.62);
  outline: none;
}

.portal-smartlink--section {
  margin-bottom: var(--space-lg);
}

.hero__media {
  position: relative;
  align-self: stretch;
  min-height: clamp(440px, 56vh, 620px);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,0.42);
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.08);
}

.hero__media::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 56%, rgba(7,15,43,0.78) 100%);
  z-index: 1;
  pointer-events: none;
}

.hero__media::after {
  content: '';
  position: absolute;
  left: 12%;
  top: 18%;
  width: 54%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.82), transparent);
  transform: rotate(-22deg);
  z-index: 2;
  opacity: 0.7;
}

.hero__media > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 52% 40%;
}

.hero__media--gallery::after {
  display: none;
}

.hero__portrait-showcase {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
  padding: 1rem;
  z-index: 0;
}

.hero__portrait-showcase::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(7,15,43,0.18) 0%, rgba(7,15,43,0.06) 28%, rgba(7,15,43,0.42) 100%),
    linear-gradient(90deg, rgba(255,255,255,0.06), transparent 28%, transparent 72%, rgba(255,255,255,0.04));
  z-index: 1;
  pointer-events: none;
}

.hero__portrait-rail {
  position: relative;
  display: grid;
  gap: 0.8rem;
  align-content: start;
  animation: heroPortraitScroll 24s linear infinite;
  will-change: transform;
}

.hero__portrait-rail--two {
  animation-duration: 27s;
  animation-direction: reverse;
}

.hero__portrait-rail--three {
  animation-duration: 30s;
}

.hero__portrait-card {
  position: relative;
  display: block;
  min-height: 11.75rem;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(7,15,43,0.16);
  box-shadow: 0 18px 36px rgba(0,0,0,0.18);
  text-decoration: none;
  color: inherit;
  transition: transform 0.32s ease, box-shadow 0.32s ease, border-color 0.32s ease;
}

.hero__portrait-card::after {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 38%;
  background: linear-gradient(180deg, transparent, rgba(7,15,43,0.34));
}

.hero__portrait-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

a.hero__portrait-card:hover,
a.hero__portrait-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 24px 48px rgba(0,0,0,0.28);
  border-color: rgba(197,164,78,0.55);
}

a.hero__portrait-card:focus-visible {
  outline: 2px solid rgba(255,255,255,0.92);
  outline-offset: 2px;
}

.hero__media figcaption {
  position: absolute;
  left: var(--space-lg);
  right: var(--space-lg);
  bottom: var(--space-lg);
  z-index: 2;
  display: flex;
  justify-content: space-between;
  gap: var(--space-md);
  align-items: end;
  color: var(--color-white);
  pointer-events: none;
}

.hero__media figcaption span,
.hero__media figcaption strong {
  display: block;
}

.hero__media figcaption span {
  max-width: 220px;
  color: rgba(255,255,255,0.78);
  font-size: var(--fs-xs);
  line-height: 1.5;
}

.hero__media figcaption strong {
  color: var(--color-secondary-light);
  font-size: var(--fs-small);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-align: right;
}

@keyframes heroPortraitScroll {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__portrait-rail {
    animation: none;
  }
}

.hero__scroll {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-sm);
  color: rgba(255,255,255,0.72);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  animation: bounce 2s infinite;
}

.hero__scroll-line {
  width: 1px;
  height: 34px;
  background: linear-gradient(to bottom, rgba(197,164,78,0.6), transparent);
}

/* ---------- Page Hero (Sub-pages) ---------- */
.page-hero {
  --page-hero-image: url('../assets/media/home/european-lineup.jpg');
  --page-hero-position: 50% 45%;
  position: relative;
  padding: calc(var(--nav-height) + var(--space-3xl)) 0 var(--space-2xl);
  min-height: 320px;
  display: flex;
  align-items: center;
  background:
    linear-gradient(180deg, rgba(7, 15, 43, 0.74) 0%, rgba(7, 15, 43, 0.88) 70%, rgba(7, 15, 43, 0.96) 100%),
    linear-gradient(90deg, rgba(7, 15, 43, 0.88) 0%, rgba(7, 15, 43, 0.5) 54%, rgba(7, 15, 43, 0.9) 100%),
    var(--page-hero-image);
  background-size: cover;
  background-position: var(--page-hero-position);
  overflow: hidden;
}

.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 0%, rgba(7, 15, 43, 0.34) 100%),
    repeating-linear-gradient(90deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 112px);
  pointer-events: none;
}

.page-hero::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  width: min(1120px, calc(100% - 2rem));
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(242, 201, 76, 0.62), transparent);
  transform: translateX(-50%);
  pointer-events: none;
}

.page-hero__content {
  position: relative;
  z-index: 2;
  text-align: center;
}

.page-hero__content--documents,
.page-hero__content--media,
.page-hero__content--news,
.page-hero__content--contact {
  max-width: 760px;
  margin-inline: auto;
  justify-items: center;
}

.page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.15rem;
}

.page-hero__breadcrumb {
  font-size: var(--fs-xs);
  color: rgba(255,255,255,0.82);
  margin-bottom: var(--space-md);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 800;
}

.page-hero__breadcrumb a {
  color: rgba(255,255,255,0.82);
  transition: color var(--transition-fast);
}

.page-hero__breadcrumb a:hover {
  color: var(--color-secondary-light);
}

.page-hero h1 {
  font-size: var(--fs-h1);
  font-weight: 800;
  color: var(--color-white);
  margin-bottom: var(--space-md);
  text-shadow: 0 10px 34px rgba(0, 0, 0, 0.34);
}

.page-hero p {
  font-size: var(--fs-body);
  color: rgba(255,255,255,0.86);
  max-width: 680px;
  margin: 0 auto;
  line-height: 1.75;
}

.page-hero__routes,
.competitions-hero__routes {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1rem;
  margin-top: 1rem;
}

.page-hero__routes a,
.competitions-hero__routes a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: rgba(255,255,255,0.86);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
}

.page-hero__routes a::after,
.competitions-hero__routes a::after {
  content: "";
  width: 0.42rem;
  height: 0.42rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.62;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.page-hero__routes a:hover::after,
.page-hero__routes a:focus-visible::after,
.competitions-hero__routes a:hover::after,
.competitions-hero__routes a:focus-visible::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 1;
}

.page-hero--about { --page-hero-image: url('../assets/media/home/european-lineup.jpg'); --page-hero-position: 50% 42%; }
.page-hero--members { --page-hero-image: url('../assets/media/home/feature-team-play.jpg'); --page-hero-position: 50% 42%; }
.page-hero--competitions { --page-hero-image: url('../assets/media/home/hero-shuttlecock-action.jpg'); --page-hero-position: 50% 44%; }
.page-hero--rankings {
  --page-hero-image: url('../assets/media/home/competition-awards.jpg');
  --page-hero-position: 50% 54%;
  min-height: 210px;
  padding: calc(var(--nav-height) + 1.75rem) 0 1.25rem;
}

.page-hero--rankings h1 {
  font-size: clamp(2.2rem, 4.2vw, 3.55rem);
}

.page-hero--rankings p {
  max-width: 760px;
}
.page-hero--athletes { --page-hero-image: url('../assets/media/home/european-lineup.jpg'); --page-hero-position: 50% 38%; }
.page-hero--documents { --page-hero-image: url('../assets/media/home/competition-awards.jpg'); --page-hero-position: 50% 50%; }
.page-hero__content--competitions {
  max-width: 780px;
  margin-inline: auto;
}

.competitions-hero__signals {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
}

.competitions-hero__signals span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.5rem 0.82rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.75rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.page-hero__content--documents {
  max-width: 760px;
}

.documents-hero__signals {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
}

.documents-hero__signals span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.44rem 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.68rem;
  font-weight: 860;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.page-hero--media {
  --page-hero-image: url('../assets/media/gallery/io2025/io2025-09.jpg');
  --page-hero-position: 50% 42%;
  min-height: 290px;
  padding: calc(var(--nav-height) + 1.95rem) 0 1.55rem;
}
.page-hero--news { --page-hero-image: url('../assets/media/home/european-lineup.jpg'); --page-hero-position: 50% 40%; }
.page-hero--contact { --page-hero-image: url('../assets/media/home/feature-singles-control.jpg'); --page-hero-position: 50% 46%; }
.page-hero__content--news,
.page-hero__content--contact {
  max-width: 780px;
}

.news-hero__signals,
.contact-hero__signals {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1rem;
}

.news-hero__signals span,
.contact-hero__signals span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.44rem 0.72rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.68rem;
  font-weight: 860;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.page-hero--event-hub { --page-hero-image: url('../assets/media/home/european-lineup.jpg'); --page-hero-position: 50% 36%; }

.page-hero__content--media {
  max-width: 760px;
}

.page-hero--media h1 {
  margin-bottom: 0.8rem;
}

.page-hero--media p {
  max-width: 640px;
  line-height: 1.62;
}

.media-hero__signals {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.52rem;
  margin-top: 1rem;
}

.media-hero__signals span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.42rem 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.68rem;
  font-weight: 860;
  letter-spacing: 0.05em;
}

body[data-event-hub="ec2025Hub"] .page-hero--event-hub {
  --page-hero-image: url('../assets/media/gallery/ec2025/ec2025-04.jpg');
  --page-hero-position: 50% 44%;
}

body[data-event-hub="io2025Hub"] .page-hero--event-hub {
  --page-hero-image: url('../assets/media/gallery/io2025/io2025-13.jpg');
  --page-hero-position: 50% 42%;
}

body[data-competition-family] .page-hero--event-hub {
  min-height: 280px;
  padding: calc(var(--nav-height) + var(--space-2xl)) 0 1.75rem;
}

body[data-competition-family] main > .section {
  padding-top: clamp(1.5rem, 3vw, 2.35rem);
}

/* ---------- Stats Bar ---------- */
.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-md);
  margin-top: calc(-1 * var(--space-3xl));
  position: relative;
  z-index: 10;
}

.stat {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  text-align: center;
  box-shadow: var(--shadow-lg);
  transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.stat:hover {
  transform: translateY(-2px);
}

.stat__eyebrow {
  margin-bottom: 0.45rem;
  color: var(--color-secondary-dark);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.stat__number {
  font-size: var(--fs-h2);
  font-weight: 800;
  color: var(--color-primary);
  line-height: 1;
  margin-bottom: var(--space-xs);
}

.stat__number span {
  color: var(--color-secondary);
}

.stat__label {
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-secondary);
  font-weight: 600;
}

.stat--compact {
  padding: var(--space-lg);
  box-shadow: var(--shadow-card);
}

.stats--proof {
  margin-top: calc(-1 * var(--space-2xl));
}

.section--proof-home .stats--proof {
  margin-top: 0;
}

.stats--proof .stat {
  display: grid;
  gap: 0.1rem;
  align-content: start;
  min-height: 0;
  padding: 1.05rem 1rem 1rem;
  border: 1px solid rgba(11,29,81,0.08);
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(11,29,81,0.08);
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(248,250,253,0.98));
  text-align: left;
}

.stats--proof .stat:hover {
  border-color: rgba(197, 164, 78, 0.28);
  box-shadow: 0 16px 34px rgba(11,29,81,0.1);
}

.stats--proof .stat__number {
  margin-bottom: 0.12rem;
  font-size: clamp(1.7rem, 2.8vw, 2.3rem);
}

.stats--proof .stat__label {
  font-size: 0.72rem;
  font-weight: 850;
}

.sfe-today {
  display: grid;
  gap: var(--space-lg);
}

.sfe-today__header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-lg);
}

.sfe-today__header h2 {
  margin-top: var(--space-xs);
  color: var(--color-primary);
  font-size: clamp(1.75rem, 3vw, 2.6rem);
  line-height: 1.08;
  text-wrap: balance;
}

.sfe-today__intro {
  margin-top: 0.5rem;
  max-width: 720px;
  color: var(--color-text-secondary);
  font-size: 0.98rem;
  line-height: 1.7;
}

.sfe-today__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.95fr);
  gap: var(--space-md);
  align-items: stretch;
}

.sfe-today-spotlight {
  display: grid;
  gap: 0.95rem;
  min-height: 100%;
  padding: clamp(1.15rem, 2.8vw, 1.65rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 12px;
  background:
    linear-gradient(160deg, rgba(8, 20, 58, 0.98), rgba(11, 29, 81, 0.92)),
    radial-gradient(circle at top right, rgba(197, 164, 78, 0.18), transparent 42%);
  box-shadow: 0 20px 48px rgba(11, 29, 81, 0.14);
  color: var(--color-white);
}

.sfe-today-spotlight__eyebrow {
  color: rgba(255,255,255,0.72);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sfe-today-spotlight h3 {
  color: var(--color-white);
  font-size: clamp(1.5rem, 2.8vw, 2.2rem);
  line-height: 1.06;
}

.sfe-today-spotlight p {
  max-width: 50ch;
  color: rgba(255,255,255,0.8);
  font-size: 0.94rem;
  line-height: 1.68;
}

.sfe-today-spotlight__metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.68rem;
}

.sfe-today-spotlight__metrics span {
  display: grid;
  gap: 0.12rem;
  padding: 0.78rem 0.82rem;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 10px;
  background: rgba(255,255,255,0.08);
}

.sfe-today-spotlight__metrics strong {
  color: var(--color-white);
  font-size: 1.22rem;
  line-height: 1;
}

.sfe-today-spotlight__metrics small {
  color: rgba(255,255,255,0.68);
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.sfe-today-spotlight__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1rem;
  margin-top: auto;
}

.sfe-today-spotlight__links a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--color-white);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
}

.sfe-today-spotlight__links a::after {
  content: "";
  width: 0.38rem;
  height: 0.38rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.72;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.sfe-today-spotlight__links a:hover::after,
.sfe-today-spotlight__links a:focus-visible::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 1;
}

.sfe-today-notices {
  align-self: stretch;
  display: grid;
  align-content: start;
  overflow: hidden;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 12px;
  background: var(--color-white);
  box-shadow: 0 18px 46px rgba(11, 29, 81, 0.08);
}

.sfe-today-notices__eyebrow {
  padding: 0.9rem 1rem 0.55rem;
  color: var(--color-secondary-dark);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sfe-today-notice {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  min-height: 4.25rem;
  padding: 0.95rem 1rem;
  border-top: 1px solid rgba(9, 30, 82, 0.08);
  color: inherit;
  text-decoration: none;
  transition: background var(--transition-fast), color var(--transition-fast);
}

.sfe-today-notice::after {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  color: rgba(11, 29, 81, 0.48);
  transition: transform var(--transition-fast), color var(--transition-fast);
}

.sfe-today-notice span {
  color: var(--color-text-secondary);
  font-size: 0.86rem;
  font-weight: 800;
}

.sfe-today-notice strong {
  justify-self: end;
  color: var(--color-primary);
  font-size: 0.95rem;
  font-weight: 900;
  white-space: nowrap;
}

.sfe-today-notice:hover,
.sfe-today-notice:focus-visible {
  background: rgba(11, 29, 81, 0.035);
}

.sfe-today-notice:hover::after,
.sfe-today-notice:focus-visible::after {
  color: var(--color-secondary-dark);
  transform: translateX(2px) rotate(45deg);
}

.sfe-today-card {
  position: relative;
  display: grid;
  gap: var(--space-sm);
  min-height: 0;
  padding: 1rem;
  overflow: hidden;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 10px;
  background: var(--color-white);
  box-shadow: 0 18px 46px rgba(11, 29, 81, 0.08);
}

.sfe-today-card strong {
  text-wrap: balance;
}

.sfe-today-card::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--color-secondary), #3498DB);
}

.sfe-today-card span {
  color: var(--color-secondary-dark);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sfe-today-card strong {
  color: var(--color-primary);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  line-height: 1.02;
}

.sfe-today-card p {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.55;
}

.sfe-today-card a {
  align-self: end;
  width: fit-content;
  color: var(--color-primary);
  font-size: var(--fs-small);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.sfe-today-card a:hover,
.sfe-today-card a:focus-visible {
  color: var(--color-secondary-dark);
}

.section-kicker {
  color: var(--color-secondary-dark);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 8px;
}

/* Section header link (e.g. "All events →") */
.section-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.18s ease;
  white-space: nowrap;
  flex-shrink: 0;
}

.section-link:hover {
  border-color: var(--color-secondary);
}

.section-link svg {
  width: 0.9em;
  height: 0.9em;
  flex-shrink: 0;
}

/* Light variant for dark section backgrounds */
.section-link--light {
  color: rgba(255, 255, 255, 0.85);
}

.section-link--light:hover {
  color: var(--color-white);
  border-color: var(--color-secondary);
}

/* ---------- Home Sport Primer ---------- */
.sport-primer {
  background:
    linear-gradient(180deg, var(--color-white) 0%, var(--color-surface) 100%);
}

.sport-primer__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(320px, 0.64fr);
  gap: var(--space-3xl);
  align-items: center;
}

.sport-primer__copy h2,
.impact-copy h2 {
  font-size: var(--fs-h1);
  color: var(--color-primary);
  line-height: 1.08;
  margin-bottom: var(--space-lg);
  text-wrap: balance;
}

.sport-primer__copy p,
.impact-copy p {
  color: var(--color-text-secondary);
  line-height: 1.85;
  max-width: 680px;
  margin-bottom: var(--space-md);
}

.sport-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-lg);
}

.sport-tags span {
  padding: 0.5rem 0.85rem;
  border-radius: var(--radius-full);
  background: rgba(11,29,81,0.06);
  color: var(--color-primary);
  font-size: var(--fs-xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.sport-primer__media {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-xl);
  aspect-ratio: 4 / 5;
  background: var(--color-primary-dark);
}

.sport-primer__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(7,15,43,0.78) 100%);
  pointer-events: none;
}

.sport-primer__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 42%;
}

.sport-primer__callout {
  position: absolute;
  left: var(--space-lg);
  right: var(--space-lg);
  bottom: var(--space-lg);
  z-index: 1;
  display: grid;
  gap: 0.25rem;
  padding: var(--space-md);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--radius-md);
  background: rgba(7,15,43,0.72);
  color: var(--color-white);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.sport-primer__callout strong {
  color: var(--color-secondary-light);
  font-size: var(--fs-small);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.sport-primer__callout span {
  color: rgba(255,255,255,0.76);
  font-size: var(--fs-small);
  line-height: 1.5;
}

.sport-snapshot {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-sm);
  margin: var(--space-xl) 0 0;
}

.sport-snapshot div {
  min-height: 0;
  padding: var(--space-md);
  border: 1px solid rgba(11,29,81,0.08);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,0.7);
}

.sport-snapshot strong,
.sport-snapshot span {
  display: block;
}

.sport-snapshot strong {
  color: var(--color-primary);
  font-size: var(--fs-small);
  margin-bottom: var(--space-sm);
}

.sport-snapshot span {
  color: var(--color-text-secondary);
  font-size: var(--fs-xs);
  line-height: 1.55;
}

.sport-snapshot ul {
  display: grid;
  gap: 0.6rem;
  margin: 0;
  padding-left: 1.15rem;
}

.sport-snapshot li {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.65;
  list-style: disc;
}

.culture-note {
  display: grid;
  gap: var(--space-md);
  margin-top: var(--space-xl);
  padding: var(--space-lg);
  border: 1px solid rgba(11,29,81,0.08);
  border-left: 4px solid var(--color-secondary);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,0.78);
}

.culture-note strong,
.culture-note span {
  display: block;
}

.culture-note strong {
  color: var(--color-primary);
  margin-bottom: var(--space-xs);
}

.culture-note span {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.65;
}

.culture-note__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.culture-note__tags span {
  display: inline-flex;
  width: auto;
  padding: 0.42rem 0.7rem;
  border-radius: var(--radius-full);
  background: rgba(11,29,81,0.06);
  color: var(--color-primary);
  font-size: var(--fs-xs);
  font-weight: 850;
  line-height: 1;
}

.sport-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
}

.sport-feature {
  background: var(--color-white);
  border: 1px solid rgba(11,29,81,0.06);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.sport-feature:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-card-hover);
}

.sport-feature img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
  background: var(--color-surface);
}

.sport-feature:nth-child(1) img { object-position: 50% 36%; }
.sport-feature:nth-child(2) img { object-position: 50% 45%; }
.sport-feature:nth-child(3) img { object-position: 50% 50%; }

.sport-feature div {
  padding: var(--space-lg);
}

.sport-feature span {
  display: block;
  color: var(--color-secondary-dark);
  font-size: var(--fs-xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: var(--space-sm);
}

.sport-feature h3 {
  color: var(--color-primary);
  font-size: var(--fs-h4);
  line-height: 1.2;
  margin-bottom: var(--space-sm);
}

.sport-feature p {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.65;
}

.culture-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-2xl);
  padding: var(--space-md);
  border: 1px solid rgba(11,29,81,0.08);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,0.72);
}

.culture-strip span,
.culture-strip strong {
  padding: 0.45rem 0.7rem;
  border-radius: var(--radius-full);
  font-size: var(--fs-xs);
  line-height: 1;
}

.culture-strip span {
  color: var(--color-text-secondary);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.culture-strip strong {
  color: var(--color-primary);
  background: rgba(11,29,81,0.06);
}

/* ---------- Home Impact ---------- */
.section--impact {
  background: #0a1738;
  color: var(--color-white);
  overflow: hidden;
}

.impact-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.8fr) minmax(0, 0.9fr);
  gap: var(--space-3xl);
  align-items: center;
}

.impact-media {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 24px 70px rgba(0,0,0,0.35);
}

.impact-media img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}

.section--impact .section-kicker,
.section--impact .impact-copy h2 {
  color: var(--color-white);
}

.section--impact .impact-copy p {
  color: rgba(255,255,255,0.72);
}

.impact-list {
  display: grid;
  gap: var(--space-md);
  margin-top: var(--space-xl);
}

.impact-list div {
  padding: var(--space-lg);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,0.05);
}

.impact-list strong,
.impact-list span {
  display: block;
}

.impact-list strong {
  color: var(--color-secondary-light);
  margin-bottom: var(--space-xs);
}

.impact-list span {
  color: rgba(255,255,255,0.72);
  font-size: var(--fs-small);
  line-height: 1.6;
}

/* ---------- European Pathway ---------- */
.european-pathway {
  background: var(--color-white);
}

.pathway-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.42fr);
  gap: var(--space-xl);
  align-items: stretch;
}

.pathway-steps {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-md);
}

.pathway-step {
  position: relative;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--space-xl);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: linear-gradient(180deg, var(--color-white) 0%, #f7f9fd 100%);
  transition: transform var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}

.pathway-step:hover {
  transform: translateY(-6px);
  border-color: rgba(197,164,78,0.42);
  box-shadow: var(--shadow-card-hover);
}

.pathway-step span {
  color: var(--color-secondary-dark);
  font-size: var(--fs-xs);
  font-weight: 900;
  letter-spacing: 0.08em;
}

.pathway-step h3 {
  color: var(--color-primary);
  font-size: var(--fs-h4);
  line-height: 1.2;
  margin: var(--space-lg) 0 var(--space-sm);
}

.pathway-step p {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.65;
}

.pathway-panel {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-lg);
  padding: var(--space-2xl);
  border-radius: var(--radius-md);
  background: var(--gradient-primary);
  color: var(--color-white);
  box-shadow: var(--shadow-xl);
}

.pathway-panel .section-kicker {
  color: var(--color-secondary-light);
  margin-bottom: 0;
}

.pathway-panel h3 {
  font-size: var(--fs-h3);
  line-height: 1.16;
  color: var(--color-white);
}

.pathway-panel p {
  color: rgba(255,255,255,0.72);
  font-size: var(--fs-small);
  line-height: 1.7;
}

.pathway-panel ul {
  display: grid;
  gap: var(--space-sm);
}

.pathway-panel li {
  position: relative;
  padding-left: 1.1rem;
  color: rgba(255,255,255,0.82);
  font-size: var(--fs-small);
  line-height: 1.55;
}

.pathway-panel li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.68em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-secondary-light);
}

.pathway-panel .btn {
  align-self: flex-start;
}

/* ---------- News Grid ---------- */
.newsroom {
  display: grid;
  gap: clamp(0.95rem, 2vw, 1.35rem);
}
.news-archive__header h2 {
  color: var(--color-primary);
  margin-bottom: var(--space-sm);
}
.news-archive__header p {
  color: var(--color-text-secondary);
  max-width: 660px;
  line-height: 1.5;
}

.news-archive__header p {
  margin-top: 0.16rem;
  font-size: 0.88rem;
}

.news-lead__card {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.9fr);
  background: linear-gradient(135deg, rgba(8, 20, 58, 0.98), rgba(11, 29, 81, 0.9));
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-premium);
  min-height: 460px;
}

.news-lead__card--link {
  color: inherit;
  text-decoration: none;
}

.news-lead__card--link:hover .news-lead__media img,
.news-lead__card--link:focus-visible .news-lead__media img {
  transform: scale(1.035);
}

.news-lead__card--link:focus-visible {
  outline: 3px solid rgba(229, 182, 49, 0.9);
  outline-offset: 4px;
}

.news-lead__media {
  min-height: 100%;
  position: relative;
  overflow: hidden;
}

.news-lead__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(7, 15, 43, 0.04) 0%, rgba(7, 15, 43, 0.42) 100%);
  pointer-events: none;
}

.news-lead__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.news-lead__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-md);
  padding: clamp(2rem, 3vw, 3rem);
  color: rgba(255, 255, 255, 0.9);
}

.news-lead__content .news-card__category {
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-secondary);
}

.news-lead__title {
  font-size: clamp(2rem, 3vw, 2.75rem);
  line-height: 1.12;
  color: var(--color-white);
}

  .news-lead__excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 1.05rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.86);
  }

.news-lead__copy {
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.7;
  max-width: 40rem;
}

.news-lead__meta {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  flex-wrap: wrap;
  margin-top: var(--space-sm);
}

.news-lead__meta .news-card__date {
  margin-top: 0;
  color: rgba(255, 255, 255, 0.72);
}

.news-lead__tag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border-radius: var(--radius-full);
  padding: 0.45rem 0.85rem;
  background: rgba(229, 182, 49, 0.14);
  color: var(--color-secondary);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.news-lead__read {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0.48rem 0.9rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.96);
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.news-archive {
  display: grid;
  gap: clamp(0.9rem, 2vw, 1.15rem);
}

.news-archive__header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: var(--space-lg);
  flex-wrap: wrap;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(0.9rem, 1.8vw, 1.2rem);
}

.news-filters {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  margin-bottom: 0;
}

.news-filter-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  min-height: 34px;
  padding: 0.38rem 0.62rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 999px;
  background: #fff;
  color: var(--color-primary);
  font: inherit;
  font-size: 0.76rem;
  font-weight: 900;
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}

.news-filter-chip span {
  min-width: 1.45rem;
  padding: 0.12rem 0.34rem;
  border-radius: 999px;
  background: rgba(9, 30, 82, 0.08);
  color: inherit;
  font-size: 0.7rem;
  text-align: center;
}

.news-filter-chip:hover,
.news-filter-chip:focus-visible {
  border-color: rgba(197, 164, 78, 0.5);
  transform: translateY(-1px);
  outline: none;
}

.news-filter-chip.is-active {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #fff;
}

.news-filter-chip.is-active span {
  background: rgba(255, 255, 255, 0.16);
}

.news-card {
  display: flex;
  flex-direction: column;
  background: var(--color-white);
  border-radius: var(--radius-lg);
  border: 1px solid rgba(9, 30, 82, 0.08);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.news-card--link {
  color: inherit;
  text-decoration: none;
}

.news-card:hover {
  box-shadow: var(--shadow-institutional-hover);
  border-color: rgba(197, 164, 78, 0.28);
  transform: translateY(-2px);
}

.news-card:focus-visible {
  outline: 3px solid rgba(197, 164, 78, 0.78);
  outline-offset: 4px;
}

.news-card__image {
  width: 100%;
  aspect-ratio: 16/10;
  background: var(--gradient-primary);
  position: relative;
  overflow: hidden;
}

.news-card__image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 54%, rgba(7,15,43,0.54) 100%);
  pointer-events: none;
}

.news-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.news-card:hover .news-card__image img {
  transform: scale(1.04);
}

.news-card__image--event img,
.news-lead__media.news-card__image--event img { object-position: 50% 42%; }
.news-card__image--governance img,
.news-lead__media.news-card__image--governance img { object-position: 50% 55%; }
.news-card__image--network img,
.news-lead__media.news-card__image--network img { object-position: 50% 42%; }
.news-card__image--action img,
.news-lead__media.news-card__image--action img { object-position: 50% 45%; }

.news-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 0.7rem;
  padding: var(--space-xl);
}

.news-card__eyebrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.news-card__category {
  display: inline-block;
  padding: 0.16rem 0.54rem;
  font-size: 0.68rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: var(--radius-full);
  background: rgba(11, 29, 81, 0.06);
  color: var(--color-primary);
  margin-bottom: 0;
}

.news-card__stamp {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.news-card__title {
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: var(--space-sm);
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.news-card__excerpt {
  font-size: var(--fs-small);
  color: var(--color-text-secondary);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.news-card__date {
  font-size: var(--fs-xs);
  color: var(--color-text-light);
  margin-top: var(--space-md);
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}

.news-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  margin-top: auto;
}

.news-card__footer .news-card__date {
  margin-top: 0;
}

.news-card__read {
  display: inline-flex;
  align-items: center;
  gap: 0.36rem;
  color: var(--color-primary);
  font-size: var(--fs-xs);
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.news-card__read::after {
  content: '';
  width: 0.44rem;
  height: 0.44rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.56;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.news-card:hover .news-card__read::after,
.news-card:focus-visible .news-card__read::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 0.86;
}

.news-card__content {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.65;
}

.news-article-shell {
  padding-top: calc(var(--nav-height-scrolled) + var(--space-2xl));
}

.news-article {
  display: grid;
  gap: clamp(1rem, 2.4vw, 1.5rem);
}

.news-article__back {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0.48rem 0.82rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow: var(--shadow-soft);
}

.news-article__back::before {
  content: '←';
  margin-right: 0.45rem;
}

.news-article__hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.58fr);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: stretch;
  padding: clamp(1.2rem, 3vw, 2.1rem);
  border: 1px solid rgba(11, 29, 81, 0.1);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 253, 0.94)),
    var(--color-white);
  box-shadow: var(--shadow-card);
}

.news-article__intro {
  display: grid;
  align-content: center;
  gap: 0.82rem;
}

.news-article__intro h1 {
  max-width: 800px;
  color: var(--color-primary);
  font-size: clamp(2.35rem, 5.4vw, 4.65rem);
  line-height: 0.98;
  letter-spacing: 0;
}

.news-article__intro > p {
  max-width: 700px;
  color: var(--color-text-secondary);
  font-size: clamp(1rem, 1.8vw, 1.16rem);
  line-height: 1.65;
}

.news-article__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.news-article__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.38rem 0.72rem;
  border-radius: var(--radius-full);
  background: rgba(11, 29, 81, 0.06);
  color: var(--color-text-secondary);
  font-size: 0.75rem;
  font-weight: 800;
}

.news-article__media {
  min-height: 320px;
  border-radius: calc(var(--radius-xl) - 0.3rem);
  overflow: hidden;
  background: var(--gradient-primary);
}

.news-article__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.news-article__notice {
  display: grid;
  gap: 0.35rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(197, 164, 78, 0.34);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(197, 164, 78, 0.11), rgba(255, 255, 255, 0.9));
}

.news-article__notice strong,
.news-article__panel span {
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.news-article__notice p {
  color: var(--color-text-secondary);
  line-height: 1.55;
}

.news-article__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  gap: clamp(1rem, 3vw, 1.5rem);
  align-items: start;
}

.news-article__content {
  padding: clamp(1.2rem, 3vw, 2rem);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  background: var(--color-white);
  box-shadow: var(--shadow-soft);
}

.news-article__content p {
  max-width: 780px;
  color: var(--color-text);
  font-size: clamp(1rem, 1.5vw, 1.1rem);
  line-height: 1.85;
}

.news-article__content p + p {
  margin-top: 1rem;
}

.news-article__aside {
  display: grid;
  gap: 0.9rem;
}

.news-article__panel {
  display: grid;
  gap: 0.8rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--shadow-soft);
}

.news-article__panel dl {
  display: grid;
  gap: 0.75rem;
}

.news-article__panel dl div {
  display: grid;
  gap: 0.14rem;
}

.news-article__panel dt {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.news-article__panel dd,
.news-article__panel a {
  color: var(--color-primary);
  font-weight: 750;
  line-height: 1.35;
}

.news-article__panel a {
  padding: 0.58rem 0;
  border-top: 1px solid var(--color-border);
}

.news-article__related {
  display: grid;
  gap: 1rem;
  margin-top: var(--space-lg);
}

.news-article__related-header h2 {
  color: var(--color-primary);
}

/* ---------- Events / Calendar ---------- */
.events-scroll {
  display: flex;
  gap: var(--space-lg);
  overflow-x: auto;
  padding-bottom: var(--space-md);
  scrollbar-width: thin;
  scrollbar-color: var(--color-secondary) transparent;
  scroll-snap-type: x mandatory;
}

.events-scroll::-webkit-scrollbar {
  height: 6px;
}

.events-scroll::-webkit-scrollbar-thumb {
  background: var(--color-secondary);
  border-radius: var(--radius-full);
}

.event-card {
  flex: 0 0 300px;
  scroll-snap-align: start;
  display: grid;
  align-content: start;
  min-height: 220px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 1.4rem;
  box-shadow: 0 2px 12px rgba(11, 29, 81, 0.05);
  transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease;
}

.event-card:hover {
  background: var(--color-white);
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(11, 29, 81, 0.1);
  border-color: rgba(11, 29, 81, 0.14);
}

.event-card__date {
  display: inline-block;
  width: fit-content;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-secondary-dark);
  margin-bottom: 0.75rem;
}

.event-card__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.competition-link {
  color: inherit;
  text-decoration: none;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
  transition: color var(--transition-fast), text-decoration-color var(--transition-fast);
}

.competition-link:hover,
.competition-link:focus-visible {
  color: var(--color-secondary-dark);
  text-decoration: underline;
}

.event-card__title .competition-link:hover,
.event-card__title .competition-link:focus-visible {
  color: var(--color-secondary);
}

.event-card__location {
  font-size: 0.82rem;
  color: var(--color-text-secondary);
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  line-height: 1.5;
  margin-bottom: 0.75rem;
}

.event-card__location svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  color: var(--color-text-light);
}

.event-card__type {
  display: inline-flex;
  width: fit-content;
  padding: 0.22rem 0.54rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-text-secondary);
  margin-top: 0.75rem;
}

.event-card__action {
  margin-top: auto;
  padding-top: 0.9rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--color-primary);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0;
  text-decoration: none;
}

.event-card__action::after {
  content: '';
  width: 0.4rem;
  height: 0.4rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.72;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.event-card__action:hover::after,
.event-card__action:focus-visible::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 1;
}

.members-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--space-lg);
}

.member-card {
  display: grid;
  gap: 0.9rem;
  padding: clamp(1rem, 2.2vw, 1.35rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.99), rgba(247,249,252,0.98)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.1), transparent 34%);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.06);
  transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
  position: relative;
  overflow: hidden;
}

.member-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: rgba(197, 164, 78, 0.9);
}

.member-card:hover {
  box-shadow: 0 18px 38px rgba(11, 29, 81, 0.1);
  transform: translateY(-2px);
  border-color: rgba(197, 164, 78, 0.3);
}

.member-card__top {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.9rem;
  align-items: start;
}

.member-card__flag {
  width: 56px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: linear-gradient(145deg, var(--color-primary), var(--color-primary-light));
  color: var(--color-white);
  font-size: 1.7rem;
  line-height: 1;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.12);
}

.member-card__top-copy {
  min-width: 0;
}

.member-network-board {
  display: grid;
  gap: var(--space-lg);
  padding: clamp(1rem, 2.2vw, 1.4rem);
  border-radius: var(--radius-xl);
  border: 1px solid rgba(9, 30, 82, 0.08);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.99), rgba(247,249,252,0.98)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.08), transparent 34%);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.06);
}

.member-network-board__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.75rem;
}

.member-network-chip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.8rem;
  align-items: center;
  padding: 0.9rem 1rem;
  border-radius: 16px;
  border: 1px solid rgba(9, 30, 82, 0.08);
  background: rgba(255,255,255,0.82);
  color: inherit;
  text-decoration: none;
  transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.member-network-chip:hover,
.member-network-chip:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 14px 32px rgba(11, 29, 81, 0.08);
  border-color: rgba(197, 164, 78, 0.28);
  outline: none;
}

.member-network-chip__flag {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(145deg, var(--color-primary), var(--color-primary-light));
  color: var(--color-white);
  font-size: 1.35rem;
  line-height: 1;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.12);
}

.member-network-chip__body {
  display: grid;
  gap: 0.14rem;
  min-width: 0;
}

.member-network-chip__body strong {
  color: var(--color-primary);
  font-size: var(--fs-body);
  line-height: 1.2;
}

.member-network-chip__body small {
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  line-height: 1.35;
}

.member-network-chip__meta {
  display: grid;
  justify-items: end;
  gap: 0.12rem;
}

.member-network-chip__meta small {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.member-network-chip__meta span {
  color: var(--color-primary);
  font-size: 0.9rem;
  font-weight: 850;
}


.member-card__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
  margin-bottom: 0.35rem;
}

.member-card__code {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.22rem 0.55rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-full);
  background: rgba(255,255,255,0.82);
  color: var(--color-primary);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.member-card__country {
  font-size: clamp(1.2rem, 2.6vw, 1.45rem);
  font-weight: 800;
  color: var(--color-primary);
  line-height: 1.15;
}

.member-card__country a:hover,
.member-card__country a:focus-visible {
  color: var(--color-secondary-dark);
  outline: none;
}

.member-card__federation {
  font-size: 0.9rem;
  color: var(--color-text-secondary);
  margin-top: 0.22rem;
  line-height: 1.45;
}

.member-card__badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.22rem 0.58rem;
  font-size: 0.66rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-radius: var(--radius-full);
  background: rgba(197, 164, 78, 0.12);
  color: var(--color-secondary-dark);
}

.member-card__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}

.member-card__stats span {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
  padding: 0.7rem 0.72rem;
  border: 1px solid rgba(9, 30, 82, 0.07);
  border-radius: 14px;
  background: rgba(244, 246, 250, 0.78);
}

.member-card__stats small {
  color: var(--color-text-light);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.member-card__stats strong {
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1.2;
}

.member-card__info {
  margin: 0;
  font-size: 0.92rem;
  color: var(--color-text-secondary);
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.member-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding-top: 0.15rem;
  flex-wrap: wrap;
}

.member-card__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem;
}

.member-card__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0.42rem 0.78rem;
  font-size: 0.75rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-primary);
  background: rgba(244, 246, 250, 0.82);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}

.member-card__link:hover,
.member-card__link:focus-visible {
  background: rgba(9, 30, 82, 0.06);
  color: var(--color-primary);
  border-color: rgba(197, 164, 78, 0.28);
  box-shadow: 0 8px 18px rgba(11, 29, 81, 0.08);
  outline: none;
}

.member-card__route {
  flex: 0 0 auto;
  min-height: 0;
  display: inline-flex;
  align-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--color-primary);
  font-size: 0.82rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  box-shadow: none;
  justify-content: flex-start;
}

.member-card__route::after {
  content: '';
  width: 0.44rem;
  height: 0.44rem;
  margin-left: 0.38rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.56;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.member-card__route:hover,
.member-card__route:focus-visible {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  color: var(--color-secondary-dark);
}

.member-card__route:hover::after,
.member-card__route:focus-visible::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 0.9;
}

.member-card__link--subtle {
  min-height: 32px;
  padding: 0.38rem 0.72rem;
}

.member-card__route-note {
  color: var(--color-text-light);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.athletes-directory__intro {
  display: grid;
  gap: 0.95rem;
  align-items: start;
}

.athletes-directory__intro-copy {
  display: grid;
  gap: 0.3rem;
}

.athletes-directory__intro-copy h2 {
  margin: 0;
}

.athletes-directory__intro-copy p {
  margin: 0;
  max-width: 58ch;
  color: var(--color-text-secondary);
}

.athletes-directory__intro-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.15rem;
}

.athletes-directory__intro-meta span,
.athletes-directory__intro-meta a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.38rem 0.64rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: rgba(248, 250, 253, 0.82);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.03em;
}

.athletes-directory__intro-meta a:hover,
.athletes-directory__intro-meta a:focus-visible {
  background: rgba(197, 164, 78, 0.12);
  border-color: rgba(197, 164, 78, 0.28);
  outline: none;
}

@media (max-width: 640px) {
  .member-network-board {
    padding: 0.92rem;
  }

  .member-network-board__grid {
    grid-template-columns: 1fr;
  }

  .member-network-chip {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .member-network-chip__meta {
    grid-column: 2;
    justify-items: start;
    grid-auto-flow: column;
    gap: 0.5rem;
  }

  .members-grid {
    gap: var(--space-md);
  }

  .member-card {
    padding: 0.92rem;
  }

  .member-card__top {
    gap: 0.75rem;
  }

  .member-card__flag {
    width: 50px;
    border-radius: 16px;
    font-size: 1.45rem;
  }

  .member-card__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .member-card__stats span:last-child {
    grid-column: 1 / -1;
  }

  .member-card__footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .member-card__links {
    justify-content: flex-start;
  }
}

/* ---------- Map placeholder ---------- */
.map-placeholder {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  padding: var(--space-4xl) var(--space-xl);
  text-align: center;
  border: 2px dashed var(--color-border);
  margin-top: var(--space-3xl);
}

.map-placeholder__icon {
  font-size: 3rem;
  margin-bottom: var(--space-md);
}

.map-placeholder__title {
  font-size: var(--fs-h3);
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: var(--space-sm);
}

.map-placeholder__text {
  font-size: var(--fs-small);
  color: var(--color-text-secondary);
}

/* ---------- Championships / Competitions ---------- */
.tabs {
  display: flex;
  gap: var(--space-xs);
  margin-bottom: var(--space-2xl);
  border-bottom: 2px solid var(--color-border);
  overflow-x: auto;
  scrollbar-width: none;
}

.tabs::-webkit-scrollbar { display: none; }

.tab {
  padding: 0.85rem 1.5rem;
  font-size: var(--fs-small);
  font-weight: 600;
  color: var(--color-text-secondary);
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: all var(--transition-fast);
  white-space: nowrap;
  cursor: pointer;
}

.tab.active {
  color: var(--color-primary);
  border-bottom-color: var(--color-secondary);
}

.tab:hover:not(.active) {
  color: var(--color-primary);
}

.tab:focus-visible {
  border-radius: var(--radius-sm);
}

.tab-content {
  display: none;
}

.tab-content.active {
  display: block;
  animation: fadeIn 0.3s ease;
}

/* Competition gateway */
.competition-gateway {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
  margin-bottom: var(--space-xl);
}

.competition-gateway__card {
  display: grid;
  align-content: space-between;
  min-height: 172px;
  padding: var(--space-xl);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(180deg, var(--color-white), var(--color-surface));
  color: inherit;
  box-shadow: var(--shadow-card);
  transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.competition-gateway__card:hover,
.competition-gateway__card:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(197, 164, 78, 0.44);
  box-shadow: var(--shadow-card-hover);
}

.competition-gateway__card span {
  color: var(--color-secondary-dark);
  font-size: var(--fs-xs);
  font-weight: 950;
  letter-spacing: 0.08em;
}

.competition-gateway__card strong {
  color: var(--color-primary);
  font-size: var(--fs-h4);
  line-height: 1.2;
}

.competition-gateway__card small {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.55;
}

.competition-tabs {
  margin-bottom: var(--space-2xl);
}

.competition-tabs .tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
}

.tab__icon {
  display: inline-grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
}

.tab__icon svg {
  width: 100%;
  height: 100%;
}

.competition-section-header {
  margin-bottom: var(--space-2xl);
}

/* Championship timeline */
.competition-spotlight {
  display: grid;
  grid-template-columns: minmax(320px, 0.96fr) minmax(0, 1.04fr);
  gap: var(--space-xl);
  margin-bottom: var(--space-2xl);
  background: linear-gradient(135deg, rgba(8, 20, 58, 0.98), rgba(11, 29, 81, 0.92));
  color: var(--color-white);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-premium);
}

.competition-spotlight__media {
  min-height: 100%;
  position: relative;
}

.competition-spotlight__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(7, 15, 43, 0.02) 0%, rgba(7, 15, 43, 0.42) 100%);
}

.competition-spotlight__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.competition-spotlight__badge {
  position: absolute;
  left: var(--space-lg);
  bottom: var(--space-lg);
  z-index: 1;
  display: grid;
  gap: 0.2rem;
  padding: var(--space-md);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--radius-md);
  background: rgba(7, 15, 43, 0.72);
  color: var(--color-white);
  backdrop-filter: blur(12px);
}

.competition-spotlight__badge strong {
  color: var(--color-secondary-light);
  font-size: var(--fs-small);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.competition-spotlight__badge span {
  color: rgba(255,255,255,0.76);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.competition-spotlight__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-md);
  padding: clamp(1.4rem, 2.6vw, 2.25rem);
}

.competition-spotlight__content .section-kicker {
  color: var(--color-secondary);
  margin-bottom: 0;
}

.competition-spotlight__content h2 {
  color: var(--color-white);
  font-size: clamp(2rem, 3vw, 2.75rem);
  line-height: 1.08;
}

.competition-spotlight__content p {
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.75;
}

.competition-spotlight__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.competition-spotlight__meta span {
  border-radius: var(--radius-full);
  padding: 0.55rem 0.9rem;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.88);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.competition-spotlight__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-sm);
}

.competition-family-directory {
  display: grid;
  gap: var(--space-md);
  margin-bottom: var(--space-2xl);
}

.competition-family-group {
  display: grid;
  gap: 0.75rem;
}

.competition-family-group__header {
  display: grid;
  gap: 0.2rem;
}

.competition-family-group__header h3 {
  color: var(--color-primary);
  font-size: clamp(1.02rem, 2vw, 1.24rem);
  line-height: 1.2;
}

.competition-family-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.9rem;
}

.competition-family-grid--featured {
  grid-template-columns: minmax(0, 1fr);
}

.competition-family-card {
  display: grid;
  gap: 0.8rem;
  padding: 1rem 1rem 0.95rem;
  border-radius: 12px;
  border: 1px solid rgba(9, 30, 82, 0.08);
  background: linear-gradient(180deg, rgba(255,255,255,0.99), rgba(248,250,253,0.98));
  box-shadow: 0 10px 28px rgba(11, 29, 81, 0.045);
}

.competition-family-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  flex-wrap: wrap;
}

.competition-family-card__eyebrow,
.competition-family-card__latest {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0.3rem 0.58rem;
  border-radius: 999px;
  font-size: 0.64rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.competition-family-card__eyebrow {
  background: rgba(11, 29, 81, 0.08);
  color: var(--color-primary);
}

.competition-family-card__latest {
  background: rgba(197, 164, 78, 0.14);
  color: var(--color-secondary-dark);
}

.competition-family-card h3 {
  color: var(--color-primary);
  font-size: clamp(1.42rem, 2vw, 1.78rem);
  line-height: 1.18;
}

.competition-family-card__title-link {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  color: inherit;
  text-decoration: none;
}

.competition-family-card__title-link::after {
  content: "";
  width: 0.48rem;
  height: 0.48rem;
  margin-top: 0.12rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.42;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.competition-family-card__title-link:hover::after,
.competition-family-card__title-link:focus-visible::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 0.8;
}

.competition-family-card__path {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.competition-family-card__path span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.38rem 0.68rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: 0.68rem;
  font-weight: 850;
}

.competition-family-card__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.competition-family-card__stats--compact span {
  flex: 0 0 auto;
}

.competition-family-card__stats span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.38rem 0.68rem;
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.045);
  border: 1px solid rgba(9, 30, 82, 0.07);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 800;
}

.competition-family-card__actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: auto;
  padding-top: 0.78rem;
  border-top: 1px solid rgba(9, 30, 82, 0.08);
}

.competition-family-card__secondary {
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 850;
}

.competition-family-card__secondary:hover,
.competition-family-card__secondary:focus-visible {
  color: var(--color-secondary-dark);
  outline: none;
}

.championship-archive {
  display: grid;
  gap: var(--space-lg);
  margin-bottom: var(--space-2xl);
}

.championship-archive__header {
  margin-bottom: 0;
}

.championship-archive__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-lg);
}

.championship-archive-card {
  display: grid;
  gap: 0.5rem;
  min-height: 172px;
  padding: 1rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.98)),
    radial-gradient(circle at top right, rgba(197,164,78,0.14), transparent 34%);
  box-shadow: var(--shadow-card);
  color: var(--color-primary);
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.championship-archive-card:hover,
.championship-archive-card:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(197, 164, 78, 0.38);
  box-shadow: var(--shadow-card-hover);
}

.championship-archive-card__year {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 34px;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.08);
  color: var(--color-primary);
  font-size: var(--fs-xs);
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.championship-archive-card strong {
  color: var(--color-primary);
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  line-height: 1.25;
}

.competition-surface-trail {
  color: var(--color-secondary-dark);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.4;
}

.championship-archive-card small {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.55;
}

.championship-archive-card__action {
  margin-top: auto;
  color: var(--color-secondary-dark);
  font-size: var(--fs-small);
  font-weight: 900;
}

.championship-timeline {
  position: relative;
  padding-left: var(--space-3xl);
}

.championship-timeline::before {
  content: '';
  position: absolute;
  left: 15px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--color-border);
}

.championship-item {
  position: relative;
  margin-bottom: var(--space-2xl);
  background: var(--color-white);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  box-shadow: var(--shadow-card);
  transition: all var(--transition-base);
}

.championship-item:hover {
  box-shadow: var(--shadow-card-hover);
}

.championship-item::before {
  content: '';
  position: absolute;
  left: calc(-1 * var(--space-3xl) + 9px);
  top: var(--space-xl);
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--color-secondary);
  border: 3px solid var(--color-white);
  box-shadow: var(--shadow-sm);
}

.championship-item--featured::before {
  width: 18px;
  height: 18px;
  left: calc(-1 * var(--space-3xl) + 7px);
  background: var(--color-primary);
}

.championship-item__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}

.championship-item__year {
  font-size: var(--fs-h3);
  font-weight: 800;
  color: var(--color-primary);
}

.championship-item__edition {
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.3rem 0.8rem;
  background: rgba(11, 29, 81, 0.06);
  color: var(--color-primary);
  border-radius: var(--radius-full);
}

.championship-item__title {
  color: var(--color-primary);
  font-size: var(--fs-h4);
  line-height: 1.2;
  margin-bottom: var(--space-sm);
}

.championship-item__title .competition-link {
  font-weight: inherit;
}

.championship-item__host {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: var(--fs-body);
  color: var(--color-text-secondary);
  margin-bottom: var(--space-sm);
}

.championship-item__host svg {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: var(--color-secondary-dark);
}

.championship-item__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: var(--space-md) 0 0;
}

.championship-item__pill {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.45rem 0.8rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 999px;
  background: rgba(9, 30, 82, 0.04);
  color: var(--color-primary);
  font-size: var(--fs-xs);
  font-weight: 800;
}

.championship-item__details {
  margin-top: var(--space-md);
  font-size: var(--fs-small);
  color: var(--color-text-secondary);
  line-height: 1.7;
}

.championship-item__standings {
  display: grid;
  gap: 0.65rem;
  margin-top: var(--space-lg);
}

.championship-item__standings-label {
  color: var(--color-secondary-dark);
  font-size: var(--fs-xs);
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.championship-item__standings-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.championship-item__standing {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.45rem 0.8rem;
  border-radius: 999px;
  background: rgba(197, 164, 78, 0.12);
  color: var(--color-primary);
  font-size: var(--fs-small);
  font-weight: 700;
}

.championship-item__participants {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-md);
}

.championship-item__flag {
  font-size: 1.5rem;
  transition: transform var(--transition-fast);
}

.championship-item__flag:hover {
  transform: scale(1.3);
}

.championship-item__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-lg);
}

/* ---------- Rankings Table ---------- */
.rankings-summary {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.8fr);
  gap: var(--space-xl);
  align-items: stretch;
  margin-bottom: var(--space-2xl);
}

.rankings-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-sm);
}

.rankings-table-wrapper {
  overflow-x: auto;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  background: var(--color-white);
}

.rankings-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--color-white);
}

.rankings-table th {
  background: var(--color-primary);
  color: var(--color-white);
  padding: 0.85rem 1rem;
  font-size: var(--fs-small);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: left;
  white-space: nowrap;
}

.rankings-table td {
  padding: 0.85rem 1rem;
  font-size: var(--fs-body);
  border-bottom: 1px solid var(--color-border);
}

.rankings-table tr:last-child td {
  border-bottom: none;
}

.rankings-table tr:hover td {
  background: var(--color-surface);
}

.rankings-table .rank {
  font-weight: 800;
  color: var(--color-primary);
  width: 60px;
}

.rankings-table .rank--gold { color: #C5A44E; }
.rankings-table .rank--silver { color: #8A8A8A; }
.rankings-table .rank--bronze { color: #CD7F32; }

.rankings-table .country-cell {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.rankings-placeholder {
  text-align: center;
  padding: var(--space-3xl) var(--space-xl);
  color: var(--color-text-light);
}

.rankings-placeholder__icon {
  font-size: 3rem;
  margin-bottom: var(--space-md);
  opacity: 0.4;
}

.rankings-placeholder__icon svg {
  width: 3rem;
  height: 3rem;
}

.rankings-system-section {
  position: relative;
  overflow: hidden;
  padding-top: clamp(1.4rem, 3vw, 2.3rem);
  background:
    radial-gradient(circle at 8% 0%, rgba(197, 164, 78, 0.16), transparent 30%),
    radial-gradient(circle at 92% 8%, rgba(52, 152, 219, 0.12), transparent 28%),
    linear-gradient(180deg, #FFFFFF 0%, #F6F8FC 46%, #EEF2F8 100%);
}

.rankings-system-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(11, 29, 81, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11, 29, 81, 0.04) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
  pointer-events: none;
}

.rankings-system-section .container {
  position: relative;
  z-index: 1;
}

.ranking-system {
  display: grid;
  gap: clamp(0.9rem, 1.5vw, 1.25rem);
}

.ranking-system > * {
  min-width: 0;
}

.ranking-dashboard {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 0.58fr);
  gap: 0.85rem;
  align-items: start;
}

.ranking-dashboard__hero,
.ranking-dashboard__aside {
  min-width: 0;
}

.ranking-dashboard__hero {
  display: grid;
  gap: var(--space-sm);
  padding: clamp(0.85rem, 1.45vw, 1.2rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    radial-gradient(circle at 95% 0%, rgba(197, 164, 78, 0.22), transparent 28%),
    linear-gradient(135deg, rgba(7, 15, 43, 0.98), rgba(11, 29, 81, 0.96) 58%, rgba(18, 40, 101, 0.95));
  color: var(--color-white);
  box-shadow: 0 20px 48px rgba(7, 15, 43, 0.16);
}

.ranking-dashboard__copy h2 {
  margin: 0 0 0.4rem;
  color: var(--color-white);
  font-size: clamp(1.55rem, 2.4vw, 2.05rem);
  line-height: 1.06;
}

.ranking-dashboard__copy p {
  max-width: 760px;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.42;
  font-size: 0.9rem;
}

.ranking-dashboard__links {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
}

.ranking-dashboard__overall-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
}

.ranking-dashboard__overall-card {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
  padding: 0.62rem 0.74rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.08);
  color: var(--color-white);
  text-decoration: none;
  transition: var(--transition);
}

.ranking-dashboard__overall-card:hover,
.ranking-dashboard__overall-card:focus-visible {
  border-color: rgba(197, 164, 78, 0.58);
  background: rgba(255, 255, 255, 0.13);
  transform: translateY(-1px);
}

.ranking-dashboard__overall-card small {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.ranking-dashboard__overall-card strong {
  color: var(--color-white);
  font-size: 0.92rem;
  line-height: 1.16;
}

.ranking-dashboard__overall-card span {
  color: #F3D982;
  font-size: 0.75rem;
  font-weight: 900;
}

.ranking-dashboard__overall-note {
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.ranking-dashboard__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0.62rem 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--color-white);
  font-size: 0.82rem;
  font-weight: 850;
  text-decoration: none;
  transition: var(--transition);
}

.ranking-dashboard__link:hover,
.ranking-dashboard__link:focus-visible {
  border-color: rgba(197, 164, 78, 0.62);
  background: rgba(255, 255, 255, 0.12);
  transform: translateY(-1px);
}

.ranking-dashboard__link--primary {
  border-color: rgba(197, 164, 78, 0.36);
  background: linear-gradient(135deg, rgba(197, 164, 78, 0.2), rgba(255, 255, 255, 0.08));
}

.ranking-dashboard__aside {
  display: grid;
  gap: 0.85rem;
}

.ranking-dashboard__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.ranking-dashboard__stats .stat {
  display: grid;
  align-content: center;
  min-height: 68px;
  padding: 0.72rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 30px rgba(11, 29, 81, 0.07);
}

.ranking-dashboard__stats .stat__number {
  color: var(--color-primary);
  font-size: clamp(1.45rem, 2vw, 1.9rem);
}

.ranking-dashboard__stats .stat__label {
  color: var(--color-text-light);
}

.ranking-spotlight {
  display: grid;
  gap: var(--space-sm);
  padding: clamp(0.85rem, 1.7vw, 1.1rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(245,248,252,0.98)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.16), transparent 28%);
  box-shadow: var(--shadow-card);
}

.ranking-spotlight__header {
  display: grid;
  gap: 0.2rem;
}

.ranking-spotlight__header strong,
.ranking-spotlight__name {
  color: var(--color-primary);
}

.ranking-spotlight__name {
  font-size: 1.18rem;
  font-weight: 950;
  line-height: 1.14;
  text-decoration: none;
}

.ranking-spotlight__name:hover,
.ranking-spotlight__name:focus-visible {
  color: var(--color-secondary-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ranking-spotlight__country .ranking-country {
  min-width: 0;
}

.ranking-spotlight__gender-leaders {
  display: grid;
  gap: var(--space-sm);
}

.ranking-spotlight__gender-leader {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-sm);
  padding: 0.72rem 0.8rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  color: var(--color-primary);
  text-decoration: none;
  transition: var(--transition);
}

.ranking-spotlight__gender-leader:hover,
.ranking-spotlight__gender-leader:focus-visible {
  border-color: rgba(197, 164, 78, 0.48);
  background: rgba(255, 250, 237, 0.82);
}

.ranking-spotlight__gender-leader span {
  display: inline-grid;
  place-items: center;
  min-width: 54px;
  min-height: 28px;
  padding: 0 0.5rem;
  border-radius: 999px;
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.ranking-spotlight__gender-leader strong {
  min-width: 0;
  font-size: 0.92rem;
  line-height: 1.2;
}

.ranking-spotlight__gender-leader small {
  color: var(--color-secondary-dark);
  font-size: 0.78rem;
  font-weight: 950;
  white-space: nowrap;
}

.ranking-spotlight__points {
  display: flex;
  align-items: end;
  gap: 0.4rem;
}

.ranking-spotlight__points strong {
  color: var(--color-primary);
  font-size: clamp(1.9rem, 3vw, 2.45rem);
  line-height: 1;
}

.ranking-spotlight__points span {
  color: var(--color-text-light);
  font-size: 0.76rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.ranking-spotlight__chips,
.ranking-spotlight__leaders {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.ranking-spotlight__chips span,
.ranking-spotlight__leader {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-primary);
  font-size: 0.76rem;
  font-weight: 850;
}

.ranking-spotlight__leader {
  gap: 0.45rem;
  text-decoration: none;
}

.ranking-spotlight__leader span {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  height: 26px;
  border-radius: var(--radius-sm);
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 0.72rem;
  font-weight: 900;
}

.ranking-spotlight__best .ranking-best-result {
  min-width: 0;
}

.athletes-directory {
  display: grid;
  gap: var(--space-2xl);
}

.athletes-directory__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.72fr);
  gap: var(--space-xl);
  align-items: start;
}

.athletes-directory__intro h2,
.athlete-group__header h3,
.athlete-directory-card__identity h3,
.athlete-directory-card__identity h3 a {
  color: var(--color-primary);
}

.athlete-filters {
  display: grid;
  gap: var(--space-md);
  padding: clamp(1rem, 2.2vw, 1.55rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.98)),
    radial-gradient(circle at 92% 0%, rgba(197,164,78,0.16), transparent 34%);
  box-shadow: var(--shadow-card);
}

.athlete-control-center__header,
.athlete-filter-primary,
.athlete-active-filters,
.athlete-club-readiness,
.athlete-group__country-title,
.athlete-group__country-stats,
.athlete-filters__search {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.athlete-control-center__header,
.athlete-filter-primary {
  justify-content: space-between;
  gap: var(--space-lg);
}

.compact-disclosure {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.82);
}

.compact-disclosure[open] {
  background: rgba(255, 255, 255, 0.96);
}

.compact-disclosure__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  padding: 0.78rem 0.9rem;
  cursor: pointer;
  list-style: none;
  font-weight: 850;
  color: var(--color-primary);
}

.compact-disclosure__summary::-webkit-details-marker {
  display: none;
}

.compact-disclosure__title {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.compact-disclosure__title::before {
  content: '+';
  display: inline-grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.08);
  color: var(--color-primary);
  font-size: 0.95rem;
  line-height: 1;
}

.compact-disclosure[open] .compact-disclosure__title::before {
  content: '−';
}

.compact-disclosure__meta {
  display: inline-flex;
  align-items: center;
  min-height: 1.8rem;
  padding: 0.32rem 0.68rem;
  border-radius: var(--radius-full);
  background: rgba(11, 29, 81, 0.06);
  color: var(--color-text-secondary);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.compact-disclosure__body {
  display: grid;
  gap: var(--space-md);
  padding: 0 0.9rem 0.9rem;
}

.compact-disclosure__actions {
  display: flex;
  justify-content: flex-start;
}

.athlete-control-center__header h3 {
  margin-top: 0.25rem;
  color: var(--color-primary);
  font-size: clamp(1.2rem, 1.7vw, 1.55rem);
}

.athlete-filter-reset {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: var(--radius-full);
  background: var(--color-white);
  color: var(--color-primary);
  font-weight: 900;
  padding: 0.62rem 0.9rem;
  cursor: pointer;
  transition: var(--transition);
}

.athlete-filter-reset:hover,
.athlete-filter-reset:focus-visible,
.athlete-country-chip:hover,
.athlete-country-chip:focus-visible,
.athlete-active-filter:hover,
.athlete-active-filter:focus-visible {
  border-color: rgba(197, 164, 78, 0.56);
  box-shadow: 0 10px 24px rgba(9, 30, 82, 0.1);
  transform: translateY(-1px);
}

.athlete-filter-reset svg {
  width: 17px;
  height: 17px;
}

.athlete-filter-primary {
  align-items: stretch;
}

.athlete-filter-primary .athlete-filters__search {
  flex: 1 1 440px;
}

.athlete-filter-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(70px, 1fr));
  gap: var(--space-sm);
  min-width: min(100%, 420px);
}

.athlete-filter-metrics span {
  display: grid;
  gap: 0.15rem;
  padding: 0.68rem 0.78rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.athlete-filter-metrics strong {
  color: var(--color-primary);
  font-size: 1.05rem;
  line-height: 1;
}

.athlete-filters__search {
  padding: 0.78rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-white);
}

.athlete-filters__search svg,
.athlete-directory-card__socials svg {
  width: 18px;
  height: 18px;
}

.athlete-filters__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--space-md);
}

.athlete-filters__grid--advanced {
  padding-top: var(--space-md);
  border-top: 1px solid rgba(9, 30, 82, 0.08);
}

.athlete-filters__grid label {
  display: grid;
  gap: 0.45rem;
  color: var(--color-primary);
  font-weight: 850;
}

.athlete-filters__grid label span,
.athlete-directory-card__meta span,
.athlete-directory-card__chips span,
.athlete-directory-card__muted {
  font-size: var(--fs-small);
}

.athlete-country-rail,
.athlete-active-filters {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  overflow: visible;
  padding-bottom: 0;
}

.athlete-country-chip,
.athlete-active-filter {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: var(--radius-full);
  background: var(--color-white);
  color: var(--color-primary);
  cursor: pointer;
  white-space: nowrap;
  transition: var(--transition);
}

.athlete-country-chip {
  justify-content: space-between;
  gap: var(--space-sm);
  min-width: max-content;
  padding: 0.65rem 0.75rem 0.65rem 0.95rem;
  font-weight: 900;
}

.athlete-country-chip strong {
  display: inline-grid;
  place-items: center;
  min-width: 1.8rem;
  height: 1.8rem;
  border-radius: 50%;
  background: var(--color-surface);
  color: var(--color-text-secondary);
  font-size: 0.78rem;
}

.athlete-country-chip.is-active {
  border-color: rgba(197, 164, 78, 0.62);
  background: var(--color-primary);
  color: var(--color-white);
}

.athlete-country-chip.is-active strong {
  background: var(--color-secondary);
  color: var(--color-primary);
}

.athlete-active-filters {
  align-items: center;
  min-height: 2.25rem;
}

.athlete-active-filters:empty,
.ranking-active-filters:empty {
  display: none;
}

.athlete-active-filters__empty {
  color: var(--color-text-light);
  font-size: var(--fs-small);
  font-weight: 800;
}

.athlete-active-filter {
  gap: 0.55rem;
  padding: 0.55rem 0.7rem 0.55rem 0.85rem;
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 850;
}

.athlete-active-filter span {
  display: inline-grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1;
}

.athlete-filter-field--soon {
  opacity: 0.72;
}

.athlete-filter-field--soon select {
  cursor: not-allowed;
}

.athlete-club-readiness {
  align-items: flex-start;
  padding: var(--space-md);
  border: 1px dashed rgba(197, 164, 78, 0.46);
  border-radius: var(--radius-lg);
  background: rgba(197, 164, 78, 0.08);
  color: var(--color-primary);
}

.athlete-club-readiness svg {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
}

.athlete-club-readiness div {
  display: grid;
  gap: 0.2rem;
}

.athlete-club-readiness span {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 750;
}

.athlete-filters__search input,
.athlete-filters__grid select {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--color-text);
  font: inherit;
  font-weight: 700;
  outline: none;
}

.athlete-results-toolbar,
.athlete-directory-card__footer,
.athlete-directory-card__socials,
.athlete-group__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.athlete-results-toolbar p,
.athlete-directory-card__meta span,
.athlete-directory-card__muted,
.athlete-directory-card__bio,
.athlete-directory-card__identity p {
  color: var(--color-text-secondary);
}

.athlete-results-toolbar {
  justify-content: flex-start;
}

.athlete-results-toolbar p {
  margin: 0;
  color: var(--color-primary);
  font-size: clamp(1rem, 1.35vw, 1.08rem);
  font-weight: 850;
}

.athlete-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--space-lg);
}

.athlete-card-grid--compact {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.athlete-directory-card {
  display: grid;
  gap: var(--space-md);
  padding: clamp(1rem, 2vw, 1.4rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,249,252,0.98));
  box-shadow: var(--shadow-card);
}

.athlete-directory-card__top {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-md);
  align-items: start;
}

.athlete-directory-card__avatar,
.athlete-directory-card__avatar.athlete-avatar--fallback {
  width: 78px;
  height: 78px;
}

.athlete-directory-card__title-row {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  flex-wrap: wrap;
}

.athlete-directory-card__bio {
  line-height: 1.55;
}

.athlete-verified-badge {
  display: inline-flex;
  align-items: center;
  border-radius: var(--radius-full);
  background: rgba(197, 164, 78, 0.16);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 900;
  padding: 0.35rem 0.65rem;
}

.athlete-directory-card__meta,
.athlete-directory-card__chips {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
}

.athlete-directory-card__chips span {
  border-radius: var(--radius-full);
  background: var(--color-surface);
  color: var(--color-primary);
  padding: 0.35rem 0.65rem;
}

.athlete-directory-card__socials a {
  display: inline-grid;
  place-items: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  background: var(--color-surface);
  color: var(--color-primary);
}

.athlete-group-list {
  display: grid;
  gap: var(--space-xl);
}

.athlete-group {
  display: grid;
  gap: var(--space-md);
}

.athlete-group__header {
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid var(--color-border);
}

.athlete-group__header h3 {
  margin: 0;
}

.athlete-group__header--country {
  align-items: center;
  padding: var(--space-lg);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.99), rgba(247,249,252,0.97)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.12), transparent 34%);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.06);
}

.athlete-group__country-title {
  align-items: center;
}

.athlete-group__header--organization {
  align-items: end;
}

.athlete-group__header--organization small {
  display: block;
  margin-top: 0.24rem;
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  font-weight: 700;
}

.athlete-group__header--organization > span {
  color: var(--color-text-light);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.athlete-group__country-title > strong {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: var(--color-white);
  box-shadow: inset 0 0 0 1px rgba(9, 30, 82, 0.08);
  font-size: 1.4rem;
}

.athlete-group__country-title p {
  display: flex;
  gap: 0.45rem;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 0.2rem;
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
}

.athlete-group__country-title p span {
  border-radius: var(--radius-full);
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-weight: 950;
  padding: 0.25rem 0.55rem;
}

.athlete-group__country-stats {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.athlete-group__country-stats span {
  border-radius: var(--radius-full);
  background: rgba(255,255,255,0.9);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 850;
  padding: 0.45rem 0.7rem;
}

.athlete-group__country-stats a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.2rem;
  padding: 0.45rem 0.78rem;
  border-radius: var(--radius-full);
  background: rgba(9, 30, 82, 0.05);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: var(--fs-small);
  font-weight: 900;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}

.athlete-group__country-stats a:hover,
.athlete-group__country-stats a:focus-visible {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
  transform: translateY(-1px);
  outline: none;
}

.ranking-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
  gap: var(--space-xl);
  align-items: stretch;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  background:
    radial-gradient(circle at 88% 0%, rgba(197, 164, 78, 0.32), transparent 32%),
    linear-gradient(135deg, rgba(7, 15, 43, 0.98), rgba(11, 29, 81, 0.92) 54%, rgba(19, 43, 110, 0.95));
  color: var(--color-white);
  box-shadow: 0 24px 60px rgba(7, 15, 43, 0.18);
}

.ranking-intro__copy {
  min-width: 0;
}

.ranking-intro__copy h2 {
  margin: var(--space-sm) 0;
  color: var(--color-white);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.08;
}

.ranking-intro__copy p {
  max-width: 760px;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.75;
}

.ranking-status,
.section-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--color-secondary);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ranking-intro__stats {
  align-self: stretch;
}

.ranking-intro__stats .stat {
  display: grid;
  align-content: center;
  min-height: 104px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  box-shadow: none;
  backdrop-filter: blur(14px);
}

.ranking-intro__stats .stat__number {
  color: var(--color-white);
  font-size: clamp(1.55rem, 3vw, 2.25rem);
  overflow-wrap: normal;
}

.ranking-intro__stats .stat__label {
  color: rgba(255, 255, 255, 0.64);
}

.ranking-event-deck {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
  padding-top: var(--space-sm);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ranking-event-card {
  display: grid;
  gap: 0.25rem;
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
}

.ranking-event-card span {
  width: fit-content;
  padding: 0.22rem 0.5rem;
  border-radius: var(--radius-sm);
  background: rgba(197, 164, 78, 0.18);
  color: #F3D982;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ranking-event-card strong {
  color: var(--color-white);
  font-size: 0.95rem;
  line-height: 1.25;
}

.ranking-event-card small {
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.78rem;
  line-height: 1.4;
}

.ranking-rule-strip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.ranking-rule-strip span {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  min-height: 36px;
  padding: 0.5rem 0.82rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 780;
  white-space: normal;
  box-shadow: 0 8px 20px rgba(9, 30, 82, 0.05);
}

.ranking-mode-guide {
  display: grid;
  gap: var(--space-lg);
  margin-top: var(--space-lg);
  margin-bottom: var(--space-xl);
  padding: clamp(1.2rem, 2.8vw, 1.7rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.98)),
    radial-gradient(circle at top right, rgba(197,164,78,0.12), transparent 35%);
  box-shadow: var(--shadow-card);
}

.ranking-mode-guide__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.ranking-mode-guide__header h3 {
  margin-top: 0.3rem;
  color: var(--color-primary);
  font-size: clamp(1.2rem, 2vw, 1.55rem);
}

.ranking-mode-guide__header p {
  max-width: 360px;
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 850;
  line-height: 1.6;
}

.ranking-mode-guide__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-md);
}

.ranking-mode-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  min-height: 100%;
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  border: 1px solid rgba(9, 30, 82, 0.08);
  background: rgba(255,255,255,0.9);
  color: inherit;
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}

.ranking-mode-card:hover,
.ranking-mode-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: var(--shadow-card-hover);
  border-color: rgba(197, 164, 78, 0.34);
}

.ranking-mode-card.is-active {
  border-color: rgba(11, 29, 81, 0.24);
  background:
    linear-gradient(180deg, rgba(11, 29, 81, 0.04), rgba(197, 164, 78, 0.08)),
    var(--color-white);
  box-shadow: var(--shadow-card-hover);
}

.ranking-mode-card__eyebrow {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ranking-mode-card strong {
  color: var(--color-primary);
  font-size: var(--fs-h5);
  line-height: 1.2;
}

.ranking-mode-card p {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.65;
}

.ranking-mode-card__cta {
  margin-top: auto;
  color: var(--color-secondary-dark);
  font-size: var(--fs-xs);
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ranking-filters {
  gap: var(--space-md);
  padding: clamp(0.9rem, 2vw, 1.25rem);
}

.ranking-filter-primary {
  align-items: stretch;
}

.ranking-filters__grid--inline {
  align-items: end;
}

.ranking-filters__action {
  width: 100%;
  min-height: 46px;
  justify-content: center;
}

.ranking-filter-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-sm);
}

.ranking-filters__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ranking-active-filters {
  min-height: 2rem;
}

.ranking-active-filters .athlete-active-filter[disabled] {
  border-color: rgba(197, 164, 78, 0.34);
  background: linear-gradient(135deg, rgba(11, 29, 81, 0.95), rgba(24, 50, 119, 0.92));
  color: var(--color-white);
  cursor: default;
  box-shadow: 0 12px 26px rgba(11, 29, 81, 0.12);
}

.ranking-active-filters .athlete-active-filter[disabled]:hover,
.ranking-active-filters .athlete-active-filter[disabled]:focus-visible {
  transform: none;
  border-color: rgba(197, 164, 78, 0.34);
  box-shadow: 0 12px 26px rgba(11, 29, 81, 0.12);
}

.ranking-active-filters .athlete-active-filter:not([disabled]) span {
  background: rgba(9, 30, 82, 0.08);
}

.ranking-tabs {
  display: flex;
  gap: 0.55rem;
  position: sticky;
  top: calc(var(--nav-height-scrolled) + 12px);
  z-index: 12;
  overflow-x: auto;
  padding: 0.65rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 14px 34px rgba(11, 29, 81, 0.08);
  backdrop-filter: blur(18px);
  scrollbar-width: none;
  scroll-snap-type: x proximity;
}

.ranking-tabs::-webkit-scrollbar {
  display: none;
}

.ranking-tabs .tab {
  display: inline-flex;
  align-items: center;
  gap: 0.58rem;
  flex: 0 0 auto;
  min-width: max-content;
  margin-bottom: 0;
  padding: 0.82rem 1rem;
  border: 1px solid rgba(9, 30, 82, 0.06);
  border-radius: 999px;
  background: rgba(246, 248, 252, 0.92);
  text-align: left;
  white-space: nowrap;
  scroll-snap-align: center;
}

.ranking-tab__text {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.ranking-tabs .tab.active {
  border-color: rgba(197, 164, 78, 0.34);
  background: linear-gradient(135deg, rgba(11, 29, 81, 0.98), rgba(19, 43, 110, 0.96));
  color: var(--color-white);
  box-shadow: 0 12px 26px rgba(11, 29, 81, 0.16);
}

.ranking-tabs .tab:hover:not(.active) {
  border-color: rgba(9, 30, 82, 0.1);
  background: rgba(11, 29, 81, 0.04);
}

.ranking-tab__code {
  display: inline-grid;
  place-items: center;
  min-width: 2.15rem;
  height: 2rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.08);
  font-size: 0.88rem;
  font-weight: 900;
  letter-spacing: 0.03em;
}

.ranking-tabs .tab.active .ranking-tab__code {
  background: rgba(255, 255, 255, 0.14);
}

.ranking-tab__label {
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1.2;
  opacity: 0.84;
}

.ranking-tab__hint {
  color: var(--color-text-light);
  font-size: 0.64rem;
  font-weight: 850;
  line-height: 1.1;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.ranking-tabs .tab.active .ranking-tab__hint {
  color: rgba(255, 255, 255, 0.72);
}

.ranking-panel-shell {
  display: grid;
  gap: var(--space-md);
}

.ranking-tabs-mobile {
  display: none;
  margin-bottom: 0.82rem;
}

.ranking-overall-switch-mobile {
  display: none;
  margin-bottom: 0.78rem;
}

.ranking-tabs-mobile__field {
  display: grid;
  gap: 0.28rem;
}

.ranking-tabs-mobile__label {
  color: var(--color-text-light);
  font-size: 0.62rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ranking-tabs-mobile__field select {
  width: 100%;
  min-height: 42px;
  padding: 0 2.2rem 0 0.9rem;
  appearance: none;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 12px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 249, 252, 0.95));
  background-image:
    linear-gradient(45deg, transparent 50%, currentColor 50%),
    linear-gradient(135deg, currentColor 50%, transparent 50%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 249, 252, 0.95));
  background-position:
    calc(100% - 18px) 52%,
    calc(100% - 13px) 52%,
    0 0;
  background-size:
    5px 5px,
    5px 5px,
    auto;
  background-repeat: no-repeat;
  color: var(--color-primary);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(11, 29, 81, 0.06);
}

.ranking-tabs-mobile__field select:focus-visible {
  outline: 3px solid rgba(198, 162, 71, 0.34);
  outline-offset: 3px;
}

.ranking-overall-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  width: fit-content;
  max-width: 100%;
  padding: 0.35rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 10px 26px rgba(11, 29, 81, 0.06);
}

.ranking-overall-switch__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0.55rem 0.95rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--color-text-secondary);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 850;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}

.ranking-overall-switch__button:hover,
.ranking-overall-switch__button:focus-visible {
  background: rgba(11, 29, 81, 0.06);
  color: var(--color-primary);
}

.ranking-overall-switch__button.is-active {
  background: linear-gradient(135deg, rgba(11, 29, 81, 0.98), rgba(19, 43, 110, 0.96));
  color: var(--color-white);
  box-shadow: 0 8px 20px rgba(11, 29, 81, 0.14);
}

.ranking-discipline-header {
  display: flex;
  justify-content: space-between;
  gap: var(--space-lg);
  align-items: flex-start;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.95), rgba(246, 248, 252, 0.9)),
    radial-gradient(circle at top right, rgba(197, 164, 78, 0.16), transparent 28%);
  box-shadow: 0 12px 30px rgba(11, 29, 81, 0.06);
}

.ranking-discipline-header h3 {
  margin: var(--space-xs) 0;
  color: var(--color-primary);
  font-size: var(--fs-h4);
}

.ranking-discipline-header p {
  max-width: 820px;
  color: var(--color-text-secondary);
  line-height: 1.62;
}

.ranking-discipline-header__meta {
  flex-shrink: 0;
  min-width: 120px;
  padding: 0.88rem 1rem;
  border: 1px solid rgba(197, 164, 78, 0.24);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(197, 164, 78, 0.16), rgba(255, 255, 255, 0.8));
  text-align: center;
}

.ranking-discipline-header__meta strong {
  display: block;
  color: var(--color-primary);
  font-size: var(--fs-h4);
  line-height: 1;
}

.ranking-discipline-header__meta span {
  color: var(--color-text-light);
  font-size: var(--fs-small);
  font-weight: 700;
}

.ranking-top-strip {
  display: grid;
  gap: var(--space-sm);
}

.ranking-event-standings {
  display: grid;
  gap: var(--space-md);
}

.ranking-event-standings__header h4 {
  color: var(--color-primary);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
}

.ranking-event-standings__header p {
  max-width: 760px;
  color: var(--color-text-secondary);
  line-height: 1.7;
}

.ranking-event-standings__grid {
  display: grid;
  gap: var(--space-md);
}

.ranking-event-standings-card {
  display: grid;
  gap: var(--space-md);
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(11, 29, 81, 0.04), rgba(255, 255, 255, 0.98) 22%),
    var(--color-white);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.06);
}

.ranking-event-standings-card__top,
.ranking-event-standings-card__facts {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.ranking-event-standings-card__top h5 {
  margin-top: 0.25rem;
  color: var(--color-primary);
  font-size: clamp(1.05rem, 2vw, 1.25rem);
}

.ranking-event-standings-card__meta {
  min-width: 110px;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(197, 164, 78, 0.24);
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(197, 164, 78, 0.16), rgba(255, 255, 255, 0.84));
  text-align: center;
}

.ranking-event-standings-card__meta strong {
  display: block;
  color: var(--color-primary);
  font-size: 1.2rem;
  line-height: 1;
}

.ranking-event-standings-card__meta span,
.ranking-event-standings-card__facts span,
.ranking-event-standings-card__note,
.ranking-event-standings-mobile-card__roster small,
.ranking-event-standings-mobile-card__points span {
  color: var(--color-text-secondary);
  font-size: 0.84rem;
  line-height: 1.55;
}

.ranking-event-standings-card__facts {
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid rgba(9, 30, 82, 0.08);
}

.ranking-event-standings-card__table-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 8px;
  -webkit-overflow-scrolling: touch;
}

.ranking-event-standings-mobile {
  display: none;
}

.ranking-event-standings-table {
  min-width: 980px;
}

.ranking-event-standings-mobile-card {
  display: grid;
  gap: 0.7rem;
  padding: 0.9rem 0.95rem;
  border-bottom: 1px solid rgba(9, 30, 82, 0.08);
  background: rgba(255, 255, 255, 0.96);
}

.ranking-event-standings-mobile-card:last-child {
  border-bottom: 0;
}

.ranking-event-standings-mobile-card__top {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.55rem;
  align-items: start;
}

.ranking-event-standings-mobile-card__top strong {
  display: block;
  margin-bottom: 0.2rem;
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1.2;
}

.ranking-event-standings-mobile-card__points {
  display: grid;
  grid-column: 3;
  justify-items: end;
  align-self: start;
  gap: 0.2rem;
  text-align: right;
}

.ranking-event-standings-mobile-card__points strong {
  margin-bottom: 0;
  color: var(--color-primary);
  font-size: 1.02rem;
  line-height: 1.1;
}

.ranking-event-standings-mobile-card__roster {
  display: grid;
  gap: 0.22rem;
}

.ranking-event-standings-mobile-card .placement-athletes {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.ranking-country--compact {
  gap: 0.12rem;
}

.ranking-country--compact .ranking-country__codes {
  gap: 0.18rem;
}

.ranking-country--compact .ranking-country__code {
  min-width: 1.7rem;
  min-height: 1.7rem;
  padding-inline: 0.35rem;
  font-size: 0.66rem;
}

.ranking-country--compact strong {
  font-size: 0.92rem;
}

.ranking-country--compact small {
  display: block;
  font-size: 0.72rem;
  line-height: 1.2;
}

.placement-athletes--compact {
  display: inline;
  line-height: 1.35;
}

.placement-athletes__summary,
.placement-athletes__full {
  min-width: 0;
  overflow-wrap: anywhere;
}

.placement-athletes__toggle {
  display: inline-flex;
  align-items: center;
  margin-left: 0.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--color-text-light);
  font: inherit;
  font-weight: 850;
  white-space: nowrap;
  cursor: pointer;
}

.placement-athletes__toggle:hover,
.placement-athletes__toggle:focus-visible {
  color: var(--color-primary);
  outline: none;
  text-decoration: underline;
}

.placement-athletes.is-expanded .placement-athletes__full {
  display: inline;
}

.ranking-top-strip__header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.ranking-top-strip__header h4 {
  color: var(--color-primary);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
}

.ranking-top-strip__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.ranking-top-card {
  position: relative;
  display: grid;
  gap: var(--space-sm);
  min-width: 0;
  padding: 1rem;
  overflow: hidden;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 30px rgba(11, 29, 81, 0.06);
}

.ranking-top-card--1 {
  background:
    linear-gradient(135deg, rgba(197, 164, 78, 0.14), rgba(255, 255, 255, 0.96) 42%),
    var(--color-white);
  box-shadow: 0 20px 46px rgba(11, 29, 81, 0.1);
}

.ranking-top-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--color-secondary), #3498DB);
}

.ranking-top-card__body {
  display: grid;
  gap: 0.28rem;
  min-width: 0;
}

.ranking-top-card__body a {
  color: var(--color-primary);
  font-size: 0.98rem;
  font-weight: 950;
  line-height: 1.2;
}

.ranking-top-card__body a:hover,
.ranking-top-card__body a:focus-visible {
  color: var(--color-secondary-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ranking-top-card__body p {
  margin: 0;
}

.ranking-top-card__body .ranking-country {
  min-width: 0;
}

.ranking-top-card__points {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  color: var(--color-primary);
}

.ranking-top-card__points strong {
  font-size: 1.35rem;
  line-height: 1;
}

.ranking-top-card__points span,
.ranking-top-card__best small {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.ranking-top-card__best {
  display: grid;
  gap: 0.18rem;
  padding-top: var(--space-sm);
  border-top: 1px solid rgba(9, 30, 82, 0.08);
}

.ranking-top-card__best span {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.4;
}

.ranking-table-wrapper {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: 0 18px 44px rgba(11, 29, 81, 0.08);
}

.ranking-mobile-list {
  display: none;
}

.ranking-table {
  min-width: 940px;
}

.ranking-table--nations {
  min-width: 1120px;
}

.ranking-table--nations .ranking-country {
  min-width: 0;
}

.ranking-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));
  font-size: 0.74rem;
}

.ranking-table td {
  vertical-align: middle;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.ranking-row td {
  transition: background var(--transition-fast), box-shadow var(--transition-fast);
}

.ranking-row--podium td {
  background: linear-gradient(90deg, rgba(197, 164, 78, 0.08), rgba(255, 255, 255, 0.98) 36%);
}

.ranking-row--1 td:first-child {
  box-shadow: inset 4px 0 0 var(--color-secondary);
}

.ranking-row--2 td:first-child {
  box-shadow: inset 4px 0 0 #A7ADBA;
}

.ranking-row--3 td:first-child {
  box-shadow: inset 4px 0 0 #CD7F32;
}

.ranking-athlete {
  display: grid;
  gap: 0.2rem;
}

.ranking-athlete__name {
  color: var(--color-primary);
  font-weight: 800;
}

.ranking-athlete__meta,
.ranking-best-result small,
.ranking-country small {
  display: block;
  color: var(--color-text-light);
  font-size: 0.78rem;
  line-height: 1.35;
}

.ranking-country {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  min-width: 220px;
}

.ranking-country-link {
  display: inline-flex;
  color: inherit;
  text-decoration: none;
  border-radius: var(--radius-md);
  transition: color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}

.ranking-country-link:hover,
.ranking-country-link:focus-visible {
  color: var(--color-primary);
  background: rgba(197, 164, 78, 0.08);
  box-shadow: 0 0 0 6px rgba(197, 164, 78, 0.08);
  outline: none;
}

.ranking-country__codes {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.ranking-country__code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 28px;
  border: 1px solid rgba(9, 30, 82, 0.12);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.ranking-points {
  color: var(--color-primary);
  font-size: 1.05rem;
}

.ranking-points-cell {
  display: grid;
  gap: 0.38rem;
  min-width: 92px;
}

.ranking-points-cell small,
.ranking-table__events small {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.ranking-table__events strong {
  display: block;
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1;
}

.ranking-points-bar {
  display: block;
  width: 100%;
  height: 6px;
  overflow: hidden;
  border-radius: var(--radius-full);
  background: rgba(11, 29, 81, 0.08);
}

.ranking-points-bar::before {
  content: '';
  display: block;
  width: var(--ranking-points-share, 0%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--color-secondary), #3498DB);
}

.ranking-mobile-card {
  display: grid;
  gap: var(--space-md);
  padding: var(--space-lg);
  border-bottom: 1px solid rgba(9, 30, 82, 0.08);
  background: rgba(255, 255, 255, 0.94);
}

.ranking-mobile-card:last-child {
  border-bottom: 0;
}

.ranking-mobile-card--podium {
  background: linear-gradient(135deg, rgba(197, 164, 78, 0.08), rgba(255, 255, 255, 0.97) 38%);
}

.ranking-mobile-card__top,
.ranking-mobile-card__meta {
  display: grid;
  gap: var(--space-sm);
}

.ranking-mobile-card__top {
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
}

.ranking-mobile-card__points {
  display: grid;
  justify-items: end;
  gap: 0.12rem;
  color: var(--color-primary);
}

.ranking-mobile-card__points strong {
  font-size: 1.2rem;
  line-height: 1;
}

.ranking-mobile-card__points span,
.ranking-mobile-card__meta small,
.ranking-mobile-card__result small {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ranking-mobile-card__meta {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}

.ranking-mobile-card__meta strong {
  color: var(--color-primary);
  font-size: 1rem;
}

.ranking-mobile-card--nation {
  gap: 0.82rem;
}

.ranking-mobile-card--nation .ranking-athlete {
  gap: 0.14rem;
}

.ranking-mobile-card--nation .ranking-athlete__meta {
  font-size: 0.72rem;
}

.ranking-mobile-card--nation .ranking-mobile-card__meta {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ranking-mobile-card--nation .ranking-mobile-card__meta > div {
  min-width: 0;
  padding: 0.68rem 0.72rem;
  border-radius: 12px;
  background: rgba(244, 246, 250, 0.74);
  border: 1px solid rgba(9, 30, 82, 0.06);
}

.ranking-mobile-card--nation .ranking-mobile-card__result {
  gap: 0.14rem;
}

.ranking-mobile-card--nation .ranking-best-result {
  min-width: 0;
  gap: 0.1rem;
}

.ranking-mobile-card--nation .ranking-best-result strong {
  font-size: 0.96rem;
  line-height: 1.34;
}

.ranking-mobile-card--nation .ranking-best-result small {
  font-size: 0.74rem;
}

.ranking-mobile-card__meta .ranking-country {
  min-width: 0;
}

.ranking-mobile-card__result {
  display: grid;
  gap: 0.22rem;
}

.ranking-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  margin-top: 1.15rem;
  flex-wrap: wrap;
}

.ranking-pagination__pages {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.ranking-pagination__button {
  min-width: 2.6rem;
  min-height: 2.6rem;
  padding: 0.52rem 0.88rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.95);
  color: var(--color-primary);
  font: inherit;
  font-size: 0.84rem;
  font-weight: 800;
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.ranking-pagination__button:hover:not(:disabled),
.ranking-pagination__button:focus-visible:not(:disabled) {
  background: rgba(9, 30, 82, 0.05);
  border-color: rgba(9, 30, 82, 0.22);
  outline: none;
}

.ranking-pagination__button.is-active {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}

.ranking-pagination__button:disabled {
  opacity: 0.45;
  cursor: default;
}

.ranking-best-result {
  display: grid;
  gap: 0.18rem;
  min-width: 190px;
  color: var(--color-text-primary);
  font-weight: 700;
}

.ranking-rules-section,
.ranking-context,
.ranking-placements-section {
  display: grid;
  gap: var(--space-lg);
  margin-top: var(--space-lg);
}

.ranking-secondary-block {
  overflow: hidden;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 30px rgba(11, 29, 81, 0.06);
}

.ranking-secondary-block__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: clamp(1rem, 2vw, 1.35rem);
  cursor: pointer;
  list-style: none;
}

.ranking-secondary-block__summary::-webkit-details-marker {
  display: none;
}

.ranking-secondary-block__summary h2,
.ranking-secondary-block__summary h4 {
  margin: 0.28rem 0 0.2rem;
  color: var(--color-primary);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
}

.ranking-secondary-block__summary p {
  color: var(--color-text-secondary);
  line-height: 1.58;
}

.ranking-secondary-block__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0.55rem 0.8rem;
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-primary);
  font-size: 0.76rem;
  font-weight: 900;
  white-space: nowrap;
}

.ranking-secondary-block[open] .ranking-secondary-block__toggle {
  background: rgba(197, 164, 78, 0.16);
}

@media (max-width: 1080px) {
  .ranking-dashboard {
    grid-template-columns: 1fr;
  }

  .ranking-mode-guide__grid,
  .ranking-dashboard__stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .ranking-dashboard__overall-nav,
  .ranking-event-deck,
  .ranking-top-strip__grid {
    grid-template-columns: 1fr 1fr;
  }

  .event-hub-standings-card .ranking-event-standings-mobile {
    display: grid;
  }

  .event-hub-standings-card .ranking-event-standings-table {
    display: none;
  }
}

@media (max-width: 768px) {
  .ranking-mode-guide__grid {
    grid-template-columns: 1fr 1fr;
  }

  .ranking-mode-guide__header {
    align-items: flex-start;
  }

  .ranking-mode-guide__header p {
    max-width: none;
  }

  .ranking-dashboard__stats,
  .ranking-dashboard__overall-nav,
  .ranking-event-deck,
  .ranking-top-strip__grid {
    grid-template-columns: 1fr;
  }

  .ranking-dashboard__links {
    flex-direction: column;
  }

  .ranking-dashboard__link {
    width: 100%;
    justify-content: flex-start;
  }

  .ranking-tabs {
    position: static;
    padding: 0.55rem;
  }

  .ranking-tabs .tab {
    padding: 0.74rem 0.9rem;
  }

  .ranking-discipline-header,
  .ranking-secondary-block__summary,
  .ranking-top-card,
  .ranking-event-standings-card__top,
  .ranking-event-standings-card__facts {
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: flex-start;
  }

  .ranking-discipline-header__meta,
  .ranking-secondary-block__toggle,
  .ranking-event-standings-card__meta {
    width: 100%;
  }

  .ranking-top-card__points {
    width: 100%;
  }

  .ranking-filters__grid {
    grid-template-columns: 1fr;
  }

  .ranking-overall-switch {
    width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .ranking-overall-switch::-webkit-scrollbar {
    display: none;
  }

  .ranking-overall-switch__button {
    flex: 1 0 auto;
  }

  .ranking-pagination {
    align-items: stretch;
  }

  .ranking-pagination__button {
    flex: 1 1 auto;
    justify-content: center;
  }

  .ranking-pagination__pages {
    width: 100%;
  }
}

/* ---------- Competitions Router Redesign ---------- */
.page-hero--competitions .page-hero__content {
  margin-inline: auto;
  text-align: center;
}

.page-hero--competitions .competitions-hero__routes {
  justify-content: center;
}

.competition-family-directory--router {
  gap: clamp(1rem, 2vw, 1.35rem);
  margin-bottom: clamp(1.2rem, 3vw, 2rem);
}

.competition-directory-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1rem, 2.4vw, 1.5rem);
  align-items: end;
  padding-bottom: clamp(0.9rem, 2vw, 1.15rem);
  border-bottom: 1px solid rgba(9, 30, 82, 0.08);
}

.competition-directory-hero h2,
.competitions-calendar-strip__head h2 {
  margin: 0.18rem 0 0;
  color: var(--color-primary);
  font-size: clamp(2rem, 4vw, 4.2rem);
  line-height: 0.95;
  letter-spacing: 0;
}

.competition-directory-hero p,
.competitions-calendar-strip__head p {
  max-width: 680px;
  margin: 0.65rem 0 0;
  color: var(--color-text-secondary);
  font-size: clamp(1rem, 1.5vw, 1.14rem);
  line-height: 1.5;
}

.competition-directory-hero__calendar {
  display: grid;
  gap: 0.18rem;
  min-width: 190px;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-primary);
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(8, 24, 62, 0.045);
}

.competition-directory-hero__calendar span {
  color: var(--color-secondary-dark);
  font-size: 0.68rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.competition-directory-hero__calendar strong {
  color: var(--color-primary);
  font-size: 1.02rem;
  line-height: 1.2;
}

.competition-line-list {
  display: grid;
  gap: 0.65rem;
}

.competition-family-card--line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem 1rem;
  align-items: center;
  padding: clamp(0.9rem, 2vw, 1.1rem);
  border-radius: 10px;
  border-color: rgba(9, 30, 82, 0.1);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 253, 0.94));
  box-shadow: none;
}

.competition-family-card--line.competition-family-card--flagship {
  border-left: 3px solid var(--color-secondary);
}

.competition-family-card--line .competition-family-card__main {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.25rem 0.8rem;
  align-items: center;
  color: inherit;
  text-decoration: none;
}

.competition-family-card--line .competition-family-card__eyebrow {
  grid-column: 1;
  justify-self: start;
  min-height: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--color-secondary-dark);
  font-size: 0.66rem;
  letter-spacing: 0.075em;
}

.competition-family-card--line h3 {
  grid-column: 1;
  margin: 0;
  font-size: clamp(1.15rem, 2vw, 1.48rem);
  line-height: 1.1;
}

.competition-family-card__arrow {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: rgba(17, 38, 95, 0.48);
  font-size: 2rem;
  line-height: 1;
  transition: transform var(--transition-fast), color var(--transition-fast);
}

.competition-family-card--line:hover .competition-family-card__arrow,
.competition-family-card--line:focus-within .competition-family-card__arrow {
  color: var(--color-secondary-dark);
  transform: translateX(3px);
}

.competition-family-card--line .competition-family-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
}

.competition-family-card--line .competition-family-card__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.34rem 0.55rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.82);
  color: rgba(17, 38, 95, 0.82);
  font-size: 0.7rem;
  font-weight: 850;
}

.competition-family-card--line .competition-family-card__actions {
  grid-column: 1 / -1;
  padding-top: 0.58rem;
  border-top: 1px solid rgba(9, 30, 82, 0.065);
}

.competition-directory-hero__calendar:hover,
.competition-directory-hero__calendar:focus-visible {
  border-color: rgba(197, 164, 78, 0.4);
  box-shadow: 0 14px 34px rgba(8, 24, 62, 0.07);
  transform: translateY(-1px);
  outline: none;
}

.competitions-calendar-strip {
  display: grid;
  gap: 1rem;
  padding-top: clamp(1rem, 3vw, 1.6rem);
  border-top: 1px solid rgba(9, 30, 82, 0.08);
}

.competitions-calendar-strip__head {
  display: grid;
  justify-items: center;
  text-align: center;
}

.competitions-calendar-strip .calendar-container {
  margin: 0;
}

@media (max-width: 860px) {
  .competition-directory-hero,
  .competition-family-card--line {
    grid-template-columns: 1fr;
  }

  .competition-directory-hero {
    align-items: stretch;
  }

  .competition-directory-hero h2,
  .competitions-calendar-strip__head h2 {
    font-size: clamp(2.05rem, 10vw, 3rem);
  }

  .competition-directory-hero__calendar {
    min-width: 0;
  }

  .competition-family-card--line .competition-family-card__meta {
    justify-content: flex-start;
  }

  .competition-family-card--line .competition-family-card__actions {
    gap: 0.7rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .competition-family-card--line .competition-family-card__actions::-webkit-scrollbar {
    display: none;
  }
}

@media (max-width: 560px) {
  .page-hero--competitions .page-hero__content {
    text-align: left;
  }

  .page-hero--competitions .competitions-hero__routes {
    justify-content: flex-start;
  }

  .competition-family-card--line {
    padding: 0.85rem;
  }

  .competition-family-card--line .competition-family-card__meta span:nth-child(n+4) {
    display: none;
  }

  .competition-family-card--line .competition-family-card__actions {
    padding-top: 0.5rem;
  }
}

.ranking-placements-section .section-header p,
.ranking-country-score-table p {
  max-width: 760px;
  color: var(--color-text-secondary);
  line-height: 1.7;
}

.ranking-placements-grid {
  display: grid;
  gap: var(--space-md);
}

.placement-card {
  overflow: hidden;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 12px 30px rgba(11, 29, 81, 0.06);
}

.placement-card summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-lg);
  color: var(--color-primary);
  cursor: pointer;
  font-weight: 800;
}

.placement-card summary::marker {
  color: var(--color-secondary);
}

.placement-card summary strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 30px;
  margin-right: var(--space-sm);
  border-radius: var(--radius-sm);
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 0.82rem;
  letter-spacing: 0.04em;
}

.placement-card summary small {
  color: var(--color-text-light);
  font-size: var(--fs-small);
  font-weight: 700;
}

.placement-card__table-wrap {
  overflow-x: auto;
  border-top: 1px solid var(--color-border);
}

.placement-table th {
  background: var(--color-primary-dark);
}

.placement-row--not-counted td {
  background: rgba(244, 246, 250, 0.72);
  color: var(--color-text-light);
}

.placement-athletes {
  display: block;
  min-width: 280px;
  max-width: 560px;
  line-height: 1.55;
}

.placement-score {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.25rem 0.55rem;
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-text-light);
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

.placement-score--counted {
  background: rgba(197, 164, 78, 0.16);
  color: var(--color-primary);
}

.placement-score + small {
  display: block;
  margin-top: 0.25rem;
  color: var(--color-text-light);
  font-size: 0.72rem;
  line-height: 1.3;
}

.ranking-country-score-table {
  display: grid;
  gap: var(--space-sm);
  padding-top: var(--space-lg);
}

.ranking-country-score-table h3 {
  color: var(--color-primary);
  font-size: var(--fs-h4);
}

.section-header--left {
  align-items: flex-start;
  text-align: left;
  margin-bottom: 0;
}

.ranking-rules-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
}

.ranking-rule-card {
  padding: var(--space-lg);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 12px 30px rgba(11, 29, 81, 0.06);
  transition: transform var(--transition-base), border-color var(--transition-base);
}

.ranking-rule-card:hover {
  transform: translateY(-2px);
  border-color: rgba(197, 164, 78, 0.26);
}

.ranking-rule-card h3 {
  margin-bottom: var(--space-sm);
  color: var(--color-primary);
  font-size: 1rem;
}

.ranking-rule-card p {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.65;
}

.ranking-empty-state {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 8px;
  background: var(--color-white);
  box-shadow: var(--shadow-card);
}

.rank-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  min-height: 32px;
  padding: 0.28rem 0.65rem;
  border: 1px solid rgba(9, 30, 82, 0.12);
  border-radius: var(--radius-full);
  background: var(--color-surface);
  color: var(--color-primary);
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.rank-badge--gold {
  border-color: rgba(197, 164, 78, 0.42);
  background: linear-gradient(135deg, rgba(197, 164, 78, 0.26), rgba(255, 246, 212, 0.92));
  color: #6F5514;
}

.rank-badge--silver {
  border-color: rgba(138, 138, 160, 0.42);
  background: linear-gradient(135deg, rgba(138, 138, 160, 0.22), rgba(247, 248, 252, 0.95));
  color: #4A4A5E;
}

.rank-badge--bronze {
  border-color: rgba(205, 127, 50, 0.42);
  background: linear-gradient(135deg, rgba(205, 127, 50, 0.22), rgba(255, 237, 219, 0.95));
  color: #74411C;
}

.ranking-athlete__link,
.placement-athletes a {
  color: var(--color-primary);
  font-weight: 850;
  text-decoration: none;
  text-underline-offset: 3px;
  transition: color var(--transition-fast), text-decoration-color var(--transition-fast);
}

.ranking-athlete__link:hover,
.ranking-athlete__link:focus-visible,
.placement-athletes a:hover,
.placement-athletes a:focus-visible {
  color: var(--color-secondary-dark);
  text-decoration: underline;
}

.athlete-profile {
  display: grid;
  gap: var(--space-2xl);
}

.athlete-profile__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: var(--space-xl);
  align-items: stretch;
  padding: clamp(1.5rem, 3vw, 2.75rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(244,247,252,0.98)),
    radial-gradient(circle at top right, rgba(197,164,78,0.18), transparent 34%);
  box-shadow: var(--shadow-card);
}

.athlete-profile__identity {
  display: flex;
  gap: var(--space-lg);
  align-items: center;
  min-width: 0;
}

.athlete-profile__identity h2 {
  margin: var(--space-xs) 0;
  color: var(--color-primary);
  font-size: clamp(2rem, 5vw, 3.25rem);
  line-height: 1;
}

.athlete-profile__identity p {
  color: var(--color-text-secondary);
  font-weight: 700;
}

.athlete-profile__bio {
  max-width: 720px;
  margin-top: var(--space-sm);
  color: var(--color-text);
  font-size: var(--fs-body);
  line-height: 1.7;
}

.athlete-profile__hero-note {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.8rem;
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  line-height: 1.45;
}

.athlete-profile__hero-note strong {
  color: var(--color-primary);
}

.athlete-profile__back {
  display: inline-flex;
  margin-bottom: var(--space-sm);
  color: var(--color-text-light);
  font-size: var(--fs-small);
  font-weight: 800;
  text-decoration: none;
}

.athlete-profile__back:hover,
.athlete-profile__back:focus-visible {
  color: var(--color-secondary-dark);
}

.athlete-profile__avatar,
.athlete-avatar--fallback {
  width: clamp(96px, 16vw, 148px);
  height: clamp(96px, 16vw, 148px);
  flex: 0 0 auto;
  border: 3px solid rgba(197, 164, 78, 0.34);
  border-radius: 50%;
  box-shadow: 0 18px 38px rgba(9, 30, 82, 0.14);
}

img.athlete-profile__avatar {
  display: block;
  object-fit: cover;
}

.athlete-avatar--fallback {
  display: grid;
  place-items: center;
  position: relative;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  color: var(--color-white);
}

.athlete-avatar--fallback span {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 900;
  letter-spacing: 0.02em;
}

.athlete-avatar--fallback small {
  position: absolute;
  right: 0.35rem;
  bottom: 0.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  min-height: 28px;
  border-radius: var(--radius-full);
  background: var(--color-white);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 900;
  box-shadow: var(--shadow-sm);
}

.athlete-profile__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.athlete-fact {
  display: grid;
  align-content: center;
  gap: 0.25rem;
  min-height: 100px;
  padding: var(--space-md);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
  text-align: center;
}

.athlete-fact strong {
  color: var(--color-primary);
  font-size: var(--fs-h3);
  line-height: 1;
}

.athlete-fact span {
  color: var(--color-text-light);
  font-size: var(--fs-small);
  font-weight: 800;
}

.athlete-fact small {
  color: var(--color-text-secondary);
  font-size: 0.72rem;
  line-height: 1.35;
}

.athlete-profile__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: var(--space-lg);
}

.athlete-panel {
  padding: clamp(0.9rem, 2vw, 1.3rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
}

.athlete-ranking-list,
.athlete-results-list {
  display: grid;
  gap: var(--space-sm);
}

.athlete-results-timeline {
  display: grid;
  gap: 0.9rem;
}

.athlete-results-year-group {
  display: grid;
  gap: 0.72rem;
}

.athlete-results-event-list {
  display: grid;
  gap: 0.72rem;
}

.athlete-results-year-group__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  padding: 0 0.1rem;
}

.athlete-results-year-group__header strong {
  color: var(--color-text-light);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.athlete-event-group {
  display: grid;
  gap: 0.75rem;
  padding: 0.9rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.95));
}

.athlete-event-group__header {
  display: grid;
  gap: 0.2rem;
}

.athlete-event-group__header h3 {
  margin: 0;
  color: var(--color-primary);
  font-size: clamp(1rem, 1.8vw, 1.18rem);
  line-height: 1.22;
}

.athlete-event-group__header p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.5;
}

.athlete-event-group__results {
  display: grid;
  gap: 0.55rem;
}

.athlete-event-result-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.72rem;
  align-items: flex-start;
  padding: 0.78rem 0.82rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.84);
}

.athlete-event-result-row__body {
  min-width: 0;
}

.athlete-event-result-row__body strong {
  display: block;
  color: var(--color-primary);
  line-height: 1.3;
}

.athlete-event-result-row__body small {
  display: block;
  margin-top: 0.22rem;
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.45;
}

.athlete-ranking-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.athlete-ranking-item strong,
.athlete-result h3 {
  display: block;
  color: var(--color-primary);
}

.athlete-ranking-item small,
.athlete-result p,
.athlete-muted {
  display: block;
  margin-top: 0.25rem;
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.55;
}

.athlete-medals {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.athlete-medal {
  display: grid;
  place-items: center;
  min-height: 132px;
  padding: var(--space-lg);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  text-align: center;
}

.athlete-medal strong {
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1;
}

.athlete-medal span {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.athlete-medal--gold {
  background: linear-gradient(135deg, rgba(197, 164, 78, 0.24), rgba(255, 246, 212, 0.9));
  color: #6F5514;
}

.athlete-medal--silver {
  background: linear-gradient(135deg, rgba(138, 138, 160, 0.2), rgba(247, 248, 252, 0.95));
  color: #4A4A5E;
}

.athlete-medal--bronze {
  background: linear-gradient(135deg, rgba(205, 127, 50, 0.22), rgba(255, 237, 219, 0.92));
  color: #74411C;
}

.athlete-palmares {
  display: grid;
  gap: var(--space-lg);
}

.athlete-record {
  display: grid;
  gap: var(--space-md);
}

.athlete-record__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
}

.athlete-record__stat {
  display: grid;
  place-items: center;
  gap: 0.25rem;
  min-height: 74px;
  padding: 0.7rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: rgba(11, 29, 81, 0.03);
  text-align: center;
}

.athlete-record__stat strong {
  color: var(--color-primary);
  font-size: clamp(1.35rem, 3.2vw, 1.95rem);
  line-height: 1;
}

.athlete-record__stat span {
  color: var(--color-text-secondary);
  font-size: var(--fs-xs);
  font-weight: 900;
  text-transform: uppercase;
}

.athlete-record__list {
  display: grid;
  gap: var(--space-sm);
}

.athlete-record__item {
  display: grid;
  gap: 0.2rem;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(9, 30, 82, 0.08);
}

.athlete-record__item strong {
  color: var(--color-primary);
  font-size: 0.95rem;
  line-height: 1.3;
}

.athlete-record__item small {
  color: var(--color-text-secondary);
  font-size: var(--fs-xs);
  line-height: 1.45;
}

.athlete-performance-shell {
  display: grid;
  gap: 0.95rem;
}

.athlete-performance-snapshot {
  display: grid;
}

.athlete-performance-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.65rem;
}

.athlete-performance-metric,
.athlete-advanced-card {
  display: grid;
  gap: 0.25rem;
  min-height: 92px;
  padding: 0.8rem 0.82rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 15px;
  background: rgba(247, 249, 252, 0.92);
}

.athlete-performance-metric span,
.athlete-advanced-card span,
.athlete-performance-definition dt,
.athlete-performance-status__item span,
.athlete-discipline-stat__details small,
.athlete-competition-split__grid small {
  color: var(--color-text-light);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.athlete-performance-metric strong,
.athlete-advanced-card strong {
  color: var(--color-primary);
  font-size: 1.18rem;
  line-height: 1.18;
}

.athlete-performance-metric--pending,
.athlete-advanced-card--future {
  background: linear-gradient(135deg, rgba(247, 249, 252, 0.96), rgba(243, 246, 251, 0.95));
}

.athlete-performance-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
  gap: 0.85rem;
}

.athlete-performance-module {
  display: grid;
  gap: 0.78rem;
  padding: 0.9rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(247, 249, 252, 0.86);
}

.athlete-performance-module--future {
  background: linear-gradient(135deg, rgba(247, 249, 252, 0.88), rgba(242, 246, 250, 0.92));
}

.athlete-performance-module__header {
  display: grid;
  gap: 0.18rem;
}

.athlete-performance-module__header h3 {
  margin: 0;
  color: var(--color-primary);
  font-size: clamp(1rem, 1.6vw, 1.18rem);
  line-height: 1.22;
}

.athlete-performance-module__header p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 0.84rem;
  line-height: 1.5;
}

.athlete-performance-definitions {
  display: grid;
  gap: 0.58rem;
  margin: 0;
}

.athlete-performance-definition {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr);
  gap: 0.72rem;
  align-items: start;
  padding: 0.65rem 0.72rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.88);
}

.athlete-performance-definition dd {
  display: grid;
  gap: 0.14rem;
  margin: 0;
  text-align: right;
}

.athlete-performance-definition dd strong,
.athlete-performance-status__item strong,
.athlete-discipline-stat__details strong,
.athlete-competition-split__grid strong {
  color: var(--color-primary);
  font-size: 0.92rem;
  line-height: 1.28;
}

.athlete-performance-definition dd small,
.athlete-discipline-stat__details em {
  color: var(--color-text-secondary);
  font-size: 0.74rem;
  line-height: 1.4;
  font-style: normal;
}

.athlete-performance-status {
  display: grid;
  gap: 0.5rem;
}

.athlete-performance-status__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.62rem 0.7rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.9);
}

.athlete-discipline-stats {
  display: grid;
  gap: 0.68rem;
}

.athlete-discipline-stat {
  display: grid;
  gap: 0.68rem;
  padding: 0.82rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.92);
}

.athlete-discipline-stat__top {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.72rem;
}

.athlete-discipline-stat__top strong,
.athlete-competition-split__top strong {
  display: block;
  margin-top: 0.2rem;
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1.2;
}

.athlete-discipline-stat__rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  min-height: 36px;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.06);
  color: var(--color-primary);
  font-size: 0.88rem;
  font-weight: 900;
}

.athlete-discipline-stat__meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.56rem;
}

.athlete-discipline-stat__meta span {
  display: grid;
  gap: 0.12rem;
  padding: 0.58rem 0.62rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 13px;
  background: rgba(247, 249, 252, 0.92);
}

.athlete-discipline-stat__meta strong {
  color: var(--color-primary);
  font-size: 0.98rem;
  line-height: 1.15;
}

.athlete-discipline-stat__meta small {
  color: var(--color-text-light);
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.athlete-discipline-stat__details {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.56rem;
}

.athlete-discipline-stat__details span {
  display: grid;
  gap: 0.14rem;
  min-width: 0;
  padding: 0.62rem 0.66rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 13px;
  background: rgba(247, 249, 252, 0.78);
}

.athlete-competition-splits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.68rem;
}

.athlete-competition-split {
  display: grid;
  gap: 0.6rem;
  padding: 0.82rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.92);
}

.athlete-competition-split__top {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.72rem;
}

.athlete-competition-split__top span {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 850;
}

.athlete-competition-split__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.athlete-competition-split__grid span {
  display: grid;
  gap: 0.12rem;
  padding: 0.56rem 0.6rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 13px;
  background: rgba(247, 249, 252, 0.86);
}

.athlete-advanced-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.58rem;
}

.athlete-palmares__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-sm);
}

.athlete-palmares__stat {
  display: grid;
  place-items: center;
  gap: 0.25rem;
  min-height: 110px;
  padding: var(--space-md);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  text-align: center;
}

.athlete-palmares__stat strong {
  color: var(--color-primary);
  font-size: clamp(1.8rem, 4.2vw, 2.75rem);
  line-height: 1;
}

.athlete-palmares__stat span {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.athlete-palmares__highlight {
  display: grid;
  gap: var(--space-sm);
  padding: var(--space-lg);
  border: 1px solid rgba(197, 164, 78, 0.2);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(255, 250, 237, 0.98), rgba(247, 249, 252, 0.96));
}

.athlete-palmares__highlight h3 {
  color: var(--color-primary);
  font-size: clamp(1.1rem, 2.4vw, 1.5rem);
}

.athlete-palmares__highlight p {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.55;
}

.athlete-palmares__list {
  display: grid;
  gap: var(--space-sm);
}

.athlete-result-archive-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
  margin-top: var(--space-sm);
}

.athlete-result-archive-pill {
  display: inline-grid;
  gap: 0.1rem;
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.05);
  border: 1px solid rgba(9, 30, 82, 0.08);
}

.athlete-result-archive-pill strong {
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
}

.athlete-result-archive-pill small {
  color: var(--color-text-secondary);
  font-size: 0.68rem;
  line-height: 1.2;
}

.athlete-archive-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
  margin-top: var(--space-md);
  margin-bottom: var(--space-md);
}

.athlete-archive-editions {
  display: grid;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
}

.athlete-archive-edition {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-md);
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  background: rgba(11, 29, 81, 0.03);
  border: 1px solid rgba(9, 30, 82, 0.08);
}

.athlete-archive-edition--linked {
  color: inherit;
  text-decoration: none;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), background var(--transition-fast);
}

.athlete-archive-edition--linked:hover,
.athlete-archive-edition--linked:focus-visible {
  border-color: rgba(197, 164, 78, 0.32);
  box-shadow: 0 14px 30px rgba(11, 29, 81, 0.08);
  transform: translateY(-1px);
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.95));
  outline: none;
}

.athlete-archive-edition h3 {
  color: var(--color-primary);
  font-size: var(--fs-body);
  line-height: 1.3;
}

.athlete-archive-edition p {
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.45;
}

.athlete-archive-edition__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-xs);
}

.athlete-archive-edition__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.82);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 850;
}

.athlete-archive-stat {
  display: grid;
  place-items: center;
  gap: 0.25rem;
  min-height: 76px;
  padding: 0.75rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.96));
  text-align: center;
}

.athlete-archive-stat strong {
  color: var(--color-primary);
  font-size: clamp(1.35rem, 3.2vw, 2rem);
  line-height: 1;
}

.athlete-archive-stat span {
  color: var(--color-text-secondary);
  font-size: var(--fs-xs);
  font-weight: 900;
  text-transform: uppercase;
}

/* ---------- Nation Profiles ---------- */
.nation-profile-section {
  padding-top: var(--space-3xl);
}

.nation-profile {
  display: grid;
  gap: var(--space-xl);
}

.nation-profile__hero,
.nation-panel {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.95)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.1), transparent 32%);
  box-shadow: 0 16px 40px rgba(11, 29, 81, 0.08);
}

.nation-profile__hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: var(--space-xl);
  align-items: center;
  padding: clamp(1.2rem, 3vw, 2rem);
}

.nation-profile__identity {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
  min-width: 0;
}

.nation-profile__mark {
  width: clamp(82px, 15vw, 118px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 28px;
  color: var(--color-white);
  background: linear-gradient(145deg, var(--color-primary), var(--color-primary-light));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.12), 0 18px 32px rgba(11, 29, 81, 0.18);
}

.nation-profile__mark span {
  font-size: clamp(2rem, 7vw, 3.4rem);
  line-height: 1;
}

.nation-profile__mark small {
  color: rgba(255,255,255,0.78);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  margin-top: -0.65rem;
}

.nation-profile__breadcrumbs,
.nation-profile__badges,
.nation-profile__links,
.nation-panel__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.nation-profile__breadcrumbs {
  margin-bottom: var(--space-sm);
}

.nation-profile__breadcrumbs a,
.nation-profile__badges span,
.nation-profile__links a,
.nation-panel__actions a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.45rem 0.72rem;
  border-radius: var(--radius-full);
  border: 1px solid rgba(9, 30, 82, 0.08);
  background: rgba(255,255,255,0.78);
  color: var(--color-primary);
  font-size: 0.74rem;
  font-weight: 850;
}

.nation-profile__breadcrumbs a:hover,
.nation-profile__links a:hover,
.nation-profile__breadcrumbs a:focus-visible,
.nation-profile__links a:focus-visible {
  background: var(--color-primary);
  color: var(--color-white);
  outline: none;
}

.nation-profile__identity h2 {
  color: var(--color-primary);
  font-size: clamp(2rem, 4.8vw, 3.6rem);
  line-height: 1;
  letter-spacing: 0;
}

.nation-profile__identity p {
  max-width: 760px;
  margin-top: var(--space-sm);
  color: var(--color-text-secondary);
  font-weight: 650;
  line-height: 1.45;
}

.nation-profile__badges {
  margin-top: var(--space-md);
}

.nation-profile__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
}

.nation-profile__fact {
  min-height: 92px;
  display: grid;
  place-items: center;
  gap: 0.2rem;
  padding: var(--space-md);
  border: 1px solid rgba(197, 164, 78, 0.26);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.86);
  text-align: center;
}

.nation-profile__fact strong {
  color: var(--color-primary);
  font-size: clamp(1.45rem, 4vw, 2.1rem);
  line-height: 1;
}

.nation-profile__fact span {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.nation-profile__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  gap: var(--space-xl);
}

.nation-profile-window {
  display: grid;
  gap: var(--space-md);
  scroll-margin-top: calc(var(--nav-height-scrolled) + 1rem);
}

.nation-profile-window .athlete-profile-nav {
  position: relative;
  top: auto;
  z-index: 1;
  padding: 0.5rem;
  border-radius: 20px;
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.94)),
    radial-gradient(circle at 0% 0%, rgba(197, 164, 78, 0.12), transparent 38%);
}

.nation-profile-window .athlete-profile-nav__link {
  flex: 1 1 150px;
  min-height: 48px;
  border-radius: 16px;
  font-size: 0.9rem;
}

.nation-profile-views,
.nation-profile-view {
  display: grid;
  gap: var(--space-md);
}

.nation-profile-view[hidden] {
  display: none !important;
}

.nation-panel {
  padding: clamp(1rem, 3vw, 1.6rem);
}

.nation-panel p {
  color: var(--color-text-secondary);
}

.nation-profile__meta-list,
.nation-ranking-mini {
  display: grid;
  gap: var(--space-sm);
  margin-top: var(--space-md);
}

.nation-profile__meta-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nation-profile__meta-list span,
.nation-ranking-mini__row {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
  padding: 0.8rem;
  border-radius: 14px;
  background: rgba(244, 246, 250, 0.8);
  border: 1px solid rgba(9, 30, 82, 0.07);
}

.nation-profile__meta-list small,
.nation-ranking-mini__row span,
.nation-ranking-mini__row small,
.nation-result-card p,
.nation-athlete-row small,
.nation-archive-edition summary small,
.nation-archive-result p,
.nation-archive-result small {
  color: var(--color-text-light);
  font-size: 0.78rem;
  line-height: 1.35;
}

.nation-profile__meta-list strong,
.nation-ranking-mini__row strong {
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1.25;
}

.nation-profile__links,
.nation-panel__actions {
  margin-top: var(--space-md);
}

.nation-ranking-mini__row {
  grid-template-columns: 1fr auto;
  align-items: center;
}

.nation-ranking-mini__row small {
  grid-column: 1 / -1;
}

.nation-result-list,
.nation-athlete-list,
.nation-archive-list {
  display: grid;
  gap: var(--space-sm);
}

.nation-athlete-gender-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
}

.nation-athlete-gender {
  display: grid;
  gap: var(--space-sm);
  min-width: 0;
}

.nation-athlete-gender__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-sm);
  padding: 0 0.1rem 0.35rem;
  border-bottom: 1px solid rgba(9, 30, 82, 0.08);
}

.nation-athlete-gender__head h3 {
  margin: 0;
  color: var(--color-primary);
  font-size: 0.95rem;
  line-height: 1.2;
}

.nation-athlete-gender__head span {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.nation-result-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nation-result-card,
.nation-athlete-row,
.nation-archive-result {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-md);
  align-items: center;
  padding: 0.88rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(255,255,255,0.88);
}

.nation-result-card {
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
}

.nation-result-card__body {
  min-width: 0;
}

.nation-result-card__body p {
  margin-top: 0.18rem;
}

.nation-result-card__points {
  display: grid;
  justify-items: end;
  gap: 0.04rem;
  color: var(--color-primary);
}

.nation-result-card__points strong {
  font-size: 1.14rem;
  line-height: 1;
}

.nation-result-card__points small,
.nation-athlete-row em small {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.nation-athlete-row {
  grid-template-columns: auto minmax(0, 1fr) auto;
  color: inherit;
  transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.nation-athlete-row:hover,
.nation-athlete-row:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(197, 164, 78, 0.32);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.08);
  outline: none;
}

.nation-result-card h3,
.nation-athlete-row strong,
.nation-archive-result h3 {
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1.3;
}

.nation-athlete-row em {
  display: grid;
  justify-items: end;
  gap: 0.04rem;
  color: var(--color-primary);
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.nation-athlete-row em strong {
  font-size: 1.06rem;
  line-height: 1;
}

.nation-archive-edition {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: rgba(255,255,255,0.86);
  overflow: hidden;
}

.nation-archive-edition summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-md);
  padding: 1rem;
  cursor: pointer;
  list-style: none;
}

.nation-archive-edition summary::-webkit-details-marker {
  display: none;
}

.nation-archive-edition__summary {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
}

.nation-archive-edition summary strong {
  color: var(--color-primary);
  font-size: 1rem;
}

.nation-archive-edition summary em {
  flex: 0 0 auto;
  color: var(--color-secondary-dark);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 900;
}

.nation-archive-edition__rows {
  display: grid;
  gap: var(--space-sm);
  padding: 0 var(--space-md) var(--space-md);
}

.nation-archive-result {
  grid-template-columns: minmax(0, 1fr);
  gap: 0.5rem;
  align-items: start;
  background: rgba(244, 246, 250, 0.72);
}

.nation-archive-result__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
}

.nation-archive-result__body {
  display: grid;
  gap: 0.18rem;
}

.nation-archive-result p {
  margin-top: 0;
  overflow-wrap: anywhere;
}

.nation-panel--empty {
  max-width: 780px;
  margin-inline: auto;
}

@media (max-width: 920px) {
  .nation-profile__hero,
  .nation-profile__grid {
    grid-template-columns: 1fr;
  }

  .nation-profile__facts {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .nation-result-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .nation-profile-section {
    padding-top: var(--space-xl);
  }

  .nation-profile {
    gap: var(--space-md);
  }

  .nation-profile__hero,
  .nation-panel {
    border-radius: 18px;
    padding: 0.9rem;
  }

  .nation-profile__hero {
    gap: 0.8rem;
    box-shadow: 0 10px 24px rgba(11, 29, 81, 0.06);
  }

  .nation-profile__identity {
    align-items: flex-start;
    gap: var(--space-md);
  }

  .nation-profile__mark {
    width: 68px;
    border-radius: 18px;
  }

  .nation-profile__breadcrumbs {
    display: none;
  }

  .nation-profile__identity h2 {
    font-size: clamp(1.65rem, 8vw, 2.2rem);
  }

  .nation-profile__identity p {
    margin-top: 0.35rem;
    font-size: 0.94rem;
    line-height: 1.4;
  }

  .nation-profile__facts,
  .nation-profile__meta-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nation-profile__facts {
    gap: 0.55rem;
  }

  .nation-profile__fact {
    min-height: 64px;
    padding: 0.58rem;
  }

  .nation-profile__fact strong {
    font-size: 1.2rem;
  }

  .nation-profile__badges span,
  .nation-profile__links a,
  .nation-panel__actions a {
    min-height: 32px;
    padding: 0.4rem 0.62rem;
    font-size: 0.72rem;
  }

  .nation-athlete-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .nation-athlete-gender-grid {
    grid-template-columns: 1fr;
  }

  .nation-athlete-row em {
    grid-column: 2;
    justify-items: start;
  }

  .nation-archive-edition summary {
    align-items: flex-start;
  }

  .nation-result-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .nation-result-card__points {
    grid-column: 2;
    justify-items: start;
  }
}

.archive-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 78px;
  min-height: 48px;
  padding: 0.6rem 0.85rem;
  border: 1px solid rgba(9, 30, 82, 0.12);
  border-radius: var(--radius-full);
  background: rgba(255,255,255,0.94);
  color: var(--color-primary);
  font-size: 0.82rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.athlete-result--archive {
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.96));
}

.athlete-result {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-md);
  align-items: flex-start;
  padding: var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.athlete-result--linked {
  color: inherit;
  text-decoration: none;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), background var(--transition-fast);
}

.athlete-result--linked:hover,
.athlete-result--linked:focus-visible {
  border-color: rgba(197, 164, 78, 0.3);
  box-shadow: 0 14px 30px rgba(11, 29, 81, 0.08);
  transform: translateY(-1px);
  background: linear-gradient(135deg, rgba(255,255,255,0.99), rgba(247,249,252,0.94));
  outline: none;
}

.athlete-media-panel {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.98)),
    radial-gradient(circle at top left, rgba(9,30,82,0.08), transparent 34%);
}

.athlete-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-lg);
}

.athlete-media-card {
  display: grid;
  gap: var(--space-md);
}

.athlete-media-card__frame {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 10;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  color: var(--color-white);
  text-decoration: none;
}

.athlete-media-card__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-base);
}

.athlete-media-card__frame:hover img {
  transform: scale(1.04);
}

.athlete-media-card__video {
  display: grid;
  place-items: center;
  gap: var(--space-sm);
  color: var(--color-white);
}

.athlete-media-card__video svg {
  width: 54px;
  height: 54px;
  padding: 1rem;
  border-radius: 50%;
  background: rgba(255,255,255,0.14);
}

.athlete-media-card h3 {
  color: var(--color-primary);
}

.athlete-media-card p {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.55;
}

.athlete-social-list {
  display: grid;
  gap: var(--space-sm);
}

.athlete-social-link {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  color: var(--color-primary);
  font-weight: 900;
  text-decoration: none;
  transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.athlete-social-link:hover,
.athlete-social-link:focus-visible {
  border-color: rgba(197, 164, 78, 0.55);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}

.athlete-social-link svg {
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  color: var(--color-secondary-dark);
}

.athlete-highlights-panel {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.98)),
    radial-gradient(circle at top right, rgba(197,164,78,0.16), transparent 38%);
}

.athlete-highlights-list {
  display: grid;
  gap: var(--space-sm);
  margin: 0;
  padding: 0;
  list-style: none;
}

.athlete-highlights-list li {
  position: relative;
  padding: var(--space-md) var(--space-md) var(--space-md) 2.4rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  color: var(--color-text);
  font-weight: 750;
  line-height: 1.5;
}

.athlete-highlights-list li::before {
  content: "";
  position: absolute;
  left: var(--space-md);
  top: 1.2rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--color-secondary);
  box-shadow: 0 0 0 5px rgba(197, 164, 78, 0.16);
}

.profile-intake,
.profile-review {
  display: grid;
  gap: var(--space-2xl);
}

.profile-intake__intro {
  display: grid;
  gap: var(--space-lg);
}

.profile-form {
  display: grid;
  gap: var(--space-xl);
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
}

.profile-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.profile-form--wizard {
  padding: 0;
  overflow: hidden;
}

.profile-form__layout {
  display: grid;
  grid-template-columns: minmax(190px, 0.42fr) minmax(0, 1fr) minmax(290px, 0.55fr);
  min-height: 680px;
}

.profile-wizard {
  display: grid;
  align-content: start;
  gap: var(--space-xs);
  padding: var(--space-lg);
  background: linear-gradient(180deg, rgba(8, 20, 58, 0.98), rgba(11, 29, 81, 0.94));
}

.profile-wizard__step {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.2rem var(--space-sm);
  align-items: center;
  width: 100%;
  padding: var(--space-sm);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--radius-md);
  background: transparent;
  color: rgba(255,255,255,0.72);
  text-align: left;
  cursor: pointer;
  transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.profile-wizard__step:hover,
.profile-wizard__step:focus-visible,
.profile-wizard__step.is-active {
  border-color: rgba(197, 164, 78, 0.65);
  background: rgba(255,255,255,0.1);
  color: var(--color-white);
  outline: none;
  transform: translateX(2px);
}

.profile-wizard__step span {
  grid-row: span 2;
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: rgba(255,255,255,0.1);
  color: var(--color-secondary);
  font-weight: 950;
}

.profile-wizard__step strong {
  font-size: 0.92rem;
}

.profile-wizard__step small {
  color: currentColor;
  opacity: 0.72;
}

.profile-form__steps {
  padding: clamp(1.25rem, 3vw, 2rem);
}

.profile-form__step {
  display: none;
}

.profile-form__step.is-active {
  display: grid;
  gap: var(--space-lg);
}

.profile-form label {
  display: grid;
  gap: 0.45rem;
  color: var(--color-primary);
  font-weight: 900;
}

.profile-form input,
.profile-form textarea,
.profile-form select {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-text);
  font: inherit;
  font-weight: 650;
  padding: 0.9rem 1rem;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.profile-form input:focus,
.profile-form textarea:focus,
.profile-form select:focus {
  border-color: var(--color-secondary);
  background: var(--color-white);
  box-shadow: 0 0 0 4px rgba(197, 164, 78, 0.16);
  outline: none;
}

.profile-form small {
  color: var(--color-text-light);
  font-size: var(--fs-small);
  font-weight: 700;
  line-height: 1.45;
}

.profile-form__wide {
  grid-column: 1 / -1;
}

.profile-form__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-md);
}

.profile-highlight-rows {
  display: grid;
  gap: var(--space-md);
}

.profile-highlight-row {
  display: grid;
  grid-template-columns: 88px minmax(150px, 1fr) 110px minmax(150px, 0.8fr) minmax(160px, 1fr) auto;
  gap: var(--space-sm);
  align-items: end;
  padding: var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.profile-media-rows {
  display: grid;
  gap: var(--space-md);
}

.profile-media-row {
  display: grid;
  grid-template-columns: 110px minmax(150px, 0.85fr) minmax(190px, 1fr) minmax(170px, 0.95fr) auto;
  gap: var(--space-sm);
  align-items: end;
  padding: var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.profile-media-upload {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-lg);
  align-items: center;
  padding: clamp(1.2rem, 3vw, 2rem);
  border: 2px dashed rgba(9, 30, 82, 0.22);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.96), rgba(247,249,252,0.96)),
    radial-gradient(circle at top right, rgba(197,164,78,0.16), transparent 40%);
  cursor: pointer;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

.profile-media-upload:hover,
.profile-media-upload:focus-within {
  border-color: rgba(197, 164, 78, 0.72);
  box-shadow: var(--shadow-card);
  transform: translateY(-2px);
}

.profile-media-upload__icon {
  display: inline-grid;
  place-items: center;
  width: clamp(64px, 9vw, 88px);
  height: clamp(64px, 9vw, 88px);
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  color: var(--color-white);
  box-shadow: 0 16px 32px rgba(9, 30, 82, 0.18);
}

.profile-media-upload__icon svg {
  width: 34px;
  height: 34px;
}

.profile-media-upload__copy {
  display: grid;
  gap: 0.35rem;
}

.profile-media-upload__copy strong {
  color: var(--color-primary);
  font-size: var(--fs-h4);
}

.profile-media-upload input {
  grid-column: 1 / -1;
  width: 100%;
  border: 1px solid rgba(9, 30, 82, 0.12);
  border-radius: var(--radius-md);
  background: var(--color-white);
  cursor: pointer;
}

.profile-media-preview-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: var(--space-sm);
}

.profile-media-file-card {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-sm);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  color: var(--color-text);
  box-shadow: var(--shadow-sm);
}

.profile-media-file-card__icon {
  display: inline-grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: rgba(197, 164, 78, 0.16);
  color: var(--color-primary);
}

.profile-media-file-card__icon svg {
  width: 20px;
  height: 20px;
}

.profile-media-file-card strong,
.profile-media-file-card small {
  display: block;
}

.profile-media-file-card strong {
  color: var(--color-primary);
  overflow-wrap: anywhere;
}

.profile-media-file-card small {
  color: var(--color-text-light);
  font-size: var(--fs-small);
  font-weight: 800;
}

.profile-media-link-panel {
  display: grid;
  gap: var(--space-md);
  margin-top: var(--space-sm);
  padding: var(--space-lg);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: var(--color-surface);
}

.profile-media-link-panel h3 {
  color: var(--color-primary);
  margin: 0.25rem 0;
}

.profile-media-link-panel p {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
}

.profile-highlight-row__remove {
  display: inline-grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  border: 1px solid rgba(9, 30, 82, 0.12);
  border-radius: 50%;
  background: var(--color-white);
  color: var(--color-primary);
  font-size: 1.35rem;
  font-weight: 850;
  cursor: pointer;
}

.profile-highlight-row__remove:disabled {
  opacity: 0.36;
  cursor: not-allowed;
}

.profile-add-highlight {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  border: 0;
  border-radius: var(--radius-full);
  background: rgba(197, 164, 78, 0.14);
  color: var(--color-primary);
  font-weight: 900;
  padding: 0.85rem 1rem;
  cursor: pointer;
}

.profile-add-highlight span {
  display: inline-grid;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  background: var(--color-secondary);
  color: var(--color-primary);
}

.profile-photo-drop {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: var(--space-lg);
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px dashed rgba(9, 30, 82, 0.22);
  border-radius: var(--radius-xl);
  background: var(--color-surface);
}

.profile-photo-drop__preview,
.profile-live-preview__avatar {
  display: grid;
  place-items: center;
  position: relative;
  width: clamp(96px, 12vw, 132px);
  height: clamp(96px, 12vw, 132px);
  border-radius: 50%;
  overflow: hidden;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  color: var(--color-white);
  box-shadow: 0 16px 32px rgba(9, 30, 82, 0.16);
}

.profile-photo-drop__preview strong,
.profile-live-preview__avatar strong {
  font-size: 2.2rem;
  line-height: 1;
}

.profile-photo-drop__preview small,
.profile-live-preview__avatar small {
  position: absolute;
  right: 0.25rem;
  bottom: 0.25rem;
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  min-height: 26px;
  border-radius: var(--radius-full);
  background: var(--color-white);
  color: var(--color-primary);
  font-weight: 950;
}

.profile-photo-drop__preview img,
.profile-live-preview__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-photo-drop__copy {
  display: grid;
  gap: 0.35rem;
}

.profile-photo-drop input {
  grid-column: 1 / -1;
  background: var(--color-white);
}

.profile-policy-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
}

.profile-policy-grid article {
  display: grid;
  gap: 0.25rem;
  padding: var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.profile-policy-grid strong {
  color: var(--color-primary);
}

.profile-policy-grid span {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
}

.profile-live-preview {
  display: grid;
  align-content: start;
  gap: var(--space-md);
  padding: clamp(1.25rem, 3vw, 2rem);
  background:
    linear-gradient(180deg, rgba(247,249,252,0.98), rgba(255,255,255,0.98)),
    radial-gradient(circle at top right, rgba(197,164,78,0.18), transparent 40%);
  border-left: 1px solid rgba(9, 30, 82, 0.08);
}

.profile-live-preview__card {
  position: sticky;
  top: 96px;
  display: grid;
  justify-items: start;
  gap: var(--space-sm);
  padding: var(--space-lg);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
}

.profile-live-preview__card h3 {
  color: var(--color-primary);
  font-size: var(--fs-h3);
}

.profile-live-preview__card p {
  color: var(--color-text-secondary);
  line-height: 1.55;
}

.profile-live-preview__club {
  color: var(--color-primary) !important;
  font-size: 0.82rem;
  font-weight: 850;
}

.profile-live-preview__bio {
  width: 100%;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--color-border);
}

.profile-live-preview__socials {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.profile-live-preview__socials span {
  display: inline-flex;
  border-radius: var(--radius-full);
  background: var(--color-surface);
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 900;
  padding: 0.35rem 0.65rem;
}

.profile-live-preview__socials span.is-active {
  background: rgba(197, 164, 78, 0.18);
  color: var(--color-primary);
}

.profile-live-preview__highlights {
  display: grid;
  gap: var(--space-xs);
  width: 100%;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--color-border);
}

.profile-live-preview__highlights strong {
  color: var(--color-primary);
}

.profile-live-preview__highlights ul {
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding-left: 1rem;
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.45;
}

.profile-form__status {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 800;
}

.profile-form__status--success {
  color: var(--color-success);
}

.profile-form__status--error {
  color: var(--color-error);
}

.profile-review-login {
  max-width: 680px;
  margin-inline: auto;
}

.profile-review__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
}

.profile-review__toolbar h2 {
  color: var(--color-primary);
  margin-bottom: var(--space-xs);
}

.profile-review__toolbar p {
  color: var(--color-text-secondary);
}

.profile-review__list {
  display: grid;
  gap: var(--space-lg);
}

/* ---------- SFE Portal ---------- */
.page-hero--portal {
  min-height: clamp(220px, 31vw, 340px);
  background:
    linear-gradient(135deg, rgba(7, 15, 43, 0.96), rgba(11, 29, 81, 0.9)),
    url('../assets/media/gallery/ec2025/ec2025-04.jpg') center 42% / cover;
}

.page-hero--portal .page-hero__content {
  padding-top: clamp(5.2rem, 9vw, 8rem);
  padding-bottom: clamp(1.8rem, 4vw, 3.4rem);
}

.page-hero--portal h1 {
  font-size: clamp(2.35rem, 6vw, 4.8rem);
}

.page-hero--portal p {
  max-width: 560px;
  font-size: clamp(0.98rem, 1.5vw, 1.16rem);
}

.portal-auth-layout {
  min-height: 100vh;
  padding: calc(var(--nav-height) + var(--space-3xl)) 0 var(--space-3xl);
  background:
    linear-gradient(135deg, rgba(7, 15, 43, 0.98), rgba(10, 30, 82, 0.92)),
    url('../assets/media/gallery/ec2025/ec2025-10.jpg') center / cover;
}

.portal-auth-layout__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(380px, 0.62fr);
  gap: var(--space-3xl);
  align-items: center;
}

.portal-auth-layout__grid--wide {
  grid-template-columns: minmax(0, 0.72fr) minmax(520px, 0.9fr);
}

.portal-auth-copy {
  display: grid;
  gap: var(--space-lg);
  max-width: 640px;
  color: var(--color-white);
}

.portal-auth-copy .section-label {
  color: var(--color-secondary);
}

.portal-auth-copy h1 {
  max-width: 12ch;
  color: var(--color-white);
  font-size: 3.35rem;
  line-height: 0.98;
  letter-spacing: 0;
}

.portal-auth-copy p {
  max-width: 620px;
  color: rgba(255,255,255,0.76);
  font-size: 1rem;
  line-height: 1.75;
}

.portal-auth-points {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.portal-auth-points span {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0.55rem 0.78rem;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: var(--radius-full);
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.86);
  font-size: 0.78rem;
  font-weight: 850;
}

.portal-auth-support {
  display: grid;
  gap: var(--space-sm);
}

.portal-auth-support-card {
  display: grid;
  gap: 0.9rem;
  padding: var(--space-md);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: var(--radius-xl);
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(12px);
}

.portal-auth-support-card--compact {
  gap: 0.72rem;
}

.portal-auth-support-card__eyebrow {
  color: rgba(255,255,255,0.7);
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.portal-auth-support-card p {
  margin: 0;
  max-width: none;
  color: rgba(255,255,255,0.74);
  font-size: 0.88rem;
  line-height: 1.65;
}

.portal-auth-support-card__steps,
.portal-auth-support-card__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.portal-auth-support-card__steps span,
.portal-auth-support-card__links a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.5rem 0.72rem;
  border-radius: 999px;
  text-decoration: none;
  font-size: 0.76rem;
  font-weight: 900;
}

.portal-auth-support-card__steps span {
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.88);
}

.portal-auth-support-card__links a {
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(7, 20, 50, 0.24);
  color: var(--color-white);
  transition: border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast);
}

.portal-auth-support-card__links a:hover,
.portal-auth-support-card__links a:focus-visible {
  border-color: rgba(197, 164, 78, 0.42);
  background: rgba(255,255,255,0.12);
  transform: translateY(-1px);
  outline: none;
}

.portal-auth-card,
.portal-setup-panel,
.portal-gate,
.portal-header,
.portal-panel {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: rgba(255,255,255,0.96);
  box-shadow: 0 24px 62px rgba(7, 20, 50, 0.12);
}

.portal-auth-card,
.portal-setup-panel,
.portal-gate {
  display: grid;
  gap: var(--space-lg);
  padding: clamp(1.35rem, 3vw, 2rem);
}

.portal-setup-panel--compact {
  gap: var(--space-md);
  padding: clamp(1.1rem, 2.4vw, 1.45rem);
}

.portal-gate__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.portal-gate__stats article {
  display: grid;
  gap: 0.22rem;
  padding: var(--space-md);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: rgba(247, 249, 252, 0.92);
}

.portal-gate__stats strong {
  color: var(--color-primary);
  font-size: 1.12rem;
  line-height: 1;
}

.portal-gate__stats span {
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  line-height: 1.4;
}

.portal-auth-card--wide {
  align-self: stretch;
}

.portal-auth-card--subtle {
  gap: var(--space-md);
  background: rgba(247, 249, 252, 0.9);
  box-shadow: 0 18px 40px rgba(7, 20, 50, 0.08);
}

.portal-auth-card h2,
.portal-setup-panel h2,
.portal-gate h2,
.portal-header h2,
.portal-panel h3 {
  color: var(--color-primary);
  line-height: 1.08;
}

.portal-auth-card p,
.portal-setup-panel p,
.portal-gate p,
.portal-header p,
.portal-panel p {
  color: var(--color-text-secondary);
}

.portal-auth-card label,
.portal-mini-form label {
  display: grid;
  gap: 0.42rem;
  color: var(--color-primary);
  font-weight: 900;
}

.portal-auth-card input,
.portal-auth-card textarea,
.portal-auth-card select,
.portal-mini-form input,
.portal-mini-form textarea,
.portal-mini-form select {
  width: 100%;
  min-height: 48px;
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-text-primary);
  font: inherit;
  font-weight: 700;
}

.portal-auth-card textarea,
.portal-mini-form textarea {
  min-height: 110px;
  resize: vertical;
}

.portal-auth-card input:focus,
.portal-auth-card textarea:focus,
.portal-auth-card select:focus,
.portal-mini-form input:focus,
.portal-mini-form textarea:focus,
.portal-mini-form select:focus {
  border-color: var(--color-secondary);
  background: var(--color-white);
  box-shadow: 0 0 0 4px rgba(197, 164, 78, 0.16);
  outline: none;
}

.portal-auth-card__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.portal-auth-stack {
  display: grid;
  gap: var(--space-md);
}

.portal-mini-form {
  display: grid;
  gap: var(--space-md);
}

.portal-mini-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
}

.portal-access-options {
  display: grid;
  gap: var(--space-sm);
}

.portal-access-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-md);
  align-items: center;
  padding: var(--space-md);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: rgba(247, 249, 252, 0.92);
  text-decoration: none;
  transition: transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast);
}

.portal-access-card:hover,
.portal-access-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(197, 164, 78, 0.38);
  background: var(--color-white);
  box-shadow: 0 16px 38px rgba(7, 20, 50, 0.1);
  outline: none;
}

.portal-access-card__eyebrow,
.portal-rule-list span,
.portal-next-steps span {
  color: var(--color-secondary-dark);
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.portal-access-card strong {
  display: block;
  color: var(--color-primary);
  font-size: 1.02rem;
  line-height: 1.2;
}

.portal-access-card p {
  margin-top: 0.25rem;
  color: var(--color-text-secondary);
  font-size: 0.84rem;
  line-height: 1.45;
}

.portal-access-card__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 84px;
  min-height: 38px;
  padding: 0.55rem 0.72rem;
  border-radius: var(--radius-full);
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 0.76rem;
  font-weight: 950;
  text-transform: uppercase;
}

.portal-access-card__meta {
  display: block;
  margin-top: 0.45rem;
  color: var(--color-text-secondary);
  font-size: 0.72rem;
  font-weight: 800;
  text-align: center;
}

.portal-access-card--muted .portal-access-card__action {
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
}

.portal-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
}

.portal-form-grid__wide {
  grid-column: 1 / -1;
}

.portal-setup-steps {
  display: grid;
  gap: var(--space-sm);
}

.portal-setup-steps span,
.portal-role-matrix article,
.portal-status,
.portal-role-tabs span,
.portal-metric-row article,
.portal-module-grid article,
.portal-compact-list > a,
.portal-compact-list > span {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.portal-setup-steps span {
  padding: var(--space-md);
  color: var(--color-text-secondary);
  font-weight: 750;
}

.portal-setup-steps strong {
  color: var(--color-primary);
}

.portal-rule-list,
.portal-next-steps {
  display: grid;
  gap: var(--space-xs);
}

.portal-rule-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.portal-rule-list li,
.portal-next-steps article,
.portal-empty-state {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.portal-rule-list li {
  display: flex;
  gap: 0.62rem;
  align-items: flex-start;
  padding: 0.75rem 0.82rem;
  color: var(--color-text-secondary);
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.45;
}

.portal-rule-list li::before {
  content: '';
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  margin-top: 0.45rem;
  border-radius: var(--radius-full);
  background: var(--color-secondary);
}

.portal-next-steps {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.portal-next-steps article {
  display: grid;
  gap: 0.25rem;
  padding: var(--space-md);
}

.portal-next-steps strong,
.portal-empty-state strong {
  color: var(--color-primary);
}

.portal-next-steps small,
.portal-empty-state span {
  color: var(--color-text-secondary);
  line-height: 1.45;
}

.portal-empty-state {
  display: grid;
  gap: 0.25rem;
  padding: var(--space-md);
}

.portal-preview-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-sm);
}

.portal-preview-card {
  display: grid;
  gap: var(--space-sm);
  padding: var(--space-md);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.portal-preview-card.is-active {
  border-color: rgba(197, 164, 78, 0.4);
  background: var(--color-white);
  box-shadow: var(--shadow-soft);
}

.portal-preview-card strong {
  color: var(--color-primary);
  font-size: 1rem;
}

.portal-preview-card span {
  color: var(--color-text-secondary);
  font-size: 0.84rem;
  line-height: 1.45;
}

.portal-preview-shell {
  display: grid;
  gap: var(--space-sm);
}

.portal-preview-lead {
  max-width: 58ch;
  margin: 0;
}

.portal-preview-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.portal-preview-tag,
.portal-preview-subtle {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.42rem 0.78rem;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-preview-tag {
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
}

.portal-preview-subtle {
  background: rgba(197, 164, 78, 0.12);
  color: var(--color-text-secondary);
}

.portal-preview-route {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 0.85rem 0.95rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: rgba(247, 249, 252, 0.92);
}

.portal-preview-route span {
  color: var(--color-text-secondary);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-preview-route a {
  color: var(--color-primary);
  font-size: 0.84rem;
  font-weight: 900;
  text-decoration: none;
}

.portal-preview-route a:hover,
.portal-preview-route a:focus-visible {
  color: var(--color-secondary-dark);
  outline: none;
}

.portal-preview-spotlight {
  display: grid;
  gap: var(--space-sm);
  padding: var(--space-md);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: linear-gradient(180deg, rgba(247, 249, 252, 0.96), rgba(255, 255, 255, 0.98));
}

.portal-preview-spotlight__copy {
  display: grid;
  gap: 0.35rem;
}

.portal-preview-spotlight__copy span,
.portal-preview-spotlight__meta span {
  color: var(--color-text-secondary);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-preview-spotlight__copy strong {
  color: var(--color-primary);
  font-size: 1.1rem;
  line-height: 1.15;
}

.portal-preview-spotlight__copy p {
  margin: 0;
  max-width: 64ch;
}

.portal-preview-spotlight__meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.portal-preview-spotlight__meta article,
.portal-preview-spotlight__chips span {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-white);
}

.portal-preview-spotlight__meta article {
  display: grid;
  gap: 0.22rem;
  padding: 0.85rem 0.95rem;
}

.portal-preview-spotlight__meta strong {
  color: var(--color-primary);
  font-size: 0.9rem;
  line-height: 1.3;
}

.portal-preview-spotlight__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.portal-preview-spotlight__chips span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.48rem 0.72rem;
  color: var(--color-primary);
  font-size: 0.76rem;
  font-weight: 850;
}

.portal-preview-boundaries {
  display: grid;
  gap: 0.75rem;
  padding: var(--space-md);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: rgba(247, 249, 252, 0.92);
}

.portal-preview-boundaries__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
}

.portal-preview-boundaries__card {
  display: grid;
  gap: 0.65rem;
  padding: 0.95rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-white);
}

.portal-preview-boundaries__card strong {
  color: var(--color-primary);
  font-size: 0.88rem;
}

.portal-preview-boundaries__card ul {
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.portal-preview-boundaries__card li {
  position: relative;
  padding-left: 0.95rem;
  color: var(--color-text-secondary);
  font-size: 0.8rem;
  line-height: 1.45;
}

.portal-preview-boundaries__card li::before {
  content: '';
  position: absolute;
  top: 0.46rem;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--color-secondary);
}

.portal-preview-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.portal-preview-board {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: var(--space-sm);
}

.portal-preview-pane,
.portal-preview-timeline-shell {
  display: grid;
  gap: 0.75rem;
  padding: var(--space-md);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: rgba(247, 249, 252, 0.92);
}

.portal-preview-pane__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.portal-preview-pane__header strong {
  color: var(--color-primary);
  font-size: 0.88rem;
}

.portal-preview-pane__header span {
  color: var(--color-text-secondary);
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.portal-preview-metrics article,
.portal-preview-modules article {
  display: grid;
  gap: 0.2rem;
  padding: var(--space-md);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: rgba(247, 249, 252, 0.9);
}

.portal-preview-metrics strong,
.portal-preview-modules strong {
  color: var(--color-primary);
}

.portal-preview-metrics strong {
  font-size: 1.2rem;
  line-height: 1;
}

.portal-preview-metrics span,
.portal-preview-modules span {
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  line-height: 1.4;
}

.portal-preview-modules {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.portal-preview-list {
  display: grid;
  gap: 0.65rem;
}

.portal-preview-list__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: start;
  padding: 0.85rem 0.95rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-md);
  background: var(--color-white);
}

.portal-preview-list__item div {
  display: grid;
  gap: 0.15rem;
}

.portal-preview-list__item strong {
  color: var(--color-primary);
  font-size: 0.86rem;
}

.portal-preview-list__item span {
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  line-height: 1.4;
}

.portal-preview-list__item em {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.38rem 0.65rem;
  border-radius: 999px;
  background: rgba(197, 164, 78, 0.12);
  color: var(--color-primary);
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}

.portal-preview-timeline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.portal-preview-timeline__step {
  display: grid;
  gap: 0.45rem;
  justify-items: start;
  padding: 0.9rem 0.95rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-white);
}

.portal-preview-timeline__dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: rgba(9, 30, 82, 0.16);
}

.portal-preview-timeline__step strong {
  color: var(--color-primary);
  font-size: 0.84rem;
  line-height: 1.35;
}

.portal-preview-timeline__step.is-done .portal-preview-timeline__dot {
  background: var(--color-primary);
}

.portal-preview-timeline__step.is-active .portal-preview-timeline__dot {
  background: var(--color-gold);
}

.portal-preview-timeline__step.is-upcoming .portal-preview-timeline__dot {
  background: rgba(9, 30, 82, 0.16);
}

.portal-preview-note {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 0.8rem;
  line-height: 1.5;
}

.portal-role-tabs--preview {
  margin-bottom: var(--space-sm);
}

.portal-preview-tab {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  flex: 0 0 auto;
  padding: 0.68rem 0.95rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  color: var(--color-text-secondary);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
  transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.portal-preview-tab.is-active,
.portal-preview-tab:hover,
.portal-preview-tab:focus-visible {
  border-color: rgba(197, 164, 78, 0.45);
  background: var(--color-primary);
  color: var(--color-white);
  outline: none;
}

.portal-role-matrix {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.portal-role-matrix article {
  display: grid;
  gap: 0.25rem;
  padding: var(--space-md);
}

.portal-role-matrix strong {
  color: var(--color-primary);
  font-size: 0.86rem;
  text-transform: uppercase;
}

.portal-role-matrix span {
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  line-height: 1.45;
}

.portal-section {
  background:
    linear-gradient(180deg, rgba(246,249,253,0.98), rgba(255,255,255,1));
}

.portal-shell {
  display: grid;
  gap: var(--space-xl);
}

.portal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
  padding: clamp(1.15rem, 2.4vw, 1.8rem);
}

.portal-header__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-sm);
}

.portal-status {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0.55rem 0.85rem;
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 950;
  text-transform: uppercase;
}

.portal-status--active {
  border-color: rgba(46, 204, 113, 0.24);
  background: rgba(46, 204, 113, 0.08);
}

.portal-role-tabs {
  display: flex;
  gap: var(--space-sm);
  overflow-x: auto;
  padding-bottom: 0.1rem;
  -webkit-overflow-scrolling: touch;
}

.portal-role-tabs span {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 46px;
  flex: 0 0 auto;
  padding: 0.68rem 0.95rem;
  color: var(--color-text-secondary);
  font-weight: 900;
}

.portal-role-tabs span.is-active {
  border-color: rgba(197, 164, 78, 0.45);
  background: var(--color-primary);
  color: var(--color-white);
}

.portal-role-tabs small {
  opacity: 0.72;
  font-size: 0.72rem;
  text-transform: uppercase;
}

.portal-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr);
  gap: var(--space-lg);
}

.portal-grid--admin {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-grid--athlete {
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 0.78fr);
}

.portal-panel {
  display: grid;
  gap: var(--space-md);
  align-content: start;
  padding: clamp(1rem, 2.2vw, 1.55rem);
  box-shadow: var(--shadow-card);
}

.portal-panel__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.portal-panel--featured {
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.96)),
    radial-gradient(circle at top right, rgba(197,164,78,0.16), transparent 34%);
}

.portal-panel--preview {
  background:
    linear-gradient(180deg, rgba(247, 249, 252, 0.98), rgba(255, 255, 255, 0.98));
}

.portal-preview-banner {
  display: grid;
  gap: var(--space-md);
}

.portal-preview-banner__copy {
  display: grid;
  gap: 0.35rem;
}

.portal-preview-banner__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.portal-preview-banner__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.48rem 0.74rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--color-primary);
  font-size: 0.74rem;
  font-weight: 900;
}

.portal-metric-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-sm);
}

.portal-metric-row article {
  display: grid;
  gap: 0.2rem;
  padding: var(--space-md);
}

.portal-metric-row strong {
  color: var(--color-primary);
  font-size: 1.45rem;
  line-height: 1;
}

.portal-metric-row span {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.portal-claim-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
}

.portal-claim-summary__card {
  display: grid;
  gap: 0.18rem;
  padding: 0.8rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(248, 250, 253, 0.84);
}

.portal-claim-summary__card strong {
  color: var(--color-primary);
  font-size: clamp(1.05rem, 2vw, 1.45rem);
  line-height: 1;
}

.portal-claim-summary__card span {
  color: var(--color-text-secondary);
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1.35;
}

.portal-claim-summary__card--action {
  border-color: rgba(197, 164, 78, 0.28);
  background: rgba(197, 164, 78, 0.08);
}

.portal-claim-summary__card--watch {
  border-color: rgba(41, 111, 186, 0.2);
  background: rgba(41, 111, 186, 0.06);
}

.portal-claim-summary__card--done {
  border-color: rgba(27, 122, 73, 0.18);
  background: rgba(27, 122, 73, 0.06);
}

.portal-task-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.portal-task-strip__card {
  display: grid;
  gap: 0.18rem;
  padding: 0.8rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(248, 250, 253, 0.84);
}

.portal-task-strip__card span {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-task-strip__card strong {
  color: var(--color-primary);
  font-size: 0.9rem;
  line-height: 1.4;
}

.portal-definition-list {
  display: grid;
  gap: var(--space-sm);
  margin: 0;
}

.portal-definition-list div {
  display: grid;
  gap: 0.18rem;
  padding: var(--space-sm) 0;
  border-top: 1px solid rgba(9, 30, 82, 0.08);
}

.portal-definition-list div:first-child {
  border-top: 0;
  padding-top: 0;
}

.portal-definition-list dt {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.portal-definition-list dd {
  margin: 0;
  color: var(--color-primary);
  font-weight: 800;
  line-height: 1.45;
}

.portal-mini-form {
  display: grid;
  gap: var(--space-md);
}

.portal-review-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-md);
  align-items: center;
  padding: var(--space-md);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.portal-review-card strong,
.portal-compact-list strong,
.portal-module-grid strong {
  color: var(--color-primary);
}

.portal-review-card span,
.portal-compact-list small,
.portal-module-grid span {
  display: block;
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  font-weight: 750;
}

.portal-review-card__actions {
  display: flex;
  gap: var(--space-sm);
}

.portal-review-card__preview-status {
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 800;
}

.portal-claim-list {
  display: grid;
  gap: 0.65rem;
}

.portal-claim-item {
  display: grid;
  gap: 0.45rem;
  padding: 0.9rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(248, 250, 253, 0.84);
}

.portal-claim-item__head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.8rem;
}

.portal-claim-item__head strong {
  color: var(--color-primary);
  font-size: 0.96rem;
}

.portal-claim-item__head span {
  display: block;
  margin-top: 0.2rem;
  color: var(--color-text-light);
  font-size: 0.76rem;
  font-weight: 800;
}

.portal-claim-item small {
  display: block;
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 0.8rem;
  line-height: 1.45;
}

.portal-claim-item__status {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 0.42rem 0.62rem;
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 950;
  white-space: nowrap;
}

.portal-claim-item__status--action {
  background: rgba(197, 164, 78, 0.12);
}

.portal-claim-item__status--watch {
  background: rgba(41, 111, 186, 0.1);
}

.portal-claim-item__status--done {
  background: rgba(27, 122, 73, 0.1);
}

.portal-compact-list,
.portal-module-grid {
  display: grid;
  gap: var(--space-sm);
}

.portal-module-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-compact-list > a,
.portal-compact-list > span,
.portal-module-grid article {
  display: grid;
  gap: 0.18rem;
  padding: var(--space-md);
}

.portal-compact-list > a {
  text-decoration: none;
  transition: border-color var(--transition-fast), transform var(--transition-fast), background var(--transition-fast);
}

.portal-compact-list > a:hover,
.portal-compact-list > a:focus-visible {
  border-color: rgba(197,164,78,0.45);
  background: var(--color-white);
  transform: translateY(-1px);
  outline: none;
}

.portal-entry-strip {
  padding: clamp(1rem, 3vw, 1.5rem) 0 0;
  background: linear-gradient(180deg, rgba(246,249,253,0.96), rgba(255,255,255,1));
}

.portal-entry-strip__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
  padding: clamp(1rem, 2.3vw, 1.45rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: var(--color-white);
  box-shadow: var(--shadow-soft);
}

.portal-entry-strip h2 {
  margin: 0.25rem 0 0.35rem;
  color: var(--color-primary);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.08;
}

.portal-entry-strip p {
  max-width: 720px;
  margin: 0;
  color: var(--color-text-secondary);
  line-height: 1.55;
}

.portal-entry-strip__actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-sm);
}

.portal-transition-strip {
  margin-bottom: var(--space-xl);
}

.portal-transition-strip--signed-in {
  border-color: rgba(24, 118, 72, 0.18);
  background:
    linear-gradient(180deg, rgba(245, 251, 247, 0.96), rgba(255, 255, 255, 0.98));
}

.profile-submission-card {
  display: grid;
  grid-template-columns: minmax(220px, 0.45fr) minmax(0, 1fr);
  gap: var(--space-xl);
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
}

.profile-submission-card__media {
  min-height: 260px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
}

.profile-submission-card__media img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
}

.profile-submission-card__placeholder {
  display: grid;
  place-items: center;
  min-height: 260px;
  color: var(--color-white);
  font-weight: 900;
}

.profile-submission-card__body {
  display: grid;
  align-content: start;
  gap: var(--space-md);
}

.profile-submission-card__body h3 {
  color: var(--color-primary);
  font-size: var(--fs-h3);
}

.profile-submission-card__links {
  display: grid;
  gap: var(--space-sm);
  margin: 0;
}

.profile-submission-card__links div {
  display: grid;
  gap: 0.2rem;
  padding: var(--space-sm);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}

.profile-submission-card__links dt {
  color: var(--color-text-light);
  font-size: var(--fs-small);
  font-weight: 900;
  text-transform: uppercase;
}

.profile-submission-card__links dd {
  margin: 0;
  color: var(--color-text);
  overflow-wrap: anywhere;
}

.profile-submission-card__actions {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
}

.profile-submission-card__media-list {
  display: grid;
  gap: 0.4rem;
  padding: var(--space-sm);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}

.profile-submission-card__media-list strong {
  color: var(--color-primary);
}

.profile-submission-card__media-list a {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 800;
  overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
  .profile-form__layout {
    grid-template-columns: 1fr;
  }

  .profile-wizard {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    overflow-x: auto;
  }

  .profile-wizard__step {
    min-width: 160px;
  }

  .profile-live-preview {
    border-left: 0;
    border-top: 1px solid rgba(9, 30, 82, 0.08);
  }

  .profile-live-preview__card {
    position: static;
  }

  .profile-highlight-row,
  .profile-media-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  }

  .profile-highlight-row__notes,
  .profile-media-row__caption {
    grid-column: 1 / 3;
  }
}

@media (max-width: 720px) {
  .profile-wizard {
    grid-template-columns: 1fr;
  }

  .profile-wizard__step {
    min-width: 0;
  }

  .profile-highlight-row,
  .profile-media-row,
  .profile-policy-grid,
  .profile-photo-drop,
  .profile-media-upload {
    grid-template-columns: 1fr;
  }

  .profile-highlight-row__notes,
  .profile-media-row__caption {
    grid-column: auto;
  }

  .profile-highlight-row__remove {
    justify-self: start;
  }
}

/* ---------- Documents ---------- */
.documents-library {
  display: grid;
  gap: 1.15rem;
}

.documents-library > *,
.documents-featured__panel > *,
.documents-control-center > *,
.documents-results > * {
  min-width: 0;
}

.documents-library__notice {
  margin-top: 0.2rem;
  display: inline-flex;
  align-items: center;
  justify-self: center;
  width: fit-content;
  max-width: 100%;
  padding: 0.65rem 0.85rem;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(9, 30, 82, 0.1);
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.96));
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  line-height: 1.35;
  box-shadow: var(--shadow-card);
}

.documents-featured__panel {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1.05fr);
  gap: var(--space-xl);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: var(--radius-xl);
  background: linear-gradient(135deg, rgba(8, 20, 58, 0.98), rgba(11, 29, 81, 0.92));
  color: var(--color-white);
  box-shadow: var(--shadow-premium);
}

.documents-featured__copy h2 {
  color: var(--color-white);
  margin-bottom: 0.45rem;
  line-height: 1.08;
}

.documents-featured__copy p {
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.45;
}

.documents-featured__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: 0.55rem;
}

.documents-featured__list {
  display: grid;
  gap: var(--space-md);
}

.documents-featured__item {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.1);
  text-decoration: none;
  color: inherit;
  transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.documents-featured__item:hover {
  transform: translateY(-3px);
  border-color: rgba(242, 201, 76, 0.42);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.18);
}

.documents-featured__item strong {
  color: var(--color-white);
}

.documents-featured__item span:last-child {
  color: rgba(255, 255, 255, 0.72);
  font-size: var(--fs-xs);
}

.documents-controls {
  display: grid;
  gap: var(--space-lg);
}

.documents-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-md);
}

.documents-stats:empty {
  display: none;
}

.documents-stat {
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
  text-align: center;
}

.documents-stat strong {
  display: block;
  font-size: var(--fs-h3);
  color: var(--color-primary);
  line-height: 1;
  margin-bottom: 0.35rem;
}

.documents-stat span {
  color: var(--color-text-secondary);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.documents-filters {
  display: block;
}

.documents-results {
  display: grid;
  gap: var(--space-xl);
}

.documents-control-center {
  display: grid;
  gap: var(--space-lg);
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-xl);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.98)),
    radial-gradient(circle at 92% 0%, rgba(197,164,78,0.14), transparent 34%);
  box-shadow: var(--shadow-card);
}

.documents-control-center__header,
.documents-search,
.documents-filter-chips,
.documents-active-filters,
.documents-results-toolbar {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.documents-control-center__header,
.documents-results-toolbar {
  justify-content: space-between;
  flex-wrap: wrap;
}

.documents-control-center__header h3 {
  margin-top: 0.25rem;
  color: var(--color-primary);
  font-size: clamp(1.35rem, 2vw, 1.8rem);
}

.documents-reset {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: var(--radius-full);
  background: var(--color-white);
  color: var(--color-primary);
  cursor: pointer;
  font-weight: 900;
  padding: 0.75rem 1rem;
  transition: var(--transition);
}

.documents-reset:hover,
.documents-reset:focus-visible,
.documents-filter-chip:hover,
.documents-filter-chip:focus-visible,
.documents-active-filters button:hover,
.documents-active-filters button:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(197,164,78,0.54);
  box-shadow: 0 10px 24px rgba(9, 30, 82, 0.1);
}

.documents-reset svg,
.documents-search svg {
  width: 18px;
  height: 18px;
}

.documents-search {
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-white);
}

.documents-search input {
  width: 100%;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--color-text);
  font: inherit;
  font-weight: 750;
}

.documents-filter-chips,
.documents-active-filters {
  flex-wrap: wrap;
}

.documents-filter-chip,
.documents-active-filters button {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: var(--radius-full);
  background: var(--color-white);
  color: var(--color-primary);
  cursor: pointer;
  font-size: var(--fs-small);
  font-weight: 850;
  padding: 0.62rem 0.9rem;
  transition: var(--transition);
}

.documents-filter-chip.is-active {
  border-color: rgba(197,164,78,0.62);
  background: var(--color-primary);
  color: var(--color-white);
}

.documents-filter-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
  padding-top: var(--space-md);
  border-top: 1px solid rgba(9, 30, 82, 0.08);
}

.documents-filter-grid label {
  display: grid;
  gap: 0.45rem;
  color: var(--color-primary);
  font-size: var(--fs-small);
  font-weight: 850;
}

.documents-filter-grid select {
  width: 100%;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  color: var(--color-text);
  font: inherit;
  font-weight: 750;
  padding: 0.85rem 0.9rem;
}

.documents-active-filters {
  min-height: 2.15rem;
}

.documents-active-filters > span {
  color: var(--color-text-light);
  font-size: var(--fs-small);
  font-weight: 800;
}

.documents-active-filters button {
  gap: 0.55rem;
  color: var(--color-text-secondary);
}

.documents-active-filters strong {
  display: inline-grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1;
}

.documents-results-toolbar {
  padding: var(--space-md) var(--space-lg);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-white);
  box-shadow: var(--shadow-card);
}

.documents-results-toolbar p,
.documents-results-toolbar span {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 850;
}

.documents-results-toolbar strong {
  color: var(--color-primary);
  font-size: 1.1rem;
}

.docs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--space-lg);
}

.doc-category {
  margin-bottom: var(--space-3xl);
}

.doc-category__title {
  font-size: var(--fs-h3);
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-sm);
  border-bottom: 2px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
}

.doc-category__title small {
  border-radius: var(--radius-full);
  background: rgba(9, 30, 82, 0.06);
  color: var(--color-text-secondary);
  font-size: var(--fs-xs);
  font-weight: 850;
  padding: 0.4rem 0.65rem;
}

.doc-item {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  min-width: 0;
  padding: var(--space-lg);
  background: var(--color-white);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  transition: all var(--transition-base);
  margin-bottom: var(--space-md);
}

.doc-item:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateX(4px);
}

.doc-item__icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface);
  border-radius: var(--radius-md);
  font-size: 1.4rem;
}

.doc-item__format {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.doc-item__info {
  flex: 1;
  min-width: 0;
}

.doc-item__name {
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--color-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.doc-item__meta {
  font-size: var(--fs-xs);
  color: var(--color-text-light);
  margin-top: 2px;
}

.doc-item__download {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  color: var(--color-white);
  border-radius: var(--radius-sm);
  transition: all var(--transition-fast);
}

.doc-item__download:hover {
  background: var(--color-secondary);
  color: var(--color-primary);
}

/* ---------- Event Hub ---------- */
.event-hub-hero__content .section-kicker,
.event-hub-hero__kicker {
  color: #f0d27a;
}

.event-hub-hero__facts {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-md);
  margin-top: var(--space-2xl);
}

.event-hub-hero__fact {
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.11);
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(10px);
  text-align: left;
}

.event-hub-hero__fact strong {
  display: block;
  color: var(--color-white);
  font-size: 1.1rem;
  line-height: 1.35;
  margin-bottom: 0.25rem;
}

.event-hub-hero__fact span {
  color: rgba(255, 255, 255, 0.82);
  font-size: var(--fs-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}

.event-hub-shell {
  display: grid;
  gap: var(--space-xl);
}

.event-hub-actions {
  position: sticky;
  top: calc(var(--nav-height-scrolled) + 10px);
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
  padding: 0.42rem;
  border: 1px solid rgba(9, 30, 82, 0.11);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 253, 0.94));
  box-shadow: 0 18px 38px rgba(9, 30, 82, 0.12);
  backdrop-filter: blur(18px);
}

.event-hub-actions a,
.event-hub-actions__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  min-height: 36px;
  padding: 0.52rem 0.78rem;
  border-radius: 12px;
  border: 1px solid transparent;
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

.event-hub-actions a small,
.event-hub-actions__link small {
  display: inline-grid;
  place-items: center;
  min-width: 1.3rem;
  height: 1.3rem;
  padding: 0 0.28rem;
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.08);
  color: var(--color-text-light);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0;
}

.event-hub-actions a:hover,
.event-hub-actions a:focus-visible,
.event-hub-actions__link:hover,
.event-hub-actions__link:focus-visible {
  background: rgba(11, 29, 81, 0.06);
  border-color: rgba(9, 30, 82, 0.1);
  outline: none;
}

.event-hub-actions__link.is-active {
  background: var(--color-primary);
  border-color: rgba(11, 29, 81, 0.22);
  color: var(--color-white);
  box-shadow: 0 12px 26px rgba(11, 29, 81, 0.2);
}

.event-hub-actions__link.is-active small {
  background: rgba(255, 255, 255, 0.18);
  color: var(--color-white);
}

.event-hub-actions__link--external {
  margin-left: auto;
  background: rgba(197, 164, 78, 0.12);
  border-color: rgba(197, 164, 78, 0.28);
  color: var(--color-secondary-dark);
}

.event-hub-actions__link--external::after {
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  background: currentColor;
  clip-path: polygon(28% 8%, 92% 8%, 92% 72%, 78% 72%, 78% 32%, 18% 92%, 8% 82%, 68% 22%, 28% 22%);
  line-height: 1;
  opacity: 0.72;
}

.event-hub-overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-lg);
  align-items: stretch;
}

.event-hub-overview__copy,
.event-hub-results,
.event-hub-panel {
  background: var(--color-white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-card);
}

.event-hub-overview__copy,
.event-hub-results {
  padding: clamp(1rem, 2.1vw, 1.55rem);
}

.event-hub-overview__copy h2,
.event-hub-results h3 {
  color: var(--color-primary);
  margin-bottom: var(--space-md);
}

.event-hub-overview__copy p,
.event-hub-results p {
  color: var(--color-text-secondary);
  line-height: 1.75;
}

.event-hub-overview__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-lg);
}

.event-hub-overview__meta span {
  border-radius: var(--radius-full);
  background: rgba(9, 30, 82, 0.06);
  color: var(--color-primary);
  font-size: var(--fs-xs);
  font-weight: 850;
  padding: 0.48rem 0.75rem;
}

.event-hub-center-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: var(--space-sm);
  margin-top: 0.85rem;
}

.event-hub-center-grid--compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.event-hub-center-grid--single {
  grid-template-columns: minmax(0, 1fr);
}

.event-hub-center-card {
  display: grid;
  gap: 0.25rem;
  padding: 0.8rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 10px;
  background: rgba(11, 29, 81, 0.03);
}

.event-hub-center-card small,
.event-hub-participant-card__summary {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.event-hub-center-card strong {
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1.15;
}

.event-hub-center-card span {
  color: var(--color-text-secondary);
  font-size: var(--fs-xs);
  line-height: 1.45;
}

.event-hub-results {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: linear-gradient(180deg, rgba(11, 29, 81, 0.04) 0%, rgba(242, 201, 76, 0.08) 100%), var(--color-white);
  border: 1px solid rgba(11, 29, 81, 0.08);
}

.event-hub-results__actions,
.ranking-event-standings-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-sm);
}

.event-hub-standings {
  display: grid;
  gap: var(--space-md);
}

.event-hub-match-archive {
  display: grid;
  gap: var(--space-lg);
}

.event-hub-match-archive__view[hidden] {
  display: none !important;
}

.event-hub-stage-switcher,
.event-hub-subswitcher {
  display: grid;
  gap: var(--space-md);
}

.event-hub-stage-switcher__nav,
.event-hub-subswitcher__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
}

.event-hub-stage-switcher__tab,
.event-hub-subswitcher__tab {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 40px;
  padding: 0.62rem 0.85rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  color: var(--color-primary);
  font: inherit;
  font-weight: 850;
  cursor: pointer;
  transition: var(--transition-fast);
}

.event-hub-stage-switcher__tab small {
  display: inline-grid;
  place-items: center;
  min-width: 1.4rem;
  height: 1.4rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-text-secondary);
  font-size: 0.68rem;
  font-weight: 900;
}

.event-hub-stage-switcher__tab:hover,
.event-hub-stage-switcher__tab:focus-visible,
.event-hub-subswitcher__tab:hover,
.event-hub-subswitcher__tab:focus-visible {
  border-color: rgba(197, 164, 78, 0.4);
  background: rgba(255, 250, 237, 0.9);
  outline: none;
}

.event-hub-stage-switcher__tab.is-active,
.event-hub-subswitcher__tab.is-active {
  border-color: rgba(11, 29, 81, 0.22);
  background: var(--color-primary);
  color: var(--color-white);
}

.event-hub-stage-switcher__tab.is-active small {
  background: rgba(255, 255, 255, 0.16);
  color: var(--color-white);
}

.event-hub-stage-switcher__view[hidden],
.event-hub-match-group[hidden],
.event-hub-match-round[hidden] {
  display: none !important;
}

.event-hub-match-discipline {
  display: grid;
  gap: var(--space-md);
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  background: rgba(11, 29, 81, 0.03);
  border: 1px solid rgba(11, 29, 81, 0.08);
}

.event-hub-match-discipline__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-md);
}

.event-hub-match-discipline__header h3,
.event-hub-match-group__header h4 {
  color: var(--color-primary);
}

.event-hub-match-discipline__header p {
  margin-top: var(--space-xs);
  color: var(--color-text-secondary);
}

.event-hub-match-discipline__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-sm);
}

.event-hub-match-discipline__meta span,
.event-hub-match-discipline__meta a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0.5rem 0.8rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: var(--fs-xs);
  font-weight: 800;
  text-decoration: none;
}

.event-hub-match-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
}

.event-hub-match-groups--single,
.event-hub-match-rounds {
  grid-template-columns: 1fr;
}

.event-hub-match-group {
  display: grid;
  gap: var(--space-md);
  padding: var(--space-lg);
  border-radius: 14px;
  background: var(--color-white);
  border: 1px solid rgba(9, 30, 82, 0.08);
}

.event-hub-match-round {
  display: grid;
  gap: var(--space-md);
  padding: var(--space-lg);
  border-radius: 14px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 249, 253, 0.98));
  border: 1px solid rgba(9, 30, 82, 0.08);
}

.event-hub-match-group__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-sm);
}

.event-hub-match-group__header span {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.event-hub-match-group__body {
  display: grid;
  gap: var(--space-md);
}

.event-hub-match-round__board {
  display: grid;
  gap: var(--space-md);
}

.event-hub-bracket {
  display: grid;
  gap: var(--space-md);
}

.event-hub-bracket__scroller {
  overflow-x: auto;
  padding-bottom: 0.25rem;
}

.event-hub-bracket__board {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(16rem, 1fr);
  gap: var(--space-md);
  align-items: start;
  min-width: max-content;
}

.event-hub-bracket__round {
  position: relative;
  display: grid;
  gap: 0.85rem;
  align-content: start;
}

.event-hub-bracket__round:not(:last-child)::after {
  content: '';
  position: absolute;
  right: -0.7rem;
  top: 50%;
  width: 0.9rem;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(199, 166, 72, 0.75), rgba(45, 143, 221, 0.75));
}

.event-hub-bracket__round-head {
  display: grid;
  gap: 0.15rem;
  padding: 0.9rem 1rem;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(11, 29, 81, 0.05), rgba(45, 143, 221, 0.04));
  border: 1px solid rgba(9, 30, 82, 0.08);
}

.event-hub-bracket__round-head small,
.event-hub-bracket__round-head span {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.event-hub-bracket__round-head h4 {
  color: var(--color-primary);
  font-size: var(--fs-body);
  line-height: 1.15;
}

.event-hub-bracket__matches {
  display: grid;
  gap: 0.85rem;
}

.event-hub-bracket-match {
  position: relative;
  display: grid;
  gap: 0.7rem;
  padding: 0.95rem 1rem 0.95rem 1.1rem;
  border-radius: 14px;
  border: 1px solid rgba(9, 30, 82, 0.08);
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(244,247,252,0.98));
  box-shadow: 0 14px 32px rgba(9, 30, 82, 0.06);
}

.event-hub-bracket-match::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.9rem;
  bottom: 0.9rem;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--color-secondary), #2d8fdd);
}

.event-hub-bracket-match__teams,
.event-hub-bracket-match__footer {
  display: grid;
  gap: 0.3rem;
}

.event-hub-bracket-match__team {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 700;
  line-height: 1.35;
}

.event-hub-bracket-match__team.is-winner {
  color: var(--color-primary);
}

.event-hub-bracket-match__footer strong {
  color: var(--color-primary);
  font-size: var(--fs-small);
  line-height: 1.25;
}

.event-hub-bracket-match__footer span {
  color: var(--color-text-light);
  font-size: var(--fs-xs);
  line-height: 1.45;
}

.event-hub-match-table {
  overflow-x: auto;
}

.event-hub-match-table table {
  width: 100%;
  border-collapse: collapse;
}

.event-hub-match-table th,
.event-hub-match-table td {
  padding: 0.6rem 0.4rem;
  border-bottom: 1px solid rgba(9, 30, 82, 0.08);
  text-align: left;
}

.event-hub-match-table th {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.event-hub-match-table td {
  color: var(--color-primary);
  font-size: var(--fs-small);
  font-weight: 600;
}

.event-hub-match-list {
  display: grid;
  gap: var(--space-sm);
}

.event-hub-match-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--space-sm);
  padding: 0.8rem 0.9rem;
  border-radius: 12px;
  background: rgba(11, 29, 81, 0.03);
}

.event-hub-match-item--bracket {
  position: relative;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(244,247,252,0.98));
}

.event-hub-match-item--bracket::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.9rem;
  bottom: 0.9rem;
  width: 3px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--color-secondary), #2d8fdd);
}

.event-hub-match-item__teams,
.event-hub-match-item__result {
  display: grid;
  gap: 0.12rem;
}

.event-hub-match-item__teams strong,
.event-hub-match-item__result strong {
  color: var(--color-primary);
  font-size: var(--fs-small);
  line-height: 1.3;
}

.event-hub-match-item__teams span,
.event-hub-match-item__result span {
  color: var(--color-text-secondary);
  font-size: var(--fs-xs);
  line-height: 1.45;
}

.event-hub-match-item__result {
  justify-items: end;
  text-align: right;
}

.event-hub-match-list--rounds {
  gap: 0.75rem;
}

.event-hub-match-note {
  margin-top: 0;
}

.event-hub-match-finishes {
  display: grid;
  gap: var(--space-md);
}

.event-hub-match-finishes__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-sm);
}

.event-hub-match-finishes__header h4 {
  color: var(--color-primary);
}

.event-hub-match-finishes__header span {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.event-hub-match-finishes__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-sm);
}

.event-hub-finish-card {
  display: grid;
  gap: 0.25rem;
  padding: var(--space-md);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(9, 30, 82, 0.08);
}

.event-hub-finish-card small {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.event-hub-finish-card strong {
  color: var(--color-primary);
  font-size: var(--fs-body);
  line-height: 1.2;
}

.event-hub-finish-card p,
.event-hub-finish-card span {
  color: var(--color-text-secondary);
  font-size: var(--fs-xs);
  line-height: 1.45;
}

.event-hub-policy-note {
  margin-top: var(--space-lg);
}

.event-hub-panel {
  padding: clamp(1rem, 2.2vw, 1.6rem);
}

.event-hub-panel--tight {
  padding: clamp(0.95rem, 2vw, 1.35rem);
}

.event-hub-center-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.9rem;
  margin-top: 1rem;
}

.event-hub-center-link-card {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 0.85rem;
  min-height: 100%;
  padding: 1rem;
  border-radius: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  border: 1px solid rgba(9, 30, 82, 0.12);
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(9, 30, 82, 0.07);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}

.event-hub-center-link-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--color-secondary), rgba(11, 29, 81, 0.8));
  opacity: 0;
  transition: opacity var(--transition-fast);
}

.event-hub-center-link-card:hover,
.event-hub-center-link-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 18px 42px rgba(9, 30, 82, 0.12);
  border-color: rgba(197, 164, 78, 0.34);
  outline: none;
}

.event-hub-center-link-card:hover::before,
.event-hub-center-link-card:focus-visible::before {
  opacity: 1;
}

.event-hub-center-link-card__meta {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  min-height: 24px;
  padding: 0 0.55rem;
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.06);
  color: var(--color-primary);
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  line-height: 1.2;
  text-transform: uppercase;
}

.event-hub-center-link-card__body {
  display: grid;
  gap: 0.45rem;
}

.event-hub-center-link-card__body strong {
  color: var(--color-primary);
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.16;
}

.event-hub-center-link-card__body span {
  color: var(--color-text-secondary);
  font-size: 0.92rem;
  line-height: 1.45;
}

.event-hub-center-link-card__action {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.event-hub-center-link-card__action svg {
  width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
  color: var(--color-secondary-dark);
  transition: transform var(--transition-fast);
}

.event-hub-center-link-card:hover .event-hub-center-link-card__action svg,
.event-hub-center-link-card:focus-visible .event-hub-center-link-card__action svg {
  transform: translateX(3px);
}

.competition-browser {
  display: grid;
  gap: var(--space-md);
}

.competition-browser__rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(180px, 1fr);
  gap: var(--space-sm);
  overflow-x: auto;
  padding-bottom: 0.35rem;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}

.competition-browser__entry {
  display: grid;
  gap: 0.18rem;
  min-height: 88px;
  padding: 0.85rem 0.9rem;
  border-radius: 12px;
  background: rgba(11, 29, 81, 0.035);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: inherit;
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
  scroll-snap-align: start;
}

.competition-browser__entry:hover,
.competition-browser__entry:focus-visible {
  transform: translateY(-2px);
  box-shadow: var(--shadow-card-hover);
  border-color: rgba(197, 164, 78, 0.34);
  background: rgba(197, 164, 78, 0.1);
}

.competition-browser__entry.is-active {
  background:
    linear-gradient(180deg, rgba(11, 29, 81, 0.05) 0%, rgba(242, 201, 76, 0.075) 100%),
    var(--color-white);
  border-color: rgba(11, 29, 81, 0.18);
  box-shadow: var(--shadow-sm);
}

.competition-browser__entry strong {
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1.15;
}

.competition-browser__entry span {
  color: var(--color-text-secondary);
  font-size: 0.76rem;
  line-height: 1.3;
}

@media (max-width: 900px) {
  .competition-directory-signals {
    grid-template-columns: 1fr;
  }
}

.event-hub-discipline-nav {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.35rem;
  margin-bottom: 0.9rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.event-hub-discipline-nav::-webkit-scrollbar { display: none; }

.event-hub-discipline-chip {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0.45rem 0.72rem;
  border-radius: 7px;
  background: rgba(11, 29, 81, 0.04);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  text-decoration: none;
  font: inherit;
  cursor: pointer;
}

.event-hub-discipline-chip strong {
  color: var(--color-primary);
  font-size: 0.8rem;
  line-height: 1;
  letter-spacing: 0.02em;
}

.event-hub-discipline-chip span {
  color: var(--color-text-secondary);
  font-size: 0.76rem;
  font-weight: 650;
  line-height: 1;
  text-transform: none;
  letter-spacing: 0;
}

.event-hub-discipline-chip:hover,
.event-hub-discipline-chip:focus-visible {
  background: rgba(197, 164, 78, 0.14);
  border-color: rgba(197, 164, 78, 0.34);
}

.event-hub-discipline-chip.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
  box-shadow: var(--shadow-sm);
}
.event-hub-discipline-chip.is-active strong,
.event-hub-discipline-chip.is-active span {
  color: var(--color-white);
}

.event-nations-grid,
.event-hub-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.event-hub-participants-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.event-nation-card {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  background: rgba(11, 29, 81, 0.03);
  border: 1px solid rgba(11, 29, 81, 0.08);
}

.event-nation-card--linked {
  color: inherit;
  text-decoration: none;
  transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.event-nation-card--linked:hover,
.event-nation-card--linked:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(197, 164, 78, 0.32);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 26px rgba(11, 29, 81, 0.08);
  outline: none;
}

.event-nation-card__flag {
  font-size: 1.6rem;
  line-height: 1;
}

.event-nation-card strong {
  color: var(--color-primary);
  font-size: 1rem;
}

.event-hub-participant-card {
  display: grid;
  gap: var(--space-md);
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  background: rgba(11, 29, 81, 0.03);
  border: 1px solid rgba(11, 29, 81, 0.08);
}

.event-hub-participant-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-md);
}

.event-hub-participant-card__top .ranking-country {
  min-width: 0;
}

.event-hub-participant-card__meta {
  min-width: 70px;
  text-align: right;
}

.event-hub-participant-card__meta strong {
  display: block;
  color: var(--color-primary);
  font-size: 1.1rem;
  line-height: 1;
}

.event-hub-participant-card__meta span {
  color: var(--color-text-light);
  font-size: var(--fs-xs);
  font-weight: 700;
}

.event-hub-participant-card__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.event-hub-participant-card__list a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.42rem 0.7rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: var(--fs-small);
  font-weight: 700;
}

.event-hub-participant-card__list span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.42rem 0.7rem;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: var(--fs-small);
  font-weight: 700;
}

.event-hub-participant-card__list a:hover,
.event-hub-participant-card__list a:focus-visible {
  border-color: rgba(197, 164, 78, 0.34);
  color: var(--color-secondary-dark);
}

.event-hub-documents {
  display: grid;
  gap: var(--space-md);
}

.event-hub-documents .doc-item {
  margin-bottom: 0;
}

.event-hub-link-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  padding: var(--space-xl);
  border-radius: var(--radius-lg);
  background: rgba(11, 29, 81, 0.03);
  border: 1px solid rgba(11, 29, 81, 0.08);
  color: inherit;
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.event-hub-link-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
  border-color: rgba(11, 29, 81, 0.14);
}

.event-hub-link-card h3 {
  color: var(--color-primary);
  font-size: var(--fs-h4);
}

.event-hub-link-card p {
  color: var(--color-text-secondary);
  line-height: 1.7;
}

.event-hub-link-card__meta {
  width: fit-content;
  padding: 0.32rem 0.55rem;
  border: 1px solid rgba(197, 164, 78, 0.28);
  border-radius: 999px;
  background: rgba(255, 252, 244, 0.84);
  color: var(--color-primary);
  font-size: 0.76rem;
  font-weight: 900;
}

.event-hub-link-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.36rem;
  color: var(--color-primary);
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.event-hub-link-card__cta::after {
  content: '';
  width: 0.44rem;
  height: 0.44rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.56;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.event-hub-link-card:hover .event-hub-link-card__cta::after,
.event-hub-link-card:focus-visible .event-hub-link-card__cta::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 0.88;
}

/* ---------- Video Reel ---------- */
.media-reel-section {
  background:
    linear-gradient(180deg, rgba(246, 249, 253, 0.96) 0%, rgba(239, 244, 250, 0.98) 100%);
  color: var(--color-text);
}

.media-reel {
  display: grid;
  gap: clamp(1.1rem, 2.4vw, 1.8rem);
}

.media-hub-nav {
  display: flex;
  gap: 0.55rem;
  align-items: stretch;
  padding: 0.48rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 16px 38px rgba(7, 20, 50, 0.07);
}

.media-hub-nav__card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    "number title"
    "number text";
  column-gap: 0.68rem;
  row-gap: 0.12rem;
  flex: 1 1 0;
  min-width: 0;
  min-height: 82px;
  align-content: center;
  padding: 0.8rem 0.9rem;
  border: 1px solid transparent;
  border-radius: 14px;
  background: transparent;
  color: inherit;
  text-decoration: none;
  transition: transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base);
}

.media-hub-nav__card:hover,
.media-hub-nav__card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(197, 164, 78, 0.44);
  background: #fff;
  box-shadow: 0 12px 28px rgba(7, 20, 50, 0.07);
  outline: none;
}

.media-hub-nav__card span {
  grid-area: number;
  display: inline-grid;
  place-items: center;
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 999px;
  background: rgba(197, 164, 78, 0.11);
  color: var(--color-secondary-dark);
  font-size: 0.66rem;
  font-weight: 950;
  letter-spacing: 0.04em;
}

.media-hub-nav__card strong {
  grid-area: title;
  color: var(--color-primary);
  overflow: hidden;
  font-size: 0.94rem;
  font-weight: 950;
  line-height: 1.12;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.media-hub-nav__card small {
  grid-area: text;
  color: var(--color-text-secondary);
  overflow: hidden;
  font-size: 0.75rem;
  line-height: 1.28;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.media-reel .section-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--color-secondary);
  font-size: var(--fs-xs);
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.media-reel .section-label::before {
  content: "";
  width: 26px;
  height: 2px;
  background: var(--color-secondary);
}

.media-reel__stage {
  display: grid;
  grid-template-columns: minmax(0, 1.46fr) minmax(280px, 0.78fr);
  gap: clamp(0.95rem, 2vw, 1.35rem);
  align-items: stretch;
  padding: clamp(0.9rem, 2vw, 1.18rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 18px 42px rgba(7, 20, 50, 0.07);
}

.media-reel__player-shell,
.media-reel__playlist-shell {
  display: grid;
  gap: 0.72rem;
}

.media-reel__player-shell {
  grid-template-columns: minmax(196px, 288px) minmax(0, 1fr);
  align-items: center;
  padding: clamp(0.28rem, 1vw, 0.48rem);
  border: 0;
  border-radius: 0;
  background: transparent;
}

.media-reel__player {
  position: relative;
  overflow: hidden;
  min-height: 0;
  justify-self: center;
  width: min(100%, 300px);
  aspect-ratio: 9 / 16;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 16px;
  background: #071334;
  box-shadow: 0 14px 28px rgba(7, 20, 50, 0.12);
}

.media-reel__player video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: #071334;
}

.media-reel__caption {
  display: grid;
  gap: 0.34rem;
  padding: 0;
  align-content: start;
}

.media-reel__caption span,
.media-reel__playlist-header span {
  display: block;
  color: var(--color-secondary-dark);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.media-reel__caption strong {
  display: block;
  color: var(--color-primary);
  font-size: clamp(1.12rem, 1.7vw, 1.36rem);
  line-height: 1.14;
}

.media-reel__caption small {
  color: var(--color-text-secondary);
  font-size: 0.76rem;
  font-weight: 650;
  line-height: 1.4;
}

.media-reel__playlist-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.65rem;
  padding: 0.1rem 0.1rem 0.1rem;
}

.media-reel__playlist-header strong {
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.32rem 0.62rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: rgba(247, 249, 252, 0.96);
  font-size: 0.76rem;
  font-weight: 850;
}

.media-reel__playlist {
  display: grid;
  gap: 0.58rem;
}

.video-card {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 0.7rem;
  align-items: center;
  width: 100%;
  min-height: 78px;
  padding: 0.64rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 13px;
  background: rgba(248, 250, 253, 0.94);
  color: var(--color-primary);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}

.video-card:hover,
.video-card:focus-visible {
  border-color: rgba(242, 201, 76, 0.66);
  background: #fff;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(7, 20, 50, 0.07);
}

.video-card.active {
  border-color: rgba(197, 164, 78, 0.52);
  background: rgba(255, 252, 244, 0.96);
  box-shadow: 0 0 0 1px rgba(197, 164, 78, 0.18);
}

.video-card__thumb {
  position: relative;
  overflow: hidden;
  display: block;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-sm);
  background: rgba(9, 30, 82, 0.08);
}

.video-card__thumb::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 0;
  height: 0;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
  border-left: 14px solid var(--color-white);
  transform: translate(-35%, -50%);
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.35));
}

.video-card__thumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  opacity: 1;
}

.video-card__body span,
.video-card__body strong {
  display: block;
}

.video-card__body span {
  margin-bottom: 0.2rem;
  color: var(--color-secondary-dark);
  font-size: 0.64rem;
  font-weight: 800;
  text-transform: uppercase;
}

.video-card__body strong {
  color: var(--color-primary);
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 0.9rem;
  line-height: 1.18;
}

.video-card__meta {
  display: block;
  margin-top: 0.22rem;
  color: var(--color-text-secondary);
  font-size: 0.68rem;
  line-height: 1.28;
}

/* ---------- Media Gallery ---------- */
.gallery-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-bottom: var(--space-xl);
}

.gallery-filter {
  border: 1px solid rgba(7, 15, 43, 0.14);
  background: var(--color-white);
  color: var(--color-primary);
  border-radius: 999px;
  padding: 0.72rem 1rem;
  font: inherit;
  font-size: var(--fs-small);
  font-weight: 700;
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}

.gallery-filter:hover,
.gallery-filter:focus-visible {
  border-color: var(--color-secondary);
  transform: translateY(-1px);
}

.gallery-filter.active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: var(--space-md);
}

.gallery-item {
  border: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  text-align: left;
  aspect-ratio: 4/3;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--gradient-primary);
  position: relative;
  cursor: pointer;
  transition: all var(--transition-base);
}

.gallery-item[hidden] {
  display: none;
}

.gallery-item:hover {
  transform: scale(1.02);
  box-shadow: var(--shadow-lg);
}

.gallery-item:focus-visible {
  outline: 3px solid var(--color-secondary);
  outline-offset: 4px;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-slow);
}

.gallery-item:hover img {
  transform: scale(1.05);
}

.gallery-item__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 35%, rgba(7, 15, 43, 0.82) 100%);
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  flex-direction: column;
  gap: 0.2rem;
  opacity: 1;
  transition: opacity var(--transition-fast);
  padding: var(--space-md);
}

.gallery-item:hover .gallery-item__overlay {
  opacity: 1;
}

.gallery-item__overlay span {
  color: var(--color-white);
  font-weight: 600;
  font-size: var(--fs-small);
  text-shadow: 0 4px 14px rgba(0,0,0,0.34);
  margin-top: auto;
}

.gallery-item__category {
  align-self: flex-start;
  padding: 0.28rem 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}

.gallery-item__meta {
  color: rgba(255, 255, 255, 0.74);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.45;
}

.media-note {
  text-align: center;
  margin-top: var(--space-2xl);
  padding: var(--space-xl);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
}

.media-note p {
  color: var(--color-text-secondary);
  margin: 0;
}

.media-lightbox {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
  background: rgba(3, 8, 24, 0.88);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
}

.media-lightbox.open,
.media-lightbox[aria-hidden="false"] {
  opacity: 1;
  pointer-events: auto;
}

.media-lightbox figure {
  width: min(1120px, 100%);
  max-height: 86vh;
  margin: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--color-white);
  box-shadow: 0 26px 80px rgba(0, 0, 0, 0.42);
}

.media-lightbox img {
  width: 100%;
  height: 100%;
  max-height: calc(86vh - 4.5rem);
  object-fit: contain;
  background: #050816;
}

.media-lightbox figcaption {
  display: grid;
  gap: 0.15rem;
  padding: 1rem 1.25rem;
  color: var(--color-primary);
  line-height: 1.4;
}

.media-lightbox figcaption strong {
  font-size: 0.98rem;
  font-weight: 900;
}

.media-lightbox figcaption span {
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  font-weight: 750;
}

.media-lightbox__close {
  position: absolute;
  top: clamp(0.75rem, 2.5vw, 1.5rem);
  right: clamp(0.75rem, 2.5vw, 1.5rem);
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-white);
  font-size: 1.9rem;
  line-height: 1;
  cursor: pointer;
  transition: background var(--transition-fast), transform var(--transition-fast);
}

.media-lightbox__close:hover,
.media-lightbox__close:focus-visible {
  background: rgba(255, 255, 255, 0.22);
  transform: scale(1.04);
}

.media-lightbox__counter {
  position: absolute;
  top: clamp(0.75rem, 2.5vw, 1.5rem);
  left: clamp(0.75rem, 2.5vw, 1.5rem);
  min-width: 4.3rem;
  padding: 0.62rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-white);
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1;
  text-align: center;
  backdrop-filter: blur(10px);
}

.media-lightbox__nav {
  position: absolute;
  top: 50%;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: var(--color-white);
  font-size: 2rem;
  line-height: 1;
  transform: translateY(-50%);
  transition: background var(--transition-fast), transform var(--transition-fast);
}

.media-lightbox__nav:hover,
.media-lightbox__nav:focus-visible {
  background: rgba(255, 255, 255, 0.22);
  transform: translateY(-50%) scale(1.04);
}

.media-lightbox__nav--prev {
  left: clamp(0.75rem, 2.5vw, 1.5rem);
}

.media-lightbox__nav--next {
  right: clamp(0.75rem, 2.5vw, 1.5rem);
}

.media-resource-list {
  display: grid;
  gap: var(--space-md);
  max-width: 780px;
  margin: 0 auto;
}

.media-resource-list > *,
.media-logo-grid > * {
  min-width: 0;
}

.media-logo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
  max-width: 1040px;
  margin: 0 auto;
}

.media-logo-card {
  display: grid;
  justify-items: start;
  align-content: start;
  gap: 0.72rem;
  text-align: left;
  padding: 1rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 14px 30px rgba(7, 20, 50, 0.06);
}

.media-logo-card__art {
  width: 100%;
  min-height: 132px;
  display: grid;
  place-items: center;
  padding: 1rem;
  border-radius: 14px;
  background: linear-gradient(180deg, #f5f7fb, #eef2f8);
}

.media-logo-card__art--dark {
  background: linear-gradient(180deg, #0a1738, #122557);
}

.media-logo-card__art img {
  max-width: min(200px, 100%);
  max-height: 92px;
}

.media-logo-card h4 {
  color: var(--color-primary);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.15;
}

.media-logo-card p {
  color: var(--color-text-secondary);
  font-size: 0.84rem;
  line-height: 1.45;
}

.media-logo-card__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.48rem;
}

.media-placeholder-panel {
  display: grid;
  justify-items: center;
  gap: var(--space-md);
  text-align: center;
  padding: var(--space-3xl);
  border: 2px dashed rgba(9, 30, 82, 0.14);
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, var(--color-white), var(--color-surface));
}

.media-placeholder-panel__icon {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(9, 30, 82, 0.06);
  color: var(--color-primary);
}

.media-placeholder-panel__icon svg {
  width: 34px;
  height: 34px;
}

.media-placeholder-panel h3 {
  color: var(--color-primary);
  font-size: var(--fs-h4);
}

.media-placeholder-panel p {
  max-width: 540px;
  color: var(--color-text-secondary);
  margin: 0;
}

.media-support-policy {
  color: var(--color-primary);
  font-size: var(--fs-small);
  font-weight: 800;
}

/* ---------- Contact Form ---------- */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1rem, 2.6vw, 1.8rem);
}

.form-group {
  margin-bottom: var(--space-lg);
}

.form-group label {
  display: block;
  font-size: var(--fs-small);
  font-weight: 600;
  color: var(--color-primary);
  margin-bottom: var(--space-sm);
}

.form-group input,
.form-group textarea,
.form-group select {
  width: 100%;
  padding: 0.85rem 1rem;
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--fs-body);
  color: var(--color-text-primary);
  background: var(--color-white);
  transition: border-color var(--transition-fast);
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  outline: none;
  border-color: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(197, 164, 78, 0.15);
}

.form-group textarea {
  min-height: 150px;
  resize: vertical;
}

.contact-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-xl);
}

.contact-info__item {
  display: flex;
  gap: var(--space-md);
}

.contact-info__icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface);
  border-radius: var(--radius-md);
  color: var(--color-primary);
}

.contact-info__icon svg {
  width: 22px;
  height: 22px;
}

.contact-info__text h4 {
  font-size: var(--fs-body);
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 2px;
}

.contact-info__text p {
  font-size: var(--fs-small);
  color: var(--color-text-secondary);
}

.contact-info__text a {
  color: var(--color-secondary);
  font-weight: 500;
}

.contact-info__text a:hover {
  text-decoration: underline;
}

.social-links {
  display: flex;
  gap: var(--space-md);
  margin-top: var(--space-lg);
}

.social-link {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-primary);
  color: var(--color-white);
  border-radius: var(--radius-md);
  font-size: 1.1rem;
  transition: all var(--transition-fast);
}

.social-link:hover {
  background: var(--color-secondary);
  color: var(--color-primary);
  transform: translateY(-2px);
}

.section-title {
  font-size: var(--fs-h3);
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: clamp(0.85rem, 2vw, 1.15rem);
}

.contact-form__submit {
  width: 100%;
  justify-content: center;
}

.contact-form__status {
  min-height: 1.35rem;
  margin-top: var(--space-md);
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  font-weight: 800;
  line-height: 1.45;
}

.contact-form[aria-busy="true"] .contact-form__submit {
  opacity: 0.78;
}

.contact-form__status--success {
  color: var(--color-success);
}

.contact-form__status--error {
  color: var(--color-alert);
}

.contact-form__status--neutral,
.contact-form__status--info {
  color: var(--color-primary);
}

.contact-card-group {
  margin-top: clamp(1rem, 2.6vw, 1.6rem);
}

.news-card__content {
  color: var(--color-text-secondary);
  line-height: 1.72;
}

.news-card__date {
  margin-top: auto;
}

.news-empty {
  grid-column: 1 / -1;
  border: 1px solid rgba(11, 29, 81, 0.1);
  border-radius: var(--radius-lg);
  background: rgba(11, 29, 81, 0.03);
  padding: var(--space-xl);
}

.news-empty h3 {
  color: var(--color-primary);
  margin-bottom: var(--space-sm);
}

.news-empty p {
  color: var(--color-text-secondary);
  margin: 0;
}

/* ---------- Quick Access ---------- */
.quick-access {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-lg);
}

.quick-access__item {
  text-align: center;
  padding: var(--space-2xl) var(--space-lg);
  background: var(--color-white);
  border: 1px solid rgba(7, 15, 43, 0.08);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  transition: all var(--transition-base);
  cursor: pointer;
}

.quick-access__item:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-6px);
  border-color: rgba(242, 201, 76, 0.54);
}

.quick-access__icon {
  width: 64px;
  height: 64px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-md);
  border-radius: 50%;
  background: rgba(7, 15, 43, 0.06);
  color: var(--color-primary);
  transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.quick-access__icon svg {
  width: 30px;
  height: 30px;
}

.quick-access__item:hover .quick-access__icon {
  background: var(--color-secondary);
  color: var(--color-primary);
  transform: translateY(-2px);
}

.quick-access__label {
  font-size: var(--fs-body);
  font-weight: 700;
  color: var(--color-primary);
}

.quick-access__desc {
  font-size: var(--fs-xs);
  color: var(--color-text-light);
  margin-top: var(--space-xs);
}

/* ---------- Federations Slider ---------- */
.federations-slider {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  padding: var(--space-lg) 0;
}

/* Legacy large-flag fallback (when JS renders bare spans) */
.federation-flag {
  font-size: 3rem;
  transition: transform var(--transition-spring);
  cursor: pointer;
}

.federation-flag:hover {
  transform: scale(1.3);
}

/* Member pill (rendered by updated renderMemberFlags) */
.member-pill {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 16px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--color-white);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--color-text-primary);
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(11, 29, 81, 0.04);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.member-pill:hover {
  border-color: var(--color-primary);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(11, 29, 81, 0.08);
}

.member-pill__flag {
  font-size: 1.1rem;
  line-height: 1;
}

/* ---------- Timeline ---------- */
.timeline {
  position: relative;
  padding-left: var(--space-2xl);
  max-width: 700px;
}

.timeline--narrow {
  margin: 0 auto;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(to bottom, var(--color-secondary), var(--color-primary));
}

.timeline__item {
  position: relative;
  margin-bottom: var(--space-2xl);
  padding-left: var(--space-lg);
}

.timeline__item::before {
  content: '';
  position: absolute;
  left: calc(-1 * var(--space-2xl) + -1px);
  top: 6px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--color-secondary);
  border: 3px solid var(--color-white);
  box-shadow: var(--shadow-sm);
}

.timeline__year {
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-secondary);
  margin-bottom: var(--space-xs);
}

.timeline__title {
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: var(--space-xs);
}

.timeline__text {
  font-size: var(--fs-small);
  color: var(--color-text-secondary);
  line-height: 1.6;
}

/* ---------- Board Grid ---------- */
.board-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-xl);
}

.board-card {
  text-align: center;
  padding: var(--space-2xl) var(--space-lg);
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  transition: all var(--transition-base);
}

.board-card:hover {
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-4px);
}

.board-card__avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--gradient-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--space-md);
  font-size: 2rem;
  color: var(--color-white);
}

.board-card__avatar svg {
  width: 34px;
  height: 34px;
}

.board-card__name {
  font-size: var(--fs-body);
  font-weight: 700;
  color: var(--color-primary);
}

.board-card__role {
  font-size: var(--fs-small);
  color: var(--color-secondary);
  font-weight: 600;
  margin-top: var(--space-xs);
}

.board-card__country {
  font-size: var(--fs-small);
  color: var(--color-text-light);
  margin-top: var(--space-xs);
}

.split-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3xl);
  max-width: 1000px;
  margin: 0 auto;
}

.info-panel {
  padding: var(--space-2xl);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  border-left: 4px solid var(--color-primary);
}

.info-panel--gold {
  border-left-color: var(--color-secondary);
}

.info-panel__title {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--fs-h3);
  color: var(--color-primary);
  margin-bottom: var(--space-md);
}

.info-panel__text {
  color: var(--color-text-secondary);
  line-height: 1.8;
  margin: 0;
}

.icon-badge {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(11, 29, 81, 0.08);
  color: var(--color-primary);
  flex-shrink: 0;
}

.icon-badge svg {
  width: 20px;
  height: 20px;
}

.section-note {
  max-width: 800px;
  margin: var(--space-3xl) auto 0;
  text-align: center;
}

.section-note__text {
  color: var(--color-text-secondary);
  line-height: 1.8;
  font-size: var(--fs-body);
  margin: 0;
}

.text-accent {
  color: var(--color-primary);
}

.doc-list {
  max-width: 700px;
  margin: 0 auto;
}

.doc-item__icon--label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.steps-intro {
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
}

.steps-intro__text {
  color: var(--color-text-secondary);
  line-height: 1.8;
  margin-bottom: var(--space-xl);
}

.steps-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  margin-bottom: var(--space-2xl);
}

.step-card {
  padding: var(--space-xl);
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  text-align: center;
  border: 1px solid rgba(11, 29, 81, 0.08);
}

.step-card__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  min-height: 54px;
  margin-bottom: var(--space-sm);
  padding: 0 0.9rem;
  border-radius: var(--radius-full);
  background: rgba(11, 29, 81, 0.08);
  color: var(--color-primary);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.step-card__title {
  font-size: var(--fs-small);
  font-weight: 700;
  color: var(--color-primary);
}

.step-card__text {
  font-size: var(--fs-xs);
  color: var(--color-text-light);
  margin-top: 4px;
}

.page-hero__breadcrumb-sep {
  opacity: 0.55;
}

.icon-inline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: currentColor;
  opacity: 0.78;
}

.icon-inline svg {
  width: 15px;
  height: 15px;
}

/* ---------- Open Tournaments ---------- */
.tournament-list {
  display: grid;
  gap: var(--space-lg);
}

.competition-spotlight--open {
  margin-bottom: var(--space-2xl);
}

.open-tournament-center {
  margin-bottom: var(--space-2xl);
}

.open-tournament-center__stats {
  margin-top: var(--space-lg);
  margin-bottom: var(--space-lg);
}

.open-tournament-archive {
  margin-bottom: var(--space-2xl);
}

.competition-subsection {
  display: grid;
  gap: var(--space-md);
}

.competition-subsection + .competition-subsection {
  margin-top: var(--space-lg);
}

.competition-subsection__header {
  display: grid;
  gap: 0.35rem;
}

.competition-subsection__header h4 {
  color: var(--color-primary);
  font-size: clamp(1rem, 1.8vw, 1.25rem);
  line-height: 1.2;
}

.competition-subsection__header p {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.6;
}

.open-series-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-md);
  margin-bottom: var(--space-xl);
}

.open-series-grid--compact {
  margin-bottom: var(--space-lg);
}

.open-series-card {
  display: grid;
  gap: 0.5rem;
  min-height: 170px;
  padding: var(--space-lg);
  border-radius: var(--radius-lg);
  border: 1px solid rgba(9, 30, 82, 0.08);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,249,252,0.98)),
    radial-gradient(circle at top right, rgba(197,164,78,0.12), transparent 36%);
  box-shadow: var(--shadow-card);
  color: inherit;
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.open-series-card:hover,
.open-series-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: var(--shadow-institutional-hover);
  border-color: rgba(197, 164, 78, 0.34);
}

.open-series-card.is-active {
  border-color: rgba(11, 29, 81, 0.24);
  box-shadow: var(--shadow-card-hover);
}

.open-series-card--compact {
  min-height: 150px;
}

.open-series-card__eyebrow {
  display: inline-flex;
  width: fit-content;
  min-height: 28px;
  align-items: center;
  padding: 0.35rem 0.7rem;
  border-radius: var(--radius-full);
  background: rgba(11, 29, 81, 0.06);
  color: var(--color-text-light);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.open-series-card strong {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  color: var(--color-primary);
  font-size: var(--fs-h5);
  line-height: 1.25;
}

.open-series-card strong::after {
  content: '';
  width: 0.46rem;
  height: 0.46rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.42;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.open-series-card:hover strong::after,
.open-series-card:focus-visible strong::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 0.82;
}

.open-series-card small {
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.6;
}

.open-series-card__note {
  margin-top: auto;
  color: var(--color-secondary-dark);
  font-size: var(--fs-xs);
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.tournament-item {
  display: flex;
  align-items: center;
  gap: var(--space-xl);
  padding: var(--space-xl);
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  transition: all var(--transition-base);
}

.tournament-item:hover {
  box-shadow: var(--shadow-card-hover);
}

.tournament-item__year {
  flex-shrink: 0;
  width: 70px;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gradient-primary);
  color: var(--color-white);
  font-weight: 800;
  font-size: var(--fs-h4);
  border-radius: var(--radius-md);
}

.tournament-item__info h3 {
  font-size: var(--fs-h4);
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: var(--space-xs);
}

.competition-surface-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin-bottom: 0.45rem;
}

.competition-surface-row span {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.competition-surface-link {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.3rem 0.62rem;
  border-radius: var(--radius-full);
  background: rgba(11, 29, 81, 0.06);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 850;
  text-decoration: none;
}

.competition-surface-link:hover,
.competition-surface-link:focus-visible {
  background: rgba(197, 164, 78, 0.12);
  border-color: rgba(197, 164, 78, 0.28);
}

.tournament-item__info p {
  font-size: var(--fs-small);
  color: var(--color-text-secondary);
}

.tournament-item__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: var(--space-md);
}

.tournament-item__pill {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.45rem 0.8rem;
  border-radius: var(--radius-full);
  background: rgba(11, 29, 81, 0.05);
  border: 1px solid rgba(9, 30, 82, 0.07);
  color: var(--color-primary);
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: 0.03em;
}

.tournament-item__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-md);
}

.tournament-item__status {
  margin-left: auto;
  padding: 0.3rem 0.8rem;
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: var(--radius-full);
}

.tournament-item__status--completed {
  background: rgba(46, 204, 113, 0.1);
  color: var(--color-success);
}

.tournament-item__status--cancelled {
  background: rgba(231, 76, 60, 0.1);
  color: var(--color-alert);
}

.tournament-item__status--upcoming {
  background: rgba(197, 164, 78, 0.1);
  color: var(--color-secondary-dark);
}

.competition-note {
  margin-bottom: var(--space-xl);
  padding: var(--space-lg) var(--space-xl);
  border: 1px solid rgba(197, 164, 78, 0.3);
  border-radius: var(--radius-md);
  background: linear-gradient(180deg, rgba(197, 164, 78, 0.08), rgba(197, 164, 78, 0.03));
}

.competition-note p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: var(--fs-small);
  line-height: 1.7;
}

.competition-host-card {
  display: grid;
  justify-items: center;
  gap: var(--space-sm);
  text-align: center;
  margin-top: var(--space-3xl);
  padding: var(--space-2xl);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(180deg, var(--color-white), var(--color-surface));
  box-shadow: var(--shadow-card);
}

.competition-host-card h3,
.competition-key-dates h3 {
  color: var(--color-primary);
  font-size: var(--fs-h4);
}

.competition-host-card p {
  max-width: 620px;
  color: var(--color-text-secondary);
  margin-bottom: var(--space-md);
}

.competition-key-dates {
  display: grid;
  gap: var(--space-lg);
  margin-top: var(--space-2xl);
}

.competition-key-dates__list {
  display: grid;
  gap: var(--space-md);
}

/* ---------- Calendar ---------- */
.calendar-container {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-lg) var(--space-xl);
  background: var(--color-primary);
  color: var(--color-white);
}

.calendar-header h3 {
  font-size: var(--fs-h4);
  font-weight: 700;
}

.calendar-nav-btn {
  padding: 0.4rem 0.8rem;
  color: var(--color-white);
  background: rgba(255,255,255,0.1);
  border-radius: var(--radius-sm);
  transition: background var(--transition-fast);
  cursor: pointer;
  border: none;
  font-size: var(--fs-body);
}

.calendar-nav-btn:hover {
  background: rgba(255,255,255,0.2);
}

.calendar-grid-container {
  padding: var(--space-lg);
}

.calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: var(--space-sm);
}

.calendar-weekday {
  text-align: center;
  padding: var(--space-sm);
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-text-light);
}

.calendar-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}

.calendar-day {
  text-align: center;
  padding: var(--space-sm);
  font-size: var(--fs-small);
  border-radius: var(--radius-sm);
  cursor: default;
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.calendar-day--other {
  color: var(--color-text-light);
  opacity: 0.4;
}

.calendar-day--today {
  background: var(--color-primary);
  color: var(--color-white);
  font-weight: 700;
}

.calendar-day--event {
  background: rgba(197, 164, 78, 0.12);
  color: var(--color-primary);
  font-weight: 600;
  cursor: pointer;
}

.calendar-day--event::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 50%;
  transform: translateX(-50%);
  width: 5px;
  height: 5px;
  background: var(--color-secondary);
  border-radius: 50%;
}

/* ---------- Footer ---------- */
.footer {
  background: var(--color-primary-dark);
  color: var(--color-white);
  padding: clamp(2.8rem, 6vw, 4.4rem) 0 var(--space-xl);
  position: relative;
  overflow: hidden;
}

.footer::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 12% 12%, rgba(197, 164, 78, 0.12), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,0.02), transparent 28%);
  pointer-events: none;
}

.footer__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr));
  gap: clamp(1.4rem, 3vw, 2.6rem);
  margin-bottom: clamp(1.8rem, 4vw, 2.8rem);
}

.footer__brand {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.footer__brand img {
  height: 54px;
  width: auto;
}

.footer__brand p {
  font-size: 0.92rem;
  color: rgba(255,255,255,0.64);
  line-height: 1.65;
  max-width: 33ch;
}

.footer__col h4 {
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--color-secondary);
  margin-bottom: 0.9rem;
}

.footer__col a {
  display: block;
  font-size: 0.9rem;
  color: rgba(255,255,255,0.58);
  padding: 0.26rem 0;
  transition: color var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast);
}

.footer__col a:hover {
  color: var(--color-white);
  opacity: 1;
  transform: translateX(2px);
}

.footer__bottom {
  position: relative;
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: var(--space-xl);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-md);
}

.footer__copyright {
  font-size: 0.74rem;
  color: rgba(255,255,255,0.42);
}

/* ---------- Animations ---------- */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
  40% { transform: translateX(-50%) translateY(-8px); }
  60% { transform: translateX(-50%) translateY(-4px); }
}

@keyframes float {
  0% {
    transform: translateY(100vh) rotate(0deg);
    opacity: 0;
  }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% {
    transform: translateY(-10vh) rotate(720deg);
    opacity: 0;
  }
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .hero__content {
    grid-template-columns: 1fr;
    gap: var(--space-2xl);
    min-height: 100svh;
    padding-top: calc(var(--nav-height) + var(--space-2xl));
    padding-bottom: var(--space-3xl);
  }

  .hero__copy {
    max-width: 680px;
  }

  .hero__title {
    font-size: clamp(2.8rem, 8.2vw, 5rem);
  }

  .hero__subtitle {
    margin-bottom: var(--space-xl);
  }

  .hero__scroll {
    display: none;
  }

  .stats--proof {
    margin-top: 0;
  }

  .hero__media {
    min-height: 430px;
    max-width: 620px;
    width: 100%;
    justify-self: center;
  }

  .hero__portrait-card {
    min-height: 10rem;
  }

  .sport-primer__grid,
  .impact-grid {
    grid-template-columns: 1fr;
  }

  .sport-primer__media {
    max-width: 560px;
  }

  .pathway-steps {
    grid-template-columns: repeat(2, 1fr);
  }

  .pathway-layout {
    grid-template-columns: 1fr;
  }

  .media-reel__stage {
    grid-template-columns: 1fr;
  }

  .media-reel__playlist {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .media-hub-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .competition-spotlight,
  .event-hub-overview {
    grid-template-columns: 1fr;
  }

  .documents-featured__panel {
    grid-template-columns: 1fr;
  }

  .competition-spotlight__media {
    min-height: 320px;
  }

  .event-hub-hero__facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .documents-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .documents-filter-grid {
    grid-template-columns: 1fr;
  }

  .event-nations-grid,
  .event-hub-center-links,
  .event-hub-participants-grid,
  .event-hub-links {
    grid-template-columns: 1fr;
  }

  .news-lead__card {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .news-lead__media {
    min-height: 340px;
  }

  .news-archive__header {
    align-items: flex-start;
  }

  .athlete-filter-primary {
    display: grid;
  }

  .athlete-filter-metrics {
    min-width: 0;
  }

  .athlete-filters__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ranking-leader-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ranking-top-strip__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .container {
    padding: 0 var(--space-lg);
  }

  .page-hero {
    min-height: 330px;
    padding: calc(var(--nav-height) + var(--space-3xl)) 0 var(--space-2xl);
  }

  .page-hero h1 {
    font-size: clamp(2.25rem, 10vw, 3.6rem);
  }

  .page-hero p {
    font-size: 0.98rem;
  }

  .event-hub-shell {
    gap: var(--space-xl);
  }

  .event-hub-actions {
    position: static;
    top: auto;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0.45rem;
    border-radius: 1rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .event-hub-actions::-webkit-scrollbar {
    display: none;
  }

  .event-hub-actions a,
  .event-hub-actions__link {
    flex: 0 0 auto;
    white-space: nowrap;
    min-height: 36px;
    padding: 0.52rem 0.78rem;
  }

  .page-hero--rankings {
    min-height: 225px;
    padding: calc(var(--nav-height) + var(--space-xl)) 0 var(--space-lg);
  }

  .page-hero--rankings h1 {
    font-size: clamp(2rem, 9vw, 3rem);
  }

  .hero {
    min-height: 100svh;
    align-items: center;
  }

  .hero::before {
    background:
      linear-gradient(180deg, rgba(7,15,43,0.64) 0%, rgba(7,15,43,0.84) 34%, rgba(7,15,43,0.98) 100%),
      linear-gradient(90deg, rgba(7,15,43,0.86), rgba(7,15,43,0.58));
  }

  .hero::after {
    height: 7rem;
    background: linear-gradient(180deg, transparent 0%, rgba(7,15,43,0.38) 32%, rgba(255,255,255,0.96) 100%);
  }

  .hero__image-layer img,
  .hero__image-layer video {
    object-position: 50% 30%;
  }

  .hero__content {
    min-height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-xl);
    padding-top: calc(var(--nav-height) + var(--space-3xl));
    padding-bottom: calc(var(--space-3xl) + var(--space-lg));
  }

  .hero__title {
    font-size: clamp(2.35rem, 12vw, 3.75rem);
    line-height: 1;
    margin-bottom: var(--space-md);
  }

  .hero__subtitle {
    font-size: 0.98rem;
    margin-bottom: var(--space-lg);
  }

  .hero__actions {
    align-items: stretch;
    gap: var(--space-sm);
  }

  .hero__actions .btn {
    justify-content: center;
    width: 100%;
    padding: 0.8rem 1rem;
    min-height: 48px;
  }

  .hero__portal-smartlink {
    display: grid;
    gap: 0.25rem;
    width: 100%;
    font-size: 0.88rem;
  }

  .hero__media {
    min-height: 350px;
  }

  .hero__portrait-showcase {
    gap: 0.55rem;
    padding: 0.75rem;
  }

  .hero__portrait-card {
    min-height: 8.4rem;
    border-radius: 0.85rem;
  }

  .stats--proof {
    margin-top: 0;
  }

  .stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .sport-primer__grid {
    gap: var(--space-2xl);
  }

  .sport-snapshot {
    grid-template-columns: 1fr;
  }

  .sfe-today__header {
    align-items: stretch;
    flex-direction: column;
  }

  .sfe-today__header .btn {
    justify-content: center;
    width: 100%;
  }

  .sfe-today__layout {
    grid-template-columns: 1fr;
  }

  .sfe-today-card {
    min-height: 0;
  }

  .sfe-today-spotlight__metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sport-feature-grid,
  .pathway-steps {
    grid-template-columns: 1fr;
  }

  .pathway-panel {
    padding: var(--space-xl);
  }

  .impact-grid {
    gap: var(--space-2xl);
  }

  .rankings-summary {
    grid-template-columns: 1fr;
  }

  .rankings-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ranking-intro {
    grid-template-columns: 1fr;
  }

  .ranking-event-deck,
  .ranking-leader-grid {
    grid-template-columns: 1fr;
  }

  .athletes-directory__intro,
  .athlete-filters__grid {
    grid-template-columns: 1fr;
  }

  .athlete-control-center__header,
  .athlete-filter-primary,
  .athlete-group__header--country {
    align-items: stretch;
    flex-direction: column;
  }

  .athlete-filter-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .athlete-country-rail {
    flex-wrap: nowrap;
    overflow-x: auto;
    margin-inline: calc(-1 * var(--space-lg));
    padding-inline: var(--space-lg);
    padding-bottom: 0.15rem;
    scrollbar-width: thin;
  }

  .athlete-group__country-stats {
    justify-content: flex-start;
  }

  .ranking-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    top: calc(var(--nav-height-scrolled) + 8px);
  }

  .ranking-filter-actions {
    width: auto;
    justify-content: flex-start;
  }

  .ranking-filter-actions .athlete-filter-reset {
    flex: 0 0 auto;
    width: auto;
  }

  .ranking-filters__grid {
    grid-template-columns: 1fr;
  }

  .ranking-tabs .tab {
    width: 100%;
  }

  .ranking-discipline-header {
    flex-direction: column;
  }

  .ranking-top-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .ranking-top-card__points {
    grid-column: 2;
    justify-items: start;
  }

  .ranking-top-card__best {
    grid-column: 1 / -1;
  }

  .ranking-discipline-header__meta {
    width: 100%;
  }

  .ranking-rules-grid {
    grid-template-columns: 1fr;
  }

  .event-hub-center-grid,
  .event-hub-center-grid--compact,
  .event-hub-match-groups,
  .event-hub-match-finishes__grid {
    grid-template-columns: 1fr;
  }

  .event-hub-stage-switcher__nav,
  .event-hub-subswitcher__nav,
  .event-hub-discipline-nav {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 0.2rem;
    scrollbar-width: thin;
  }

  .event-hub-match-discipline__header,
  .event-hub-match-group__header,
  .event-hub-match-item {
    grid-template-columns: 1fr;
    flex-direction: column;
    align-items: stretch;
  }

  .event-hub-match-item__result {
    justify-items: start;
    text-align: left;
  }

  .event-hub-match-discipline__meta {
    justify-content: flex-start;
  }

  .athlete-profile__hero,
  .athlete-profile__grid,
  .profile-submission-card {
    grid-template-columns: 1fr;
  }

  .athlete-card-grid,
  .athlete-card-grid--compact {
    grid-template-columns: 1fr;
  }

  .athlete-profile__facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .athlete-palmares__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .athlete-archive-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .athlete-archive-edition {
    align-items: stretch;
    flex-direction: column;
  }

  .athlete-archive-edition__meta {
    justify-content: flex-start;
  }

  .profile-form__grid {
    grid-template-columns: 1fr;
  }

  .profile-review__toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .media-reel__player,
  .media-reel__player video {
    min-height: 0;
  }

  .media-hub-nav {
    grid-template-columns: 1fr;
  }

  .media-reel__stage {
    padding: 0.88rem;
  }

  .media-reel__player-shell {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 0.58rem;
  }

  .media-reel__player {
    width: min(100%, 228px);
  }

  .media-reel__caption {
    justify-self: stretch;
    padding: 0.08rem 0.02rem 0;
  }

  .media-reel__caption small {
    max-width: 34rem;
  }

  .media-reel__playlist {
    grid-auto-columns: minmax(220px, 70vw);
    grid-auto-flow: column;
    grid-template-columns: none;
    overflow-x: auto;
    padding-bottom: 0.2rem;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  .video-card {
    scroll-snap-align: start;
  }

  .gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .media-logo-grid {
    grid-template-columns: 1fr;
  }

  .competition-spotlight__content,
  .event-hub-panel,
  .event-hub-overview__copy,
  .event-hub-results,
  .documents-featured__panel {
    padding: var(--space-xl);
  }

  .competition-spotlight__content h2 {
    font-size: clamp(1.8rem, 7vw, 2.4rem);
  }

  .event-hub-hero__facts {
    gap: var(--space-sm);
  }

  .event-hub-center-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .event-hub-center-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .competition-browser__entry {
    min-height: 100px;
  }

  .newsroom {
    gap: var(--space-xl);
  }

  .news-lead__content {
    padding: var(--space-xl);
  }

  .news-lead__title {
    font-size: clamp(1.8rem, 7vw, 2.45rem);
  }

  .news-lead__excerpt,
  .news-lead__copy {
    font-size: 0.98rem;
  }

  .news-archive__header {
    flex-direction: column;
  }
  
  .news-grid {
    grid-template-columns: 1fr;
  }
  
  .quick-access {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .split-panels,
  .steps-grid {
    grid-template-columns: 1fr;
  }
  
  .footer__grid {
    grid-template-columns: 1fr 1fr;
  }
  
  .championship-timeline {
    padding-left: var(--space-2xl);
  }
  
  .championship-item::before {
    left: calc(-1 * var(--space-2xl) + 9px);
  }
  
  .championship-item--featured::before {
    left: calc(-1 * var(--space-2xl) + 7px);
  }
  
  .tournament-item {
    flex-direction: column;
    text-align: center;
  }
  
  .tournament-item__status {
    margin-left: 0;
  }
  
  .hero__logo {
    width: 130px;
    height: 130px;
  }
  
  .board-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .hero__eyebrow {
    font-size: 0.68rem;
    margin-bottom: var(--space-md);
  }

  .hero__content {
    padding-top: calc(var(--nav-height) + var(--space-xl));
    padding-bottom: var(--space-3xl);
  }

  .hero__title {
    font-size: clamp(2rem, 13vw, 3.05rem);
  }

  .hero__subtitle {
    font-size: 0.93rem;
    line-height: 1.65;
  }

  .sport-primer__callout {
    left: var(--space-md);
    right: var(--space-md);
    bottom: var(--space-md);
  }

  .culture-strip {
    justify-content: flex-start;
  }

  .page-hero {
    min-height: 300px;
    padding: calc(var(--nav-height) + var(--space-2xl)) 0 var(--space-xl);
  }

  .page-hero__breadcrumb {
    font-size: 0.68rem;
  }

  .event-hub-actions {
    margin-inline: -0.1rem;
  }

  .event-hub-actions a small,
  .event-hub-actions__link small {
    min-width: 1.15rem;
    height: 1.15rem;
    font-size: 0.64rem;
  }

  .page-hero--rankings {
    min-height: 210px;
    padding: calc(var(--nav-height) + var(--space-lg)) 0 var(--space-md);
  }

  .page-hero--rankings h1 {
    font-size: clamp(1.85rem, 8vw, 2.45rem);
  }

  .step-card {
    padding: var(--space-lg);
  }

  .news-filters {
    display: grid;
    grid-template-columns: 1fr;
  }

  .news-filters .btn,
  .news-filter-chip {
    justify-content: center;
  }

  .competition-spotlight__media {
    min-height: 240px;
  }

  .competition-spotlight__actions,
  .competition-spotlight__meta {
    flex-direction: column;
    align-items: stretch;
  }

  .event-hub-hero__facts {
    grid-template-columns: 1fr;
  }

  .event-hub-center-grid {
    grid-template-columns: 1fr;
  }

  .documents-stats {
    grid-template-columns: 1fr;
  }

  .documents-featured__actions,
  .documents-filters {
    display: grid;
    grid-template-columns: 1fr;
  }

  .documents-control-center__header,
  .documents-results-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .documents-reset {
    justify-content: center;
    width: 100%;
  }

  .ranking-intro,
  .ranking-discipline-header,
  .ranking-rule-card {
    padding: var(--space-lg);
  }

  .ranking-intro__copy h2 {
    font-size: clamp(1.55rem, 8vw, 2rem);
  }

  .ranking-intro__stats {
    grid-template-columns: 1fr;
  }

  .ranking-tabs {
    grid-template-columns: 1fr;
    position: static;
  }

  .ranking-filter-actions {
    flex-direction: row;
    align-items: flex-start;
  }

  .ranking-filter-primary {
    align-items: stretch;
    flex-direction: column;
  }

  .ranking-table-wrapper {
    overflow: hidden;
  }

  .ranking-mobile-list {
    display: grid;
  }

  .ranking-table {
    display: none;
  }

  .ranking-event-standings-card {
    padding: var(--space-lg);
  }

  .ranking-event-standings-mobile {
    display: grid;
  }

  .ranking-event-standings-table {
    display: none;
  }

  .ranking-rule-strip {
    display: grid;
    grid-template-columns: 1fr;
  }

  .ranking-mode-guide__grid {
    grid-template-columns: 1fr;
  }

  .ranking-country {
    min-width: 0;
  }

  .athlete-profile__identity {
    align-items: flex-start;
    flex-direction: column;
  }

  .athlete-profile__facts,
  .athlete-medals,
  .athlete-palmares__stats,
  .profile-form__actions {
    grid-template-columns: 1fr;
    align-items: stretch;
    flex-direction: column;
  }

  .athlete-record__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .athlete-ranking-item {
    align-items: flex-start;
    flex-direction: column;
  }

  .athlete-directory-card__top {
    grid-template-columns: 1fr;
  }

  .athlete-filter-metrics {
    grid-template-columns: 1fr 1fr;
  }

  .athlete-filter-reset {
    width: 100%;
  }

  .athlete-country-chip {
    padding: 0.6rem 0.7rem;
  }

  .athlete-group__country-title {
    align-items: flex-start;
  }

  .profile-submission-card__media,
  .profile-submission-card__media img,
  .profile-submission-card__placeholder {
    min-height: 220px;
  }

  .event-hub-hero__fact {
    padding: var(--space-md);
  }

  .news-lead__media {
    min-height: 240px;
  }

  .news-lead__content {
    padding: var(--space-lg);
  }

  .news-lead__title {
    font-size: clamp(1.55rem, 8vw, 2rem);
  }

  .news-lead__excerpt,
  .news-lead__copy {
    font-size: 0.94rem;
  }

  .news-lead__meta {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--space-sm);
  }

  .media-reel__player,
  .media-reel__player video {
    min-height: 0;
  }

  .media-reel__player video {
    object-fit: cover;
  }

  .media-reel__player {
    width: min(100%, 220px);
    aspect-ratio: 9 / 16;
  }

  .media-reel__caption strong {
    font-size: 0.96rem;
  }

  .video-card {
    grid-template-columns: 70px minmax(0, 1fr);
    min-height: 72px;
    padding: 0.56rem;
  }

  .gallery-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gallery-filter {
    width: 100%;
    padding: 0.76rem 0.85rem;
  }

  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .media-lightbox {
    padding: var(--space-md);
  }

  .media-lightbox figure {
    max-height: 82vh;
  }

  .media-lightbox figcaption {
    padding: 0.85rem 1rem;
    font-size: var(--fs-small);
  }

  .media-lightbox__counter {
    top: 1rem;
    left: 1rem;
    min-width: 3.8rem;
    padding: 0.55rem 0.68rem;
    font-size: 0.76rem;
  }

  .media-lightbox__nav {
    top: auto;
    bottom: 1rem;
    width: 42px;
    height: 42px;
    font-size: 1.75rem;
  }

  .media-lightbox__nav--prev {
    left: 1rem;
  }

  .media-lightbox__nav--next {
    right: 1rem;
  }

  .stats {
    grid-template-columns: 1fr;
  }
  
  .quick-access {
    grid-template-columns: 1fr;
  }
  
  .footer__grid {
    grid-template-columns: 1fr;
  }
  
  .board-grid {
    grid-template-columns: 1fr;
  }
  
  .members-grid {
    grid-template-columns: 1fr;
  }
  
  .footer__bottom {
    flex-direction: column;
    text-align: center;
  }
  
  .hero__actions {
    flex-direction: column;
    align-items: center;
  }
  
  .tabs {
    gap: 0;
  }
  
  .tab {
    padding: 0.75rem 1rem;
    font-size: var(--fs-xs);
  }
}

/* ---------- Print-friendly ---------- */
@media print {
  .nav, .footer, .hero__scroll {
    display: none;
  }
  
  body {
    color: #000;
    background: #fff;
  }
  
  .hero {
    min-height: auto;
    padding: var(--space-xl);
  }
}

/* ============================================
   EUROPE MAP — Interactive Member Network
   ============================================ */

.europe-map-section {
  background: var(--color-surface);
}

.europe-map-wrapper {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: var(--space-3xl);
  align-items: start;
}

/* SVG container */
.europe-map-svg-container {
  position: relative;
  background: var(--color-white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  padding: var(--space-xl);
  overflow: hidden;
}

.europe-map-svg-container svg {
  width: 100%;
  height: auto;
  display: block;
}

/* Country paths — default (non-member) */
.europe-map-svg-container path[data-country] {
  fill: #d4dae8;
  stroke: #ffffff;
  stroke-width: 0.5;
  cursor: default;
  transition: fill var(--transition-fast), filter var(--transition-fast);
}

/* Member countries */
.europe-map-svg-container path[data-country].map-member {
  fill: var(--color-primary);
  cursor: pointer;
}

.europe-map-svg-container path[data-country].map-member:hover,
.europe-map-svg-container path[data-country].map-member:focus {
  fill: var(--color-primary-light);
  filter: drop-shadow(0 4px 12px rgba(11,29,81,0.35));
  outline: none;
}

.europe-map-svg-container path[data-country].map-member:focus-visible {
  outline: 2px solid var(--color-secondary);
  outline-offset: 2px;
}

/* Active / selected */
.europe-map-svg-container path[data-country].map-active {
  filter: drop-shadow(0 6px 18px rgba(11,29,81,0.4));
}

.europe-map-svg-container path[data-country].map-member.map-active {
  fill: #1A3A8F;
}

/* Map tooltip */
.map-tooltip {
  position: fixed;
  z-index: 9999;
  background: var(--color-primary-dark);
  color: var(--color-white);
  border-radius: var(--radius-md);
  padding: 0.5rem 0.9rem;
  font-size: var(--fs-xs);
  font-weight: 600;
  pointer-events: none;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity var(--transition-fast), transform var(--transition-fast);
  box-shadow: var(--shadow-lg);
  border: 1px solid rgba(197,164,78,0.2);
}

.map-tooltip.visible {
  opacity: 1;
  transform: translateY(0);
}

.map-tooltip__flag {
  font-size: 1rem;
  margin-right: 0.35rem;
}

.map-tooltip__label {
  color: var(--color-secondary);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  display: block;
  margin-top: 2px;
  font-weight: 500;
}

/* Map legend */
.map-legend {
  display: flex;
  gap: var(--space-lg);
  margin-top: var(--space-md);
  padding-top: var(--space-md);
  border-top: 1px solid var(--color-border);
  flex-wrap: wrap;
}

.map-legend-item {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  font-size: var(--fs-xs);
  color: var(--color-text-secondary);
  font-weight: 500;
}

.map-legend-dot {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  flex-shrink: 0;
}

.map-legend-dot--member { background: var(--color-primary); }
.map-legend-dot--other { background: #d4dae8; }

/* Info panel */
.europe-map-panel {
  position: sticky;
  top: calc(var(--nav-height-scrolled) + var(--space-xl));
}

.map-panel-default {
  background: var(--color-white);
  border-radius: var(--radius-xl);
  padding: var(--space-2xl);
  box-shadow: var(--shadow-md);
  text-align: center;
  border: 2px dashed var(--color-border);
}

.map-panel-default__icon {
  margin-bottom: var(--space-md);
  opacity: 0.5;
  color: var(--color-primary);
}

.map-panel-default__icon svg {
  width: 42px;
  height: 42px;
}

.map-panel-default p {
  color: var(--color-text-light);
  font-size: var(--fs-small);
  line-height: 1.6;
}

.map-panel-member {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.99), rgba(247,249,252,0.98)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.1), transparent 34%);
  border-radius: var(--radius-xl);
  padding: clamp(1rem, 2.4vw, 1.4rem);
  box-shadow: 0 16px 34px rgba(11, 29, 81, 0.08);
  border: 1px solid rgba(9, 30, 82, 0.08);
  display: none;
  animation: fadeInUp 0.25s ease-out;
}

.map-panel-member.visible {
  display: block;
}

.map-panel-member__header {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: 0.85rem;
}

.map-panel-member__flag {
  width: 56px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: linear-gradient(145deg, var(--color-primary), var(--color-primary-light));
  color: var(--color-white);
  font-size: 1.8rem;
  line-height: 1;
  flex-shrink: 0;
}

.map-panel-member__titles h3 {
  font-size: var(--fs-h4);
  font-weight: 800;
  color: var(--color-primary);
  line-height: 1.2;
}

.map-panel-member__titles p {
  font-size: 0.82rem;
  color: var(--color-text-secondary);
  margin-top: 2px;
  line-height: 1.45;
}

.map-panel-member__badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.25rem 0.65rem;
  border-radius: var(--radius-full);
  font-size: var(--fs-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.8rem;
}

.map-panel-member__badge--member {
  background: rgba(11,29,81,0.07);
  color: var(--color-primary);
  border: 1px solid rgba(11,29,81,0.12);
}

.map-panel-member__desc {
  font-size: 0.92rem;
  color: var(--color-text-secondary);
  line-height: 1.55;
  margin-bottom: 0.9rem;
}

.map-panel-member__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  margin-bottom: 0.9rem;
}

.map-panel-member__meta-item {
  background: rgba(244, 246, 250, 0.8);
  border: 1px solid rgba(9, 30, 82, 0.07);
  border-radius: 14px;
  padding: 0.72rem 0.74rem;
}

.map-panel-member__meta-item label {
  display: block;
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-light);
  font-weight: 800;
  margin-bottom: 2px;
}

.map-panel-member__meta-item span {
  font-size: 0.96rem;
  font-weight: 800;
  color: var(--color-primary);
}

.map-panel-member__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
}

.map-panel-member__links a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.42rem 0.82rem;
  font-size: 0.76rem;
  font-weight: 800;
  border-radius: var(--radius-full);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  background: rgba(255,255,255,0.84);
  transition: all var(--transition-fast);
}

.map-panel-member__links a:hover {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}

.map-panel-member__scroll-btn {
  display: block;
  width: 100%;
  margin-top: 0.85rem;
  text-align: center;
  padding: 0.72rem 0.8rem;
  background: rgba(9, 30, 82, 0.04);
  border-radius: 14px;
  font-size: 0.8rem;
  font-weight: 800;
  color: var(--color-primary);
  cursor: pointer;
  border: 1px solid rgba(9, 30, 82, 0.08);
  transition: all var(--transition-fast);
}

.map-panel-member__scroll-btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

/* Responsive */
@media (max-width: 1024px) {
  .europe-map-wrapper {
    grid-template-columns: 1fr;
    gap: var(--space-xl);
  }

  .europe-map-panel {
    position: static;
    order: -1;
  }

  .map-panel-member {
    display: none;
  }

  .map-panel-member.visible {
    display: block;
  }
}

@media (max-width: 600px) {
  .europe-map-svg-container {
    padding: var(--space-md);
    border-radius: var(--radius-lg);
  }

  .map-legend {
    gap: var(--space-md);
  }

  .map-panel-member__stats {
    grid-template-columns: 1fr 1fr;
  }

  .map-panel-member__meta-item:last-child {
    grid-column: 1 / -1;
  }
}

/* Premium competition hub controls */
@media (max-width: 900px) {
  .event-hub-actions {
    position: sticky;
    top: calc(var(--nav-height-scrolled) + 6px);
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    margin-inline: calc(var(--space-md) * -1);
    padding: 0.38rem var(--space-md);
    border-inline: 0;
    border-radius: 0;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .event-hub-actions::-webkit-scrollbar {
    display: none;
  }

  .event-hub-actions a,
  .event-hub-actions__link {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 0.46rem 0.68rem;
    white-space: nowrap;
  }

  .event-hub-actions__link--external {
    margin-left: 0;
  }

  .event-hub-center-links {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }

  .event-hub-center-link-card {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
    gap: 0.55rem 0.85rem;
    padding: 0.82rem 0.9rem;
    border-radius: 12px;
  }

  .event-hub-center-link-card__meta {
    grid-column: 1 / -1;
    min-height: 22px;
    font-size: 0.62rem;
  }

  .event-hub-center-link-card__body {
    gap: 0.25rem;
  }

  .event-hub-center-link-card__body span {
    font-size: 0.84rem;
    line-height: 1.35;
  }

  .event-hub-center-link-card__action {
    align-self: end;
    justify-self: end;
    gap: 0.35rem;
  }
}

@media (max-width: 560px) {
  .event-hub-actions {
    top: calc(var(--nav-height-scrolled) + 2px);
    gap: 0.28rem;
  }

  .event-hub-actions a,
  .event-hub-actions__link {
    min-height: 32px;
    padding: 0.42rem 0.58rem;
    font-size: 0.66rem;
    letter-spacing: 0.03em;
  }

  .event-hub-actions a small,
  .event-hub-actions__link small {
    min-width: 1.05rem;
    height: 1.05rem;
    font-size: 0.58rem;
  }

  .event-hub-center-link-card__action span {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  .event-hub-center-link-card__action svg {
    width: 1.18rem;
    height: 1.18rem;
  }
}

/* Ranking premium refresh: compact, mobile-first, table-safe. */
.rankings-system-section {
  padding-top: clamp(0.95rem, 2.2vw, 1.75rem);
  background:
    linear-gradient(rgba(11, 29, 81, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11, 29, 81, 0.035) 1px, transparent 1px),
    linear-gradient(180deg, #FFFFFF 0%, #F7F9FC 48%, #EEF3F9 100%);
  background-size: 54px 54px, 54px 54px, auto;
}

.rankings-system-section::before {
  opacity: 0.48;
}

.ranking-system {
  gap: clamp(0.78rem, 1.35vw, 1.08rem);
}

.ranking-dashboard__hero,
.ranking-dashboard__aside,
.ranking-spotlight,
.ranking-discipline-header,
.ranking-table-wrapper {
  border-color: rgba(9, 30, 82, 0.09);
}

.ranking-dashboard__hero {
  border-radius: 18px;
  box-shadow: 0 16px 38px rgba(7, 15, 43, 0.14);
}

.ranking-dashboard__stats .stat,
.ranking-spotlight,
.ranking-discipline-header {
  box-shadow: 0 10px 26px rgba(11, 29, 81, 0.055);
}

.ranking-tabs {
  gap: 0.42rem;
  padding: 0.46rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.075);
}

.ranking-tabs .tab {
  min-height: 42px;
  padding: 0.58rem 0.74rem;
  border-radius: 14px;
}

.ranking-tab__code {
  min-width: 1.92rem;
  height: 1.78rem;
  font-size: 0.78rem;
}

.ranking-tab__label {
  font-size: 0.72rem;
}

.ranking-tab__hint {
  font-size: 0.58rem;
  letter-spacing: 0.04em;
}

.ranking-tabs .tab.active {
  border-color: rgba(197, 164, 78, 0.42);
  box-shadow:
    0 12px 24px rgba(11, 29, 81, 0.15),
    inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.ranking-overall-switch {
  padding: 0.3rem;
  box-shadow: 0 9px 22px rgba(11, 29, 81, 0.055);
}

.ranking-overall-switch__button {
  min-height: 36px;
  padding: 0.48rem 0.86rem;
}

.ranking-discipline-header {
  align-items: center;
  padding: clamp(0.84rem, 1.6vw, 1.12rem);
  border-radius: 18px;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.97), rgba(247, 249, 252, 0.94)),
    radial-gradient(circle at top right, rgba(197, 164, 78, 0.12), transparent 30%);
}

.ranking-discipline-header h3 {
  margin: 0.18rem 0;
  font-size: clamp(1.18rem, 2vw, 1.58rem);
}

.ranking-discipline-header p {
  max-width: 760px;
  line-height: 1.45;
  font-size: 0.92rem;
}

.ranking-discipline-header__meta {
  min-width: 108px;
  padding: 0.72rem 0.82rem;
  border-radius: 14px;
}

.ranking-table-wrapper {
  overflow-x: auto;
  overflow-y: hidden;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 15px 34px rgba(11, 29, 81, 0.075);
  scrollbar-width: thin;
  scrollbar-color: rgba(11, 29, 81, 0.26) rgba(11, 29, 81, 0.06);
}

.ranking-table-wrapper::-webkit-scrollbar {
  height: 8px;
}

.ranking-table-wrapper::-webkit-scrollbar-track {
  background: rgba(11, 29, 81, 0.06);
  border-radius: var(--radius-full);
}

.ranking-table-wrapper::-webkit-scrollbar-thumb {
  background: rgba(11, 29, 81, 0.24);
  border-radius: var(--radius-full);
}

.ranking-table {
  width: 100%;
  min-width: 1040px;
}

.ranking-table th {
  padding: 0.82rem 0.95rem;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
}

.ranking-table td {
  padding: 0.95rem;
}

.ranking-table__athlete {
  min-width: 205px;
}

.ranking-table__result .ranking-best-result {
  max-width: 320px;
}

.ranking-best-result--nation {
  max-width: 360px;
}

.ranking-row--podium td {
  background: linear-gradient(90deg, rgba(197, 164, 78, 0.07), rgba(255, 255, 255, 0.98) 42%);
}

.ranking-athlete__link {
  line-height: 1.18;
}

@media (max-width: 1024px) {
  .rankings-system-section {
    padding-top: 0.8rem;
  }

  .ranking-dashboard {
    grid-template-columns: 1fr;
  }

  .ranking-dashboard__hero {
    padding: 1rem;
  }

  .ranking-dashboard__copy p,
  .ranking-spotlight__body {
    font-size: 0.86rem;
  }

  .ranking-tabs {
    position: sticky;
    top: calc(var(--nav-height-scrolled) + 2px);
    display: flex !important;
    flex-wrap: nowrap;
    gap: 0.38rem;
    margin-inline: calc(var(--space-md) * -1);
    padding: 0.46rem var(--space-md);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    overflow-x: auto;
    scroll-padding-inline: var(--space-md);
  }

  .ranking-tabs .tab {
    flex: 0 0 auto;
    min-width: auto;
    min-height: 40px;
    padding: 0.52rem 0.66rem;
  }

  .ranking-tab__hint {
    display: none;
  }

  .ranking-panel-shell {
    gap: 0.78rem;
  }

  .ranking-overall-switch {
    display: flex;
    width: 100%;
  }

  .ranking-overall-switch__button {
    flex: 1 1 0;
    min-width: 0;
  }

  .ranking-discipline-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.9rem;
  }

  .ranking-discipline-header p {
    display: none;
  }

  .ranking-discipline-header__meta {
    min-width: 90px;
    padding: 0.62rem 0.68rem;
  }

  .ranking-table-wrapper {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .ranking-mobile-list {
    display: grid;
    gap: 0.72rem;
  }

  .ranking-table {
    display: none;
  }

  .ranking-mobile-card {
    position: relative;
    gap: 0.78rem;
    overflow: hidden;
    padding: 0.9rem;
    border: 1px solid rgba(9, 30, 82, 0.09);
    border-radius: 16px;
    background:
      linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 249, 252, 0.95)),
      radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.12), transparent 32%);
    box-shadow: 0 10px 24px rgba(11, 29, 81, 0.07);
  }

  .ranking-mobile-card::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: rgba(9, 30, 82, 0.12);
  }

  .ranking-mobile-card--podium {
    background:
      linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 245, 235, 0.92)),
      radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.18), transparent 32%);
  }

  .ranking-mobile-card--podium::before {
    background: var(--color-secondary);
  }

  .ranking-mobile-card__top {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.68rem;
    align-items: start;
  }

  .ranking-mobile-card .rank-badge {
    min-width: 48px;
    height: 36px;
    font-size: 0.78rem;
  }

  .ranking-mobile-card .ranking-athlete__link {
    font-size: 1rem;
    line-height: 1.2;
  }

  .ranking-mobile-card .ranking-athlete__meta {
    font-size: 0.76rem;
  }

  .ranking-mobile-card__points {
    min-width: 78px;
    justify-items: end;
    padding: 0.42rem 0.52rem;
    border-radius: 12px;
    background: rgba(11, 29, 81, 0.045);
  }

  .ranking-mobile-card__points strong {
    font-size: 1.1rem;
  }

  .ranking-mobile-card__meta {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.72rem;
    align-items: start;
  }

  .ranking-mobile-card__meta .ranking-country {
    gap: 0.55rem;
  }

  .ranking-mobile-card--nation .ranking-mobile-card__meta > div {
    padding: 0.62rem 0.66rem;
  }

  .ranking-mobile-card__meta strong,
  .ranking-mobile-card__meta .ranking-country strong {
    font-size: 0.95rem;
  }

  .ranking-mobile-card__result {
    gap: 0.24rem;
    min-width: 0;
    padding: 0.72rem;
    border: 1px solid rgba(9, 30, 82, 0.06);
    border-radius: 14px;
    background: rgba(244, 246, 250, 0.76);
  }

  .ranking-mobile-card__result .ranking-best-result {
    min-width: 0;
  }

  .ranking-mobile-card__result .ranking-best-result strong,
  .ranking-mobile-card__result .ranking-athlete__link {
    overflow-wrap: anywhere;
  }

  .ranking-mobile-card > .ranking-points-bar {
    height: 5px;
  }

  .ranking-top-strip {
    display: none;
  }
}

@media (max-width: 560px) {
  .ranking-tabs-mobile {
    display: block;
    margin-bottom: 0.66rem;
  }

  .ranking-overall-switch-mobile {
    display: block;
    margin-bottom: 0.62rem;
  }

  .ranking-tabs {
    display: none !important;
  }

  .ranking-dashboard__copy h2 {
    font-size: 1.42rem;
  }

  .ranking-dashboard__copy p,
  .ranking-spotlight {
    display: none;
  }

  .ranking-dashboard__stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
  }

  .ranking-dashboard__stats .stat {
    min-height: 58px;
    padding: 0.55rem 0.42rem;
    text-align: center;
  }

  .ranking-dashboard__stats .stat__number {
    font-size: 1.22rem;
  }

  .ranking-dashboard__stats .stat__label {
    font-size: 0.62rem;
  }

  .ranking-quickbar {
    display: flex;
    gap: 0.48rem;
    margin-inline: calc(var(--space-sm) * -1);
    padding-inline: var(--space-sm);
    overflow-x: auto;
    scroll-padding-inline: var(--space-sm);
    scrollbar-width: none;
  }

  .ranking-quickbar::-webkit-scrollbar {
    display: none;
  }

  .ranking-quickbar__item {
    flex: 0 0 142px;
    gap: 0.08rem;
    padding: 0.62rem 0.68rem;
    border-radius: 11px;
    box-shadow: 0 8px 18px rgba(11, 29, 81, 0.05);
  }

  .ranking-quickbar__item span {
    font-size: 0.6rem;
  }

  .ranking-quickbar__item strong,
  .ranking-quickbar__item--event strong {
    font-size: 0.8rem;
  }

  .ranking-tabs {
    margin-inline: calc(var(--space-sm) * -1);
    padding-inline: var(--space-sm);
  }

  .ranking-tabs .tab {
    min-height: 38px;
    padding: 0.48rem 0.58rem;
  }

  .ranking-tab__code {
    min-width: 1.74rem;
    height: 1.62rem;
    font-size: 0.72rem;
  }

  .ranking-tab__label {
    font-size: 0.68rem;
  }

  .ranking-overall-switch {
    display: none;
  }

  .ranking-overall-switch__button {
    min-height: 34px;
    padding: 0.42rem 0.44rem;
    font-size: 0.72rem;
  }

  .ranking-discipline-header {
    grid-template-columns: 1fr;
    padding: 0.82rem;
  }

  .ranking-discipline-header__meta {
    width: 100%;
    min-width: 0;
  }

  .ranking-mobile-card {
    padding: 0.82rem;
    border-radius: 14px;
  }

  .ranking-mobile-card__top {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .ranking-mobile-card__points {
    grid-column: 1 / -1;
    grid-template-columns: auto auto;
    justify-content: space-between;
    justify-items: start;
    align-items: baseline;
    min-width: 0;
  }

  .ranking-mobile-card__meta {
    grid-template-columns: 1fr;
  }

  .ranking-mobile-card--nation .ranking-mobile-card__meta {
    grid-template-columns: 1fr 1fr;
  }

  .ranking-mobile-card__meta .ranking-country {
    align-items: flex-start;
  }

  .ranking-mobile-card__result {
    padding: 0.66rem;
  }

  .ranking-tabs-mobile__field {
    gap: 0.22rem;
  }

  .ranking-tabs-mobile__field select {
    min-height: 40px;
    padding-left: 0.78rem;
    font-size: 0.82rem;
    border-radius: 11px;
  }

  .ranking-discipline-header h3 {
    font-size: 1.08rem;
  }

  .ranking-discipline-header__meta {
    padding: 0.56rem 0.62rem;
    border-radius: 12px;
  }

  .ranking-discipline-header__meta strong {
    font-size: 1rem;
  }
}

/* Competition premium refresh: readable hubs, compact routes, mobile priority. */
.competition-family-directory.reveal,
.event-hub-shell .reveal,
.event-hub-panel.reveal,
.event-hub-overview.reveal,
.competition-browser.reveal {
  opacity: 1;
  transform: none;
}

.competition-gateway {
  gap: 0.7rem;
  margin-bottom: 0.92rem;
}

.competition-gateway__card,
.competition-directory-signal,
.competition-family-card,
.event-hub-overview__copy,
.event-hub-results,
.event-hub-panel,
.competition-browser,
.championship-archive-card,
.open-series-card {
  border-color: rgba(9, 30, 82, 0.1);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.065);
}

.competition-gateway__card {
  min-height: 118px;
  padding: 0.86rem;
  border-radius: 16px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 249, 252, 0.95)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.12), transparent 36%);
}

.competition-gateway__card strong {
  font-size: 1.04rem;
  line-height: 1.15;
}

.competition-gateway__card small {
  font-size: 0.8rem;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.competition-gateway__card:hover,
.competition-gateway__card:focus-visible,
.competition-family-card:hover,
.competition-family-card:focus-within,
.championship-archive-card:hover,
.championship-archive-card:focus-visible {
  border-color: rgba(197, 164, 78, 0.32);
  box-shadow: 0 18px 36px rgba(11, 29, 81, 0.1);
  transform: translateY(-1px);
}

.competition-tabs {
  position: sticky;
  top: calc(var(--nav-height-scrolled) + 2px);
  z-index: 18;
  display: flex;
  gap: 0.45rem;
  overflow-x: auto;
  margin: 0 0 1rem;
  padding: 0.42rem;
  border: 1px solid rgba(9, 30, 82, 0.09);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.075);
  scrollbar-width: none;
}

.competition-tabs::-webkit-scrollbar {
  display: none;
}

.competition-tabs .tab {
  flex: 0 0 auto;
  min-height: 40px;
  margin: 0;
  padding: 0.55rem 0.72rem;
  border-radius: 13px;
  white-space: nowrap;
}

.competition-tabs .tab.active {
  background: var(--color-primary);
  color: var(--color-white);
  box-shadow: 0 10px 22px rgba(11, 29, 81, 0.16);
}

.competition-section-header {
  max-width: 820px;
  margin: 0 auto 0.95rem;
}

.competition-section-header h2 {
  font-size: clamp(1.65rem, 3vw, 2.35rem);
}

.competition-section-header p {
  color: var(--color-text-secondary);
  line-height: 1.55;
}

.competition-directory-signals {
  gap: 0.68rem;
}

.competition-directory-signal {
  min-height: 92px;
  padding: 0.78rem;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 249, 252, 0.96));
}

.competition-family-card {
  position: relative;
  overflow: hidden;
  gap: 0.66rem;
  padding: 0.92rem;
  border-radius: 17px;
}

.competition-family-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--color-secondary), rgba(11, 29, 81, 0.7));
  opacity: 0;
  transition: opacity var(--transition-fast);
}

.competition-family-card:hover::before,
.competition-family-card:focus-within::before {
  opacity: 1;
}

.competition-family-card h3 {
  font-size: clamp(1.18rem, 2vw, 1.48rem);
}

.competition-family-card p,
.event-hub-center-link-card__body span,
.event-hub-overview__copy p,
.event-hub-results p {
  color: rgba(43, 48, 78, 0.82);
}

.event-hub-actions {
  gap: 0.42rem;
  padding: 0.42rem;
  border-radius: 17px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 14px 30px rgba(11, 29, 81, 0.1);
}

.event-hub-actions a,
.event-hub-actions__link {
  min-height: 38px;
  padding: 0.5rem 0.72rem;
  border-radius: 13px;
  color: var(--color-primary);
  font-size: 0.7rem;
}

.event-hub-actions__link.is-active {
  background: linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));
  color: var(--color-white);
}

.event-hub-actions__link--external {
  border-color: rgba(197, 164, 78, 0.28);
  background: rgba(197, 164, 78, 0.1);
}

.event-hub-center-links {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.7rem;
}

.event-hub-center-link-card {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 0.54rem 0.8rem;
  min-height: 108px;
  padding: 0.86rem;
  border-radius: 15px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(248, 250, 253, 0.98)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.1), transparent 34%);
  box-shadow: 0 10px 24px rgba(11, 29, 81, 0.065);
}

.event-hub-center-link-card__meta {
  grid-column: 1 / -1;
  width: fit-content;
  min-height: 23px;
  background: rgba(11, 29, 81, 0.065);
  color: var(--color-primary);
}

.event-hub-center-link-card__body {
  gap: 0.25rem;
}

.event-hub-center-link-card__body strong {
  color: var(--color-primary);
  font-size: 1rem;
}

.event-hub-center-link-card__body span {
  font-size: 0.84rem;
  line-height: 1.36;
}

.event-hub-center-link-card__action {
  align-self: center;
  justify-self: end;
  width: 2.2rem;
  height: 2.2rem;
  justify-content: center;
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.07);
  color: var(--color-primary);
}

.event-hub-center-link-card__action span {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.event-hub-center-link-card__action svg {
  color: currentColor;
}

body[data-competition-family] .event-hub-overview__copy p {
  max-width: 44rem;
}

body[data-competition-family] .event-hub-results {
  justify-content: flex-start;
}

body[data-competition-family] .event-hub-results p {
  line-height: 1.58;
}

body[data-event-archive="openHistory"] .event-hub-overview__copy p {
  max-width: 46rem;
}

@media (max-width: 1024px) {
  .competition-gateway {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
    overflow-x: auto;
    padding-bottom: 0.2rem;
    scroll-snap-type: x proximity;
  }

  .competition-gateway__card {
    min-height: 118px;
    scroll-snap-align: start;
  }

  .competition-directory-signals {
    grid-template-columns: repeat(3, minmax(160px, 1fr));
    overflow-x: auto;
    padding-bottom: 0.2rem;
  }

  .competition-family-grid,
  .championship-archive__grid {
    gap: 0.75rem;
  }

  .event-hub-actions {
    position: sticky;
    top: calc(var(--nav-height-scrolled) + 2px);
    flex-wrap: nowrap;
    overflow-x: auto;
    margin-inline: calc(var(--space-md) * -1);
    padding: 0.42rem var(--space-md);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    scrollbar-width: none;
  }

  .event-hub-actions::-webkit-scrollbar {
    display: none;
  }

  .event-hub-actions__link--external {
    margin-left: 0;
  }

  .event-hub-center-links {
    grid-template-columns: 1fr;
  }

  .event-hub-overview {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .competitions-hero__signals {
    gap: 0.5rem;
    margin-top: 0.85rem;
  }

  .competitions-hero__signals span {
    min-height: 30px;
    padding: 0.42rem 0.68rem;
    font-size: 0.7rem;
  }

  body[data-event-archive="openHistory"] .event-hub-hero__facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.72rem;
  }

  body[data-event-archive="openHistory"] .event-hub-hero__fact {
    min-height: 86px;
    padding: 0.82rem;
  }

  body[data-event-archive="openHistory"] .event-hub-hero__fact strong {
    font-size: 1.42rem;
  }

  body[data-event-archive="openHistory"] .event-hub-hero__fact span {
    font-size: 0.68rem;
  }

  body[data-event-archive="openHistory"] .open-archive-intro-panel {
    display: none;
  }

  body[data-event-archive="openHistory"] .event-hub-overview__copy,
  body[data-event-archive="openHistory"] .event-hub-results,
  body[data-event-archive="openHistory"] .event-hub-panel {
    padding: 0.92rem;
  }

  body[data-event-archive="openHistory"] .event-hub-overview__copy h2,
  body[data-event-archive="openHistory"] .event-hub-results h3 {
    margin-bottom: 0.65rem;
  }

  body[data-event-archive="openHistory"] .event-hub-overview__copy p,
  body[data-event-archive="openHistory"] .event-hub-results p {
    font-size: 0.9rem;
    line-height: 1.5;
  }

  body[data-event-archive="openHistory"] .event-hub-center-grid {
    grid-template-columns: 1fr;
    gap: 0.56rem;
  }

  body[data-event-archive="openHistory"] .event-hub-center-card {
    padding: 0.72rem;
  }

  body[data-event-archive="openHistory"] .event-hub-discipline-nav {
    gap: 0.52rem;
  }

  body[data-event-archive="openHistory"] .event-hub-discipline-chip {
    padding: 0.72rem 0.78rem;
  }

  body[data-event-archive="openHistory"] .open-series-card {
    min-height: 142px;
    padding: 0.92rem;
  }

  body[data-event-archive="openHistory"] .tournament-list {
    gap: 0.72rem;
  }

  body[data-competition-family] .event-hub-hero__facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.72rem;
  }

  body[data-competition-family] .event-hub-hero__fact {
    min-height: 86px;
    padding: 0.82rem;
  }

  body[data-competition-family] .event-hub-hero__fact strong {
    font-size: 1.45rem;
  }

  body[data-competition-family] .event-hub-hero__fact span {
    font-size: 0.68rem;
  }

  body[data-competition-family] .event-hub-overview__copy,
  body[data-competition-family] .event-hub-results,
  body[data-competition-family] .event-hub-panel {
    padding: 0.92rem;
  }

  body[data-competition-family] .event-hub-results {
    display: none;
  }

  body[data-competition-family] .event-hub-overview__copy h2,
  body[data-competition-family] .event-hub-results h3 {
    margin-bottom: 0.65rem;
  }

  body[data-competition-family] .event-hub-results p {
    font-size: 0.9rem;
    line-height: 1.5;
  }

  body[data-competition-family] .event-hub-center-links {
    gap: 0.65rem;
    margin-top: 0.72rem;
  }

  body[data-competition-family] .event-hub-center-link-card {
    min-height: auto;
    padding: 0.8rem;
    gap: 0.46rem 0.7rem;
  }

  body[data-competition-family] .event-hub-center-link-card__body strong {
    font-size: 0.96rem;
  }

  body[data-competition-family] .event-hub-center-link-card__body span {
    font-size: 0.8rem;
    line-height: 1.32;
  }

  .competition-gateway {
    grid-template-columns: repeat(3, minmax(210px, 1fr));
    margin-inline: calc(var(--space-sm) * -1);
    padding-inline: var(--space-sm);
  }

  .competition-gateway__card {
    min-height: 92px;
    padding: 0.74rem;
  }

  .competition-gateway__card strong {
    font-size: 0.94rem;
  }

  .competition-gateway__card small {
    font-size: 0.72rem;
    line-height: 1.3;
    -webkit-line-clamp: 2;
  }

  .competition-tabs {
    margin-inline: calc(var(--space-sm) * -1);
    padding-inline: var(--space-sm);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .competition-tabs .tab {
    min-height: 36px;
    padding: 0.46rem 0.58rem;
    font-size: 0.68rem;
  }

  .tab__icon {
    width: 1rem;
    height: 1rem;
  }

  .competition-section-header {
    text-align: left;
    margin-bottom: 0.9rem;
  }

  .competition-section-header .section-divider {
    margin-left: 0;
  }

  .competition-directory-signals {
    grid-template-columns: repeat(3, minmax(168px, 1fr));
    overflow-x: auto;
    padding-bottom: 0.2rem;
    scroll-snap-type: x proximity;
  }

  .competition-directory-signal {
    min-height: 84px;
    padding: 0.68rem;
    scroll-snap-align: start;
  }

  .competition-directory-signal strong {
    font-size: 1.7rem;
  }

  .competition-directory-signal span {
    font-size: 0.72rem;
    line-height: 1.35;
  }

  .competition-family-card {
    gap: 0.62rem;
    padding: 0.88rem;
  }

  .competition-family-card h3 {
    font-size: 1.22rem;
  }

  .competition-family-card p {
    font-size: 0.88rem;
    line-height: 1.42;
  }

  .competition-family-card__stats span {
    min-height: 30px;
    padding: 0.42rem 0.68rem;
    font-size: 0.72rem;
  }

  .competition-family-card__top,
  .competition-family-card__actions {
    align-items: stretch;
  }

  .competition-family-card__actions .btn {
    flex: 1 1 auto;
    min-height: 42px;
  }

  .competition-family-card__actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }

  .competition-family-card__secondary {
    text-align: center;
    padding: 0.1rem 0 0;
    font-size: 0.76rem;
  }

  .event-hub-panel,
  .event-hub-overview__copy,
  .event-hub-results {
    border-radius: 16px;
  }

  .event-hub-actions {
    margin-inline: calc(var(--space-sm) * -1);
    padding-inline: var(--space-sm);
  }

  .event-hub-actions a,
  .event-hub-actions__link {
    min-height: 34px;
    padding: 0.42rem 0.56rem;
    font-size: 0.64rem;
  }

  .event-hub-actions a small,
  .event-hub-actions__link small {
    min-width: 1.08rem;
    height: 1.08rem;
    font-size: 0.56rem;
  }

  .event-hub-center-link-card {
    min-height: 94px;
    padding: 0.76rem;
    border-radius: 14px;
  }

  .event-hub-center-link-card__body strong {
    font-size: 0.94rem;
  }

  .event-hub-center-link-card__body span {
    font-size: 0.78rem;
  }
}

/* Athlete surfaces premium refresh: public profile feel, dense but readable. */
.athletes-directory__intro.reveal,
.athlete-filters.reveal,
.athlete-results-toolbar.reveal,
.athlete-directory-card.reveal,
.athlete-profile .reveal {
  opacity: 1;
  transform: none;
}

.athletes-directory {
  gap: clamp(0.9rem, 1.8vw, 1.3rem);
}

.athletes-directory__intro {
  gap: 0.85rem;
  padding: clamp(0.95rem, 2vw, 1.3rem);
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 249, 252, 0.94)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.12), transparent 34%);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.06);
}

.athletes-directory__intro h2 {
  margin: 0.15rem 0;
  font-size: clamp(1.45rem, 2.6vw, 2.05rem);
}

.athletes-directory__intro p {
  max-width: 660px;
  color: var(--color-text-secondary);
  line-height: 1.46;
}

.athletes-directory__stats {
  align-self: stretch;
}

.athlete-filters {
  gap: 0.78rem;
  padding: clamp(0.85rem, 1.7vw, 1.12rem);
  border-radius: 18px;
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.06);
}

.athlete-control-center__header h3 {
  margin: 0.1rem 0 0;
  font-size: clamp(1.1rem, 1.7vw, 1.35rem);
}

.athlete-filters__search {
  min-height: 48px;
  border-radius: 15px;
}

.athlete-filter-metrics span {
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
}

.compact-disclosure {
  border-radius: 15px;
}

.athlete-directory-tabs {
  position: sticky;
  top: calc(var(--nav-height-scrolled) + 2px);
  z-index: 14;
  display: flex;
  gap: 0.42rem;
  overflow-x: auto;
  margin: 0;
  padding: 0.42rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.075);
  scrollbar-width: none;
}

.athlete-directory-tabs::-webkit-scrollbar {
  display: none;
}

.athlete-directory-tabs .tab {
  flex: 0 0 auto;
  min-height: 38px;
  margin: 0;
  padding: 0.5rem 0.72rem;
  border-radius: 13px;
  white-space: nowrap;
}

.athlete-directory-tabs .tab.active {
  background: var(--color-primary);
  color: var(--color-white);
  box-shadow: 0 10px 22px rgba(11, 29, 81, 0.16);
}

.athlete-results-toolbar {
  padding: 0.8rem 0.95rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 10px 24px rgba(11, 29, 81, 0.055);
}

.athlete-results-toolbar p {
  margin: 0;
  color: var(--color-primary);
  font-weight: 900;
}

.athlete-card-grid {
  gap: 0.82rem;
}

.athlete-directory-card {
  position: relative;
  overflow: hidden;
  gap: 0.78rem;
  padding: 0.95rem;
  border-color: rgba(9, 30, 82, 0.09);
  border-radius: 17px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(248, 250, 253, 0.96)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.1), transparent 32%);
  box-shadow: 0 11px 26px rgba(11, 29, 81, 0.06);
  transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.athlete-directory-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--color-secondary), rgba(11, 29, 81, 0.72));
  opacity: 0;
  transition: opacity var(--transition-fast);
}

.athlete-directory-card:hover,
.athlete-directory-card:focus-within {
  border-color: rgba(197, 164, 78, 0.32);
  box-shadow: 0 18px 36px rgba(11, 29, 81, 0.1);
  transform: translateY(-1px);
}

.athlete-directory-card:hover::before,
.athlete-directory-card:focus-within::before {
  opacity: 1;
}

.athlete-directory-card__top {
  gap: 0.72rem;
}

.athlete-directory-card__avatar,
.athlete-directory-card__avatar.athlete-avatar--fallback {
  width: 66px;
  height: 66px;
  border-width: 2px;
  box-shadow: 0 10px 22px rgba(9, 30, 82, 0.12);
}

.athlete-directory-card__identity h3 {
  margin: 0;
  font-size: clamp(1.02rem, 1.8vw, 1.18rem);
  line-height: 1.18;
}

.athlete-directory-card__identity p {
  margin: 0.18rem 0 0;
}

.athlete-directory-card__identity .ranking-country {
  align-items: flex-start;
  min-width: 0;
}

.athlete-directory-card__meta {
  gap: 0.45rem;
}

.athlete-directory-card__meta span,
.athlete-directory-card__chips span {
  border: 1px solid rgba(9, 30, 82, 0.07);
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.04);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 850;
  padding: 0.34rem 0.58rem;
}

.athlete-directory-card__chips {
  gap: 0.4rem;
}

.athlete-directory-card__footer .btn {
  min-height: 36px;
  padding: 0.5rem 0.72rem;
}

.athlete-directory-card__footer--cta-only {
  justify-content: flex-end;
}

.athlete-profile {
  gap: clamp(0.95rem, 2vw, 1.45rem);
}

.athlete-profile-views,
.athlete-profile-view,
.athlete-overview-stack {
  display: grid;
  gap: clamp(0.95rem, 2vw, 1.45rem);
}

.athlete-profile-view[hidden] {
  display: none !important;
}

.athlete-profile-nav {
  position: sticky;
  top: calc(var(--nav-height-scrolled) + 2px);
  z-index: 14;
  display: flex;
  gap: 0.42rem;
  overflow-x: auto;
  margin: 0;
  padding: 0.42rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.075);
  scrollbar-width: none;
}

.athlete-profile-nav::-webkit-scrollbar {
  display: none;
}

.athlete-profile-nav__link {
  appearance: none;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0.5rem 0.78rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 13px;
  background: rgba(247, 249, 252, 0.78);
  color: rgba(11, 29, 81, 0.72);
  font-size: 0.78rem;
  font-weight: 900;
  font-family: inherit;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

.athlete-profile-nav__link:hover,
.athlete-profile-nav__link:focus-visible {
  border-color: rgba(197, 164, 78, 0.32);
  background: rgba(255, 255, 255, 0.98);
  color: var(--color-primary);
  box-shadow: 0 10px 24px rgba(11, 29, 81, 0.08);
  outline: none;
}

.athlete-profile-nav__link.is-active {
  background: var(--color-primary);
  border-color: transparent;
  color: var(--color-white);
  box-shadow: 0 10px 24px rgba(11, 29, 81, 0.18);
}

.athlete-profile__hero {
  gap: 1rem;
  padding: clamp(1rem, 2.3vw, 1.65rem);
  border-radius: 19px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(247, 249, 252, 0.96)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.13), transparent 34%);
  box-shadow: 0 14px 32px rgba(11, 29, 81, 0.07);
}

.athlete-overview-panel__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(240px, 0.8fr);
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: start;
}

.athlete-overview-panel__copy,
.athlete-overview-panel__side {
  display: grid;
  gap: 1rem;
}

.athlete-overview-panel__summary {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: clamp(1rem, 1.65vw, 1.08rem);
  line-height: 1.7;
}

.athlete-overview-panel__summary strong {
  color: var(--color-primary);
}

.athlete-overview-panel__summary span[aria-hidden="true"] {
  color: rgba(11, 29, 81, 0.28);
  margin: 0 0.3rem;
}

.athlete-overview-panel__side-block {
  display: grid;
  gap: 0.75rem;
  padding: 1rem 1rem 1.05rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(247, 249, 252, 0.8);
}

.athlete-overview-panel__side-block h3 {
  margin: 0;
  color: var(--color-primary);
  font-size: clamp(1rem, 1.9vw, 1.18rem);
}

.athlete-club-card {
  display: grid;
  gap: 0.6rem;
}

.athlete-club-card__main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.56rem;
  align-items: center;
  color: var(--color-primary);
  text-decoration: none;
}

.athlete-club-card__main span {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: var(--color-primary);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 950;
}

.athlete-club-card__main strong {
  min-width: 0;
  font-size: 0.95rem;
  line-height: 1.14;
}

.athlete-club-card__main small {
  grid-column: 2;
  color: var(--color-text-secondary);
  font-size: 0.76rem;
  font-weight: 750;
}

.athlete-club-card__edit,
.athlete-club-card--empty a {
  justify-self: start;
  color: var(--color-secondary-dark);
  font-size: 0.78rem;
  font-weight: 900;
  text-decoration: none;
}

.athlete-club-card__edit:hover,
.athlete-club-card__edit:focus-visible,
.athlete-club-card--empty a:hover,
.athlete-club-card--empty a:focus-visible {
  color: var(--color-primary);
  outline: none;
}

.athlete-profile__identity {
  gap: 1rem;
}

.athlete-profile__identity h2 {
  margin: 0.25rem 0 0.12rem;
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 0.98;
}

.athlete-profile__identity p {
  margin: 0;
}

.athlete-profile__back {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  margin: 0 0.36rem 0.36rem 0;
  padding: 0.32rem 0.56rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 900;
}

.athlete-profile__avatar,
.athlete-avatar--fallback {
  width: clamp(86px, 13vw, 128px);
  height: clamp(86px, 13vw, 128px);
}

.athlete-profile__facts {
  gap: 0.68rem;
}

.athlete-fact {
  min-height: 86px;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  box-shadow: 0 9px 22px rgba(11, 29, 81, 0.055);
}

.athlete-fact strong {
  font-size: clamp(1.45rem, 3vw, 2rem);
}

.athlete-panel {
  border-radius: 18px;
  border-color: rgba(9, 30, 82, 0.09);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.06);
}

.athlete-panel[id] {
  scroll-margin-top: calc(var(--nav-height-scrolled) + 84px);
}

.athlete-panel[id]:target {
  border-color: rgba(197, 164, 78, 0.3);
  box-shadow: 0 16px 34px rgba(11, 29, 81, 0.09);
}

.athlete-profile__grid {
  gap: 0.85rem;
}

.athlete-profile__grid--single {
  grid-template-columns: minmax(0, 1fr);
}

.athlete-ranking-item,
.athlete-result,
.athlete-palmares__stat,
.athlete-palmares__highlight,
.athlete-record__item {
  border-color: rgba(9, 30, 82, 0.09);
  border-radius: 15px;
  background: rgba(247, 249, 252, 0.86);
}

.athlete-ranking-item {
  padding: 0.85rem;
}

.athlete-result {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.78rem;
  align-items: start;
  padding: 0.85rem;
}

.athlete-result h3 {
  margin: 0.18rem 0 0;
  font-size: clamp(1rem, 1.7vw, 1.18rem);
  line-height: 1.22;
}

.athlete-palmares__stats {
  gap: 0.65rem;
}

.athlete-palmares__stat {
  min-height: 86px;
}

.athlete-palmares__highlight {
  padding: 0.92rem;
}

@media (max-width: 1024px) {
  .athletes-directory__intro {
    grid-template-columns: 1fr;
  }

  .athlete-filter-primary {
    flex-direction: column;
  }

  .athlete-filter-primary .athlete-filters__search {
    flex: 1 1 auto;
  }

  .athlete-profile__hero,
  .athlete-profile__grid {
    grid-template-columns: 1fr;
  }

  .athlete-overview-panel__grid {
    grid-template-columns: 1fr;
  }

  .athlete-performance-layout,
  .athlete-competition-splits,
  .athlete-advanced-grid {
    grid-template-columns: 1fr 1fr;
  }

  .athlete-performance-metrics,
  .athlete-discipline-stat__details {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .athlete-profile__facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .athletes-directory__intro,
  .athlete-filters,
  .athlete-results-toolbar,
  .athlete-profile__hero,
  .athlete-panel {
    border-radius: 16px;
  }

  .athletes-directory__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .athlete-filter-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .athlete-directory-tabs {
    margin-inline: calc(var(--space-sm) * -1);
    padding-inline: var(--space-sm);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .athlete-profile-nav {
    margin-inline: calc(var(--space-sm) * -1);
    padding-inline: var(--space-sm);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .athlete-directory-card {
    padding: 0.82rem;
    border-radius: 15px;
  }

  .athlete-directory-card__top {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .athlete-directory-card__avatar,
  .athlete-directory-card__avatar.athlete-avatar--fallback {
    width: 54px;
    height: 54px;
  }

  .athlete-directory-card__footer {
    align-items: stretch;
    flex-direction: column;
  }

  .athlete-directory-card__footer .btn {
    width: 100%;
  }

  .athlete-profile__identity {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
  }

  .athlete-profile__avatar,
  .athlete-avatar--fallback {
    width: 74px;
    height: 74px;
  }

  .athlete-avatar--fallback span {
    font-size: 1.65rem;
  }

  .athlete-avatar--fallback small {
    min-width: 30px;
    min-height: 24px;
    font-size: 0.62rem;
  }

  .athlete-profile__identity h2 {
    font-size: clamp(1.72rem, 9vw, 2.22rem);
  }

  .athlete-profile__facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .athlete-fact {
    min-height: 72px;
    padding: 0.58rem 0.42rem;
  }

  .athlete-fact span {
    font-size: 0.66rem;
  }

  .athlete-palmares__stats,
  .athlete-record__stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .athlete-performance-metrics,
  .athlete-discipline-stat__meta,
  .athlete-discipline-stat__details,
  .athlete-advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .athlete-performance-layout,
  .athlete-competition-splits {
    grid-template-columns: 1fr;
  }

  .athlete-performance-definition {
    grid-template-columns: 1fr;
  }

  .athlete-performance-definition dd {
    text-align: left;
  }

  .athlete-performance-status__item,
  .athlete-competition-split__top,
  .athlete-discipline-stat__top {
    flex-direction: column;
    align-items: flex-start;
  }

  .athlete-result {
    grid-template-columns: 1fr;
  }

  .athlete-event-result-row {
    grid-template-columns: 1fr;
  }
}

/* Documents + Media governance refresh */
.documents-library {
  gap: clamp(0.88rem, 1.8vw, 1.25rem);
}

.documents-library__notice {
  max-width: 620px;
  padding: 0.62rem 0.82rem;
  border-style: solid;
  border-color: rgba(197, 164, 78, 0.18);
  background: rgba(197, 164, 78, 0.08);
  line-height: 1.42;
  font-size: 0.8rem;
}

.documents-featured__copy p {
  max-width: 460px;
}

.documents-featured__tracks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.72rem;
}

.documents-track-card {
  display: grid;
  align-content: start;
  gap: 0.16rem;
  min-height: 92px;
  font: inherit;
  padding: 0.62rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.08);
  color: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.documents-track-card:hover,
.documents-track-card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(242, 201, 76, 0.42);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.16);
  background: rgba(255, 255, 255, 0.12);
  outline: none;
}

.documents-track-card strong {
  color: var(--color-white);
  font-size: 0.84rem;
  line-height: 1.22;
}

.documents-track-card small {
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.74rem;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.documents-controls {
  gap: 0.95rem;
}

.documents-stats {
  gap: 0.78rem;
}

.documents-stat {
  padding: 0.82rem;
  border-radius: 14px;
}

.documents-control-center {
  gap: 0.78rem;
  padding: clamp(0.84rem, 1.9vw, 1.02rem);
  border-radius: 18px;
}

.documents-control-center__header h3 {
  margin-top: 0.1rem;
  font-size: clamp(0.98rem, 1.7vw, 1.18rem);
}

.documents-filter-primary {
  display: grid;
}

.documents-search {
  min-height: 44px;
  padding: 0.76rem 0.9rem;
  border-radius: 15px;
}

.documents-filter-chips {
  flex-wrap: nowrap;
  overflow-x: auto;
  padding-bottom: 0.1rem;
  scrollbar-width: none;
}

.documents-filter-chips::-webkit-scrollbar {
  display: none;
}

.documents-filter-chip {
  flex: 0 0 auto;
  min-height: 36px;
  padding: 0.48rem 0.76rem;
  font-size: 0.78rem;
}

.documents-filter-grid {
  gap: 0.72rem;
  padding-top: 0;
  border-top: 0;
}

.documents-active-filters {
  min-height: 0;
}

.documents-active-filters:empty {
  display: none;
}

.documents-results {
  gap: 0.92rem;
}

.documents-featured__actions {
  gap: 0.6rem;
}

.documents-results-toolbar {
  padding: 0.6rem 0.8rem;
  border-radius: 14px;
}

.documents-results-toolbar p,
.documents-results-toolbar span {
  font-size: 0.76rem;
}

.doc-category {
  margin-bottom: 1rem;
}

.doc-category__title {
  margin-bottom: 0.72rem;
  padding-bottom: 0.52rem;
}

.doc-item--link {
  color: inherit;
  text-decoration: none;
}

.doc-item {
  gap: 0.78rem;
  margin-bottom: 0.58rem;
  padding: 0.8rem;
  border-radius: 14px;
}

.doc-item--link:hover,
.doc-item--link:focus-visible {
  box-shadow: var(--shadow-card-hover);
  transform: translateX(2px);
  outline: none;
}

.doc-item__name {
  white-space: normal;
  overflow: visible;
  text-overflow: initial;
  line-height: 1.28;
}

.doc-item__meta {
  margin-top: 0.15rem;
}

.doc-item__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.5rem;
}

.doc-item__tags span,
.doc-item__action {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.34rem 0.58rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 850;
}

.doc-item__tags span {
  background: rgba(11, 29, 81, 0.05);
  border: 1px solid rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
}

.doc-item__action {
  flex-shrink: 0;
  justify-self: end;
  min-height: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--color-primary);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.doc-item__action::after {
  content: "";
  width: 0.44rem;
  height: 0.44rem;
  margin-left: 0.38rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.56;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.doc-item--link:hover .doc-item__action,
.doc-item--link:focus-visible .doc-item__action {
  background: transparent;
  color: var(--color-secondary-dark);
}

.doc-item--link:hover .doc-item__action::after,
.doc-item--link:focus-visible .doc-item__action::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 0.88;
}

.media-hub-nav {
  gap: 0.78rem;
}

.media-hub-nav__card {
  min-height: 132px;
  padding: 0.95rem;
  border-radius: 16px;
}

.media-hub-nav__card strong {
  font-size: 1rem;
}

.media-hub-nav__card small {
  line-height: 1.45;
}

.media-resource-list {
  max-width: 860px;
  gap: 0.72rem;
}

.media-resource-list .doc-item {
  margin-bottom: 0;
}

.media-placeholder-panel {
  gap: 0.78rem;
  margin-top: 0.95rem;
  padding: 1rem;
  border-width: 1px;
  border-style: solid;
  border-radius: 18px;
  text-align: left;
  justify-items: start;
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.94));
}

.media-placeholder-panel__icon {
  width: 56px;
  height: 56px;
}

.media-placeholder-panel__icon svg {
  width: 28px;
  height: 28px;
}

.media-placeholder-panel p {
  max-width: none;
}

.media-support-policy {
  font-size: 0.8rem;
}

@media (max-width: 1024px) {
  .documents-featured__tracks {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .media-hub-nav {
    display: flex;
    overflow-x: auto;
    padding-bottom: 0.1rem;
    scrollbar-width: none;
  }

  .media-hub-nav::-webkit-scrollbar {
    display: none;
  }

  .media-hub-nav__card {
    flex: 0 0 240px;
  }
}

@media (max-width: 720px) {
  .documents-library {
    gap: 0.82rem;
  }

  .documents-library__notice {
    width: 100%;
    padding: 0.55rem 0.68rem;
    font-size: 0.74rem;
  }

  .documents-hero__signals {
    gap: 0.5rem;
    margin-top: 0.85rem;
  }

  .documents-hero__signals span {
    min-height: 30px;
    padding: 0.42rem 0.68rem;
    font-size: 0.7rem;
  }

  .documents-featured__tracks {
    grid-template-columns: 1fr;
  }

  .documents-track-card {
    min-height: 0;
    padding: 0.64rem 0.7rem;
    gap: 0.18rem;
  }

  .documents-track-card .news-card__category {
    font-size: 0.72rem;
  }

  .documents-track-card strong {
    font-size: 0.8rem;
    line-height: 1.18;
  }

  .documents-track-card small {
    font-size: 0.74rem;
    line-height: 1.28;
    -webkit-line-clamp: 2;
  }

  .documents-control-center {
    gap: 0.72rem;
    padding: 0.82rem;
  }

  .documents-control-center__header h3 {
    font-size: 0.94rem;
  }

  .documents-search {
    min-height: 42px;
    padding: 0.72rem 0.82rem;
  }

  .documents-filter-chip {
    min-height: 34px;
    padding: 0.44rem 0.7rem;
    font-size: 0.76rem;
  }

  .documents-results-toolbar {
    padding: 0.62rem 0.76rem;
  }

  .doc-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
  }

  .doc-item__action {
    grid-column: 2;
    justify-self: start;
    margin-top: 0.2rem;
  }
}

@media (max-width: 560px) {
  .documents-library__notice,
  .documents-control-center,
  .documents-stat,
  .documents-results-toolbar,
  .doc-item,
  .media-hub-nav__card,
  .media-placeholder-panel {
    border-radius: 16px;
  }

  .documents-filter-chips {
    margin-inline: calc(var(--space-sm) * -1);
    padding-inline: var(--space-sm);
  }

  .media-hub-nav {
    margin-inline: calc(var(--space-sm) * -1);
    padding-inline: var(--space-sm);
  }

  .media-hub-nav__card {
    flex-basis: 184px;
    min-height: 56px;
  }
}

/* SFE premium institutional refresh */
:root {
  --color-page: #f7f9fc;
  --color-ink: #071432;
  --color-muted: #647089;
  --color-hairline: rgba(10, 27, 72, 0.1);
  --surface-white: rgba(255, 255, 255, 0.96);
  --radius-card: 14px;
  --shadow-institutional: 0 18px 44px rgba(7, 20, 50, 0.08);
  --shadow-institutional-hover: 0 22px 54px rgba(7, 20, 50, 0.13);
}

body {
  color: var(--color-ink);
  background:
    linear-gradient(180deg, #ffffff 0%, var(--color-page) 52%, #ffffff 100%);
  overflow-x: clip;
}

@supports not (overflow: clip) {
  body {
    overflow-x: hidden;
  }
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(rgba(11, 29, 81, 0.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11, 29, 81, 0.024) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.48), transparent 76%);
}

.container {
  max-width: 1220px;
}

.section {
  padding: clamp(2.4rem, 4.5vw, 4.4rem) 0;
}

.section-header {
  margin-bottom: clamp(1.25rem, 3vw, 2.1rem);
}

.section-header h2,
.ranking-dashboard__copy h2,
.athletes-directory__intro h2,
.event-hub-overview__copy h2,
.event-hub-results h3 {
  letter-spacing: 0;
}

.section-header p,
.page-hero p,
.ranking-dashboard__copy p,
.event-hub-overview__copy p,
.event-hub-results p {
  color: var(--color-muted);
  line-height: 1.62;
}

.section-kicker,
.section-label,
.news-card__category {
  letter-spacing: 0.08em;
  color: var(--color-secondary-dark);
}

.btn {
  min-height: 44px;
  border-radius: 10px;
  letter-spacing: 0.02em;
  box-shadow: none;
}

.btn--lg {
  min-height: 50px;
  padding: 0.85rem 1.15rem;
}

.btn--primary,
.btn--secondary,
.btn--white,
.btn--outline {
  border-width: 1px;
}

.btn--primary:hover,
.btn--secondary:hover,
.btn--white:hover,
.btn--outline:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(7, 20, 50, 0.12);
}

.nav {
  background: rgba(8, 24, 67, 0.94);
  backdrop-filter: blur(18px);
  box-shadow: 0 1px 0 rgba(255,255,255,0.08);
}

.nav.scrolled {
  background: rgba(8, 24, 67, 0.97);
  box-shadow: 0 10px 32px rgba(7, 20, 50, 0.16);
}

.nav__inner {
  min-height: 72px;
}

.nav__logo {
  min-width: 0;
}

.nav__logo img {
  width: 52px;
  height: auto;
}

.nav__logo-text span {
  letter-spacing: 0.17em;
}

.nav__link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: rgba(255,255,255,0.82);
}

.nav__link:hover,
.nav__link.active {
  color: var(--color-secondary);
}

.nav__dropdown-menu {
  min-width: 228px;
  padding: 0.4rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.985);
  box-shadow: 0 18px 40px rgba(7, 20, 50, 0.13);
}

.nav__dropdown-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 38px;
  padding: 0.62rem 0.78rem;
  border-radius: 7px;
  color: var(--color-primary);
  font-size: 0.76rem;
  font-weight: 780;
}

.nav__dropdown-link:hover,
.nav__dropdown-link:focus-visible {
  background: rgba(11, 29, 81, 0.045);
  color: var(--color-primary);
  outline: none;
}

.nav__dropdown-link::after {
  content: "";
  width: 0.44rem;
  height: 0.44rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.38;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.nav__dropdown-link:hover::after,
.nav__dropdown-link:focus-visible::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 0.74;
}

.page-hero {
  min-height: clamp(260px, 35vw, 390px);
  padding: calc(var(--nav-height) + clamp(2rem, 5vw, 4rem)) 0 clamp(2rem, 5vw, 4rem);
}

.page-hero::before {
  background:
    linear-gradient(180deg, rgba(7, 15, 43, 0.58), rgba(7, 15, 43, 0.82)),
    linear-gradient(90deg, rgba(7, 15, 43, 0.86), rgba(7, 15, 43, 0.36));
}

.page-hero h1 {
  font-size: clamp(2.25rem, 5.2vw, 4.15rem);
  line-height: 0.98;
}

.page-hero__breadcrumb {
  margin-bottom: 0.75rem;
}

.card,
.news-card,
.stat,
.athlete-directory-card,
.athlete-panel,
.ranking-dashboard__hero,
.ranking-dashboard__aside,
.ranking-spotlight,
.ranking-discipline-header,
.ranking-table-wrapper,
.event-hub-overview__copy,
.event-hub-results,
.event-hub-panel,
.documents-control-center,
.documents-featured__panel,
.media-placeholder-panel,
.media-logo-card,
.event-hub-center-link-card,
.event-hub-participant-card {
  border: 1px solid var(--color-hairline);
  border-radius: var(--radius-card);
  background: var(--surface-white);
  box-shadow: var(--shadow-institutional);
}

.card:hover,
.news-card:hover,
.athlete-directory-card:hover,
.event-hub-center-link-card:hover,
.doc-item--link:hover {
  box-shadow: var(--shadow-institutional-hover);
}

.stat {
  padding: 1rem;
}

.stat__number {
  font-weight: 850;
}

.hero {
  min-height: min(100svh, 820px);
}

.hero__eyebrow {
  letter-spacing: 0.12em;
}

.hero__title {
  max-width: 820px;
  letter-spacing: 0;
}

.hero__subtitle {
  max-width: 720px;
}

.hero__actions {
  gap: 0.65rem;
}

.hero__media {
  border-radius: 18px;
}

.footer {
  background: #06102d;
}

.footer__grid {
  gap: clamp(1.5rem, 4vw, 3rem);
}

.footer__col a {
  min-height: 34px;
  display: flex;
  align-items: center;
}

.ranking-system {
  gap: clamp(1rem, 2.2vw, 1.55rem);
}

.ranking-dashboard {
  gap: 1rem;
}

.ranking-dashboard__hero,
.ranking-dashboard__aside {
  padding: clamp(1rem, 2.2vw, 1.45rem);
}

.ranking-dashboard__hero {
  color: var(--color-white);
  background:
    linear-gradient(135deg, rgba(7, 20, 50, 0.98), rgba(18, 43, 102, 0.96));
}

.ranking-dashboard__copy h2,
.ranking-dashboard__hero .section-label {
  color: var(--color-white);
}

.ranking-dashboard__copy p,
.ranking-dashboard__overall-note {
  color: rgba(255,255,255,0.76);
}

.ranking-dashboard__overall-card {
  color: var(--color-white);
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.16);
}

.ranking-dashboard__overall-card small,
.ranking-dashboard__overall-card span {
  color: rgba(255,255,255,0.76);
}

.ranking-dashboard__overall-card strong {
  color: var(--color-white);
}

.ranking-dashboard__overall-card:hover,
.ranking-dashboard__overall-card:focus-visible {
  background: rgba(255,255,255,0.13);
}

.ranking-tabs {
  border: 1px solid rgba(11, 29, 81, 0.08);
  border-radius: 16px;
  box-shadow: var(--shadow-institutional);
}

.ranking-tabs .tab {
  border-radius: 12px;
}

.ranking-tabs .tab.active {
  box-shadow: none;
}

.ranking-table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.ranking-table {
  min-width: 880px;
}

.ranking-table th {
  letter-spacing: 0.08em;
}

.ranking-mobile-card {
  border-radius: 14px;
  box-shadow: var(--shadow-institutional);
}

.ranking-mobile-card__top {
  align-items: flex-start;
}

.event-hub-actions {
  border-radius: 16px;
}

.event-hub-views,
.event-hub-view {
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
}

.event-hub-view[hidden] {
  display: none !important;
}

.event-hub-actions a,
.event-hub-actions__link {
  appearance: none;
  min-height: 42px;
  border-radius: 12px;
  font-family: inherit;
  cursor: pointer;
}

.event-hub-center-link-card {
  border-radius: 14px;
}

.event-hub-center-link-card::before {
  width: 3px;
}

.event-hub-documents .doc-item,
.media-resource-list .doc-item,
.doc-item {
  border-radius: 12px;
}

.documents-featured__copy p {
  color: rgba(255,255,255,0.76);
}

.documents-featured__actions .btn--outline {
  color: var(--color-white);
  border-color: rgba(255,255,255,0.34);
}

.documents-featured__actions .btn--outline:hover {
  background: rgba(255,255,255,0.1);
}

.documents-track-card {
  border-radius: 12px;
}

.documents-search input,
.athlete-filters__search input,
.contact-form input,
.contact-form textarea,
.profile-form input,
.profile-form textarea,
.profile-form select {
  font-size: 0.98rem;
}

.media-hub-nav__card {
  border-radius: 14px;
}

.media-hub-nav__card span {
  color: var(--color-secondary-dark);
}

.media-placeholder-panel {
  box-shadow: none;
}

.media-reel-section {
  background:
    linear-gradient(180deg, rgba(246, 249, 253, 0.98), rgba(239, 244, 250, 0.98));
}

.media-reel__player {
  border-color: rgba(9, 30, 82, 0.1);
}

.media-reel__player video {
  opacity: 1;
}

.media-reel__caption {
  background: transparent;
}

.video-card {
  background: rgba(247, 249, 252, 0.92);
  border-color: rgba(9, 30, 82, 0.08);
}

.video-card.active,
.video-card:hover,
.video-card:focus-visible {
  background: #fff;
}

.video-card__thumb img {
  opacity: 1;
}

.video-card__body strong {
  color: var(--color-primary);
}

.video-card__meta {
  color: var(--color-text-secondary);
}

.news-filters .btn,
.news-filter-chip,
.athlete-directory-tabs .tab,
.ranking-overall-switch__button,
.documents-filter-chip,
.athlete-country-chip {
  border-radius: 999px;
}

@media (max-width: 1024px) {
  .nav__links {
    width: min(390px, 90vw);
    padding: calc(var(--nav-height-scrolled) + 1rem) 0.9rem calc(1rem + env(safe-area-inset-bottom, 0px));
    background:
      linear-gradient(180deg, rgba(8, 24, 67, 0.99), rgba(5, 13, 39, 0.99));
    box-shadow: -24px 0 60px rgba(0,0,0,0.24);
  }

  .nav__links::before {
    content: 'Navigation';
    display: block;
    width: 100%;
    margin: 0 0 0.75rem;
    padding: 0 0.2rem;
    color: rgba(255, 255, 255, 0.52);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .nav__link {
    min-height: 50px;
    padding: 0.8rem 0.9rem;
    font-size: 0.98rem;
    border: 1px solid transparent;
    border-radius: 14px;
    border-bottom: 0;
  }

  .nav__link::after {
    display: none;
  }

  .nav__link:hover,
  .nav__link:focus-visible {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.08);
    color: var(--color-white);
    outline: none;
  }

  .nav__link.active {
    background: rgba(197, 164, 78, 0.16);
    border-color: rgba(197, 164, 78, 0.28);
    color: var(--color-secondary);
  }

  .nav__login-cta {
    justify-content: center;
    width: 100%;
    margin: auto 0 0;
    padding-inline: 1rem;
    border-color: rgba(197, 164, 78, 0.42);
    background: rgba(255,255,255,0.08);
  }

  .nav__dropdown {
    width: 100%;
  }

  .nav__dropdown-trigger {
    justify-content: space-between;
  }

  .nav__dropdown-menu {
    width: 100%;
    margin: 0.28rem 0 0.55rem;
    border-radius: 14px;
  }

  .nav__lang {
    margin-left: 0;
    margin-top: 0.8rem;
    align-self: flex-start;
    background: rgba(255,255,255,0.05);
  }

  .page-hero {
    min-height: 260px;
  }

  .ranking-dashboard,
  .ranking-intro,
  .athletes-directory__intro {
    grid-template-columns: 1fr;
  }

  .ranking-tabs {
    display: flex;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .ranking-tabs::-webkit-scrollbar {
    display: none;
  }

  .ranking-tabs .tab {
    flex: 0 0 auto;
    min-width: 168px;
  }
}

@media (max-width: 768px) {
  :root {
    --space-section: clamp(2.25rem, 8vw, 3.4rem);
  }

  body::before {
    background-size: 54px 54px;
  }

  .container {
    padding-inline: 1rem;
  }

  .nav__inner {
    min-height: 68px;
    padding-inline: 1rem;
  }

  .nav__links {
    width: min(100%, 92vw);
    padding: calc(var(--nav-height-scrolled) + 0.9rem) 0.85rem calc(0.9rem + env(safe-area-inset-bottom, 0px));
  }

  .nav__logo img {
    width: 48px;
  }

  .nav__logo-text strong {
    font-size: 1.35rem;
  }

  .nav__logo-text span {
    max-width: 250px;
    font-size: 0.68rem;
    letter-spacing: 0.13em;
    white-space: normal;
  }

  .nav__link {
    min-height: 48px;
    padding: 0.74rem 0.82rem;
    font-size: 0.94rem;
  }

  .page-hero {
    min-height: 238px;
    padding: calc(var(--nav-height-scrolled) + 1.65rem) 0 1.8rem;
  }

  .page-hero h1 {
    font-size: clamp(2rem, 10vw, 2.95rem);
  }

  .page-hero p {
    max-width: 34rem;
    font-size: 0.95rem;
  }

  .page-hero__content--competitions {
    text-align: center;
    justify-items: center;
  }

  .page-hero__content--competitions .page-hero__breadcrumb {
    width: 100%;
    text-align: center;
  }

  .page-hero__content--competitions .competitions-hero__routes {
    justify-content: center;
  }

  .page-hero__routes,
  .competitions-hero__routes {
    gap: 0.55rem 0.85rem;
    margin-top: 0.95rem;
  }

  .page-hero__routes a,
  .competitions-hero__routes a {
    font-size: 0.68rem;
  }

  .section-header--home {
    align-items: flex-start;
    flex-direction: column;
    text-align: left;
  }

  .section-header__route {
    font-size: 0.72rem;
  }

  .news-hero__signals,
  .contact-hero__signals {
    gap: 0.5rem;
    margin-top: 0.85rem;
  }

  .news-hero__signals span,
  .contact-hero__signals span {
    min-height: 30px;
    padding: 0.42rem 0.68rem;
    font-size: 0.7rem;
  }

  .hero {
    min-height: 92svh;
  }

  .hero__content {
    padding-top: calc(var(--nav-height-scrolled) + 2rem);
  }

  .hero__eyebrow {
    font-size: 0.68rem;
  }

  .hero__actions .btn {
    width: 100%;
  }

  .stats,
  .rankings-stats,
  .ranking-dashboard__stats,
  .athletes-directory__stats,
  .documents-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ranking-panel-shell,
  .ranking-dashboard__hero,
  .ranking-dashboard__aside,
  .ranking-discipline-header,
  .athlete-filters,
  .athlete-panel,
  .documents-control-center,
  .documents-featured__panel,
  .event-hub-panel,
  .event-hub-overview__copy,
  .event-hub-results {
    border-radius: 14px;
  }

  .ranking-table-wrapper {
    display: block;
  }

  .ranking-mobile-list {
    display: grid;
  }

  .ranking-mobile-card {
    padding: 0.95rem;
  }

  .ranking-mobile-card__top {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.75rem;
  }

  .ranking-mobile-card__points {
    grid-column: 1 / -1;
    justify-items: start;
    text-align: left;
  }

  .event-hub-actions,
  .media-hub-nav,
  .documents-filter-chips,
  .athlete-directory-tabs,
  .athlete-country-rail,
  .news-filters {
    margin-inline: -1rem;
    padding-inline: 1rem;
  }

  .event-hub-actions a,
  .event-hub-actions__link,
  .media-hub-nav__card {
    flex: 0 0 auto;
  }

  .doc-item--link:hover,
  .doc-item--link:focus-visible {
    transform: none;
  }

  .footer__grid {
    grid-template-columns: 1fr;
  }

  .footer__bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  .btn {
    width: 100%;
    justify-content: center;
    white-space: normal;
    text-align: center;
    line-height: 1.25;
    min-width: 0;
  }

  .hero__title {
    font-size: clamp(2.12rem, 13vw, 3rem);
  }

  .stats,
  .rankings-stats,
  .ranking-dashboard__stats,
  .athletes-directory__stats,
  .documents-stats,
  .athlete-profile__facts,
  .athlete-archive-stats {
    grid-template-columns: 1fr 1fr;
  }

  .ranking-tabs .tab {
    min-width: 148px;
    padding: 0.66rem 0.72rem;
  }

  .ranking-tab__hint {
    display: none;
  }

  .ranking-overall-switch {
    grid-template-columns: 1fr;
  }

  .documents-featured__actions,
  .hero__actions,
  .event-hub-results__actions,
  .ranking-dashboard__links {
    grid-template-columns: 1fr;
    display: grid;
  }

  .event-hub-results__actions .btn,
  .ranking-event-standings-card__actions .btn {
    width: 100%;
    min-height: 42px;
    padding-inline: 0.95rem;
  }

  .event-hub-actions {
    margin-inline: calc(var(--space-sm) * -1);
    padding-inline: var(--space-sm);
    overflow-x: auto;
    overflow-y: hidden;
  }

  .event-hub-actions a,
  .event-hub-actions__link {
    flex: 0 0 auto;
    min-width: clamp(7.25rem, 32vw, 10rem);
    max-width: min(13rem, 78vw);
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .event-hub-stage-switcher__nav,
  .event-hub-subswitcher__nav,
  .event-hub-discipline-nav {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 0.2rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .event-hub-stage-switcher__nav::-webkit-scrollbar,
  .event-hub-subswitcher__nav::-webkit-scrollbar,
  .event-hub-discipline-nav::-webkit-scrollbar {
    display: none;
  }

  .event-hub-stage-switcher__tab,
  .event-hub-subswitcher__tab,
  .event-hub-discipline-chip {
    flex: 0 0 auto;
    min-width: clamp(7.25rem, 34vw, 10.5rem);
    max-width: min(14rem, 82vw);
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .event-hub-panel,
  .event-hub-match-discipline,
  .event-hub-match-group,
  .event-hub-match-round,
  .event-hub-bracket-match {
    overflow: hidden;
  }

  .event-hub-bracket__board {
    grid-auto-columns: minmax(14rem, 14rem);
    gap: 0.75rem;
  }

  .event-hub-bracket__round-head {
    padding: 0.8rem 0.85rem;
  }

  .event-hub-bracket-match {
    padding: 0.85rem 0.9rem 0.85rem 1rem;
  }

  .newsroom {
    gap: 0.82rem;
  }

  .news-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 0.1rem;
    scrollbar-width: none;
  }

  .news-filters::-webkit-scrollbar {
    display: none;
  }

  .contact-grid {
    gap: 0.92rem;
  }

  .contact-info {
    gap: 0.88rem;
  }

  .contact-card-group {
    margin-top: 1rem;
  }

  .doc-item {
    padding: 0.86rem;
  }

  .doc-item__icon {
    width: 46px;
    min-width: 46px;
    height: 46px;
  }
}

/* Competition system hardening: keep hub controls compact and readable. */
.event-hub-actions,
.event-hub-stage-switcher__nav,
.event-hub-subswitcher__nav,
.event-hub-discipline-nav {
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.event-hub-actions a,
.event-hub-actions__link,
.event-hub-stage-switcher__tab,
.event-hub-subswitcher__tab,
.event-hub-discipline-chip {
  text-wrap: balance;
}

.event-hub-center-link-card {
  min-height: 0;
}

.event-hub-center-link-card__body span {
  max-width: 44rem;
}

.ranking-event-standings-table td,
.ranking-event-standings-table th,
.ranking-event-standings-mobile-card,
.placement-athletes {
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .event-hub-center-link-card {
    padding: 0.92rem;
    gap: 0.74rem;
  }

  .event-hub-center-link-card__body span {
    display: none;
  }

  .event-hub-center-link-card__action span {
    display: none;
  }

  .event-hub-panel .section-header p {
    max-width: 34rem;
  }
}

/* Ranking social refresh */
.page-hero--rankings {
  min-height: 156px;
  padding: calc(var(--nav-height) + 1rem) 0 0.92rem;
}

.page-hero--rankings h1 {
  font-size: clamp(1.92rem, 3.7vw, 2.8rem);
}

.page-hero--rankings p {
  max-width: 500px;
  font-size: 0.9rem;
}

.ranking-dashboard--social {
  display: block;
}

.ranking-social-board {
  display: grid;
  gap: 0.88rem;
  padding: clamp(0.92rem, 2.2vw, 1.35rem);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(7, 15, 43, 0.98), rgba(14, 39, 96, 0.96) 58%, rgba(26, 74, 142, 0.92)),
    url('../assets/media/home/competition-awards.jpg');
  background-size: cover;
  background-position: 50% 45%;
  background-blend-mode: multiply;
  color: var(--color-white);
  box-shadow: 0 24px 58px rgba(7, 15, 43, 0.22);
}

.ranking-social-board__top,
.ranking-social-footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.ranking-social-board__top h2 {
  margin: 0.25rem 0 0.25rem;
  color: var(--color-white);
  font-size: clamp(1.45rem, 3vw, 2.45rem);
  line-height: 1;
}

.ranking-social-board__top p {
  max-width: 520px;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.88rem;
  line-height: 1.38;
}

.ranking-social-board__event,
.ranking-social-actions a,
.ranking-social-leader__ranking-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0.56rem 0.82rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: var(--color-white);
  font-size: 0.8rem;
  font-weight: 900;
  text-decoration: none;
}

.ranking-social-leaders {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.ranking-social-leader {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.85rem;
  padding: 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(8px);
}

.ranking-social-leader__media {
  position: relative;
}

.ranking-social-leader__avatar,
.ranking-social-leader__avatar.athlete-avatar--fallback {
  width: 76px;
  height: 76px;
  border: 3px solid rgba(255, 255, 255, 0.86);
  border-radius: 50%;
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.22);
}

.ranking-social-leader__media > span {
  position: absolute;
  right: -0.25rem;
  bottom: -0.2rem;
  display: grid;
  place-items: center;
  min-width: 2rem;
  min-height: 2rem;
  border: 2px solid rgba(255, 255, 255, 0.92);
  border-radius: 50%;
  background: var(--color-secondary);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 950;
}

.ranking-social-leader__body {
  min-width: 0;
  display: grid;
  gap: 0.3rem;
}

.ranking-social-leader__label {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.ranking-social-leader__body > a {
  color: var(--color-white);
  font-size: clamp(1.08rem, 2.2vw, 1.45rem);
  font-weight: 950;
  line-height: 1.1;
  text-decoration: none;
}

.ranking-social-leader__body > a:hover,
.ranking-social-leader__body > a:focus-visible {
  color: var(--color-secondary);
}

.ranking-social-leader__country .ranking-country {
  min-width: 0;
  color: rgba(255, 255, 255, 0.8);
}

.ranking-social-leader__country .ranking-country small,
.ranking-social-leader__country .ranking-country strong {
  color: rgba(255, 255, 255, 0.78);
}

.ranking-social-leader__meta {
  display: flex;
  align-items: baseline;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.ranking-social-leader__meta strong {
  color: var(--color-secondary);
  font-size: 1.25rem;
}

.ranking-social-leader__meta small,
.ranking-social-leader__best > small {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.ranking-social-leader__best {
  display: grid;
  gap: 0.12rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ranking-social-leader__best .ranking-best-result,
.ranking-social-leader__best .ranking-best-result small {
  min-width: 0;
  color: rgba(255, 255, 255, 0.82);
}

.ranking-social-leader__ranking-link {
  grid-column: 1 / -1;
  width: fit-content;
  min-height: 32px;
  padding: 0.46rem 0.7rem;
  background: rgba(255, 255, 255, 0.14);
}

.ranking-social-actions,
.ranking-social-stats {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.ranking-social-stats span {
  display: grid;
  min-width: 104px;
  padding: 0.48rem 0.62rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.68rem;
  font-weight: 850;
  text-transform: uppercase;
}

.ranking-social-stats strong {
  color: var(--color-white);
  font-size: 1rem;
  line-height: 1.1;
}

.ranking-quickbar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.68rem;
}

.ranking-quickbar__item {
  display: grid;
  gap: 0.14rem;
  min-width: 0;
  padding: 0.74rem 0.82rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--color-primary);
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(11, 29, 81, 0.055);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}

.ranking-quickbar__item:hover,
.ranking-quickbar__item:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(197, 164, 78, 0.28);
  box-shadow: 0 14px 28px rgba(11, 29, 81, 0.08);
  outline: none;
}

.ranking-quickbar__item span {
  color: var(--color-text-light);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ranking-quickbar__item strong {
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1.2;
  text-wrap: balance;
}

.ranking-quickbar__item--event strong {
  font-size: 0.92rem;
}

.ranking-rules-section {
  display: none;
}

.ranking-placements-section {
  gap: 0.8rem;
  margin-top: 0.9rem;
}

.ranking-placements-section__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.ranking-placements-section__bar a {
  color: var(--color-primary);
  font-size: 0.8rem;
  font-weight: 900;
  text-decoration: none;
}

.ranking-placements-section__bar a:hover,
.ranking-placements-section__bar a:focus-visible {
  color: var(--color-secondary-dark);
  text-decoration: underline;
}

@media (max-width: 768px) {
  .page-hero--rankings {
    min-height: 150px;
    padding: calc(var(--nav-height-scrolled) + 1.1rem) 0 0.9rem;
  }

  .page-hero--rankings h1 {
    font-size: clamp(1.9rem, 9vw, 2.55rem);
  }

  .ranking-social-board {
    border-radius: 18px;
    padding: 0.9rem;
  }

  .ranking-quickbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.56rem;
  }

  .ranking-quickbar__item {
    padding: 0.68rem 0.72rem;
    border-radius: 12px;
  }

  .ranking-quickbar__item strong {
    font-size: 0.92rem;
  }

  .ranking-social-board__top h2 {
    font-size: 1.45rem;
  }

  .ranking-social-board__top p {
    font-size: 0.84rem;
  }

  .ranking-social-leaders {
    grid-template-columns: 1fr;
  }

  .ranking-social-leader {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.7rem;
    padding: 0.76rem;
    border-radius: 14px;
  }

  .ranking-social-leader__avatar,
  .ranking-social-leader__avatar.athlete-avatar--fallback {
    width: 58px;
    height: 58px;
  }

  .ranking-social-leader__body > a {
    font-size: 1.05rem;
  }

  .ranking-social-footer {
    display: grid;
  }

  .ranking-social-actions,
  .ranking-social-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ranking-social-actions a,
  .ranking-social-stats span {
    min-width: 0;
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .ranking-quickbar__item span {
    font-size: 0.64rem;
  }

  .ranking-quickbar__item strong,
  .ranking-quickbar__item--event strong {
    font-size: 0.84rem;
  }

  .ranking-social-actions,
  .ranking-social-stats {
    grid-template-columns: 1fr;
  }

  .ranking-social-leader__best {
    display: none;
  }
}

/* Athlete directory profile emphasis */
.athlete-directory-card {
  padding: clamp(0.95rem, 2.3vw, 1.25rem);
}

.athlete-directory-card__top {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
}

.athlete-directory-card__portrait {
  position: relative;
  display: block;
  width: 104px;
  height: 104px;
  border-radius: 50%;
  color: inherit;
  text-decoration: none;
  filter: drop-shadow(0 14px 24px rgba(9, 30, 82, 0.18));
}

.athlete-directory-card__avatar,
.athlete-directory-card__avatar.athlete-avatar--fallback {
  width: 104px;
  height: 104px;
  border: 4px solid rgba(255, 255, 255, 0.96);
  box-shadow: inset 0 0 0 1px rgba(9, 30, 82, 0.08);
}

.athlete-directory-card__portrait > span {
  position: absolute;
  right: -0.15rem;
  bottom: 0.1rem;
  display: grid;
  place-items: center;
  min-width: 2.15rem;
  min-height: 1.75rem;
  padding: 0 0.36rem;
  border: 2px solid var(--color-white);
  border-radius: 999px;
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 0.68rem;
  font-weight: 950;
}

.athlete-directory-card__portrait .athlete-avatar--fallback small {
  display: none;
}

.athlete-directory-card__identity h3 {
  font-size: clamp(1.18rem, 2vw, 1.42rem);
  line-height: 1.05;
}

.athlete-directory-card__identity .ranking-country {
  gap: 0.55rem;
}

.athlete-directory-card__meta span:first-child {
  font-size: 0.88rem;
  border-color: rgba(197, 164, 78, 0.34);
  background: rgba(197, 164, 78, 0.1);
}

.athlete-directory-card__meta {
  gap: 0.48rem;
}

.athlete-directory-card__meta span {
  min-height: 34px;
}

.athlete-directory-card__meta span + span {
  border-color: rgba(11, 29, 81, 0.08);
  background: rgba(244, 246, 250, 0.72);
  color: var(--color-muted);
}

.athlete-directory-card__footer {
  margin-top: 0.1rem;
}

.athlete-directory-card__footer .btn {
  min-height: 36px;
  padding: 0.55rem 0.85rem;
  font-size: 0.78rem;
}

@media (max-width: 768px) {
  .athlete-directory-card {
    padding: 0.9rem;
  }

  .athlete-directory-card__top {
    gap: 0.85rem;
  }

  .athlete-directory-card__portrait,
  .athlete-directory-card__avatar,
  .athlete-directory-card__avatar.athlete-avatar--fallback {
    width: 92px;
    height: 92px;
  }

  .athlete-directory-card__identity h3 {
    font-size: 1.22rem;
  }
}

@media (max-width: 430px) {
  .athlete-directory-card__top {
    grid-template-columns: 76px minmax(0, 1fr);
    align-items: center;
  }

  .athlete-directory-card__portrait,
  .athlete-directory-card__avatar,
  .athlete-directory-card__avatar.athlete-avatar--fallback {
    width: 76px;
    height: 76px;
  }

  .athlete-directory-card__portrait > span {
    min-width: 1.8rem;
    min-height: 1.46rem;
    font-size: 0.6rem;
  }

  .athlete-directory-card__meta {
    display: grid;
    grid-template-columns: 1fr;
  }

  .athlete-directory-card__meta span {
    width: 100%;
    justify-content: flex-start;
  }

  .athlete-directory-card__footer {
    align-items: flex-start;
  }

  .athlete-directory-card__footer .btn {
    width: auto;
    min-width: 150px;
  }
}

/* Mobile ranking should behave like a fast sports table, not a long editorial page. */
@media (max-width: 768px) {
  .page-hero--rankings {
    min-height: 150px;
    padding-bottom: 0.85rem;
  }

  .ranking-dashboard--social {
    display: none;
  }

  .ranking-filters {
    gap: 0.6rem;
    margin-top: 0.72rem;
    padding: 0.72rem;
    border-radius: 16px;
  }

  .ranking-filters .athlete-control-center__header {
    display: none;
  }

  .ranking-filter-primary {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .ranking-filter-metrics {
    display: none;
  }

  .ranking-filters .athlete-filters__search {
    padding: 0.68rem 0.8rem;
    border-radius: 14px;
  }

  .ranking-filters__grid {
    gap: 0.62rem;
  }

  .ranking-filters__grid--inline {
    grid-template-columns: 1fr;
  }

  .ranking-filters__grid label span {
    font-size: 0.66rem;
  }

  .ranking-filters__grid select {
    min-height: 42px;
  }

  .ranking-active-filters {
    min-height: 0;
    margin-top: 0.18rem;
  }

  .ranking-tabs {
    margin-top: 0.76rem;
  }

  .ranking-panel-shell {
    gap: 0.68rem;
    margin-top: 0.72rem;
  }
}

/* Compact athlete directory: fast lookup first, visual showcase on its own page. */

.athlete-preview-list {
  display: grid;
  gap: 0.45rem;
}

.athlete-preview-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.72rem;
  min-height: 64px;
  padding: 0.68rem 0.82rem;
  border: 1px solid rgba(9, 30, 82, 0.09);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.96);
  color: var(--color-primary);
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(11, 29, 81, 0.045);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

.athlete-preview-card:hover,
.athlete-preview-card:focus-visible {
  border-color: rgba(197, 164, 78, 0.34);
  box-shadow: 0 12px 24px rgba(11, 29, 81, 0.08);
  outline: none;
  transform: translateY(-1px);
}

.athlete-preview-card__portrait {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.athlete-preview-card__avatar,
.athlete-preview-card__avatar.athlete-avatar--fallback {
  width: 52px;
  height: 52px;
  border-width: 2px;
  box-shadow: 0 10px 22px rgba(9, 30, 82, 0.1);
}

.athlete-preview-card__identity,
.athlete-preview-card__score {
  display: grid;
  min-width: 0;
}

.athlete-preview-card__identity {
  gap: 0.18rem;
}

.athlete-preview-card__identity strong {
  overflow: hidden;
  font-size: 1rem;
  font-weight: 950;
  line-height: 1.12;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.athlete-preview-card__identity .ranking-country {
  min-width: 0;
  gap: 0.4rem;
}

.athlete-preview-card__identity .ranking-country > span:last-child {
  min-width: 0;
}

.athlete-preview-card__identity .ranking-country > span:last-child strong {
  overflow: hidden;
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  font-weight: 850;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.athlete-preview-card__identity .ranking-country > span:last-child small {
  display: none;
}

.athlete-preview-card__score {
  justify-items: end;
  text-align: right;
  gap: 0.12rem;
}

.athlete-preview-card__score strong {
  color: var(--color-primary);
  font-size: 1rem;
  font-weight: 950;
  line-height: 1.05;
  white-space: nowrap;
}

.athlete-preview-card__score small {
  color: var(--color-text-light);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.athlete-directory-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin-top: 1rem;
}

.athlete-directory-pagination__button {
  min-height: 36px;
  padding: 0.44rem 0.68rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--color-primary);
  font-size: 0.76rem;
  font-weight: 850;
  transition: border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast);
}

.athlete-directory-pagination__button:hover:not(:disabled),
.athlete-directory-pagination__button:focus-visible {
  border-color: rgba(197, 164, 78, 0.38);
  outline: none;
}

.athlete-directory-pagination__button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.athlete-directory-pagination__status {
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  font-weight: 850;
  white-space: nowrap;
}

.athlete-group-directory {
  display: grid;
  gap: 0.62rem;
}

.athlete-group-directory-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(190px, auto);
  align-items: center;
  gap: 0.78rem;
  padding: 0.74rem 0.82rem;
  border: 1px solid rgba(9, 30, 82, 0.09);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 18px rgba(11, 29, 81, 0.045);
}

.athlete-group-directory-row__mark {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(9, 30, 82, 0.09);
  border-radius: 14px;
  background: rgba(11, 29, 81, 0.045);
  color: var(--color-primary);
  font-size: 0.82rem;
  font-weight: 950;
  text-decoration: none;
}

.athlete-group-directory-row__body {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
}

.athlete-group-directory-row__title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.athlete-group-directory-row__title h3 {
  overflow: hidden;
  margin: 0;
  font-size: 1rem;
  line-height: 1.14;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.athlete-group-directory-row__title a {
  color: inherit;
  text-decoration: none;
}

.athlete-group-directory-row__title a:hover,
.athlete-group-directory-row__title a:focus-visible {
  color: var(--color-secondary-dark);
  outline: none;
}

.athlete-group-directory-row__title span,
.athlete-group-directory-row__meta span,
.athlete-group-directory-row__more {
  border-radius: var(--radius-full);
  background: rgba(11, 29, 81, 0.055);
  color: var(--color-text-secondary);
  font-size: 0.68rem;
  font-weight: 850;
  line-height: 1;
  padding: 0.32rem 0.5rem;
  white-space: nowrap;
}

.athlete-group-directory-row__body p {
  overflow: hidden;
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.athlete-group-directory-row__meta,
.athlete-group-directory-row__players {
  display: flex;
  align-items: center;
  gap: 0.38rem;
  flex-wrap: wrap;
}

.athlete-group-directory-row__players {
  justify-content: flex-end;
}

.athlete-group-directory-row__players a {
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
  max-width: 160px;
  color: var(--color-primary);
  font-size: 0.76rem;
  font-weight: 850;
  text-decoration: none;
}

.athlete-group-directory-row__players a span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.athlete-group-directory-row__avatar,
.athlete-group-directory-row__avatar.athlete-avatar--fallback {
  width: 30px;
  height: 30px;
  border-width: 1px;
  box-shadow: none;
}

.athlete-group-list--preview .athlete-group {
  gap: 0.58rem;
}

@media (max-width: 640px) {
  .athlete-results-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .athlete-preview-card {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.58rem;
    min-height: 72px;
    padding: 0.68rem;
  }

  .athlete-preview-card__avatar,
  .athlete-preview-card__avatar.athlete-avatar--fallback {
    width: 46px;
    height: 46px;
  }

  .athlete-preview-card__score {
    grid-column: 2;
    justify-items: start;
    text-align: left;
  }

  .athlete-preview-card__identity strong {
    white-space: normal;
  }

  .athlete-group-directory-row {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
  }

  .athlete-group-directory-row__players {
    grid-column: 1 / -1;
    justify-content: flex-start;
    padding-left: 58px;
  }

  .athlete-group-directory-row__players a {
    max-width: 138px;
  }

  .athlete-directory-pagination {
    justify-content: space-between;
  }

  .athlete-group__header--organization {
    align-items: flex-start;
  }
}

.clubs-section {
  padding-top: clamp(2.4rem, 5vw, 4.5rem);
}

.club-directory,
.club-profile {
  display: grid;
  gap: 1rem;
}

.club-directory__header,
.club-profile__hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: end;
  padding: clamp(1.1rem, 3vw, 1.6rem);
  border: 1px solid rgba(9, 30, 82, 0.09);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 12px 28px rgba(11, 29, 81, 0.055);
}

.club-directory__header h2,
.club-profile__identity h2,
.club-profile-panel h3 {
  margin: 0;
  color: var(--color-primary);
}

.club-directory__header p,
.club-profile__identity p,
.club-profile-panel p {
  max-width: 720px;
  margin: 0.45rem 0 0;
  color: var(--color-text-secondary);
}

.club-directory__stats,
.club-profile__facts {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.club-directory__stats span,
.club-profile__facts span {
  min-width: 112px;
  padding: 0.72rem 0.85rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(11, 29, 81, 0.035);
  color: var(--color-text-secondary);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.club-directory__stats strong,
.club-profile__facts strong {
  display: block;
  color: var(--color-primary);
  font-size: 1.28rem;
  line-height: 1;
  text-transform: none;
}

.club-directory__grid {
  display: grid;
  gap: 0.72rem;
}

.club-directory__controls {
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
  gap: 0.7rem;
  align-items: center;
  padding: 0.35rem 0;
}

.club-directory__search input {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(9, 30, 82, 0.11);
  border-radius: 999px;
  padding: 0.72rem 1rem;
  background: rgba(255, 255, 255, 0.96);
  color: var(--color-primary);
  font: inherit;
  font-weight: 800;
}

.club-directory__search input::placeholder {
  color: rgba(87, 93, 124, 0.78);
}

.club-directory__search input:focus {
  border-color: rgba(197, 164, 78, 0.5);
  outline: 2px solid rgba(197, 164, 78, 0.16);
}

.club-directory__country-rail {
  display: flex;
  gap: 0.45rem;
  overflow-x: auto;
  padding: 0.2rem 0 0.35rem;
  scrollbar-width: thin;
}

.club-directory__chip {
  flex: 0 0 auto;
  min-height: 42px;
  border: 1px solid rgba(9, 30, 82, 0.09);
  border-radius: 999px;
  padding: 0.58rem 0.9rem;
  background: rgba(255, 255, 255, 0.9);
  color: var(--color-primary);
  cursor: pointer;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 900;
}

.club-directory__chip.is-active {
  border-color: rgba(9, 30, 82, 0.92);
  background: var(--color-primary);
  color: #fff;
}

.club-directory__empty {
  margin: 0;
  padding: 1rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-text-secondary);
  font-weight: 800;
}

.club-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.85rem;
  align-items: center;
  padding: 0.88rem;
  border: 1px solid rgba(9, 30, 82, 0.09);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.98);
  color: inherit;
  text-decoration: none;
  transition: border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}

.club-card:hover,
.club-card:focus-visible {
  border-color: rgba(197, 164, 78, 0.36);
  box-shadow: 0 14px 28px rgba(11, 29, 81, 0.08);
  outline: none;
  transform: translateY(-1px);
}

.club-card__mark,
.club-profile__mark {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 15px;
  background: rgba(11, 29, 81, 0.06);
  color: var(--color-primary);
  font-weight: 950;
}

.club-card__body,
.club-card__meta,
.club-profile__identity {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
}

.club-card__body strong {
  overflow: hidden;
  color: var(--color-primary);
  font-size: 1rem;
  line-height: 1.12;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.club-card__body small,
.club-card__country,
.club-card__meta span,
.club-profile__breadcrumbs,
.club-profile__breadcrumbs a,
.club-profile__muted {
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  font-weight: 750;
}

.club-card__country,
.club-profile__breadcrumbs {
  color: var(--color-secondary-dark);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.club-card__meta {
  justify-items: end;
}

.club-profile__hero {
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
}

.club-profile__mark {
  width: 68px;
  height: 68px;
  border-radius: 18px;
  background: var(--color-primary);
  color: #fff;
}

.club-profile__breadcrumbs {
  display: flex;
  gap: 0.45rem;
  flex-wrap: wrap;
  margin-bottom: 0.35rem;
}

.club-profile__breadcrumbs a {
  color: var(--color-secondary-dark);
  text-decoration: none;
}

.club-profile__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
}

.club-profile-panel {
  padding: clamp(1rem, 3vw, 1.35rem);
  border: 1px solid rgba(9, 30, 82, 0.09);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.96);
}

.club-profile-panel--wide {
  grid-column: 1 / -1;
}

.club-profile-athletes,
.club-profile-events,
.club-profile-roster-names {
  display: grid;
  gap: 0.55rem;
  margin-top: 0.9rem;
}

.club-profile-athletes a,
.club-profile-events a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.55rem;
  align-items: center;
  padding: 0.62rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 13px;
  background: rgba(248, 250, 253, 0.9);
  color: var(--color-primary);
  font-weight: 850;
  text-decoration: none;
}

.club-profile-athletes a:hover,
.club-profile-athletes a:focus-visible,
.club-profile-events a:hover,
.club-profile-events a:focus-visible {
  border-color: rgba(197, 164, 78, 0.34);
  outline: none;
}

.club-profile-athletes__avatar,
.club-profile-athletes__avatar.athlete-avatar--fallback {
  width: 38px;
  height: 38px;
  box-shadow: none;
}

.club-profile-athletes small,
.club-profile-events small,
.club-profile-events span {
  color: var(--color-text-secondary);
  font-size: 0.75rem;
  font-weight: 750;
}

.club-profile-roster-names {
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
}

.club-profile-roster-names span {
  padding: 0.62rem 0.7rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 12px;
  background: rgba(248, 250, 253, 0.92);
  color: var(--color-primary);
  font-size: 0.82rem;
  font-weight: 850;
}

.club-profile-roster-names--primary {
  margin-top: 0.75rem;
}

.club-leadership-panel {
  display: grid;
  gap: 1rem;
}

.club-leadership-panel__head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
}

.club-leadership-panel__admin {
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
}

.club-role-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.6rem;
}

.club-role-card,
.club-leadership-empty {
  display: grid;
  gap: 0.25rem;
  padding: 0.85rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(248, 250, 253, 0.92);
}

.club-role-card span,
.club-leadership-empty span {
  color: var(--color-text-secondary);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.club-role-card strong,
.club-leadership-empty strong {
  color: var(--color-primary);
}

.club-role-card a {
  color: var(--color-secondary-dark);
  font-size: 0.76rem;
  font-weight: 850;
  text-decoration: none;
}

.club-role-claim {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(9, 30, 82, 0.08);
}

.club-role-claim__title,
.club-role-claim__wide,
.club-role-claim__actions {
  grid-column: 1 / -1;
}

.club-role-claim__title {
  display: grid;
  gap: 0.15rem;
}

.club-role-claim__title strong {
  color: var(--color-primary);
  font-size: 1.05rem;
}

.club-role-claim label {
  display: grid;
  gap: 0.35rem;
}

.club-role-claim label span {
  color: var(--color-text-secondary);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.club-role-claim input,
.club-role-claim select,
.club-role-claim textarea {
  width: 100%;
  border: 1px solid rgba(9, 30, 82, 0.12);
  border-radius: 12px;
  padding: 0.76rem 0.82rem;
  background: #fff;
  color: var(--color-primary);
  font: inherit;
}

.club-role-claim input:focus,
.club-role-claim select:focus,
.club-role-claim textarea:focus {
  border-color: rgba(197, 164, 78, 0.55);
  outline: 2px solid rgba(197, 164, 78, 0.18);
}

.club-role-claim--nomination {
  margin-top: 0.25rem;
}

.club-role-claim__actions {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.profile-review__queue {
  display: grid;
  gap: 0.75rem;
}

.profile-review__summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.6rem;
}

.profile-review__summary article {
  display: grid;
  gap: 0.15rem;
  padding: 0.85rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.92);
}

.profile-review__summary strong {
  color: var(--color-primary);
  font-size: 1.35rem;
  font-weight: 950;
  line-height: 1;
}

.profile-review__summary span {
  color: var(--color-text-secondary);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.profile-review__queue + .profile-review__queue {
  margin-top: 1rem;
}

.profile-review__queue--empty {
  padding: 1rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.9);
}

.profile-review__queue-header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid rgba(9, 30, 82, 0.08);
}

.profile-review__queue-header strong {
  color: var(--color-primary);
  font-size: 0.85rem;
}

.profile-submission-card__media--mark {
  display: grid;
  place-items: center;
  background: var(--color-primary);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 950;
}

@media (max-width: 720px) {
  .club-directory__header,
  .club-directory__controls,
  .club-profile__hero,
  .club-profile__grid,
  .club-card,
  .profile-review__summary {
    grid-template-columns: 1fr;
  }

  .club-directory__controls {
    gap: 0.45rem;
  }

  .club-directory__country-rail {
    margin-right: calc(var(--container-padding) * -1);
    padding-right: var(--container-padding);
  }

  .club-directory__stats,
  .club-profile__facts,
  .club-card__meta {
    justify-content: flex-start;
    justify-items: start;
  }

  .club-card {
    gap: 0.65rem;
  }

  .club-card__body strong {
    white-space: normal;
  }

  .club-profile-athletes a,
  .club-profile-events a {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .club-profile-events small,
  .club-profile-events span {
    grid-column: 2;
  }

  .club-leadership-panel__head,
  .club-role-claim,
  .club-role-claim__actions {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .club-role-claim__actions .btn {
    width: 100%;
  }
}

/* Mobile navigation drawer: keep competition submenu stable on hover/focus. */
@media (max-width: 1024px) {
  .nav__links.open .nav__dropdown-menu {
    position: relative;
    inset: auto;
    left: auto;
    right: auto;
    top: auto;
    width: 100%;
    min-width: 0;
    margin: 0.25rem 0 0.65rem;
    padding: 0.35rem;
    box-sizing: border-box;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background:
      linear-gradient(180deg, rgba(13, 37, 89, 0.94), rgba(7, 18, 53, 0.96));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
    opacity: 1;
    visibility: visible;
    transform: none !important;
    transform-origin: center;
  }

  .nav__links.open .nav__dropdown:hover .nav__dropdown-menu,
  .nav__links.open .nav__dropdown:focus-within .nav__dropdown-menu {
    transform: none !important;
  }

  .nav__links.open .nav__dropdown-link {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 44px;
    padding: 0.62rem 0.8rem;
    box-sizing: border-box;
    border-radius: 10px;
    color: rgba(255, 255, 255, 0.82);
    transform: none !important;
  }

  .nav__links.open .nav__dropdown-link:hover,
  .nav__links.open .nav__dropdown-link:focus-visible {
    padding-left: 0.8rem;
    background: rgba(197, 164, 78, 0.12);
    color: var(--color-secondary);
    outline: none;
    transform: none !important;
  }
}

/* ---------- Media event library refresh ---------- */
#gallery.section {
  padding-top: clamp(1.4rem, 3vw, 2.6rem);
}

#gallery .section-header {
  margin-bottom: 1.35rem;
}

#gallery .section-header p {
  max-width: 660px;
  line-height: 1.45;
}

.media-library {
  display: grid;
  gap: 0.82rem;
}

.media-library__panel {
  display: grid;
  grid-template-columns: minmax(180px, 0.38fr) minmax(0, 1fr) auto;
  gap: 0.88rem;
  align-items: stretch;
  padding: 0.72rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 14px 34px rgba(7, 20, 50, 0.07);
}

.media-library__cover {
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 10;
  min-height: 168px;
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(7, 20, 50, 0.96), rgba(12, 34, 86, 0.92));
}

.media-library__cover::before {
  content: "SFE";
  color: rgba(255, 255, 255, 0.18);
  font-size: clamp(1.8rem, 5vw, 3rem);
  font-weight: 950;
  letter-spacing: 0.04em;
}

.media-library__cover img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.media-library__cover img[hidden] {
  display: none !important;
}

.media-library__cover img:not([hidden]) {
  position: absolute;
  inset: 0;
}

.media-library__cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 42%, rgba(7, 15, 43, 0.72));
}

.media-library__cover span {
  position: absolute;
  left: 0.72rem;
  bottom: 0.72rem;
  z-index: 1;
  display: inline-flex;
  padding: 0.36rem 0.58rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 900;
}

.media-library__summary {
  display: grid;
  align-content: center;
  gap: 0.28rem;
  min-width: 0;
  padding: 0.24rem 0.16rem;
}

.media-library__label {
  color: var(--color-secondary-dark);
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.media-library__summary h3 {
  color: var(--color-primary);
  font-size: clamp(1.45rem, 3vw, 2.4rem);
  line-height: 1.05;
}

.media-library__summary p {
  max-width: 620px;
  color: var(--color-text-secondary);
  font-size: 0.9rem;
  line-height: 1.4;
}

.media-library__event-link {
  justify-self: start;
  margin-top: 0.18rem;
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
}

.media-library__event-link::after {
  content: " ->";
  color: var(--color-secondary-dark);
}

.media-library__event-link:hover,
.media-library__event-link:focus-visible {
  color: var(--color-secondary-dark);
  outline: none;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.media-library__count {
  align-self: center;
  justify-self: end;
  min-width: 112px;
  padding: 0.7rem 0.8rem;
  border: 1px solid rgba(197, 164, 78, 0.26);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(255, 252, 244, 0.94), rgba(255, 255, 255, 0.96));
  color: var(--color-primary);
  font-size: 0.9rem;
  font-weight: 950;
  line-height: 1.16;
  text-align: center;
  text-wrap: balance;
}

.media-library__controls {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.7rem;
  padding: 0.72rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 8px 22px rgba(7, 20, 50, 0.04);
}

.media-library__controls-header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
}

.media-library__controls-header:empty {
  display: none;
}

.media-library__controls-copy {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.media-library__controls-copy strong {
  color: var(--color-primary);
  font-size: 0.98rem;
  font-weight: 900;
  line-height: 1.22;
}

.media-library__controls-note {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.4rem 0.64rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: rgba(248, 250, 255, 0.92);
  color: var(--color-text-secondary);
  font-size: 0.76rem;
  font-weight: 850;
}

.media-library__primary-controls {
  display: grid;
  gap: 0.66rem;
}

.media-library__control-group {
  display: grid;
  gap: 0.28rem;
}

.media-library__control-label,
.media-library-select span {
  color: var(--color-text-light);
  font-size: 0.58rem;
  font-weight: 950;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.media-library-select select,
.media-library__sort select {
  width: 100%;
  min-width: 0;
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, currentColor 50%),
    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position:
    calc(100% - 17px) 50%,
    calc(100% - 12px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

.media-library__control-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.media-library__control-row--series {
  gap: 0.58rem;
}

.media-library__control-row--editions {
  gap: 0.5rem;
}

.media-library__toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 160px;
  align-items: end;
  gap: 0.75rem;
  padding-top: 0.08rem;
  border-top: 1px solid rgba(9, 30, 82, 0.07);
}

.media-library__control-row--categories {
  min-width: 0;
}

.media-library-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  min-height: 34px;
  padding: 0.4rem 0.62rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 999px;
  background: #fff;
  color: var(--color-primary);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 900;
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}

.media-library-chip strong {
  font-size: inherit;
  font-weight: 900;
}

.media-library-chip--series {
  min-height: 38px;
  padding-inline: 0.8rem;
  border-color: rgba(9, 30, 82, 0.09);
  background: rgba(247, 249, 253, 0.9);
}

.media-library-chip--edition {
  justify-content: space-between;
  min-height: 40px;
  padding-inline: 0.78rem;
  min-width: 88px;
  background: rgba(255, 255, 255, 0.96);
}

.media-library-chip span {
  min-width: 1.5rem;
  padding: 0.14rem 0.38rem;
  border-radius: 999px;
  background: rgba(9, 30, 82, 0.08);
  color: inherit;
  font-size: 0.72rem;
  text-align: center;
}

.media-library-chip:hover,
.media-library-chip:focus-visible {
  border-color: rgba(197, 164, 78, 0.5);
  transform: translateY(-1px);
}

.media-library-chip.is-active,
.media-library-chip.active {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #fff;
}

.media-library-chip.is-active span,
.media-library-chip.active span {
  background: rgba(255, 255, 255, 0.16);
}

.media-library__sort {
  display: grid;
  gap: 0.28rem;
  flex: 0 0 auto;
  color: var(--color-text-secondary);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.media-library__sort select {
  min-height: 34px;
  padding: 0 1.9rem 0 0.75rem;
  border: 1px solid rgba(9, 30, 82, 0.12);
  border-radius: 12px;
  background-color: #fff;
  color: var(--color-primary);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 900;
}

.media-library-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.72rem;
}

.media-library-grid .gallery-item {
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(7, 20, 50, 0.07);
}

.media-library-grid .gallery-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 42px rgba(7, 20, 50, 0.14);
}

.media-library-grid .gallery-item--featured {
  grid-column: span 2;
  grid-row: span 2;
}

.media-library__empty {
  display: grid;
  gap: 0.22rem;
  padding: 1.2rem;
  border: 1px dashed rgba(9, 30, 82, 0.18);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--color-text-secondary);
  text-align: center;
}

.media-library__empty[hidden] {
  display: none;
}

.media-library__empty strong {
  color: var(--color-primary);
  font-weight: 950;
}

.media-library__empty span {
  font-size: 0.9rem;
  font-weight: 750;
}

.media-note {
  margin-top: 0.2rem;
  padding: 0.66rem 0.82rem;
  border-radius: 12px;
  text-align: left;
  font-size: 0.84rem;
  line-height: 1.42;
}

@media (max-width: 980px) {
  .media-library__panel {
    grid-template-columns: 160px minmax(0, 1fr);
  }

  .media-library__count {
    grid-column: 1 / -1;
    min-width: 0;
  }

  .media-library-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  #gallery.section {
    padding-top: 1.35rem;
  }

  #gallery .section-header {
    margin-bottom: 0.92rem;
  }

  #gallery .section-header h2 {
    font-size: clamp(1.62rem, 8vw, 2rem);
  }

  #gallery .section-header p {
    font-size: 0.92rem;
  }

  .media-library__panel {
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 0.68rem;
    padding: 0.58rem;
    align-items: center;
  }

  .media-library__cover {
    width: 96px;
    height: 84px;
    aspect-ratio: auto;
    min-height: 0;
  }

  .media-library__summary {
    gap: 0.22rem;
    padding: 0.08rem 0.1rem;
  }

  .media-library__summary h3 {
    font-size: clamp(1.12rem, 5.4vw, 1.42rem);
    line-height: 1.06;
  }

  .media-library__summary p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 0.78rem;
    line-height: 1.3;
  }

  .media-library__event-link {
    margin-top: 0;
    font-size: 0.66rem;
  }

  .media-library__count {
    grid-column: 1 / -1;
    justify-self: stretch;
    min-width: 0;
    padding: 0.54rem 0.7rem;
    border-radius: 12px;
    font-size: 0.9rem;
  }

  .media-library__controls {
    grid-template-columns: 1fr;
    gap: 0.56rem;
    margin-inline: 0;
    padding: 0.62rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 8px 22px rgba(7, 20, 50, 0.04);
  }

  .media-library__controls-header {
    display: grid;
    gap: 0.42rem;
    align-items: start;
  }

  .media-library__controls-copy strong {
    font-size: 0.9rem;
    line-height: 1.24;
  }

  .media-library__controls-note {
    justify-self: start;
    min-height: 30px;
    padding: 0.34rem 0.56rem;
    font-size: 0.72rem;
  }

  .media-library__control-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 0;
    scrollbar-width: none;
  }

  .media-library__control-row::-webkit-scrollbar {
    display: none;
  }

  .media-library-chip {
    flex: 0 0 auto;
    min-height: 32px;
    padding: 0.38rem 0.58rem;
    font-size: 0.74rem;
  }

  .media-library-chip--series {
    min-height: 36px;
    padding-inline: 0.72rem;
  }

  .media-library-chip--edition {
    min-height: 36px;
    min-width: 78px;
    padding-inline: 0.66rem;
  }

  .media-library__control-row--categories .gallery-filter {
    width: auto;
  }

  .media-library__toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem;
    align-items: end;
    padding-top: 0.18rem;
  }

  .media-library__sort {
    display: grid;
    gap: 0.2rem;
    justify-content: stretch;
    width: 104px;
    min-width: 104px;
  }

  .media-library__sort span {
    font-size: 0.62rem;
    line-height: 1;
  }

  .media-library__sort select {
    min-height: 36px;
    padding: 0 1.72rem 0 0.7rem;
    border: 1px solid rgba(9, 30, 82, 0.12);
    border-radius: 12px;
    background-color: #fff;
    color: var(--color-primary);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 900;
  }

  .media-library__control-row--categories {
    align-self: end;
  }

  .media-library-grid.gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.56rem;
  }

  .media-library-grid .gallery-item {
    min-height: 168px;
    border-radius: 12px;
  }

  .media-library-grid .gallery-item--featured {
    grid-column: 1 / -1;
    grid-row: span 1;
    min-height: 236px;
  }

  .media-library-grid .gallery-item__overlay {
    padding: 0.66rem;
  }

  .media-library-grid .gallery-item__overlay span {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: 0.78rem;
    line-height: 1.16;
  }

  .media-library-grid .gallery-item__meta {
    display: none;
  }
}

@media (max-width: 430px) {
  .media-library__panel {
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 0.58rem;
  }

  .media-library__cover {
    width: 84px;
    height: 76px;
  }

  .media-library__toolbar {
    grid-template-columns: 1fr;
  }

  .media-library__controls-copy strong {
    font-size: 0.84rem;
  }

  .media-library__sort {
    width: 100%;
    min-width: 0;
  }

  .media-library__summary p {
    font-size: 0.74rem;
  }

  .media-library-grid.gallery-grid {
    gap: 0.5rem;
  }
}

/* Final media navigation pass: compact hub rail instead of heavy cards. */
.media-hub-nav {
  display: flex;
  gap: 0.4rem;
  align-items: stretch;
  padding: 0.32rem;
  border: 1px solid rgba(9, 30, 82, 0.06);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 10px 24px rgba(7, 20, 50, 0.05);
}

.media-hub-nav__card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    "number title"
    "number text";
  column-gap: 0.64rem;
  row-gap: 0.1rem;
  flex: 1 1 0;
  min-width: 0;
  min-height: 54px;
  align-content: center;
  padding: 0.46rem 0.56rem;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  box-shadow: none;
  transition: border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast);
}

.media-hub-nav__card span {
  grid-area: number;
  display: inline-grid;
  place-items: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background: rgba(197, 164, 78, 0.11);
  color: var(--color-secondary-dark);
  font-size: 0.64rem;
  font-weight: 950;
}

.media-hub-nav__card:hover,
.media-hub-nav__card:focus-visible {
  border-color: rgba(9, 30, 82, 0.08);
  background: rgba(255, 255, 255, 0.92);
  transform: translateY(-1px);
}

.media-hub-nav__card strong {
  grid-area: title;
  overflow: hidden;
  color: var(--color-primary);
  font-size: 0.82rem;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.media-hub-nav__card small {
  grid-area: text;
  overflow: hidden;
  color: var(--color-text-secondary);
  font-size: 0.64rem;
  line-height: 1.18;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .media-hub-nav {
    display: flex;
    margin-inline: calc(var(--space-sm) * -1);
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 0.5rem 0.12rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    scrollbar-width: none;
  }

  .media-hub-nav::-webkit-scrollbar {
    display: none;
  }

  .media-hub-nav__card {
    grid-template-areas:
      "number title"
      "number text";
    grid-template-columns: auto minmax(0, 1fr);
    flex: 0 0 170px;
    min-height: 52px;
    padding: 0.48rem 0.56rem;
    border: 1px solid rgba(9, 30, 82, 0.08);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.94);
  }

  .media-hub-nav__card span {
    width: 1.45rem;
    height: 1.45rem;
    font-size: 0.58rem;
  }

  .media-hub-nav__card strong {
    font-size: 0.78rem;
    line-height: 1.08;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .media-hub-nav__card small {
    display: none;
  }
}

/* Media press area: dense, readable resource surface. */
#press .media-resource-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 1040px;
  gap: 0.78rem;
}

#press .doc-item {
  min-height: 82px;
  align-items: center;
  padding: 0.9rem;
  border-radius: 16px;
}

#press .media-placeholder-panel {
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  justify-items: start;
  max-width: 1040px;
  margin: 0.78rem auto 0;
  padding: 0.92rem 1rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255,255,255,0.98), rgba(247,249,252,0.94));
  text-align: left;
}

#press .media-placeholder-panel__icon {
  width: 44px;
  height: 44px;
}

#press .media-placeholder-panel h3,
#press .media-placeholder-panel p,
#press .media-support-policy {
  margin: 0;
}

#press .media-placeholder-panel h3 {
  font-size: 1rem;
  line-height: 1.15;
}

#press .media-placeholder-panel p {
  font-size: 0.84rem;
  line-height: 1.42;
}

#press .media-placeholder-panel__body {
  display: grid;
  gap: 0.24rem;
  min-width: 0;
}

#press .media-placeholder-panel .btn {
  white-space: nowrap;
}

#press .media-support-policy {
  font-size: 0.74rem;
}

#logos .media-logo-grid .btn {
  min-height: 36px;
  padding-inline: 0.72rem;
}

@media (max-width: 820px) {
  #press .media-resource-list {
    grid-template-columns: 1fr;
  }

  #press .media-placeholder-panel {
    grid-template-columns: 1fr;
    justify-items: start;
  }
}

@media (max-width: 760px) {
  .media-logo-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 980px) {
  .portal-auth-layout__grid,
  .portal-auth-layout__grid--wide,
  .portal-grid,
  .portal-grid--admin,
  .portal-grid--athlete {
    grid-template-columns: 1fr;
  }

  .portal-auth-copy h1 {
    max-width: 14ch;
    font-size: 2.55rem;
  }

  .portal-auth-layout {
    padding-top: calc(var(--nav-height) + var(--space-2xl));
  }

  .portal-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .portal-header__actions {
    justify-content: flex-start;
  }

  .portal-entry-strip__inner {
    align-items: flex-start;
    flex-direction: column;
  }

  .portal-entry-strip__actions {
    justify-content: flex-start;
  }

  .portal-panel__actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .portal-auth-layout {
    min-height: auto;
    padding-bottom: var(--space-2xl);
  }

  .portal-auth-copy h1 {
    max-width: none;
    font-size: 2.08rem;
    line-height: 1.05;
  }

  .portal-auth-copy p {
    font-size: 0.95rem;
  }

  .portal-auth-points {
    display: grid;
    grid-template-columns: 1fr;
  }

  .portal-auth-support-card__steps,
  .portal-auth-support-card__links {
    display: grid;
    grid-template-columns: 1fr;
  }

  .portal-form-grid,
  .portal-metric-row,
  .portal-task-strip,
  .portal-module-grid,
  .portal-next-steps,
  .portal-gate__stats,
  .portal-preview-spotlight__meta,
  .portal-preview-boundaries__grid,
  .portal-preview-grid,
  .portal-preview-board,
  .portal-preview-metrics,
  .portal-preview-modules,
  .portal-preview-timeline,
  .portal-role-matrix {
    grid-template-columns: 1fr;
  }

  .portal-preview-list__item {
    grid-template-columns: 1fr;
  }

  .portal-access-card {
    grid-template-columns: 1fr;
  }

  .portal-access-card__action {
    width: 100%;
  }

  .portal-auth-card__actions,
  .portal-review-card__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .portal-review-card {
    grid-template-columns: 1fr;
  }

  .portal-role-tabs {
    margin-inline: calc(-1 * var(--space-md));
    padding-inline: var(--space-md);
  }

  .portal-entry-strip {
    padding-top: var(--space-md);
  }

  .portal-entry-strip__inner {
    border-radius: var(--radius-lg);
  }

  .portal-entry-strip__actions,
  .portal-entry-strip__actions .btn {
    width: 100%;
  }
}

/* ---------- News Article + First Viewport Refinement ---------- */
@media (max-width: 1100px) {
  .news-article__hero,
  .news-article__layout {
    grid-template-columns: 1fr;
  }

  .news-article__media {
    min-height: 300px;
  }
}

@media (max-width: 768px) {
  .hero--home {
    min-height: auto;
  }

  .hero--home .hero__content {
    padding-top: calc(var(--nav-height-scrolled) + 1.35rem);
    padding-bottom: 2.35rem;
    gap: 1.05rem;
  }

  .hero--home .hero__copy {
    text-align: left;
    width: 100%;
  }

  .hero--home .hero__eyebrow {
    margin-bottom: 0.55rem;
  }

  .hero--home .hero__title {
    max-width: 10.5ch;
    font-size: clamp(2.55rem, 10.2vw, 3.55rem);
    line-height: 0.96;
    margin-bottom: 0.75rem;
  }

  .hero--home .hero__subtitle {
    max-width: 33rem;
    margin-bottom: 1rem;
  }

  .hero--home .hero__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .hero--home .hero__media {
    width: 100%;
    min-height: 250px;
    max-height: 330px;
    border-radius: 1.2rem;
  }

  .hero--home .hero__portrait-showcase {
    grid-template-columns: repeat(3, 1fr);
    padding: 0.58rem;
  }

  .hero--home .hero__portrait-card {
    min-height: 6.75rem;
  }

  .page-hero {
    text-align: left;
  }

  .page-hero__content {
    text-align: left;
  }

  .page-hero__actions {
    justify-content: flex-start;
  }

  .page-hero__actions .btn {
    width: 100%;
    justify-content: center;
  }

  .page-hero p {
    margin-left: 0;
  }

  .news-hero__signals,
  .contact-hero__signals,
  .documents-hero__signals,
  .competitions-hero__signals,
  .media-hero__signals {
    justify-content: flex-start;
  }

  .news-lead__media {
    min-height: 190px;
  }

  .news-lead__content {
    padding: 1.15rem;
  }

  .news-lead__title {
    font-size: clamp(1.6rem, 8vw, 2.25rem);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .news-lead__excerpt {
    font-size: 0.96rem;
    line-height: 1.55;
  }

  .news-lead__tag {
    display: none;
  }

  .news-lead__copy {
    display: none;
  }

  .news-article-shell {
    padding-top: calc(var(--nav-height-scrolled) + 1.3rem);
  }

  .news-article__hero,
  .news-article__content {
    padding: 1rem;
    border-radius: 1rem;
  }

  .news-article__intro h1 {
    font-size: clamp(2rem, 10vw, 3rem);
    line-height: 1.02;
  }

  .news-article__media {
    min-height: 230px;
    border-radius: 0.9rem;
  }

  .news-article__meta {
    display: grid;
    grid-template-columns: 1fr;
  }

  .news-card__footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.45rem;
  }

  .news-card__body {
    padding: 1rem;
  }

  .news-card__title {
    -webkit-line-clamp: 3;
  }
}

@media (max-width: 480px) {
  .hero--home .hero__content {
    padding-inline: 1rem;
  }

  .hero--home .hero__title {
    max-width: 9.8ch;
    font-size: clamp(2.35rem, 11.4vw, 3.05rem);
  }

  .hero--home .hero__media {
    min-height: 220px;
  }

  .hero--home .hero__portrait-card {
    min-height: 5.7rem;
  }

  .news-article__panel,
  .news-article__notice {
    border-radius: 0.9rem;
  }

  .news-lead__media {
    min-height: 165px;
  }

  .news-lead__meta {
    gap: 0.5rem;
  }

  .news-lead__read,
  .news-lead__tag {
    min-height: 32px;
    padding: 0.4rem 0.68rem;
    font-size: 0.68rem;
  }
}

/* ---------- Premium Portal Refinement ---------- */
.portal-auth-layout {
  min-height: 100svh;
  background:
    linear-gradient(180deg, rgba(5, 12, 34, 0.97), rgba(9, 25, 63, 0.94)),
    url('../assets/media/gallery/ec2025/ec2025-10.jpg') center / cover;
}

.portal-auth-layout .container {
  max-width: 1160px;
}

.portal-auth-layout__grid,
.portal-auth-layout__grid--wide {
  grid-template-columns: minmax(0, 0.76fr) minmax(360px, 0.58fr);
  gap: clamp(2rem, 5vw, 5rem);
}

.portal-auth-copy {
  gap: 1rem;
}

.portal-auth-copy h1 {
  max-width: 11ch;
  font-size: clamp(3rem, 6vw, 5.8rem);
  font-weight: 950;
  letter-spacing: 0;
}

.portal-auth-copy p {
  max-width: 560px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.04rem;
}

.portal-auth-points,
.portal-auth-support {
  max-width: 560px;
}

.portal-auth-points span,
.portal-auth-support-card__steps span,
.portal-auth-support-card__links a {
  border-color: rgba(255, 255, 255, 0.11);
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(18px);
}

.portal-auth-support {
  margin-top: 0.3rem;
}

.portal-auth-support-card {
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.075);
  box-shadow: none;
}

.portal-auth-card,
.portal-setup-panel,
.portal-gate,
.portal-header,
.portal-panel {
  border-color: rgba(10, 25, 54, 0.08);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 18px 50px rgba(4, 18, 46, 0.1);
}

.portal-auth-card,
.portal-setup-panel,
.portal-gate {
  gap: 1rem;
  padding: clamp(1.15rem, 2.6vw, 1.75rem);
}

.portal-auth-card--quiet {
  padding: 0.65rem;
  background: rgba(255, 255, 255, 0.84);
}

.portal-auth-card--hero {
  gap: 1.15rem;
}

.portal-auth-choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.portal-auth-state-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.portal-auth-state-strip article {
  display: grid;
  gap: 0.22rem;
  padding: 0.95rem;
  border: 1px solid rgba(10, 25, 54, 0.08);
  border-radius: 16px;
  background: rgba(247, 249, 252, 0.86);
}

.portal-auth-state-strip strong {
  color: var(--color-primary);
  font-size: 0.85rem;
  font-weight: 900;
  line-height: 1.2;
}

.portal-auth-state-strip span {
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  line-height: 1.42;
}

.portal-auth-card--routes {
  padding: 1rem;
}

.portal-auth-routes {
  display: grid;
  gap: 0.7rem;
}

.portal-auth-route-card {
  display: grid;
  gap: 0.35rem;
  padding: 1rem;
  border: 1px solid rgba(10, 25, 54, 0.08);
  border-radius: 16px;
  background: rgba(247, 249, 252, 0.84);
}

.portal-auth-route-card strong {
  color: var(--color-primary);
  font-size: 0.95rem;
  font-weight: 900;
}

.portal-auth-route-card p {
  color: var(--color-text-secondary);
  font-size: 0.84rem;
  line-height: 1.48;
}

.portal-auth-route-card a,
.portal-auth-route-card span:last-child {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  width: fit-content;
  padding: 0.45rem 0.72rem;
  border-radius: 999px;
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.portal-auth-route-card a:hover,
.portal-auth-route-card a:focus-visible {
  background: rgba(197, 164, 78, 0.16);
  color: var(--color-primary);
}

.portal-auth-card--internal {
  gap: 0.8rem;
  border-style: dashed;
  background: rgba(249, 250, 252, 0.82);
  box-shadow: none;
}

.portal-auth-disclosure {
  display: grid;
  gap: 0.45rem;
}

.portal-auth-disclosure summary {
  color: var(--color-primary);
  font-weight: 950;
  cursor: pointer;
}

.portal-auth-disclosure p {
  margin: 0;
  font-size: 0.84rem;
}

.portal-auth-hint {
  padding: 0.78rem 0.9rem;
  border-radius: 14px;
  background: rgba(9, 30, 82, 0.045);
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  font-weight: 760;
  line-height: 1.45;
}

.portal-auth-notice {
  padding: 0.85rem 0.95rem;
  border: 1px solid rgba(197, 164, 78, 0.22);
  border-radius: 14px;
  background: rgba(197, 164, 78, 0.08);
  color: var(--color-primary);
  font-size: 0.84rem;
  font-weight: 760;
  line-height: 1.5;
}

.portal-auth-notice--quiet {
  border-color: rgba(9, 30, 82, 0.08);
  background: rgba(9, 30, 82, 0.045);
  color: var(--color-text-secondary);
}

.portal-auth-card h2,
.portal-setup-panel h2,
.portal-gate h2,
.portal-header h2,
.portal-panel h3 {
  font-size: clamp(1.45rem, 2.4vw, 2.25rem);
  font-weight: 950;
  letter-spacing: 0;
}

.portal-auth-card p,
.portal-setup-panel p,
.portal-gate p,
.portal-header p,
.portal-panel p {
  margin: 0;
  line-height: 1.58;
}

.portal-auth-card label,
.portal-mini-form label {
  gap: 0.5rem;
  font-size: 0.8rem;
  letter-spacing: 0.01em;
}

.portal-auth-card input,
.portal-auth-card textarea,
.portal-auth-card select,
.portal-mini-form input,
.portal-mini-form textarea,
.portal-mini-form select {
  min-height: 52px;
  border-color: rgba(10, 25, 54, 0.1);
  border-radius: 14px;
  background: rgba(247, 249, 252, 0.86);
  font-size: 0.95rem;
  font-weight: 760;
  transition: border-color var(--transition-fast), background var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);
}

.portal-auth-card input:hover,
.portal-auth-card textarea:hover,
.portal-auth-card select:hover,
.portal-mini-form input:hover,
.portal-mini-form textarea:hover,
.portal-mini-form select:hover {
  background: var(--color-white);
}

.portal-auth-card input:focus,
.portal-auth-card textarea:focus,
.portal-auth-card select:focus,
.portal-mini-form input:focus,
.portal-mini-form textarea:focus,
.portal-mini-form select:focus {
  border-color: rgba(197, 164, 78, 0.72);
  box-shadow: 0 0 0 5px rgba(197, 164, 78, 0.14);
  transform: translateY(-1px);
}

.portal-auth-card .btn,
.portal-gate .btn,
.portal-header .btn,
.portal-panel .btn {
  min-height: 46px;
  border-radius: 999px;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
}

.portal-access-options {
  gap: 0.5rem;
}

.portal-access-card {
  padding: 0.95rem;
  border-radius: 16px;
  background: rgba(247, 249, 252, 0.82);
}

.portal-access-card strong {
  font-size: 0.96rem;
}

.portal-access-card p {
  display: none;
}

.portal-access-card__action {
  min-width: 74px;
  min-height: 34px;
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: 0.7rem;
}

.portal-access-card:hover .portal-access-card__action,
.portal-access-card:focus-visible .portal-access-card__action {
  background: var(--color-primary);
  color: var(--color-white);
}

.portal-access-card__meta {
  margin-top: 0.35rem;
  font-size: 0.68rem;
}

.portal-next-steps article,
.portal-rule-list li,
.portal-empty-state,
.portal-metric-row article,
.portal-module-grid article,
.portal-compact-list > a,
.portal-compact-list > span,
.portal-gate__stats article {
  border-radius: 16px;
  background: rgba(247, 249, 252, 0.82);
}

.portal-next-steps article {
  padding: 0.95rem;
}

.portal-rule-list li {
  padding: 0.7rem 0.78rem;
}

.portal-rule-list li::before {
  background: var(--color-primary);
  opacity: 0.5;
}

.portal-section {
  background:
    linear-gradient(180deg, rgba(246, 248, 252, 0.96), rgba(255, 255, 255, 1));
}

.portal-shell {
  gap: 1rem;
}

.portal-header {
  padding: clamp(1rem, 2vw, 1.35rem);
  box-shadow: 0 14px 40px rgba(4, 18, 46, 0.07);
}

.portal-header--admin {
  align-items: center;
  padding: 1rem;
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(4, 18, 46, 0.065);
}

.portal-header h2 {
  font-size: clamp(1.35rem, 2vw, 2rem);
}

.portal-header--admin h2 {
  font-size: clamp(1.25rem, 1.8vw, 1.7rem);
}

.portal-header--admin p {
  font-size: 0.9rem;
}

.portal-status {
  min-height: 34px;
  border-radius: 999px;
}

.portal-status--role {
  border-color: rgba(9, 30, 82, 0.1);
  background: rgba(9, 30, 82, 0.055);
}

.portal-role-tabs {
  gap: 0.55rem;
}

.portal-role-tabs span {
  min-height: 42px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
}

.portal-role-tabs span.is-active {
  background: var(--color-primary);
  box-shadow: 0 12px 28px rgba(9, 30, 82, 0.16);
}

.portal-grid,
.portal-grid--admin,
.portal-grid--athlete {
  gap: 1rem;
}

.portal-panel {
  gap: 1rem;
  padding: clamp(1rem, 2vw, 1.35rem);
  box-shadow: 0 12px 34px rgba(4, 18, 46, 0.07);
}

.portal-panel--featured {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(248, 250, 253, 0.98));
}

.portal-metric-row {
  gap: 0.55rem;
}

.portal-metric-row article {
  padding: 0.9rem;
}

.portal-metric-row strong {
  font-size: clamp(1.15rem, 2vw, 1.7rem);
  overflow-wrap: anywhere;
}

.portal-review-card,
.portal-preview-list__item {
  border-radius: 16px;
}

.profile-form__status {
  min-height: 1.25rem;
  color: var(--color-text-secondary);
  font-size: 0.84rem;
  font-weight: 800;
}

.admin-os {
  display: grid;
  gap: 1rem;
}

.admin-os-hero,
.admin-os-panel,
.admin-os-nav {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 16px 44px rgba(4, 18, 46, 0.07);
}

.admin-os-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.78fr);
  gap: clamp(1rem, 2.2vw, 1.7rem);
  align-items: end;
  padding: clamp(1.1rem, 2.6vw, 2rem);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(246, 249, 253, 0.96)),
    radial-gradient(circle at 100% 0%, rgba(197, 164, 78, 0.12), transparent 35%);
}

.admin-os-hero__copy {
  display: grid;
  gap: 0.65rem;
}

.admin-os-hero h3,
.admin-os-panel h3 {
  margin: 0;
  color: var(--color-primary);
  font-size: clamp(1.45rem, 2.4vw, 2.3rem);
  line-height: 1.06;
}

.admin-os-hero p {
  max-width: 62ch;
  margin: 0;
  color: var(--color-text-secondary);
  font-size: clamp(0.98rem, 1.35vw, 1.08rem);
  line-height: 1.62;
}

.admin-os-kpis {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.admin-os-kpis article,
.admin-work-item,
.admin-audit-list article,
.admin-module-grid article {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: rgba(248, 250, 253, 0.84);
}

.admin-os-kpis article {
  display: grid;
  gap: 0.24rem;
  padding: 0.9rem;
}

.admin-os-kpis strong {
  color: var(--color-primary);
  font-size: clamp(1.35rem, 3vw, 2rem);
  line-height: 1;
}

.admin-os-kpis span,
.admin-os-chip,
.admin-module-grid article > span {
  color: var(--color-text-light);
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.admin-os-nav {
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  padding: 0.45rem;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  position: sticky;
  top: calc(var(--nav-height-scrolled) + 0.65rem);
  z-index: 12;
  backdrop-filter: blur(16px);
}

.admin-os-nav::-webkit-scrollbar {
  display: none;
}

.admin-os-nav a {
  flex: 0 0 auto;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 0.68rem 0.95rem;
  color: var(--color-primary);
  font-size: 0.82rem;
  font-weight: 950;
  text-decoration: none;
  transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.admin-os-nav a:hover,
.admin-os-nav a:focus-visible {
  background: var(--color-primary);
  color: var(--color-white);
  outline: none;
  transform: translateY(-1px);
}

.admin-os-panel {
  display: grid;
  gap: 1rem;
  padding: clamp(1rem, 2.1vw, 1.45rem);
}

.admin-os-panel--wide {
  grid-column: 1 / -1;
}

.admin-os-panel__header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

.admin-os-panel__header > div {
  display: grid;
  gap: 0.35rem;
}

.admin-os-panel__header h3 {
  font-size: clamp(1.22rem, 2vw, 1.75rem);
}

.admin-os-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border: 1px solid rgba(197, 164, 78, 0.28);
  border-radius: 999px;
  padding: 0.45rem 0.7rem;
  background: rgba(197, 164, 78, 0.08);
  color: var(--color-primary);
  white-space: nowrap;
}

.admin-work-queue,
.admin-audit-list,
.admin-os-subqueue,
.admin-module-grid {
  display: grid;
  gap: 0.65rem;
}

.admin-claim-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.admin-claim-summary article {
  display: grid;
  gap: 0.2rem;
  padding: 0.9rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: rgba(248, 250, 253, 0.84);
}

.admin-claim-summary strong {
  color: var(--color-primary);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  line-height: 1;
}

.admin-claim-summary span {
  color: var(--color-text-secondary);
  font-size: 0.8rem;
  font-weight: 850;
  line-height: 1.35;
}

.admin-signal-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.65rem;
}

.admin-signal {
  display: grid;
  gap: 0.2rem;
  padding: 0.9rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: rgba(248, 250, 253, 0.84);
}

.admin-signal strong {
  color: var(--color-primary);
  font-size: clamp(1.15rem, 2.2vw, 1.55rem);
  line-height: 1;
}

.admin-signal span {
  color: var(--color-text-secondary);
  font-size: 0.8rem;
  font-weight: 850;
  line-height: 1.35;
}

.admin-signal--urgent {
  border-color: rgba(197, 164, 78, 0.28);
  background: rgba(197, 164, 78, 0.08);
}

.admin-signal--action {
  border-color: rgba(41, 111, 186, 0.22);
  background: rgba(41, 111, 186, 0.06);
}

.admin-signal--waiting,
.admin-signal--watch {
  border-color: rgba(9, 30, 82, 0.1);
}

.admin-work-queue-stack {
  display: grid;
  gap: 0.85rem;
}

.admin-work-group {
  display: grid;
  gap: 0.65rem;
}

.admin-work-group__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.admin-work-group__header strong {
  color: var(--color-primary);
  font-size: 0.94rem;
}

.admin-work-group__header span {
  color: var(--color-text-light);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-panel-intro {
  display: grid;
  gap: 0.55rem;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(248, 250, 253, 0.88));
}

.admin-panel-intro p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 0.85rem;
  line-height: 1.52;
}

.admin-panel-intro__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.admin-panel-intro__tags span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.36rem 0.62rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  color: var(--color-primary);
  font-size: 0.69rem;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.admin-work-queue {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-work-queue--secondary .admin-work-item em {
  background: rgba(9, 30, 82, 0.06);
}

.admin-work-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem;
  color: inherit;
  text-decoration: none;
}

.admin-work-item strong,
.admin-audit-list strong,
.admin-module-grid strong,
.admin-os-subqueue > strong {
  color: var(--color-primary);
  font-size: 0.98rem;
}

.admin-work-item span,
.admin-audit-list span,
.admin-module-grid p {
  display: block;
  margin: 0.2rem 0 0;
  color: var(--color-text-secondary);
  font-size: 0.84rem;
  line-height: 1.42;
}

.admin-work-item em {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 0.42rem 0.62rem;
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 950;
  white-space: nowrap;
}

a.admin-work-item:hover,
a.admin-work-item:focus-visible {
  border-color: rgba(197, 164, 78, 0.38);
  background: var(--color-white);
  outline: none;
  transform: translateY(-1px);
}

.admin-os-calm-state {
  margin-top: 0.85rem;
}

.admin-role-form {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 20px;
  padding: 1rem;
  background: rgba(248, 250, 253, 0.62);
}

.admin-role-form__intro {
  display: grid;
  gap: 0.65rem;
}

.admin-role-form__signals {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.admin-role-form__signals span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.4rem 0.66rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
}

.admin-role-form__helper {
  margin: 0;
  padding: 0.78rem 0.85rem;
  border-radius: 16px;
  background: rgba(9, 30, 82, 0.045);
  color: var(--color-text-secondary);
  font-size: 0.82rem;
  font-weight: 760;
  line-height: 1.5;
}

.portal-review-card {
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.72fr) auto;
  align-items: stretch;
}

.portal-review-card__main {
  display: grid;
  gap: 0.4rem;
}

.portal-review-card__topline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.portal-review-card__badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.32rem 0.58rem;
  border-radius: 999px;
  background: rgba(197, 164, 78, 0.12);
  color: var(--color-primary);
  font-size: 0.68rem;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-review-card__badge--soft {
  background: rgba(9, 30, 82, 0.07);
}

.portal-review-card__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  margin-top: 0.25rem;
}

.portal-review-card__facts span {
  display: grid;
  gap: 0.12rem;
  padding: 0.6rem 0.68rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(248, 250, 253, 0.84);
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  line-height: 1.35;
}

.portal-review-card__facts strong {
  color: var(--color-text-light);
  font-size: 0.67rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-review-card small {
  display: block;
  margin-top: 0.24rem;
  color: var(--color-text-light);
  font-size: 0.78rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.portal-review-card__note {
  display: grid;
  gap: 0.35rem;
  align-content: start;
  margin: 0;
}

.portal-review-card__note span {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 950;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.portal-review-card__note small {
  display: block;
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  line-height: 1.45;
}

.portal-review-card__note textarea {
  min-height: 78px;
  resize: vertical;
}

.portal-review-card__note--info {
  padding: 0.78rem 0.82rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(248, 250, 253, 0.72);
}

.portal-review-card__note em,
.admin-os-note {
  color: var(--color-text-secondary);
  font-size: 0.8rem;
  font-style: normal;
  font-weight: 800;
}

.admin-audit-list article {
  display: grid;
  gap: 0.45rem;
  padding: 0.95rem;
}

.admin-audit-list small {
  color: var(--color-text-light);
  font-size: 0.75rem;
  font-weight: 800;
  line-height: 1.35;
}

.admin-audit-list p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 0.86rem;
  line-height: 1.45;
}

.admin-user-section {
  display: grid;
  gap: 0.85rem;
}

.admin-user-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

.admin-user-stats article,
.admin-user-card {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: rgba(248, 250, 253, 0.84);
}

.admin-user-stats article {
  display: grid;
  gap: 0.2rem;
  padding: 0.9rem;
}

.admin-user-stats strong {
  color: var(--color-primary);
  font-size: clamp(1.15rem, 2vw, 1.55rem);
  line-height: 1;
}

.admin-user-stats span {
  color: var(--color-text-secondary);
  font-size: 0.8rem;
  font-weight: 850;
  line-height: 1.35;
}

.admin-user-card {
  display: grid;
  gap: 0.45rem;
  padding: 0.95rem;
}

.admin-user-card__roles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.admin-user-card__role {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.36rem 0.6rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.admin-user-card__role--active {
  border: 1px solid rgba(9, 30, 82, 0.08);
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
}

.admin-user-card__role--pending {
  border: 1px solid rgba(197, 164, 78, 0.24);
  background: rgba(197, 164, 78, 0.12);
  color: var(--color-primary);
}

.admin-user-card__role--muted {
  border: 1px solid rgba(9, 30, 82, 0.06);
  background: rgba(248, 250, 253, 0.88);
  color: var(--color-text-secondary);
}

.admin-user-card__head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.85rem;
}

.admin-user-card__head strong {
  color: var(--color-primary);
  font-size: 0.98rem;
}

.admin-user-card__head span {
  display: block;
  margin-top: 0.18rem;
  color: var(--color-text-light);
  font-size: 0.76rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.admin-user-card__head em {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 0.42rem 0.62rem;
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 950;
  white-space: nowrap;
}

.admin-user-card p {
  margin: 0;
  color: var(--color-text-secondary);
  font-size: 0.84rem;
  line-height: 1.45;
}

.admin-module-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-module-grid article {
  display: grid;
  gap: 0.35rem;
  align-content: start;
  padding: 1rem;
}

@media (max-width: 980px) {
  .portal-auth-layout__grid,
  .portal-auth-layout__grid--wide {
    grid-template-columns: 1fr;
  }

  .admin-os-hero,
  .admin-claim-summary,
  .admin-signal-grid,
  .admin-user-stats,
  .admin-work-queue,
  .admin-module-grid {
    grid-template-columns: 1fr;
  }

  .portal-review-card {
    grid-template-columns: 1fr;
  }

  .portal-review-card__facts {
    grid-template-columns: 1fr;
  }

  .portal-claim-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portal-auth-layout__grid,
  .portal-auth-layout__grid--wide {
    gap: 1.5rem;
  }

  .portal-auth-copy {
    max-width: 620px;
  }

  .portal-auth-copy h1 {
    max-width: 12ch;
  }

  .portal-auth-support {
    display: none;
  }
}

@media (max-width: 640px) {
  .page-hero--portal {
    min-height: 235px;
  }

  .page-hero--portal .page-hero__content {
    padding-top: calc(var(--nav-height-scrolled) + 1.2rem);
    padding-bottom: 1.65rem;
  }

  .page-hero--portal h1 {
    font-size: clamp(2.15rem, 10vw, 3.25rem);
  }

  .page-hero--portal p {
    font-size: 0.94rem;
    line-height: 1.5;
  }

  .portal-auth-layout {
    padding-top: calc(var(--nav-height-scrolled) + 1rem);
    background-position: center top;
  }

  #portal-login,
  #portal-register {
    order: -1;
  }

  .portal-auth-copy {
    gap: 0.9rem;
  }

  .portal-auth-copy h1 {
    font-size: clamp(2.35rem, 13vw, 3.3rem);
    line-height: 0.98;
  }

  .portal-auth-copy p {
    font-size: 0.95rem;
    line-height: 1.58;
  }

  .portal-auth-card,
  .portal-setup-panel,
  .portal-gate,
  .portal-header,
  .portal-panel {
    border-radius: 18px;
  }

  .portal-auth-card__actions .btn,
  .portal-entry-strip__actions .btn {
    width: 100%;
  }

  .portal-auth-state-strip {
    grid-template-columns: 1fr;
  }

  .portal-auth-choice-row {
    flex-direction: column;
  }

  .portal-auth-choice-row .btn {
    width: 100%;
  }

  .portal-access-card {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.65rem;
  }

  .portal-access-card__action {
    width: auto;
  }

  .portal-mini-form__grid {
    grid-template-columns: 1fr;
  }

  .portal-header {
    gap: 0.9rem;
  }

  .portal-claim-item__head {
    flex-direction: column;
  }

  .portal-header--admin {
    padding: 0.9rem;
  }

  .portal-header--admin h2 {
    font-size: 1.22rem;
  }

  .portal-header--admin p {
    overflow-wrap: anywhere;
  }

  .portal-header__actions {
    width: 100%;
  }

  .portal-header__actions .btn {
    flex: 1 1 auto;
  }

  .portal-role-tabs {
    scrollbar-width: none;
  }

  .portal-role-tabs::-webkit-scrollbar {
    display: none;
  }

  .portal-panel {
    padding: 1rem;
  }

  .portal-claim-summary,
  .portal-task-strip {
    grid-template-columns: 1fr;
  }

  .admin-os-hero,
  .admin-os-panel {
    border-radius: 18px;
  }

  .admin-os-hero {
    gap: 0.85rem;
    padding: 1rem;
  }

  .admin-os-hero h3 {
    font-size: 1.45rem;
  }

  .admin-os-hero p {
    font-size: 0.92rem;
    line-height: 1.5;
  }

  .admin-os-panel__header {
    align-items: stretch;
  }

  .admin-os-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-os-kpis article {
    padding: 0.72rem;
  }

  .admin-os-kpis strong {
    font-size: 1.35rem;
  }

  .admin-os-kpis span {
    font-size: 0.62rem;
  }

  .admin-os-nav {
    top: 0.55rem;
    margin-inline: -0.35rem;
    border-radius: 999px;
  }

  .admin-work-item {
    align-items: flex-start;
  }

  .admin-work-item em {
    white-space: normal;
    text-align: right;
  }

  .portal-review-card__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .portal-review-card__actions .btn {
    width: 100%;
  }
}

/* ---------- SFE Slim Button System ---------- */
.btn {
  min-height: 38px;
  justify-content: center;
  padding: 0.62rem 0.92rem;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 0.73rem;
  font-weight: 880;
  letter-spacing: 0.05em;
  line-height: 1;
  text-transform: uppercase;
  box-shadow: none;
  transition:
    transform var(--transition-fast),
    background-color var(--transition-fast),
    border-color var(--transition-fast),
    color var(--transition-fast),
    box-shadow var(--transition-fast);
}

.btn:hover {
  transform: translateY(-1px);
}

.btn svg {
  width: 0.82rem;
  height: 0.82rem;
  flex: 0 0 auto;
}

.btn--primary {
  border-color: #11265f;
  background: #11265f;
  color: var(--color-white);
  box-shadow: 0 7px 16px rgba(13, 31, 85, 0.12);
}

.btn--primary:hover {
  background: #17306f;
  border-color: #17306f;
  box-shadow: 0 10px 22px rgba(13, 31, 85, 0.16);
}

.btn--secondary {
  border-color: #c9aa54;
  background: #c9aa54;
  color: #102151;
  box-shadow: 0 7px 16px rgba(198, 162, 71, 0.14);
}

.btn--secondary:hover {
  background: #d4b865;
  border-color: #d4b865;
  box-shadow: 0 10px 22px rgba(198, 162, 71, 0.18);
}

.btn--outline {
  border-color: rgba(17, 38, 95, 0.22);
  background: var(--color-white);
  color: #11265f;
}

.btn--outline:hover {
  border-color: rgba(17, 38, 95, 0.42);
  background: #f7f9fd;
  color: #11265f;
  box-shadow: 0 8px 18px rgba(13, 31, 85, 0.08);
}

.btn--outline-light {
  border-color: rgba(255,255,255,0.34);
  background: rgba(255,255,255,0.055);
  color: var(--color-white);
}

.btn--outline-light:hover {
  border-color: rgba(255,255,255,0.7);
  background: rgba(255,255,255,0.14);
  color: var(--color-white);
  box-shadow: 0 8px 18px rgba(0,0,0,0.18);
}

.btn--white {
  border-color: rgba(255,255,255,0.92);
  background: rgba(255,255,255,0.96);
  color: #11265f;
}

.btn--white:hover {
  background: var(--color-white);
  box-shadow: 0 8px 18px rgba(13, 31, 85, 0.12);
}

.btn--ghost {
  border-color: transparent;
  background: transparent;
  color: #11265f;
}

.btn--ghost:hover {
  background: rgba(17, 38, 95, 0.05);
  box-shadow: none;
}

.btn--sm {
  min-height: 34px;
  padding: 0.52rem 0.78rem;
  font-size: 0.68rem;
}

.btn--lg {
  min-height: 42px;
  padding: 0.68rem 1.05rem;
  font-size: 0.76rem;
}

.btn:focus-visible {
  outline: 3px solid rgba(198, 162, 71, 0.42);
  outline-offset: 3px;
}

.nav__login-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0.56rem 0.86rem;
  border-width: 1px;
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 880;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

/* Competition cards should behave like refined navigation, not heavy buttons. */
.competition-family-card__eyebrow,
.competition-family-card__latest,
.competition-family-card__stats span,
.competition-family-card__path span {
  border-radius: 6px;
}

.competition-family-card__actions {
  display: flex;
  grid-template-columns: none;
  gap: 0.9rem;
  margin-top: 0.12rem;
}

.competition-family-card__route {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.38rem;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #11265f;
  font-size: 0.74rem;
  font-weight: 880;
  letter-spacing: 0.04em;
  line-height: 1;
  text-decoration: none;
  text-transform: none;
  transition:
    transform var(--transition-fast),
    color var(--transition-fast),
    opacity var(--transition-fast);
}

.competition-family-card__route svg {
  width: 0.68rem;
  height: 0.68rem;
  flex: 0 0 auto;
  opacity: 0.62;
}

.competition-family-card__route:hover,
.competition-family-card__route:focus-visible {
  color: var(--color-secondary-dark);
  transform: translateX(1px);
}

.competition-family-card__route--primary {
  color: #11265f;
}

.competition-family-card__route--secondary {
  color: rgba(17, 38, 95, 0.78);
}

.open-series-card {
  border-radius: 10px;
}

.open-series-card__eyebrow,
.open-series-card__note {
  border-radius: 6px;
}

.competitions-hero__routes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-top: 1rem;
}

.competitions-hero__routes a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: rgba(255,255,255,0.86);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
}

.competitions-hero__routes a::after {
  content: "";
  width: 0.42rem;
  height: 0.42rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.62;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.competitions-hero__routes a:hover::after,
.competitions-hero__routes a:focus-visible::after {
  transform: translateX(2px) rotate(45deg);
  opacity: 1;
}

.tabs {
  gap: 0.35rem;
  padding: 0.35rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 10px;
  background: rgba(247, 249, 253, 0.92);
  margin-bottom: var(--space-xl);
  border-bottom: 0;
}

.tab {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 38px;
  padding: 0.52rem 0.82rem;
  border: 1px solid transparent;
  border-radius: 6px;
  margin-bottom: 0;
  background: transparent;
  color: var(--color-text-secondary);
  font-size: 0.76rem;
  font-weight: 840;
  letter-spacing: 0.03em;
  transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}

.tab.active {
  color: var(--color-white);
  background: #11265f;
  border-bottom-color: transparent;
  border-color: #11265f;
  box-shadow: 0 8px 18px rgba(13, 31, 85, 0.14);
}

.tab:hover:not(.active) {
  color: var(--color-primary);
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(17, 38, 95, 0.14);
}

.tab:focus-visible {
  border-radius: 6px;
}

.documents-reset,
.documents-filter-chip,
.documents-active-filters button,
.gallery-filter,
.media-library-chip,
.calendar-nav-btn {
  min-height: 36px;
  border-width: 1px;
  border-color: rgba(17, 38, 95, 0.12);
  border-radius: 999px;
  background: var(--color-white);
  color: #11265f;
  font-size: 0.74rem;
  font-weight: 860;
  letter-spacing: 0.02em;
  line-height: 1;
  transition: transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);
}

.documents-reset:hover,
.documents-reset:focus-visible,
.documents-filter-chip:hover,
.documents-filter-chip:focus-visible,
.documents-active-filters button:hover,
.documents-active-filters button:focus-visible,
.gallery-filter:hover,
.gallery-filter:focus-visible,
.media-library-chip:hover,
.media-library-chip:focus-visible,
.calendar-nav-btn:hover,
.calendar-nav-btn:focus-visible {
  border-color: rgba(197, 164, 78, 0.46);
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(13, 31, 85, 0.08);
}

.documents-filter-chip.is-active,
.gallery-filter.active,
.media-library-chip.is-active,
.media-library-chip.active {
  border-color: #11265f;
  background: #11265f;
  color: #fff;
}

.calendar-nav-btn {
  padding: 0.46rem 0.82rem;
  background: rgba(255,255,255,0.08);
  color: var(--color-white);
}

.calendar-nav-btn:hover,
.calendar-nav-btn:focus-visible {
  background: rgba(255,255,255,0.16);
  color: var(--color-white);
}

@media (max-width: 768px) {
  .btn {
    min-height: 40px;
  }

  .btn--lg {
    min-height: 42px;
    padding-inline: 0.95rem;
  }

  .competitions-hero__routes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0.85rem;
    margin-top: 0.95rem;
  }

  .competitions-hero__routes a {
    font-size: 0.68rem;
  }

  .competition-family-card__actions {
    gap: 0.82rem;
  }
}

/* ---------- Calm Federation UX Layer ---------- */
:root {
  --sfe-ink: #06153d;
  --sfe-ink-2: #12245a;
  --sfe-muted: #65708b;
  --sfe-soft: #f7f9fc;
  --sfe-soft-2: #eef3f9;
  --sfe-line: rgba(9, 30, 82, 0.095);
  --sfe-gold: #b99a45;
  --sfe-radius: 12px;
  --sfe-radius-lg: 18px;
  --sfe-shadow: 0 18px 48px rgba(8, 24, 62, 0.075);
  --sfe-shadow-soft: 0 10px 26px rgba(8, 24, 62, 0.055);
}

body {
  background:
    linear-gradient(180deg, #ffffff 0%, #f8fafc 38%, #ffffff 100%);
  color: var(--sfe-ink);
}

body::before {
  opacity: 0.34;
}

.container {
  max-width: 1200px;
}

.section {
  padding: clamp(2.75rem, 5vw, 5rem) 0;
}

.section-header {
  display: grid;
  gap: 0.72rem;
  margin-bottom: clamp(1.4rem, 3vw, 2.4rem);
}

.section-header h2 {
  margin: 0;
  color: var(--sfe-ink);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.04;
}

.section-header p {
  color: var(--sfe-muted);
  line-height: 1.58;
}

.section-divider {
  width: 46px;
  height: 2px;
  margin: 0.2rem auto 0;
  background: var(--sfe-gold);
}

.section-label {
  color: var(--sfe-gold);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.nav {
  background: rgba(6, 21, 61, 0.94);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.nav.scrolled {
  background: rgba(6, 21, 61, 0.96);
  box-shadow: 0 12px 36px rgba(4, 12, 34, 0.16);
}

.nav__inner {
  max-width: 1240px;
}

.nav__logo img {
  height: 42px;
}

.nav__logo-text strong {
  letter-spacing: 0;
}

.nav__logo-text span {
  color: rgba(197, 164, 78, 0.92);
  letter-spacing: 0.12em;
}

.nav__link {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.78rem;
  letter-spacing: 0;
}

.nav__link:hover,
.nav__link.active {
  color: #ffffff;
}

.nav__link::after {
  background: var(--sfe-gold);
}

.nav__login-cta {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.nav__login-cta:hover,
.nav__login-cta:focus-visible,
.nav__login-cta.active {
  border-color: rgba(185, 154, 69, 0.62);
  background: rgba(185, 154, 69, 0.14);
  color: #ffffff;
}

.mobile-menu,
.nav__links.active {
  background: rgba(6, 21, 61, 0.98);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}

.page-hero {
  min-height: clamp(250px, 42vh, 430px);
  background:
    linear-gradient(180deg, rgba(6, 21, 61, 0.86), rgba(6, 21, 61, 0.91)),
    var(--page-hero-image, url("../assets/media/gallery/ec2025/ec2025-10.jpg")) center / cover;
}

.page-hero__content {
  padding-top: calc(var(--nav-height) + clamp(2rem, 5vw, 4rem));
  padding-bottom: clamp(2rem, 5vw, 4rem);
}

.page-hero__breadcrumb {
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.page-hero h1 {
  max-width: 13ch;
  margin-inline: auto;
  color: #ffffff;
  font-size: clamp(2.55rem, 6vw, 5.2rem);
  font-weight: 920;
  letter-spacing: 0;
  line-height: 0.98;
}

.page-hero p {
  max-width: 620px;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(0.98rem, 1.5vw, 1.12rem);
  line-height: 1.6;
}

.page-hero--rankings,
.page-hero--portal {
  min-height: clamp(230px, 36vh, 360px);
}

.card,
.feature-card,
.news-card,
.member-card,
.document-card,
.portal-panel,
.portal-auth-card,
.portal-gate,
.rankings-table-wrapper,
.media-library__panel,
.media-library__controls,
.ranking-context-panel,
.ranking-control-panel {
  border: 1px solid var(--sfe-line);
  border-radius: var(--sfe-radius-lg);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--sfe-shadow-soft);
}

.card:hover,
.feature-card:hover,
.news-card:hover,
.member-card:hover,
.document-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--sfe-shadow);
}

.btn,
.tab,
.gallery-filter,
.media-library-chip,
.documents-filter-chip,
.athlete-filter-chip,
.ranking-discipline-tab,
.portal-workspace-tab,
.admin-os-nav a {
  border-radius: 999px;
}

.btn--primary {
  border-color: var(--sfe-ink-2);
  background: var(--sfe-ink-2);
  box-shadow: 0 12px 24px rgba(6, 21, 61, 0.14);
}

.btn--primary:hover {
  background: #19306d;
  border-color: #19306d;
}

.btn--outline {
  border-color: var(--sfe-line);
  background: rgba(255, 255, 255, 0.92);
  color: var(--sfe-ink-2);
}

.btn--outline:hover {
  background: var(--sfe-soft);
}

.rankings-section,
.portal-section,
.media-library,
.documents-section,
.athlete-directory-section,
.members-section {
  background:
    linear-gradient(180deg, rgba(248, 250, 252, 0.72), rgba(255, 255, 255, 1));
}

.ranking-tabs,
.ranking-discipline-tabs,
.ranking-control-panel,
.athlete-directory-tabs,
.media-library__controls {
  border: 1px solid var(--sfe-line);
  border-radius: var(--sfe-radius-lg);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--sfe-shadow-soft);
}

.ranking-discipline-tab,
.ranking-gender-toggle button,
.athlete-directory-tabs button,
.media-library-chip {
  min-height: 42px;
  border: 1px solid rgba(9, 30, 82, 0.09);
  background: rgba(248, 250, 252, 0.82);
  color: var(--sfe-ink-2);
  font-size: 0.78rem;
  font-weight: 860;
  letter-spacing: 0;
}

.ranking-discipline-tab.is-active,
.ranking-discipline-tab.active,
.ranking-gender-toggle button.is-active,
.ranking-gender-toggle button.active,
.athlete-directory-tabs button.is-active,
.athlete-directory-tabs button.active,
.media-library-chip.is-active,
.media-library-chip.active {
  border-color: var(--sfe-ink-2);
  background: var(--sfe-ink-2);
  color: #ffffff;
  box-shadow: 0 10px 22px rgba(6, 21, 61, 0.14);
}

.ranking-table-wrapper {
  overflow: hidden;
}

.rankings-table {
  border-collapse: separate;
  border-spacing: 0;
}

.rankings-table thead th {
  background: var(--sfe-ink);
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.05em;
}

.rankings-table tbody tr {
  background: #ffffff;
}

.rankings-table tbody tr:nth-child(even) {
  background: #f8fafc;
}

.rankings-table td {
  border-bottom: 1px solid rgba(9, 30, 82, 0.075);
}

.ranking-athlete__link,
.ranking-country-link {
  color: var(--sfe-ink);
  font-weight: 900;
}

.ranking-athlete__meta,
.ranking-best-result small,
.ranking-mobile-card small {
  color: var(--sfe-muted);
}

.rank-badge,
.ranking-badge {
  border-radius: 999px;
}

.ranking-mobile-list {
  display: none;
}

.ranking-mobile-card {
  border: 1px solid var(--sfe-line);
  border-radius: var(--sfe-radius-lg);
  background: #ffffff;
  box-shadow: var(--sfe-shadow-soft);
}

.ranking-points-bar {
  height: 5px;
  border-radius: 999px;
  background:
    linear-gradient(90deg, var(--sfe-gold), #4aa3df) left / var(--ranking-points-share, 20%) 100% no-repeat,
    rgba(9, 30, 82, 0.075);
}

.portal-section {
  padding-top: clamp(1.5rem, 3vw, 2.5rem);
}

.portal-shell {
  max-width: 1180px;
  margin-inline: auto;
}

.portal-header,
.portal-panel,
.admin-os-hero,
.admin-os-panel,
.admin-os-nav {
  border-color: var(--sfe-line);
  border-radius: var(--sfe-radius-lg);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: var(--sfe-shadow-soft);
}

.portal-panel h3,
.admin-os-hero h3,
.admin-os-panel h3 {
  color: var(--sfe-ink);
  font-weight: 900;
  letter-spacing: 0;
}

.portal-workspace-nav {
  display: flex;
  gap: 0.45rem;
  overflow-x: auto;
  width: fit-content;
  max-width: 100%;
  padding: 0.35rem;
  border: 1px solid var(--sfe-line);
  border-radius: 999px;
  background: rgba(248, 250, 252, 0.84);
  scrollbar-width: none;
}

.portal-workspace-nav::-webkit-scrollbar {
  display: none;
}

.portal-workspace-tab {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  min-height: 36px;
  min-width: max-content;
  padding: 0.5rem 0.82rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--sfe-ink-2);
  font: inherit;
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1;
  cursor: pointer;
  text-decoration: none;
}

.portal-workspace-tab:hover,
.portal-workspace-tab:focus-visible {
  background: #ffffff;
  box-shadow: 0 8px 16px rgba(6, 21, 61, 0.08);
  outline: none;
}

.portal-workspace-tab.is-active {
  background: var(--sfe-ink);
  color: #ffffff;
  box-shadow: 0 12px 22px rgba(9, 30, 82, 0.16);
}

.portal-workspace-context {
  display: grid;
  gap: 0.28rem;
  margin-top: 0.75rem;
  padding: 0.88rem 1rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(248, 250, 252, 0.9));
  transition: opacity 180ms ease, transform 180ms ease;
}

.portal-workspace-context.is-refreshing {
  animation: portalWorkspaceContextRefresh 220ms ease;
}

.portal-workspace-context strong {
  color: var(--sfe-ink);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.1;
}

.portal-workspace-context p {
  margin: 0;
  max-width: 62ch;
  color: var(--sfe-muted);
  font-size: 0.84rem;
  line-height: 1.48;
}

.portal-athlete-current {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.25fr);
  gap: 0.75rem;
  margin-top: 0.8rem;
  padding: 0.72rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: rgba(248, 250, 252, 0.82);
}

.portal-athlete-current__identity,
.portal-athlete-current__steps article,
.portal-athlete-overview__facts article,
.portal-data-boundary article,
.portal-identity-warning {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.84);
}

.portal-athlete-current__identity {
  display: grid;
  gap: 0.18rem;
  align-content: center;
  min-width: 0;
  padding: 0.78rem 0.85rem;
}

.portal-athlete-current__identity span,
.portal-athlete-current__steps span,
.portal-athlete-overview__eyebrow,
.portal-athlete-overview__facts span {
  color: var(--sfe-muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-athlete-current__identity strong {
  overflow: hidden;
  color: var(--sfe-ink);
  font-size: 1.05rem;
  font-weight: 920;
  line-height: 1.14;
  text-overflow: ellipsis;
}

.portal-athlete-current__identity small {
  overflow: hidden;
  color: var(--sfe-muted);
  font-size: 0.78rem;
  font-weight: 760;
  line-height: 1.25;
  text-overflow: ellipsis;
}

.portal-athlete-current__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  min-width: 0;
}

.portal-athlete-current__steps article {
  display: grid;
  gap: 0.2rem;
  align-content: center;
  min-width: 0;
  padding: 0.7rem 0.76rem;
}

.portal-athlete-current__steps strong {
  overflow-wrap: anywhere;
  color: var(--sfe-ink);
  font-size: 0.88rem;
  font-weight: 900;
  line-height: 1.24;
}

.portal-president-current {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1fr) minmax(220px, 0.72fr);
  gap: 0.75rem;
  margin-top: 0.8rem;
}

.portal-president-current__identity,
.portal-president-current__signals article,
.portal-president-current__boundary article,
.portal-president-overview__stats article,
.portal-president-overview__tags span,
.portal-president-facts article {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.84);
}

.portal-president-current__identity {
  display: grid;
  gap: 0.2rem;
  align-content: center;
  padding: 0.82rem 0.88rem;
}

.portal-president-current__identity span,
.portal-president-current__signals span,
.portal-president-current__boundary span,
.portal-president-overview__stats span,
.portal-president-facts span {
  color: var(--sfe-muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-president-current__identity strong,
.portal-president-current__signals strong,
.portal-president-current__boundary strong,
.portal-president-overview__stats strong,
.portal-president-facts strong {
  color: var(--sfe-ink);
  font-size: 0.98rem;
  font-weight: 920;
  line-height: 1.18;
}

.portal-president-current__identity small,
.portal-president-current__signals small,
.portal-president-current__boundary small {
  color: var(--sfe-muted);
  font-size: 0.76rem;
  font-weight: 760;
  line-height: 1.28;
}

.portal-club-current {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.25fr);
  gap: 0.75rem;
  margin-top: 0.8rem;
}

.portal-club-current__identity,
.portal-club-current__signals article,
.portal-club-facts article,
.portal-club-officers article {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.84);
}

.portal-club-current__identity {
  display: grid;
  gap: 0.18rem;
  align-content: center;
  padding: 0.82rem 0.88rem;
}

.portal-club-current__signals,
.portal-club-facts,
.portal-club-officers {
  display: grid;
  gap: 0.55rem;
}

.portal-club-current__signals,
.portal-club-facts {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.portal-club-current__signals article,
.portal-club-facts article,
.portal-club-officers article {
  display: grid;
  gap: 0.18rem;
  padding: 0.76rem 0.82rem;
}

.portal-club-current__identity span,
.portal-club-current__signals span,
.portal-club-facts span,
.portal-club-officers span {
  color: var(--sfe-muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-club-current__identity strong,
.portal-club-current__signals strong,
.portal-club-facts strong,
.portal-club-officers strong {
  color: var(--sfe-ink);
  font-size: 0.98rem;
  font-weight: 920;
  line-height: 1.18;
}

.portal-club-current__identity small,
.portal-club-current__signals small {
  color: var(--sfe-muted);
  font-size: 0.76rem;
  font-weight: 760;
  line-height: 1.28;
}

.portal-club-facts,
.portal-club-officers {
  margin-bottom: 0.9rem;
}

.portal-club-officers {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-club-officers a {
  color: var(--sfe-gold-strong);
  font-size: 0.76rem;
  font-weight: 850;
  text-decoration: none;
}

.portal-club-nomination-form {
  margin-top: 0.8rem;
}

.portal-club-profile-update-form {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(9, 30, 82, 0.08);
}

.portal-president-current__signals,
.portal-president-current__boundary,
.portal-president-overview__stats,
.portal-president-facts {
  display: grid;
  gap: 0.5rem;
}

.portal-president-current__signals {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.portal-president-current__boundary article,
.portal-president-current__signals article,
.portal-president-overview__stats article,
.portal-president-facts article {
  display: grid;
  gap: 0.18rem;
  padding: 0.72rem 0.78rem;
}

.portal-president-overview {
  display: grid;
  gap: 0.65rem;
  margin-bottom: 0.9rem;
}

.portal-president-overview__stats {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-president-overview__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.portal-president-overview__tags span {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.4rem 0.66rem;
  color: var(--sfe-ink-2);
  font-size: 0.72rem;
  font-weight: 880;
}

.portal-president-athlete-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.portal-president-athlete-card {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
  padding: 0.82rem 0.88rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 16px;
  background: rgba(248, 250, 252, 0.78);
  text-decoration: none;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.portal-president-athlete-card strong {
  color: var(--sfe-ink);
  font-size: 0.96rem;
  font-weight: 900;
  line-height: 1.18;
}

.portal-president-athlete-card span {
  color: var(--sfe-muted);
  font-size: 0.76rem;
  font-weight: 760;
  line-height: 1.32;
}

.portal-president-athlete-card:hover,
.portal-president-athlete-card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(185, 154, 69, 0.34);
  background: #ffffff;
  box-shadow: 0 12px 26px rgba(9, 30, 82, 0.08);
  outline: none;
}

.portal-president-facts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 0.9rem;
}

.portal-athlete-overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.48fr);
  gap: 0.9rem;
  align-items: stretch;
}

.portal-athlete-overview__main {
  display: grid;
  gap: 0.55rem;
  align-content: start;
  min-width: 0;
}

.portal-athlete-overview__main h3 {
  margin: 0;
  color: var(--sfe-ink);
  font-size: clamp(1.25rem, 2.1vw, 1.8rem);
  line-height: 1.08;
}

.portal-athlete-overview__main p {
  margin: 0;
  max-width: 54ch;
  color: var(--sfe-muted);
  font-size: 0.92rem;
  line-height: 1.5;
}

.portal-athlete-overview__facts {
  display: grid;
  gap: 0.55rem;
}

.portal-athlete-overview__facts article {
  display: grid;
  gap: 0.16rem;
  padding: 0.78rem 0.86rem;
}

.portal-athlete-overview__facts strong {
  color: var(--sfe-ink);
  font-size: 0.98rem;
  font-weight: 920;
  line-height: 1.15;
}

.portal-athlete-overview__facts small {
  color: var(--sfe-muted);
  font-size: 0.76rem;
  font-weight: 760;
  line-height: 1.28;
}

.portal-data-boundary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  margin-top: 0.9rem;
}

.portal-data-boundary article {
  display: grid;
  gap: 0.2rem;
  padding: 0.8rem;
}

.portal-data-boundary strong {
  color: var(--sfe-ink);
  font-size: 0.86rem;
  font-weight: 920;
}

.portal-data-boundary span {
  color: var(--sfe-muted);
  font-size: 0.76rem;
  font-weight: 760;
  line-height: 1.36;
}

.portal-identity-warning {
  display: grid;
  gap: 0.22rem;
  padding: 0.82rem 0.9rem;
  border-color: rgba(197, 164, 78, 0.28);
  background: rgba(197, 164, 78, 0.09);
}

.portal-identity-warning strong {
  color: var(--sfe-ink);
  font-size: 0.88rem;
  font-weight: 920;
}

.portal-identity-warning span {
  color: var(--sfe-muted);
  font-size: 0.8rem;
  font-weight: 760;
  line-height: 1.42;
}

.portal-workspace-stage {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.portal-workspace-view {
  display: none;
  gap: 1rem;
  align-content: start;
  opacity: 0;
  transform: translateY(8px);
}

.portal-workspace-view.is-active {
  display: grid;
}

.portal-workspace-view.is-active.is-entering {
  animation: portalWorkspaceViewEnter 220ms ease forwards;
}

.admin-workspace-stage {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.admin-workspace-view {
  display: none;
  gap: 1rem;
  align-content: start;
  opacity: 0;
  transform: translateY(8px);
}

.admin-workspace-view.is-active {
  display: grid;
}

.admin-workspace-view.is-active.is-entering {
  animation: portalWorkspaceViewEnter 220ms ease forwards;
}

@keyframes portalWorkspaceViewEnter {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes portalWorkspaceContextRefresh {
  0% {
    opacity: 0.72;
    transform: translateY(4px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.portal-review-card {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.portal-review-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-self: start;
  width: auto;
}

.portal-review-card__actions .btn {
  flex: 0 1 auto;
  width: auto;
  min-width: min(128px, 100%);
  max-width: 184px;
  min-height: 42px;
}

.portal-panel--quiet-metrics .portal-metric-row article,
.portal-showcase-grid article,
.portal-task-strip article,
.portal-rule-list li,
.portal-empty-state,
.portal-next-steps article {
  border: 1px solid var(--sfe-line);
  border-radius: 14px;
  background: rgba(248, 250, 252, 0.78);
  box-shadow: none;
}

.portal-showcase-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.portal-showcase-grid article {
  display: grid;
  gap: 0.22rem;
  padding: 0.9rem;
}

.portal-showcase-grid strong {
  color: var(--sfe-ink);
  font-size: 0.94rem;
}

.portal-showcase-grid span {
  color: var(--sfe-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.portal-showcase-grid small {
  color: var(--sfe-muted);
  font-size: 0.74rem;
  font-weight: 720;
  line-height: 1.35;
}

.portal-showcase-grid--media {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.portal-composer {
  display: grid;
  gap: 0.85rem;
}

.portal-composer__bar {
  display: grid;
  gap: 0.55rem;
}

.portal-composer__group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.portal-composer-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0.48rem 0.76rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--sfe-ink-2);
  font: inherit;
  font-size: 0.75rem;
  font-weight: 860;
  line-height: 1;
  cursor: pointer;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.portal-composer-chip:hover,
.portal-composer-chip:focus-visible {
  border-color: rgba(185, 154, 69, 0.34);
  background: #ffffff;
  box-shadow: 0 10px 22px rgba(9, 30, 82, 0.08);
  outline: none;
  transform: translateY(-1px);
}

.portal-composer-chip.is-active {
  border-color: rgba(9, 30, 82, 0.16);
  background: var(--sfe-ink);
  color: #ffffff;
  box-shadow: 0 12px 24px rgba(9, 30, 82, 0.16);
}

.portal-media-dropzone {
  display: grid;
  gap: 0.3rem;
  justify-items: start;
  padding: 1rem;
  border: 1px dashed rgba(9, 30, 82, 0.16);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(248, 250, 252, 0.92));
}

.portal-media-dropzone__icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(9, 30, 82, 0.06);
  color: var(--sfe-ink);
  font-size: 1rem;
  font-weight: 900;
}

.portal-media-dropzone strong {
  color: var(--sfe-ink);
  font-size: 0.98rem;
  font-weight: 900;
}

.portal-media-dropzone span,
.portal-media-dropzone small {
  color: var(--sfe-muted);
  font-size: 0.78rem;
  line-height: 1.42;
}

.portal-media-dropzone__action {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0.52rem 0.82rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: #ffffff;
  color: var(--sfe-ink);
  font-size: 0.74rem;
  font-weight: 860;
  cursor: pointer;
  overflow: hidden;
}

.portal-media-dropzone__action input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.portal-composer-field.is-hidden,
.portal-media-dropzone.is-hidden {
  display: none;
}

.portal-composer__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.portal-task-strip--compact article {
  min-height: auto;
}

.portal-panel--media {
  background:
    linear-gradient(180deg, #ffffff, rgba(247, 250, 253, 0.96));
}

.portal-panel--palmares {
  background:
    linear-gradient(180deg, #ffffff, rgba(252, 249, 241, 0.52));
}

.portal-mini-form button:disabled,
.portal-mini-form button[disabled] {
  opacity: 0.48;
  cursor: not-allowed;
  transform: none;
}

.admin-os {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-os-hero,
.admin-os-panel--wide,
.admin-os-nav {
  grid-column: 1 / -1;
}

.admin-os-nav {
  border-radius: 999px;
}

.admin-os-nav a,
.portal-workspace-tab {
  white-space: nowrap;
}

.admin-os-nav a.is-active {
  background: var(--sfe-ink);
  color: #ffffff;
  box-shadow: 0 10px 22px rgba(9, 30, 82, 0.18);
}

.admin-workspace-context {
  margin-top: -0.2rem;
}

.admin-os-module-text {
  margin: 0;
  color: var(--sfe-muted);
  line-height: 1.58;
}

.admin-module-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

.admin-module-stats article,
.admin-module-lane {
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 18px;
  background: rgba(248, 250, 253, 0.84);
}

.admin-module-stats article {
  display: grid;
  gap: 0.22rem;
  padding: 0.92rem;
}

.admin-module-stats strong {
  color: var(--sfe-ink);
  font-size: clamp(1.18rem, 2.3vw, 1.6rem);
  line-height: 1;
}

.admin-module-stats span {
  color: var(--sfe-muted);
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1.35;
}

.admin-module-shell {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.admin-module-lane {
  display: grid;
  gap: 0.75rem;
  padding: 0.95rem;
}

.admin-module-lane__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.admin-module-lane__header strong {
  color: var(--sfe-ink);
  font-size: 0.98rem;
}

.admin-module-lane__header span {
  color: var(--sfe-muted);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.admin-module-list {
  display: grid;
  gap: 0.6rem;
}

.admin-module-notes {
  display: grid;
  gap: 0.62rem;
}

.admin-module-notes p {
  margin: 0;
  color: var(--sfe-muted);
  font-size: 0.86rem;
  line-height: 1.56;
}

.media-library__panel {
  align-items: center;
}

.media-library__controls {
  padding: clamp(0.9rem, 2vw, 1.2rem);
  background: rgba(255, 255, 255, 0.94);
}

.media-library-grid .gallery-item {
  border-radius: var(--sfe-radius);
}

@media (max-width: 980px) {
  .admin-os,
  .portal-showcase-grid,
  .admin-module-stats,
  .admin-module-shell {
    grid-template-columns: 1fr;
  }

  .portal-composer__meta,
  .portal-showcase-grid--media {
    grid-template-columns: 1fr;
  }

  .portal-athlete-current,
  .portal-athlete-overview,
  .portal-data-boundary,
  .portal-president-current,
  .portal-club-current,
  .portal-club-facts,
  .portal-club-officers,
  .portal-president-overview__stats,
  .portal-president-facts {
    grid-template-columns: 1fr;
  }

  .rankings-table {
    display: none;
  }

  .ranking-mobile-list {
    display: grid;
    gap: 0.8rem;
    padding: 0.75rem;
  }

  .rankings-table-wrapper {
    background: transparent;
    border: 0;
    box-shadow: none;
  }
}

@media (max-width: 768px) {
  .container {
    padding-inline: 1rem;
  }

  .nav {
    height: 70px;
  }

  .nav__inner {
    padding-inline: 1rem;
  }

  .nav__logo img {
    height: 38px;
  }

  .nav__logo-text strong {
    font-size: 0.9rem;
  }

  .nav__logo-text span {
    max-width: 17ch;
    font-size: 0.62rem;
    line-height: 1.28;
  }

  .page-hero {
    min-height: 265px;
  }

  .page-hero__content {
    padding-top: calc(var(--nav-height-scrolled) + 2rem);
    padding-bottom: 2rem;
    text-align: left;
  }

  .page-hero h1 {
    margin-inline: 0;
    font-size: clamp(2.4rem, 13vw, 3.4rem);
  }

  .page-hero p {
    margin-inline: 0;
    font-size: 0.96rem;
  }

  .section-header {
    text-align: left;
  }

  .section-header p,
  .section-divider {
    margin-left: 0;
  }

  .portal-workspace-nav,
  .admin-os-nav {
    margin-inline: -0.15rem;
  }

  .portal-header,
  .portal-panel,
  .admin-os-hero,
  .admin-os-panel {
    border-radius: 16px;
  }

  .portal-panel {
    padding: 1rem;
  }

  .portal-athlete-current {
    gap: 0.55rem;
    margin-top: 0.68rem;
    padding: 0.56rem;
    border-radius: 16px;
  }

  .portal-president-current {
    gap: 0.55rem;
    margin-top: 0.68rem;
  }

  .portal-club-current {
    gap: 0.55rem;
    margin-top: 0.68rem;
  }

  .portal-athlete-current__steps {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .portal-president-current__signals,
  .portal-president-current__boundary,
  .portal-club-current__signals,
  .portal-club-facts,
  .portal-club-officers {
    grid-template-columns: 1fr;
    gap: 0.45rem;
  }

  .portal-athlete-current__identity,
  .portal-athlete-current__steps article,
  .portal-president-current__identity,
  .portal-president-current__signals article,
  .portal-president-current__boundary article,
  .portal-club-current__identity,
  .portal-club-current__signals article,
  .portal-club-facts article,
  .portal-club-officers article,
  .portal-president-overview__stats article,
  .portal-president-facts article {
    padding: 0.64rem 0.72rem;
  }

  .portal-athlete-current__identity strong {
    white-space: normal;
  }

  .portal-president-overview {
    gap: 0.55rem;
  }

  .portal-athlete-overview {
    gap: 0.75rem;
  }

  .portal-data-boundary {
    gap: 0.45rem;
  }

  .admin-os-kpis,
  .portal-metric-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 460px) {
  .admin-os-kpis,
  .portal-metric-row,
  .portal-task-strip {
    grid-template-columns: 1fr;
  }

  .portal-review-card__actions {
    grid-template-columns: 1fr;
  }
}

/* Calm Federation portal refinement */
.page-hero--portal {
  min-height: clamp(138px, 18vh, 190px);
  padding: 0;
  border-bottom: 1px solid rgba(10, 26, 65, 0.08);
  background:
    radial-gradient(circle at 70% 0%, rgba(185, 154, 69, 0.12), transparent 36%),
    linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.page-hero--portal::before,
.page-hero--portal::after {
  display: none;
}

.page-hero--portal .page-hero__content {
  max-width: 980px;
  padding-top: calc(var(--nav-height) + clamp(1rem, 2vw, 1.6rem));
  padding-bottom: clamp(1rem, 2vw, 1.45rem);
  text-align: left;
}

.page-hero--portal .page-hero__breadcrumb {
  color: rgba(9, 30, 82, 0.52);
}

.page-hero--portal .page-hero__breadcrumb a {
  color: rgba(9, 30, 82, 0.62);
}

.page-hero--portal h1 {
  max-width: none;
  margin-inline: 0;
  color: var(--sfe-ink);
  font-size: clamp(2.25rem, 4.8vw, 4.4rem);
  letter-spacing: -0.02em;
}

.page-hero--portal p {
  max-width: 620px;
  margin-inline: 0;
  color: var(--sfe-muted);
}

.portal-section {
  padding-top: clamp(1rem, 2vw, 1.6rem);
  background:
    linear-gradient(180deg, rgba(248, 250, 252, 0.6), #ffffff 24rem),
    var(--sfe-bg-grid);
}

.portal-shell {
  display: grid;
  gap: clamp(0.8rem, 1.5vw, 1.15rem);
}

.portal-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: clamp(1rem, 2.2vw, 1.45rem);
  border-radius: 24px;
}

.portal-header h2 {
  margin: 0.2rem 0 0.1rem;
  font-size: clamp(1.55rem, 3vw, 2.5rem);
  line-height: 1.02;
  letter-spacing: -0.02em;
}

.portal-header p {
  margin: 0;
  max-width: 48rem;
  color: var(--sfe-muted);
  font-size: 0.95rem;
  line-height: 1.45;
}

.portal-header__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem;
}

.portal-header__actions .btn {
  min-height: 38px;
  padding: 0.6rem 0.9rem;
  font-size: 0.74rem;
}

.portal-status {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.78rem;
  border-radius: 999px;
  border: 1px solid rgba(9, 30, 82, 0.1);
  background: rgba(248, 250, 252, 0.92);
  color: var(--sfe-ink);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-panel--preview {
  padding: 0.75rem 0.9rem;
  border-radius: 18px;
  background: rgba(248, 250, 252, 0.82);
}

.portal-preview-control {
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(0, 1fr);
  gap: 0.9rem;
  align-items: center;
}

.portal-preview-control__summary {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

.portal-preview-control__summary strong {
  color: var(--sfe-ink);
  font-size: 1rem;
  font-weight: 920;
  line-height: 1.08;
}

.portal-preview-control__summary small {
  color: var(--sfe-muted);
  font-size: 0.78rem;
  font-weight: 760;
  line-height: 1.35;
}

.portal-preview-control__switch {
  display: flex;
  gap: 0.3rem;
  overflow-x: auto;
  justify-content: flex-end;
  scrollbar-width: none;
}

.portal-preview-control__switch::-webkit-scrollbar {
  display: none;
}

.portal-utility-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.3rem 0.1rem 0;
}

.portal-utility-bar__meta {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
}

.portal-utility-bar__meta span {
  color: var(--sfe-ink);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.portal-utility-bar__meta small {
  color: var(--sfe-muted);
  font-size: 0.78rem;
  font-weight: 760;
}

.portal-utility-bar__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.35rem;
}

.portal-utility-bar__links a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.38rem 0.68rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.84);
  color: var(--sfe-ink-2);
  font-size: 0.72rem;
  font-weight: 860;
  text-decoration: none;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.portal-utility-bar__links a:hover,
.portal-utility-bar__links a:focus-visible {
  border-color: rgba(185, 154, 69, 0.34);
  background: #ffffff;
  box-shadow: 0 10px 22px rgba(9, 30, 82, 0.08);
  outline: none;
  transform: translateY(-1px);
}

.portal-preview-banner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.9rem;
  align-items: center;
}

.portal-preview-banner h3,
.portal-preview-banner p {
  margin: 0;
}

.portal-preview-banner h3 {
  font-size: 1rem;
}

.portal-preview-banner p {
  max-width: 46rem;
  color: var(--sfe-muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.portal-preview-banner__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.35rem;
}

.portal-preview-banner__meta span {
  padding: 0.42rem 0.62rem;
  border-radius: 999px;
  border: 1px solid rgba(9, 30, 82, 0.08);
  background: #ffffff;
  color: var(--sfe-ink-2);
  font-size: 0.66rem;
  font-weight: 850;
}

.portal-role-tabs,
.portal-role-tabs--preview {
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  padding: 0.35rem;
  border: 1px solid var(--sfe-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 24px rgba(9, 30, 82, 0.06);
  scrollbar-width: none;
}

.portal-role-tabs::-webkit-scrollbar,
.portal-role-tabs--preview::-webkit-scrollbar {
  display: none;
}

.portal-preview-tab,
.portal-role-tabs span {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 0.65rem 0.95rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--sfe-ink-2);
  font: inherit;
  font-size: 0.76rem;
  font-weight: 900;
  cursor: pointer;
}

.portal-preview-tab {
  white-space: nowrap;
}

.portal-preview-tab.is-active,
.portal-role-tabs span.is-active {
  background: var(--sfe-ink);
  color: #ffffff;
  box-shadow: 0 10px 22px rgba(9, 30, 82, 0.18);
}

.portal-panel {
  border-radius: 22px;
}

.portal-panel > h3,
.portal-panel .section-label + h3 {
  margin-top: 0.35rem;
}

.portal-rule-list {
  display: grid;
  gap: 0.48rem;
  padding: 0;
  margin: 1rem 0 0;
  list-style: none;
}

.portal-rule-list li {
  position: relative;
  padding: 0.72rem 0.85rem 0.72rem 2rem;
  color: var(--sfe-ink-2);
  font-size: 0.88rem;
  line-height: 1.38;
}

.portal-rule-list li::before {
  content: "";
  position: absolute;
  left: 0.85rem;
  top: 1.13rem;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: var(--sfe-gold);
}

.portal-compact-list a,
.admin-queue-item {
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.portal-compact-list a:hover,
.portal-compact-list a:focus-visible,
.admin-queue-item:hover,
.admin-queue-item:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(185, 154, 69, 0.34);
  background: #ffffff;
  box-shadow: 0 12px 26px rgba(9, 30, 82, 0.08);
  outline: none;
}

.admin-os {
  gap: clamp(0.85rem, 1.6vw, 1.15rem);
}

.admin-os-hero {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.62fr);
  padding: clamp(1.05rem, 2vw, 1.45rem);
}

.admin-os-hero h3 {
  font-size: clamp(1.7rem, 3vw, 2.55rem);
  letter-spacing: -0.02em;
}

.admin-os-nav {
  position: sticky;
  top: calc(var(--nav-height-scrolled) + 0.5rem);
  z-index: 10;
  align-items: center;
}

@media (min-width: 769px) {
  .portal-workspace-nav,
  .admin-os-nav {
    width: fit-content;
    max-width: 100%;
    flex-wrap: wrap;
    overflow: visible;
    justify-self: start;
  }

  .portal-workspace-nav {
    gap: 0.35rem;
    padding: 0.28rem;
  }

  .portal-workspace-tab,
  .admin-os-nav a {
    min-height: 38px;
    white-space: nowrap;
    padding: 0.55rem 0.86rem;
    font-size: 0.74rem;
  }

  .admin-os-nav {
    display: inline-grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    gap: 0.28rem;
    padding: 0.3rem;
  }
}

.admin-os-panel {
  padding: clamp(1rem, 2vw, 1.35rem);
}

.admin-module-grid article {
  min-height: auto;
}

@media (max-width: 768px) {
  .page-hero--portal {
    min-height: 164px;
  }

  .page-hero--portal .page-hero__content {
    padding-top: calc(var(--nav-height-scrolled) + 1.1rem);
    padding-bottom: 1.1rem;
  }

  .page-hero--portal h1 {
    font-size: clamp(2.15rem, 11vw, 3.05rem);
  }

  .portal-section {
    padding-top: 0.85rem;
  }

  .portal-header {
    grid-template-columns: 1fr;
    border-radius: 18px;
  }

  .portal-header__actions {
    justify-content: stretch;
  }

  .portal-header__actions > * {
    flex: 1 1 auto;
  }

  .portal-preview-banner {
    grid-template-columns: 1fr;
  }

  .portal-preview-control,
  .portal-utility-bar {
    display: grid;
    grid-template-columns: 1fr;
  }

  .portal-preview-banner__copy p {
    display: none;
  }

  .portal-preview-control__switch,
  .portal-utility-bar__links {
    justify-content: flex-start;
  }

  .portal-preview-banner__meta {
    justify-content: flex-start;
  }

  .portal-role-tabs,
  .portal-role-tabs--preview,
  .portal-workspace-nav,
  .admin-os-nav {
    border-radius: 18px;
    margin-inline: -0.1rem;
    width: auto;
    max-width: none;
    flex-wrap: nowrap;
    overflow-x: auto;
  }

  .admin-os-hero {
    grid-template-columns: 1fr;
  }

  .admin-os-nav {
    top: 74px;
  }
}

@media (max-width: 460px) {
  .portal-president-athlete-grid {
    grid-template-columns: 1fr;
  }

  .portal-workspace-nav {
    gap: 0.18rem;
    padding: 0.24rem;
  }

  .portal-workspace-tab {
    min-height: 34px;
    padding: 0.45rem 0.58rem;
    font-size: 0.7rem;
  }

  .portal-claim-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
  }

  .portal-claim-summary__card {
    padding: 0.68rem;
  }

  .portal-claim-summary__card strong {
    font-size: 1rem;
  }

  .portal-status {
    min-height: 34px;
    padding: 0.48rem 0.62rem;
    font-size: 0.62rem;
  }

  .portal-header__actions .btn {
    flex-basis: 100%;
  }

  .portal-preview-banner__meta span:nth-child(n + 3) {
    display: none;
  }
}

/* ============================================================
   Match Archive — Stage System Redesign
   Mobile-first, institutional, minimal.
   ============================================================ */

/* Stage navigation (Group stage / Ranking groups / Lower house / Placement) */
.match-stage-shell { margin-top: 0; }

.match-stage-nav {
  display: flex;
  gap: 0.3rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0.1rem 0 0.85rem;
  margin-bottom: 0.15rem;
}
.match-stage-nav::-webkit-scrollbar { display: none; }

.match-stage-tab {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  padding: 0.42rem 0.9rem;
  border: 1px solid var(--color-border);
  border-radius: 6px;
  background: var(--color-white);
  color: var(--color-text-secondary);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-fast);
  white-space: nowrap;
  font-family: var(--font-family);
}
.match-stage-tab small {
  display: inline-grid;
  place-items: center;
  min-width: 1.2rem;
  height: 1.2rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: rgba(11, 29, 81, 0.08);
  color: inherit;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;
}
.match-stage-tab.is-active small {
  background: rgba(255, 255, 255, 0.16);
}
.match-stage-tab:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}
.match-stage-tab.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

/* Stage panel */
.match-stage-panel { padding-top: 0; }
.match-stage-panel[hidden] { display: none !important; }

/* Group navigation (Group A / Group B / ...) */
.match-group-nav {
  display: flex;
  gap: 0.25rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0.1rem 0 0.75rem;
  margin-bottom: 0.15rem;
}
.match-group-nav::-webkit-scrollbar { display: none; }

.match-group-chip {
  flex: 0 0 auto;
  padding: 0.32rem 0.72rem;
  border: 1px solid var(--color-border);
  border-radius: 5px;
  background: transparent;
  color: var(--color-text-secondary);
  font-size: 0.74rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-fast);
  white-space: nowrap;
  font-family: var(--font-family);
}
.match-group-chip:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}
.match-group-chip.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

/* Group panel */
.match-group-body {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
.match-group-body[hidden] { display: none !important; }

@media (min-width: 700px) {
  .match-group-body--has-table {
    grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
  }
}

/* Group standings table (compact) */
.match-group-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.match-group-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.match-group-table th {
  text-align: left;
  padding: 0.38rem 0.5rem;
  border-bottom: 2px solid var(--color-primary);
  color: var(--color-primary);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
}
.match-group-table td {
  padding: 0.44rem 0.5rem;
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle;
  color: var(--color-text-primary);
}
.match-group-table tr:last-child td { border-bottom: none; }
.match-group-table .rank-cell {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 700;
  width: 2rem;
  text-align: center;
}
.match-group-table .entry-cell { font-weight: 600; }
.match-group-table .stat-cell {
  text-align: center;
  font-variant-numeric: tabular-nums;
  width: 2.4rem;
  color: var(--color-text-secondary);
}

/* Match cards */
.match-group-matches {
  display: flex;
  flex-direction: column;
}

.match-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--color-border);
}
.match-card:last-child { border-bottom: none; }
.match-card--walkover { opacity: 0.72; }

.match-card__teams {
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
  min-width: 0;
}

.match-card__team {
  font-size: 0.8rem;
  color: var(--color-text-secondary);
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  overflow-wrap: anywhere;
  line-height: 1.3;
}
.match-card__team.is-winner {
  color: var(--color-text-primary);
  font-weight: 700;
}

.match-card__score {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.12rem;
  flex-shrink: 0;
  min-width: 3rem;
}
.match-card__result {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--color-primary);
  font-variant-numeric: tabular-nums;
}
.match-card__sets {
  font-size: 0.67rem;
  color: var(--color-text-light);
  font-variant-numeric: tabular-nums;
  text-align: right;
  line-height: 1.3;
}
.match-card--walkover .match-card__result::after {
  content: ' W/O';
  font-weight: 400;
  font-size: 0.62rem;
  opacity: 0.65;
}

/* Placement range navigation */
.placement-range-nav {
  display: flex;
  gap: 0.25rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0.1rem 0 0.75rem;
  margin-bottom: 0.15rem;
}
.placement-range-nav::-webkit-scrollbar { display: none; }

.placement-range-chip {
  flex: 0 0 auto;
  padding: 0.32rem 0.72rem;
  border: 1px solid var(--color-border);
  border-radius: 5px;
  background: transparent;
  color: var(--color-text-secondary);
  font-size: 0.74rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-fast);
  white-space: nowrap;
  font-family: var(--font-family);
}
.placement-range-chip:hover {
  border-color: var(--color-secondary-dark);
  color: var(--color-secondary-dark);
}
.placement-range-chip.is-active {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: var(--color-primary);
  font-weight: 700;
}

.placement-group-panel[hidden] { display: none !important; }

/* Swiss / round windows */
.round-window {
  min-width: 0;
}
.round-window__nav {
  margin-bottom: 0.2rem;
}
.round-window__panel[hidden] {
  display: none !important;
}
.round-window__body {
  min-width: 0;
}
.round-window__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 0 0.55rem;
  margin-bottom: 0.15rem;
  border-bottom: 1px solid var(--color-border);
}
.round-window__head strong {
  color: var(--color-primary);
  font-size: 0.9rem;
  font-weight: 700;
}
.round-window__head span {
  color: var(--color-text-light);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Meta line under discipline title */
.match-meta-line {
  font-size: 0.74rem;
  color: var(--color-text-light);
  margin-top: 0.22rem;
  font-weight: 400;
}

/* Empty state */
.match-empty-note {
  font-size: 0.8rem;
  color: var(--color-text-light);
  padding: 0.75rem 0;
  font-style: italic;
}

/* Discipline header: tighten up */
.event-hub-match-discipline__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.1rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--color-border);
}
.event-hub-match-discipline__header h3 {
  margin: 0.25rem 0 0;
  font-size: clamp(1rem, 2vw, 1.15rem);
  font-weight: 700;
  color: var(--color-primary);
}
.event-hub-match-discipline + .event-hub-match-discipline {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--color-border);
}

/* Bracket: refine */
.event-hub-bracket__board {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
.event-hub-bracket__scroller {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
}
.event-hub-bracket__round {
  flex: 0 0 min(200px, 48vw);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.event-hub-bracket__round-head {
  padding-bottom: 0.55rem;
  border-bottom: 2px solid var(--color-primary);
  margin-bottom: 0.6rem;
}
.event-hub-bracket__round-head small {
  display: block;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--color-text-light);
  margin-bottom: 0.12rem;
}
.event-hub-bracket__round-head h4 {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
}
.event-hub-bracket__round-head span {
  font-size: 0.68rem;
  color: var(--color-text-light);
}
.event-hub-bracket__matches {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.event-hub-bracket-match {
  border: 1px solid var(--color-border);
  border-radius: 6px;
  overflow: hidden;
  background: var(--color-white);
  min-width: 0;
}
.event-hub-bracket-match__teams {
  display: flex;
  flex-direction: column;
}
.event-hub-bracket-match__team {
  padding: 0.4rem 0.6rem;
  font-size: 0.76rem;
  color: var(--color-text-secondary);
  border-bottom: 1px solid var(--color-border);
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  overflow-wrap: anywhere;
  line-height: 1.25;
}
.event-hub-bracket-match__team:last-child { border-bottom: none; }
.event-hub-bracket-match__team.is-winner {
  font-weight: 700;
  color: var(--color-text-primary);
  background: rgba(11, 29, 81, 0.03);
}
.event-hub-bracket-match__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  padding: 0.3rem 0.6rem;
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  font-size: 0.68rem;
}
.event-hub-bracket-match__footer strong { color: var(--color-primary); font-weight: 700; }
.event-hub-bracket-match__footer span {
  color: var(--color-text-light);
  text-align: right;
  overflow-wrap: anywhere;
}

/* Mobile adjustments */
@media (max-width: 640px) {
  .match-card__team {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
  }
  .match-group-body--has-table {
    grid-template-columns: 1fr;
  }
  .match-stage-tab,
  .match-group-chip,
  .placement-range-chip {
    font-size: 0.72rem;
    padding: 0.32rem 0.62rem;
  }
}

/* Keep existing safety layer happy */
.match-stage-panel[hidden],
.match-group-body[hidden],
.round-window__panel[hidden],
.placement-group-panel[hidden] {
  display: none !important;
}
.event-hub-view[hidden],
.event-hub-stage-switcher__view[hidden],
[data-panel-view][hidden],
[data-panel-section][hidden] {
  display: none !important;
}

.event-hub-actions,
.event-hub-stage-switcher__nav,
.event-hub-subswitcher__nav,
.event-hub-discipline-nav {
  overscroll-behavior-inline: contain;
}

.ranking-event-standings-table td,
.ranking-event-standings-table th,
.ranking-event-standings-mobile-card,
.placement-athletes {
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .event-hub-center-link-card {
    min-height: 0;
    padding: 0.92rem;
    gap: 0.74rem;
  }

  .event-hub-center-link-card__body span,
  .event-hub-center-link-card__action span {
    display: none;
  }
}

@media (max-width: 520px) {
  .event-hub-actions a,
  .event-hub-actions__link,
  .event-hub-stage-switcher__tab,
  .event-hub-subswitcher__tab {
    flex: 0 0 auto;
    min-width: clamp(7.25rem, 34vw, 10.5rem);
    max-width: min(14rem, 82vw);
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
  }

  .event-hub-actions {
    padding-block: 0.44rem;
  }

  .event-hub-discipline-chip {
    min-width: auto;
    max-width: none;
    padding-inline: 0.64rem;
    white-space: nowrap;
    text-align: left;
  }

  .event-hub-discipline-chip span {
    max-width: 8.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* Final competitions page IA: keep the public index clean and non-labyrinthine. */
.page-hero--competitions {
  min-height: clamp(230px, 34vh, 360px);
}

.page-hero--competitions .page-hero__content {
  padding-top: calc(var(--nav-height) + clamp(1.15rem, 3vw, 2.25rem));
  padding-bottom: clamp(1.35rem, 3.4vw, 2.5rem);
}

.page-hero--competitions h1 {
  font-size: clamp(2.65rem, 5.3vw, 4.8rem);
}

.competition-family-directory--router .competition-family-card--line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.65rem 1rem;
  align-items: center;
  padding: clamp(0.9rem, 2vw, 1.1rem);
  border-radius: 10px;
  border: 1px solid rgba(9, 30, 82, 0.1);
  background: linear-gradient(90deg, rgba(255,255,255,0.98), rgba(248,250,253,0.94));
  box-shadow: none;
}

.competition-family-directory--router .competition-family-card--line::before {
  display: none;
}

.competition-family-directory--router .competition-family-card--flagship {
  border-left: 3px solid var(--color-secondary);
}

.competition-family-directory--router .competition-family-card__main {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.25rem 0.8rem;
  align-items: center;
  color: inherit;
  text-decoration: none;
}

.competition-family-directory--router .competition-family-card__eyebrow {
  grid-column: 1;
  justify-self: start;
  min-height: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--color-secondary-dark);
  font-size: 0.66rem;
  letter-spacing: 0.075em;
}

.competition-family-directory--router .competition-family-card h3 {
  grid-column: 1;
  margin: 0;
  font-size: clamp(1.15rem, 2vw, 1.48rem);
  line-height: 1.1;
}

.competition-family-directory--router .competition-family-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
}

.competition-family-directory--router .competition-family-card__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.34rem 0.55rem;
  border: 1px solid rgba(9, 30, 82, 0.08);
  border-radius: 6px;
  background: rgba(255,255,255,0.82);
  color: rgba(17, 38, 95, 0.82);
  font-size: 0.7rem;
  font-weight: 850;
}

.competition-family-directory--router .competition-family-card__actions {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.9rem;
  margin-top: 0;
  padding-top: 0.58rem;
  border-top: 1px solid rgba(9, 30, 82, 0.065);
}

@media (max-width: 860px) {
  .competition-family-directory--router .competition-family-card--line {
    grid-template-columns: 1fr;
  }

  .competition-family-directory--router .competition-family-card__meta {
    justify-content: flex-start;
  }
}

@media (max-width: 560px) {
  .page-hero--competitions {
    min-height: 346px;
  }

  .page-hero--competitions .page-hero__content {
    padding-top: calc(var(--nav-height-scrolled) + 1.2rem);
    padding-bottom: 1.35rem;
  }

  .page-hero--competitions h1 {
    font-size: clamp(2.65rem, 13vw, 3.4rem);
  }

  .competition-family-directory--router .competition-family-card--line {
    padding: 0.85rem;
  }

  .competition-family-directory--router .competition-family-card__actions {
    flex-direction: row;
    align-items: center;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .competition-family-directory--router .competition-family-card__actions::-webkit-scrollbar {
    display: none;
  }
}

/* Final nav brand sizing: keep the SFE mark readable, especially on mobile. */
.nav__logo img,
.nav.scrolled .nav__logo img {
  width: auto;
  height: 78px;
}

@media (max-width: 768px) {
  .nav__logo {
    gap: 0.85rem;
  }

  .nav__logo img,
  .nav.scrolled .nav__logo img {
    width: auto;
    height: 88px;
  }
}

@media (max-width: 430px) {
  .nav__logo img,
  .nav.scrolled .nav__logo img {
    height: 82px;
  }
}

/* Mobile hero reel: make the image gallery visibly alive without overwhelming the hero. */
@media (max-width: 768px) {
  .hero--home .hero__portrait-rail {
    animation-name: heroPortraitMobileDrift;
    animation-duration: 12s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-direction: alternate;
  }

  .hero--home .hero__portrait-rail--two {
    animation-duration: 14s;
    animation-direction: alternate-reverse;
  }

  .hero--home .hero__portrait-rail--three {
    animation-duration: 16s;
  }
}

@keyframes heroPortraitMobileDrift {
  from {
    transform: translate3d(0, -0.25rem, 0);
  }
  to {
    transform: translate3d(0, -8rem, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__portrait-rail,
  .hero--home .hero__portrait-rail {
    animation: none !important;
    transform: none !important;
  }
}

/* ============================================================
   PREVIEW STYLE SYSTEM — final cascade layer
   Applied 2026-06-09 to match home-preview.html visual language.
   These rules sit last so they win over all earlier .btn definitions
   in this large legacy file without needing !important.
   ============================================================ */

/* --- Button base reset --- */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.8rem 1.65rem;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.005em;
  line-height: 1;
  border-radius: 11px;
  border: 1px solid transparent;
  font-family: var(--font-family);
  text-transform: none;
  white-space: nowrap;
  cursor: pointer;
  transition:
    transform 0.18s cubic-bezier(0.2, 0.7, 0.3, 1),
    box-shadow 0.22s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.btn:active {
  transform: translateY(0.5px) !important;
}

.btn svg {
  width: 1.05em;
  height: 1.05em;
  flex-shrink: 0;
}

/* --- Primary (solid navy) --- */
.btn--primary {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: transparent;
  box-shadow: 0 1px 2px rgba(7, 15, 43, 0.2), 0 6px 18px -6px rgba(11, 29, 81, 0.5);
}

.btn--primary:hover {
  background: #0d2563;
  border-color: transparent;
  color: var(--color-white);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(7, 15, 43, 0.22), 0 12px 28px -8px rgba(11, 29, 81, 0.55);
}

/* --- Secondary / Gold (flat gold, main CTA) --- */
.btn--secondary {
  background: var(--color-secondary);
  color: #070F2B;
  border-color: transparent;
  font-weight: 700;
  box-shadow: 0 1px 2px rgba(120, 90, 20, 0.2), 0 6px 18px -6px rgba(168, 138, 58, 0.5);
}

.btn--secondary:hover {
  background: var(--color-secondary-light);
  border-color: transparent;
  color: #070F2B;
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(120, 90, 20, 0.22), 0 14px 28px -8px rgba(168, 138, 58, 0.55);
}

/* --- Outline (on light backgrounds) --- */
.btn--outline {
  background: var(--color-white);
  color: var(--color-primary);
  border-color: var(--color-border);
  box-shadow: 0 1px 2px rgba(11, 29, 81, 0.05);
}

.btn--outline:hover {
  background: #fafbfd;
  border-color: var(--color-primary);
  color: var(--color-primary);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(11, 29, 81, 0.08);
}

/* --- Outline-light / Ghost (on dark backgrounds) --- */
.btn--outline-light {
  background: rgba(255, 255, 255, 0.08);
  color: var(--color-white);
  border-color: rgba(255, 255, 255, 0.22);
  box-shadow: none;
}

.btn--outline-light:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.45);
  color: var(--color-white);
  transform: translateY(-1px);
  box-shadow: none;
}

/* --- White (light bg on dark sections) --- */
.btn--white {
  background: rgba(255, 255, 255, 0.96);
  color: var(--color-primary);
  border-color: rgba(255, 255, 255, 0.92);
  box-shadow: 0 1px 2px rgba(11, 29, 81, 0.08);
}

.btn--white:hover {
  background: var(--color-white);
  color: var(--color-primary);
  border-color: var(--color-white);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(11, 29, 81, 0.14);
}

/* --- Ghost (transparent) --- */
.btn--ghost {
  background: transparent;
  color: var(--color-primary);
  border-color: transparent;
  box-shadow: none;
}

.btn--ghost:hover {
  background: rgba(11, 29, 81, 0.05);
  box-shadow: none;
  transform: translateY(-1px);
}

/* --- Size variants --- */
.btn--sm {
  padding: 0.5rem 1rem;
  font-size: 0.78rem;
  border-radius: 8px;
  min-height: auto;
}

.btn--lg {
  padding: 1rem 2rem;
  font-size: 0.95rem;
  border-radius: 13px;
  min-height: auto;
}

/* --- Focus ring --- */
.btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--color-white), 0 0 0 5px var(--color-secondary);
}

/* --- Nav login CTA override to match --- */
.nav__login-cta {
  text-transform: none;
  font-weight: 600;
  letter-spacing: 0.01em;
  border-radius: 8px;
}

/* --- Hero eyebrow: pill with gold dot --- */
.hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 7px 15px;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: var(--radius-full);
  color: rgba(220, 230, 255, 0.85);
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: var(--space-lg);
}

.hero__eyebrow::before {
  content: '';
  flex-shrink: 0;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-secondary);
  box-shadow: 0 0 0 4px rgba(197, 164, 78, 0.22);
}

/* --- Hero title: calmer scale --- */
.hero__title {
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -0.03em;
  text-shadow: 0 6px 28px rgba(0, 0, 0, 0.28);
}

/* --- Section kicker labels --- */
.section-kicker {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-secondary-dark);
  margin-bottom: 8px;
}

/* Section link ("All events →") */
.section-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.18s ease;
  white-space: nowrap;
  flex-shrink: 0;
}

.section-link:hover {
  border-color: var(--color-secondary);
}

.section-link svg {
  width: 0.9em;
  height: 0.9em;
  flex-shrink: 0;
}

/* --- Event cards: clean white on light background --- */
.event-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 1.4rem;
  box-shadow: 0 2px 12px rgba(11, 29, 81, 0.05);
  transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.event-card:hover {
  background: var(--color-white);
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(11, 29, 81, 0.1);
  border-color: rgba(11, 29, 81, 0.14);
}

.event-card__date {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-secondary-dark);
  background: none;
  padding: 0;
  border-radius: 0;
  margin-bottom: 0.6rem;
}

.event-card__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.3;
  margin-bottom: 0.45rem;
}

.event-card__location {
  font-size: 0.82rem;
  color: var(--color-text-secondary);
  margin-bottom: 0.6rem;
}

.event-card__type {
  border: 1px solid var(--color-border);
  color: var(--color-text-secondary);
}

.event-card__action {
  color: var(--color-primary);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.82rem;
}

/* --- Member pills (rendered by updated renderMemberFlags) --- */
.member-pill {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 16px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--color-white);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--color-text-primary);
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(11, 29, 81, 0.04);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.member-pill:hover {
  border-color: var(--color-primary);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(11, 29, 81, 0.08);
}

.member-pill__flag {
  font-size: 1.1rem;
  line-height: 1;
}

/* --- federations-slider layout for pills --- */
.federations-slider {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  padding: var(--space-lg) 0;
}

/* --- Section header layout (kicker + title | link) --- */
.section-header--home {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-lg);
  text-align: left;
  margin-bottom: var(--space-2xl);
}

/* --- Nav: always has backdrop on home --- */
.nav {
  background: rgba(7, 15, 43, 0.92);
  backdrop-filter: blur(16px) saturate(1.4);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
}

/* Keep scrolled state slightly stronger */
.nav.scrolled {
  background: rgba(7, 15, 43, 0.97);
}

/* --- News card: calmer shadow/hover --- */
.news-card:hover {
  box-shadow: 0 8px 28px rgba(11, 29, 81, 0.1);
  border-color: rgba(11, 29, 81, 0.12);
  transform: translateY(-2px);
}

/* --- Rankings: elegant institutional redesign --- */

/* ── Podium banner: compact editorial leaders strip ── */
.ranking-podium {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 1.1rem;
  padding: clamp(1.15rem, 2.4vw, 1.7rem) clamp(1.15rem, 2.6vw, 2rem);
  border: 1px solid rgba(197, 164, 78, 0.22);
  border-radius: 18px;
  background: linear-gradient(120deg, #070f2b 0%, #0b1d51 58%, #11296b 100%);
  color: var(--color-white);
  box-shadow: 0 2px 4px rgba(7,15,43,.16), 0 22px 54px -16px rgba(7,15,43,.42);
}

/* Gold hairline top + soft corner glow */
.ranking-podium::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 46% 60% at 100% 0%, rgba(197,164,78,.12) 0%, transparent 68%),
    linear-gradient(90deg, transparent 4%, rgba(197,164,78,.5) 50%, transparent 96%);
  background-repeat: no-repeat;
  background-size: 100% 100%, 100% 1px;
  pointer-events: none;
}

.ranking-podium__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.ranking-podium__kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--color-secondary);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.ranking-podium__kicker::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--color-secondary);
  box-shadow: 0 0 0 3px rgba(197, 164, 78, 0.22);
}

.ranking-podium__head h2 {
  margin: 0.3rem 0 0;
  color: var(--color-white);
  font-size: clamp(1.35rem, 2.6vw, 1.8rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.05;
}

.ranking-podium__event {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: rgba(255, 255, 255, 0.62);
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  transition: color 0.2s ease;
}

.ranking-podium__event svg {
  width: 14px;
  height: 14px;
  transition: transform 0.2s ease;
}

.ranking-podium__event:hover {
  color: var(--color-secondary);
}

.ranking-podium__event:hover svg {
  transform: translateX(3px);
}

/* Two leaders side by side, split by hairline */
.ranking-podium__leaders {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.ranking-podium__leader {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.15rem 1.4rem 1.15rem 0.4rem;
  min-width: 0;
}

.ranking-podium__leader + .ranking-podium__leader {
  padding-left: 1.6rem;
  border-left: 1px solid rgba(255, 255, 255, 0.08);
}

/* Stretched link: whole half clicks through to the ranking view */
.ranking-podium__stretch {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: 10px;
  transition: background 0.25s ease;
}

.ranking-podium__leader:hover .ranking-podium__stretch {
  background: rgba(255, 255, 255, 0.035);
}

/* Giant translucent "1" watermark */
.ranking-podium__bignum {
  position: absolute;
  right: 0.4rem;
  bottom: -2.4rem;
  z-index: 0;
  color: rgba(255, 255, 255, 0.045);
  font-size: 9.5rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.06em;
  pointer-events: none;
  user-select: none;
}

.ranking-podium__avatar-wrap {
  position: relative;
  flex: 0 0 auto;
}

.ranking-podium__avatar,
.ranking-podium__avatar.athlete-avatar--fallback {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 2px solid rgba(197, 164, 78, 0.7);
  box-shadow: 0 0 0 4px rgba(197, 164, 78, 0.12);
  object-fit: cover;
}

.ranking-podium__avatar.athlete-avatar--fallback span {
  font-size: 1.15rem;
  font-weight: 800;
}

.ranking-podium__avatar.athlete-avatar--fallback small {
  display: none;
}

.ranking-podium__medal {
  position: absolute;
  right: -5px;
  bottom: -5px;
  display: grid;
  place-items: center;
  width: 1.45rem;
  height: 1.45rem;
  border: 2px solid #0b1d51;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-secondary-light), var(--color-secondary));
  color: #070f2b;
  font-size: 0.68rem;
  font-weight: 900;
}

.ranking-podium__who {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
  flex: 1;
}

.ranking-podium__label {
  color: rgba(197, 164, 78, 0.92);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.ranking-podium__name {
  position: relative;
  z-index: 2;
  width: fit-content;
  max-width: 100%;
  overflow: hidden;
  color: var(--color-white);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.15;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.ranking-podium__name:hover {
  color: var(--color-secondary);
}

.ranking-podium__country {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.78rem;
  font-weight: 600;
}

.ranking-podium__points {
  position: relative;
  z-index: 0;
  display: grid;
  gap: 0.1rem;
  justify-items: end;
  text-align: right;
  flex: 0 0 auto;
}

.ranking-podium__points strong {
  color: var(--color-secondary);
  font-size: clamp(1.5rem, 2.6vw, 1.95rem);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: -0.01em;
}

.ranking-podium__points small {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Foot: quiet text links + stat line */
.ranking-podium__foot {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.9rem;
  flex-wrap: wrap;
}

.ranking-podium__links {
  display: flex;
  gap: 1.3rem;
}

.ranking-podium__links a {
  position: relative;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  transition: color 0.2s ease;
}

.ranking-podium__links a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -3px;
  height: 1px;
  background: var(--color-secondary);
  transition: right 0.25s ease;
}

.ranking-podium__links a:hover {
  color: var(--color-secondary);
}

.ranking-podium__links a:hover::after {
  right: 0;
}

.ranking-podium__stats {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.74rem;
}

.ranking-podium__stats strong {
  color: rgba(255, 255, 255, 0.85);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

/* Podium mobile: stack leaders, tighten rhythm */
@media (max-width: 720px) {
  .ranking-podium {
    gap: 0.9rem;
    border-radius: 16px;
  }

  .ranking-podium__leaders {
    grid-template-columns: 1fr;
  }

  .ranking-podium__leader {
    padding: 1rem 0.2rem;
  }

  .ranking-podium__leader + .ranking-podium__leader {
    padding-left: 0.2rem;
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
  }

  .ranking-podium__bignum {
    font-size: 7rem;
    bottom: -1.8rem;
  }

  .ranking-podium__avatar,
  .ranking-podium__avatar.athlete-avatar--fallback {
    width: 48px;
    height: 48px;
  }

  .ranking-podium__avatar.athlete-avatar--fallback span {
    font-size: 1rem;
  }

  .ranking-podium__points strong {
    font-size: 1.4rem;
  }

  .ranking-podium__event {
    font-size: 0.72rem;
  }

  .ranking-podium__foot {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.6rem;
  }
}

/* Filters: search breathes full width now that metrics are gone */
.ranking-filter-primary {
  grid-template-columns: minmax(0, 1fr);
}

/* Discipline tabs: clean, readable */
.ranking-tabs {
  padding: 0.5rem;
  border-radius: 16px;
  box-shadow: 0 6px 24px rgba(11, 29, 81, 0.07);
}

.ranking-tabs .tab {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 11px;
  color: var(--color-primary);
  padding: 0.7rem 0.95rem;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.ranking-tabs .tab:hover:not(.active) {
  background: rgba(11, 29, 81, 0.05);
  border-color: transparent;
}

.ranking-tabs .tab.active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  box-shadow: 0 4px 14px rgba(11, 29, 81, 0.22);
}

.ranking-tab__code {
  border-radius: 9px;
  background: rgba(11, 29, 81, 0.07);
  font-size: 0.82rem;
}

/* Panel header: calm editorial heading */
.ranking-discipline-header h3 {
  font-size: clamp(1.45rem, 2.6vw, 1.9rem);
  font-weight: 800;
  letter-spacing: -0.02em;
}

.ranking-discipline-header__meta {
  border: 1px solid var(--color-border);
  border-radius: 12px;
  background: var(--color-white);
  box-shadow: none;
}

/* Table: airy, precise, quiet */
.ranking-table-wrapper {
  border: 1px solid var(--color-border);
  border-radius: 16px;
  box-shadow: 0 10px 32px rgba(11, 29, 81, 0.06);
}

.ranking-table th {
  background: var(--color-primary);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

.ranking-table td {
  padding-top: 1.05rem;
  padding-bottom: 1.05rem;
  border-bottom: 1px solid rgba(9, 30, 82, 0.05);
}

.ranking-row:last-child td {
  border-bottom: none;
}

.ranking-row:hover td {
  background: rgba(197, 164, 78, 0.045);
}

.ranking-athlete__link {
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--color-primary);
  text-decoration: none;
}

.ranking-athlete__link:hover {
  color: var(--color-secondary-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ranking-points {
  font-size: 1.08rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.ranking-points-cell {
  gap: 0.3rem;
}

.ranking-points-bar {
  height: 4px;
  background: rgba(11, 29, 81, 0.06);
}

.ranking-points-bar::before {
  background: linear-gradient(90deg, var(--color-secondary), var(--color-secondary-light));
}

.ranking-table__events strong {
  font-size: 0.95rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* Podium: quiet gold left accent, no loud backgrounds */
.ranking-row--podium td {
  background: linear-gradient(90deg, rgba(197,164,78,.06), transparent 30%);
}

.ranking-row--podium:hover td {
  background: linear-gradient(90deg, rgba(197,164,78,.09), rgba(197,164,78,.04) 30%);
}

/* Pagination: subtle pills */
.ranking-pagination__button {
  border-radius: 9px;
  font-weight: 600;
}

.ranking-pagination__button.is-active {
  background: var(--color-primary);
  color: var(--color-white);
}

/* ============================================================
   GLOBAL HERO COMPACTION — applied to every page
   ============================================================ */

/* Shorter, vertically centred hero on all pages */
.page-hero {
  display: flex;
  align-items: center;
  min-height: clamp(180px, 28vh, 310px);
}

.page-hero .container {
  width: 100%;
}

.page-hero__content {
  padding-top: calc(var(--nav-height) + clamp(0.75rem, 1.8vw, 1.5rem));
  padding-bottom: clamp(1.2rem, 2.5vw, 2rem);
}

/* ============================================================
   RANKINGS PAGE POLISH
   ============================================================ */

/* 1. Remove checkerboard grid overlay */
/* The grid lives in the section background shorthand (line 15793) AND in ::before */
.rankings-system-section {
  background: linear-gradient(180deg, #FFFFFF 0%, #F7F9FC 48%, #EEF3F9 100%) !important;
  background-size: auto !important;
}

.rankings-system-section::before {
  display: none !important;
}

/* 2. Rankings hero: centred text, larger font */
.page-hero--rankings {
  min-height: clamp(180px, 26vh, 290px);
  text-align: center;
}

.page-hero--rankings .page-hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: calc(var(--nav-height) + 0.5rem);
  padding-bottom: 1.5rem;
}

.page-hero--rankings h1 {
  font-size: clamp(2.4rem, 5.5vw, 4.4rem);
  font-weight: 920;
  letter-spacing: -0.02em;
  line-height: 1;
  max-width: none;
  margin-top: 0.3rem;
  margin-bottom: 0.4rem;
}

.page-hero--rankings p {
  max-width: 480px;
  text-align: center;
  margin-top: 0;
}

/* 3. Discipline selector: use the mobile select everywhere, hide tab bar */
.ranking-tabs {
  display: none !important;
}

.ranking-tabs-mobile {
  display: block;
  margin-bottom: 0;
}

.ranking-tabs-mobile__field {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.ranking-tabs-mobile__label {
  white-space: nowrap;
}

.ranking-tabs-mobile__field select {
  min-height: 46px;
  font-size: 0.9rem;
  font-weight: 700;
  border-radius: 14px;
  padding-left: 1rem;
}

/* 4. Collapsible filter bar */
.ranking-filters {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  border-radius: 0;
}

.ranking-filters__bar {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}

.ranking-filters__search {
  flex: 1;
}

.ranking-filters__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  height: 46px;
  padding: 0 1rem;
  border: 1px solid rgba(9, 30, 82, 0.12);
  border-radius: 14px;
  background: #fff;
  color: var(--color-primary);
  font-size: 0.82rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color 0.18s, background 0.18s;
}

.ranking-filters__toggle:hover {
  border-color: var(--color-secondary);
  background: rgba(197, 164, 78, 0.05);
}

.ranking-filters__toggle[aria-expanded="true"] {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: #fff;
}

.ranking-filters__toggle svg {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
}

.ranking-filters__chevron {
  width: 14px !important;
  height: 14px !important;
  transition: transform 0.2s ease;
}

.ranking-filters__toggle[aria-expanded="true"] .ranking-filters__chevron {
  transform: rotate(180deg);
}

.ranking-filters__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 99px;
  background: var(--color-secondary);
  color: var(--color-primary);
  font-size: 0.7rem;
  font-weight: 900;
  line-height: 1;
}

.ranking-filters__panel {
  margin-top: 0.5rem;
  padding: 1rem;
  border: 1px solid rgba(9, 30, 82, 0.1);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(11, 29, 81, 0.06);
}

.ranking-filters__grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 0.6rem;
  align-items: end;
}

.ranking-filters__grid label {
  display: grid;
  gap: 0.25rem;
}

.ranking-filters__grid label span {
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--color-text-light);
}

.ranking-filters__grid select {
  width: 100%;
  min-height: 42px;
  padding: 0 0.75rem;
  border: 1px solid rgba(9, 30, 82, 0.12);
  border-radius: 10px;
  background: var(--color-background);
  color: var(--color-primary);
  font: inherit;
  font-size: 0.84rem;
  font-weight: 700;
}

.ranking-filters__reset {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  height: 42px;
  padding: 0 0.9rem;
  border: 1px solid rgba(9, 30, 82, 0.12);
  border-radius: 10px;
  background: rgba(9, 30, 82, 0.03);
  color: var(--color-text-light);
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.ranking-filters__reset:hover {
  background: rgba(9, 30, 82, 0.08);
  color: var(--color-primary);
}

.ranking-filters__reset svg {
  width: 13px;
  height: 13px;
}

/* 5. Panel header: compact — hide description, shrink title */
.ranking-discipline-header {
  padding-block: 0.75rem 0.6rem;
}

.ranking-discipline-header h3 {
  font-size: clamp(0.9rem, 1.5vw, 1.05rem) !important;
  font-weight: 800;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  margin-bottom: 0;
}

.ranking-discipline-header p {
  display: none !important;
}

.ranking-discipline-header .news-card__category {
  font-size: 0.6rem;
  opacity: 0.7;
}

/* 6. Mobile cards: more compact */
.ranking-mobile-card {
  padding: 0.75rem 0.9rem;
  gap: 0.6rem;
}

.ranking-mobile-card__points strong {
  font-size: 1.05rem;
}

/* 7. Podium: recent events strip */
.ranking-podium__events {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.75rem 1.4rem 0;
}

.ranking-podium__events-label {
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.42);
  margin-right: 0.15rem;
}

.ranking-podium__event-chip {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.72rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}

.ranking-podium__event-chip:hover {
  background: rgba(197, 164, 78, 0.18);
  border-color: rgba(197, 164, 78, 0.5);
  color: var(--color-secondary-light, #e8c96c);
}

/* Mobile adjustments */
@media (max-width: 720px) {
  .ranking-filters__grid {
    grid-template-columns: 1fr 1fr;
  }

  .ranking-filters__reset {
    grid-column: span 2;
    justify-content: center;
  }

  .ranking-podium__events {
    padding: 0.6rem 1rem 0;
  }

  .ranking-tabs-mobile__field {
    flex-direction: column;
    align-items: stretch;
    gap: 0.3rem;
  }
}

/* ============================================================
   LOGIN / REGISTER PAGE POLISH
   ============================================================ */

/* Layout: remove the full-screen takeover, let content breathe */
.portal-auth-layout {
  min-height: calc(100vh - var(--nav-height));
  padding: calc(var(--nav-height) + clamp(1.5rem, 4vw, 3rem)) 0 clamp(2rem, 5vw, 4rem);
}

/* Grid: tighter gap */
.portal-auth-layout__grid {
  gap: clamp(1.5rem, 4vw, 3.5rem);
}

/* Left copy: compact heading */
.portal-auth-copy h1 {
  font-size: clamp(2rem, 4.5vw, 2.8rem);
  line-height: 1.05;
  max-width: 14ch;
}

.portal-auth-copy p {
  font-size: 0.95rem;
  line-height: 1.65;
}

/* Support cards: quieter, less padding */
.portal-auth-support-card {
  gap: 0.6rem;
  padding: 0.85rem 1rem;
}

/* Auth card stack: no extra gap */
.portal-auth-stack {
  display: grid;
  gap: 0.65rem;
}

/* Main auth card: generous but not overwhelming */
.portal-auth-card,
.portal-setup-panel,
.portal-gate {
  padding: clamp(1.1rem, 2.5vw, 1.6rem);
  gap: 0.85rem;
  border-radius: 20px;
  box-shadow: 0 16px 48px rgba(7, 20, 50, 0.14), 0 2px 8px rgba(7, 20, 50, 0.08);
}

/* Card heading: form-level title, not hero title */
.portal-auth-card h2,
.portal-setup-panel h2,
.portal-gate h2 {
  font-size: clamp(1.05rem, 1.6vw, 1.35rem) !important;
  font-weight: 900;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

/* State strip: compact 3-step indicator */
.portal-auth-state-strip {
  gap: 0.4rem;
}

.portal-auth-state-strip article {
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
}

.portal-auth-state-strip strong {
  font-size: 0.76rem;
}

.portal-auth-state-strip span {
  font-size: 0.66rem;
  line-height: 1.3;
}

/* Route cards: clean and quiet */
.portal-auth-card--quiet {
  background: rgba(248, 250, 253, 0.88);
  box-shadow: none;
  border-color: rgba(9, 30, 82, 0.07);
}

.portal-auth-card--routes {
  padding: 0.75rem;
}

.portal-auth-routes {
  gap: 0.45rem;
}

.portal-auth-route-card {
  gap: 0.25rem;
  padding: 0.7rem 0.85rem;
  border-radius: 12px;
}

.portal-auth-route-card strong {
  font-size: 0.86rem;
}

.portal-auth-route-card p {
  font-size: 0.76rem;
  line-height: 1.4;
}

/* Primary CTA: gold button — matches the brand identity */
.portal-auth-card .btn--primary,
.portal-gate .btn--primary {
  background: var(--color-secondary);
  border-color: var(--color-secondary);
  color: var(--color-primary);
  font-weight: 900;
}

.portal-auth-card .btn--primary:hover,
.portal-gate .btn--primary:hover {
  background: #b89540;
  border-color: #b89540;
  color: var(--color-primary);
}

/* Input: cleaner, consistent with portal style */
.portal-auth-card input,
.portal-auth-card textarea,
.portal-auth-card select {
  min-height: 48px;
  border-radius: 12px;
  border-color: rgba(9, 30, 82, 0.12);
}

/* Hint text: smaller */
.portal-auth-hint {
  font-size: 0.75rem;
  padding: 0.6rem 0.75rem;
  border-radius: 10px;
}

/* Section label: consistent gold kicker */
.portal-auth-card .section-label,
.portal-gate .section-label {
  color: var(--color-secondary);
  font-size: 0.62rem;
  font-weight: 950;
  letter-spacing: 0.1em;
}

/* Mobile: form first, copy below */
@media (max-width: 640px) {
  .portal-auth-layout {
    padding-top: calc(var(--nav-height) + 1rem);
  }

  .portal-auth-card h2,
  .portal-setup-panel h2 {
    font-size: 1.1rem !important;
  }

  .portal-auth-state-strip {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   CONTACT PAGE POLISH
   ============================================================ */

/* Form inputs: match portal style — thinner border, refined focus */
.form-group {
  margin-bottom: clamp(0.75rem, 1.5vw, 1rem);
}

.form-group label {
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--color-text-light);
  margin-bottom: 0.3rem;
}

.form-group input,
.form-group textarea,
.form-group select {
  border: 1px solid rgba(9, 30, 82, 0.14);
  border-radius: 12px;
  padding: 0.78rem 0.9rem;
  font-size: 0.92rem;
  background: rgba(248, 250, 253, 0.9);
  transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
  border-color: rgba(197, 164, 78, 0.65);
  box-shadow: 0 0 0 4px rgba(197, 164, 78, 0.12);
  background: #fff;
}

.form-group textarea {
  min-height: 120px;
}

/* Section title: smaller, cleaner */
.section-title {
  font-size: clamp(1rem, 1.8vw, 1.2rem) !important;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: var(--color-primary);
  margin-bottom: 1rem;
}

/* Contact info icons: more compact */
.contact-info {
  gap: clamp(0.8rem, 2vw, 1.2rem);
}

.contact-info__icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(9, 30, 82, 0.05);
}

.contact-info__icon svg {
  width: 18px;
  height: 18px;
}

/* Contact submit: not full width on desktop */
.contact-form__submit {
  width: auto;
  min-width: 180px;
}

@media (max-width: 640px) {
  .contact-form__submit {
    width: 100%;
  }
}

/* ============================================================
   END PREVIEW STYLE SYSTEM
   ============================================================ */
