/* Strava-inspired design system — Sportovní výzvy */

*,
*::before,
*::after {
  box-sizing: border-box;
}

:root {
  --brand: #fc4c02;
  --brand-hover: #e34402;
  --brand-soft: rgba(252, 76, 2, 0.14);
  --accent-link: #fb923c;
  --text: #e8eef8;
  --text-soft: #cbd5e1;
  --text-muted: #94a3b8;
  --bg-page: #070d18;
  --bg-card: #111827;
  --bg-card-gradient: linear-gradient(180deg, rgba(17, 24, 39, 0.96), rgba(15, 23, 42, 0.98));
  --bg-elevated: rgba(2, 6, 23, 0.55);
  --bg-input: #111827;
  --bg-header: rgba(2, 6, 23, 0.4);
  --bg-table-head: rgba(2, 6, 23, 0.45);
  --bg-hover: rgba(148, 163, 184, 0.08);
  --border: rgba(148, 163, 184, 0.14);
  --border-strong: rgba(148, 163, 184, 0.25);
  --alert-success-bg: rgba(34, 197, 94, 0.12);
  --alert-success-border: rgba(74, 222, 128, 0.35);
  --alert-success-text: #86efac;
  --alert-error-bg: rgba(239, 68, 68, 0.12);
  --alert-error-border: rgba(248, 113, 113, 0.35);
  --alert-error-text: #fca5a5;
  --alert-info-bg: rgba(59, 130, 246, 0.12);
  --alert-info-border: rgba(96, 165, 250, 0.35);
  --alert-info-text: #93c5fd;
  --alert-warning-bg: rgba(245, 158, 11, 0.12);
  --alert-warning-border: rgba(251, 191, 36, 0.35);
  --alert-warning-text: #fcd34d;
  --badge-live-text: #fdba74;
  --badge-soon-bg: rgba(59, 130, 246, 0.16);
  --badge-soon-text: #93c5fd;
  --badge-neutral-bg: rgba(148, 163, 184, 0.16);
  --badge-neutral-text: #cbd5e1;
  --ink: var(--text);
  --ink-soft: var(--text-soft);
  --ink-muted: var(--text-muted);
  --surface: var(--bg-card);
  --surface-muted: var(--bg-page);
  --surface-line: var(--border);
  --strava: #fc4c02;
  --strava-hover: #e34402;
  --fitnesssyncer: #0d7ea7;
  --fitnesssyncer-hover: #0b6d8f;
  --google-health: #4285f4;
  --google-health-hover: #3367d6;
  --radius-sm: 0.5rem;
  --radius-md: 0.75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.25rem;
  --site-header-bg: rgba(8, 14, 28, 0.92);
  --site-header-fg: #fff;
  --site-nav-link: rgba(255, 255, 255, 0.82);
  --site-nav-link-hover-bg: rgba(255, 255, 255, 0.08);
  --site-nav-accent: #fff;
  --site-breadcrumb: rgba(255, 255, 255, 0.65);
  --site-breadcrumb-link: rgba(255, 255, 255, 0.82);
  --site-mobile-chip-border: rgba(255, 255, 255, 0.18);
  --site-mobile-chip-bg: rgba(255, 255, 255, 0.08);
  --site-mobile-chip-fg: #fff;
  --site-menu-toggle-border: rgba(255, 255, 255, 0.18);
  --site-menu-toggle-bg: rgba(255, 255, 255, 0.08);
  --site-menu-toggle-fg: #fff;
  --color-scheme: dark;
  color-scheme: dark;
  --site-header-sticky-height: 4.25rem;
  --shadow-sm: 0 4px 16px rgba(2, 6, 23, 0.18);
  --shadow-md: 0 8px 24px rgba(2, 6, 23, 0.35);
  --shadow-lg: 0 8px 32px rgba(2, 6, 23, 0.45);
  --shadow-xl: 0 16px 40px rgba(2, 6, 23, 0.55);
  --overlay-backdrop: rgba(2, 6, 23, 0.72);
  --surface-panel: rgba(15, 23, 42, 0.42);
  --surface-panel-border: rgba(148, 163, 184, 0.18);
  --surface-chip: rgba(148, 163, 184, 0.14);
  --surface-chip-hover: rgba(148, 163, 184, 0.22);
  --surface-floating: rgba(2, 6, 23, 0.62);
  --surface-floating-hover: rgba(2, 6, 23, 0.82);
  --surface-floating-fg: #fff;
  --surface-badge: rgba(15, 23, 42, 0.82);
  --surface-badge-fg: #fff;
  --surface-media: rgba(148, 163, 184, 0.08);
  --dot-inactive: rgba(148, 163, 184, 0.35);
  --table-rank: var(--text-muted);
  --hub-badge-active-bg: rgba(34, 197, 94, 0.18);
  --hub-badge-active-text: #86efac;
  --hub-badge-upcoming-bg: rgba(59, 130, 246, 0.18);
  --hub-badge-upcoming-text: #93c5fd;
  --dashboard-card-bg: linear-gradient(180deg, rgba(17, 24, 39, 0.96), rgba(15, 23, 42, 0.98));
  --dashboard-heading: #fff;
  --dashboard-body: #e2e8f0;
  --dashboard-muted: #94a3b8;
  --dashboard-subtle: #cbd5e1;
  --dashboard-select-bg: #111827;
  --dashboard-topbar-shadow: 0 10px 28px -18px rgba(0, 0, 0, 0.55);
  --dashboard-tile-bg: var(--surface-muted);
  --app-tab-bar-bg: #152a45;
  --app-tab-bar-edge: rgba(0, 0, 0, 0.32);
  --app-tab-fg: rgba(255, 255, 255, 0.9);
  --app-tab-hover-bg: rgba(255, 255, 255, 0.08);
  --app-tab-active-bg: var(--brand);
  --app-tab-active-fg: #ffffff;
  --app-tab-divider: rgba(255, 255, 255, 0.16);
  --selection-bar-bg: #8e9399;
  --selection-pill-bg: #eef0f3;
  --selection-pill-fg: #2f3338;
}

@media (max-width: 767px) {
  :root {
    --site-header-sticky-height: max(3.5rem, calc(env(safe-area-inset-top, 0px) + 2.85rem));
  }
}

html[data-theme="light"] {
  --brand-soft: #fff4ef;
  --accent-link: var(--brand);
  --text: #1a1a1e;
  --text-soft: #2f3338;
  --text-muted: #52525c;
  --bg-page: #f7f7fa;
  --bg-card: #ffffff;
  --bg-card-gradient: #ffffff;
  --bg-elevated: #ffffff;
  --bg-input: #ffffff;
  --bg-header: linear-gradient(180deg, #fafafa 0%, #fff 100%);
  --bg-table-head: #fafafa;
  --bg-hover: #fafafa;
  --border: #e8e8ed;
  --border-strong: #d1d5db;
  --alert-success-bg: #f0fdf4;
  --alert-success-border: #bbf7d0;
  --alert-success-text: #166534;
  --alert-error-bg: #fef2f2;
  --alert-error-border: #fecaca;
  --alert-error-text: #991b1b;
  --alert-info-bg: #eff6ff;
  --alert-info-border: #bfdbfe;
  --alert-info-text: #1e40af;
  --alert-warning-bg: #fffbeb;
  --alert-warning-border: #fde68a;
  --alert-warning-text: #92400e;
  --badge-live-text: #c93d00;
  --badge-soon-bg: #eff6ff;
  --badge-soon-text: #1d4ed8;
  --badge-neutral-bg: #f3f4f6;
  --badge-neutral-text: #374151;
  --ink: var(--text);
  --ink-soft: var(--text-soft);
  --ink-muted: var(--text-muted);
  --surface: var(--bg-card);
  --surface-muted: var(--bg-page);
  --surface-line: var(--border);
  --site-header-bg: rgba(255, 255, 255, 0.92);
  --site-header-fg: var(--text);
  --site-nav-link: var(--text-soft);
  --site-nav-link-hover-bg: var(--bg-hover);
  --site-nav-accent: var(--text);
  --site-breadcrumb: var(--text-muted);
  --site-breadcrumb-link: var(--text-soft);
  --site-mobile-chip-border: var(--border);
  --site-mobile-chip-bg: var(--bg-hover);
  --site-mobile-chip-fg: var(--text);
  --site-menu-toggle-border: var(--border);
  --site-menu-toggle-bg: var(--bg-hover);
  --site-menu-toggle-fg: var(--text);
  --color-scheme: light;
  color-scheme: light;
  --shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 6px 18px rgba(15, 23, 42, 0.08);
  --shadow-lg: 0 8px 24px rgba(15, 23, 42, 0.1);
  --shadow-xl: 0 12px 32px rgba(15, 23, 42, 0.12);
  --overlay-backdrop: rgba(15, 23, 42, 0.45);
  --surface-panel: #ffffff;
  --surface-panel-border: var(--border);
  --surface-chip: #f3f4f6;
  --surface-chip-hover: #e8e8ed;
  --surface-floating: rgba(255, 255, 255, 0.96);
  --surface-floating-hover: #ffffff;
  --surface-floating-fg: var(--text);
  --surface-badge: rgba(36, 36, 40, 0.88);
  --surface-badge-fg: #fff;
  --surface-media: #f3f4f6;
  --dot-inactive: #d1d5db;
  --table-rank: #9ca3af;
  --hub-badge-active-bg: #dcfce7;
  --hub-badge-active-text: #166534;
  --hub-badge-upcoming-bg: #dbeafe;
  --hub-badge-upcoming-text: #1d4ed8;
  --dashboard-card-bg: var(--bg-card);
  --dashboard-heading: var(--text);
  --dashboard-body: var(--text-soft);
  --dashboard-muted: var(--text-muted);
  --dashboard-subtle: var(--text-soft);
  --dashboard-select-bg: var(--bg-input);
  --dashboard-topbar-shadow: var(--shadow-sm);
  --dashboard-tile-bg: #eef1f6;
  --app-tab-bar-bg: #e8edf3;
  --app-tab-bar-edge: #d5dde8;
  --app-tab-fg: #3d4a5c;
  --app-tab-hover-bg: rgba(15, 23, 42, 0.06);
  --app-tab-active-bg: var(--brand);
  --app-tab-active-fg: #ffffff;
  --app-tab-divider: rgba(15, 35, 60, 0.14);
  --selection-bar-bg: #e8edf3;
  --selection-pill-bg: #f3f5f8;
  --selection-pill-fg: var(--text-soft);
}

dialog {
  color-scheme: var(--color-scheme);
}

html[data-theme="light"] .page-body .btn-manual,
html[data-theme="light"] .page-body .btn-secondary {
  color: var(--ink);
}

html[data-theme="light"] .page-body .btn-manual {
  background: #242428;
  color: #fff;
}

html[data-theme="light"] .page-body .btn-manual:hover {
  background: #3d3d42;
  color: #fff;
}

html:not([data-theme="light"]) .page-body input[type="date"],
html:not([data-theme="light"]) .page-body input[type="time"],
html:not([data-theme="light"]) .page-body input[type="datetime-local"] {
  color-scheme: dark;
}

html[data-theme="light"] .page-body input[type="date"],
html[data-theme="light"] .page-body input[type="time"],
html[data-theme="light"] .page-body input[type="datetime-local"] {
  color-scheme: light;
}

html[data-theme="light"] body:not(.admin-body) input[type="date"]::-webkit-calendar-picker-indicator,
html[data-theme="light"] body:not(.admin-body) input[type="datetime-local"]::-webkit-calendar-picker-indicator,
html[data-theme="light"] body:not(.admin-body) input[type="time"]::-webkit-calendar-picker-indicator,
html[data-theme="light"] body:not(.admin-body) .form-input[type="date"]::-webkit-calendar-picker-indicator,
html[data-theme="light"] body:not(.admin-body) .form-input[type="datetime-local"]::-webkit-calendar-picker-indicator,
html[data-theme="light"] body:not(.admin-body) .form-input[type="time"]::-webkit-calendar-picker-indicator {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233d3d42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}

body {
  font-family: Inter, system-ui, -apple-system, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.site-nav a.nav-muted {
  opacity: 0.72;
}

.site-breadcrumb-sep {
  margin: 0 0.25rem;
}

.site-breadcrumb-current {
  font-weight: 600;
  color: var(--app-tab-active-fg);
}

.site-breadcrumb {
  color: var(--app-tab-fg);
}

.site-breadcrumb a {
  color: var(--app-tab-fg);
  text-decoration: none;
}

.site-breadcrumb a:hover {
  color: var(--app-tab-active-fg);
}

.nav-muted {
  opacity: 0.72;
}

.page-lead-spaced {
  margin-bottom: 2rem;
}

.page-intro {
  text-align: center;
  margin-bottom: 2rem;
}

.page-intro .page-lead {
  margin-left: auto;
  margin-right: auto;
  max-width: 36rem;
}

.cards-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 1fr);
}

.cards-grid-groups {
  gap: 2rem;
  max-width: 56rem;
  margin-left: auto;
  margin-right: auto;
  align-items: stretch;
}

.group-card {
  height: 100%;
}

@media (min-width: 640px) {
  .cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cards-grid-groups {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
  }
}

@media (min-width: 1024px) {
  .cards-grid:not(.cards-grid-groups) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.group-card .card-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-height: 260px;
  padding: 2rem 2.25rem;
}

.group-card .card-title {
  font-size: 1.625rem;
}

.group-card .card-meta {
  margin-top: auto;
  padding-top: 1.25rem;
  font-size: 0.9375rem;
}

.group-card .card-action {
  margin-top: 0.75rem;
  font-size: 0.9375rem;
  width: 100%;
  text-align: center;
}

.card-title {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
}

.card-interactive:hover .card-title {
  color: var(--brand);
}

.card-subtitle,
.card-meta {
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.card-meta {
  margin-top: 1rem;
}

.card-action {
  display: inline-block;
  margin-top: 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--brand);
}

.group-logo {
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.25rem;
  height: 4.5rem;
  max-width: 220px;
  object-fit: contain;
  object-position: center center;
}

.group-card .group-logo {
  height: 5.75rem;
  max-width: 260px;
  margin-bottom: 0;
}

.group-logo-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 5.75rem;
  margin-bottom: 1rem;
  flex-shrink: 0;
  padding: 0.5rem;
  border-radius: var(--radius-lg);
  background: rgba(148, 163, 184, 0.08);
  border: 1px solid var(--border);
}

.group-logo-slot .group-logo {
  margin-bottom: 0;
  padding: 0.5rem 0.75rem;
  border-radius: calc(var(--radius-lg) - 4px);
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.98) 0%, rgba(226, 232, 240, 0.94) 100%);
  border: 1px solid rgba(148, 163, 184, 0.22);
  box-shadow: 0 4px 16px rgba(2, 6, 23, 0.18);
}

.entity-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.625rem;
  width: 100%;
}

.entity-header > div {
  width: 100%;
  max-width: 40rem;
}

.entity-logo {
  display: block;
  width: auto;
  height: 2.75rem;
  max-width: 132px;
  max-height: 2.75rem;
  margin-left: auto;
  margin-right: auto;
  object-fit: contain;
  object-position: center center;
  -webkit-object-fit: contain;
  padding: 0.375rem 0.5rem;
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: var(--radius-md);
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.98) 0%, rgba(226, 232, 240, 0.94) 100%);
  box-shadow: 0 4px 16px rgba(2, 6, 23, 0.18);
}

/* Náhledy obsahu — pevný rámeček, celý obrázek bez ořezu (mobil i desktop) */
:is(
  .home-news-media,
  .home-news-modal-media,
  .article-card-media,
  .home-hub-tile-card-media,
  .home-hub-article-card-media,
  .dashboard-event-card-media,
  .card-photo-banner,
  .home-tile-banner,
  .site-page-gallery-thumb,
  .dashboard-challenge-detail-dialog-photo,
  .dashboard-race-sidebar-thumb,
  .dashboard-race-featured-thumb,
  .photo-thumb
) {
  display: flex;
  align-items: center;
  justify-content: center;
}

:is(
  .home-news-image,
  .home-news-modal-image,
  .article-card-media img,
  .home-hub-tile-card-image,
  .home-hub-article-card-image,
  .dashboard-event-card-image,
  .card-photo-banner-image,
  .home-tile-banner-image,
  .site-page-gallery-thumb img,
  .site-page-admin-gallery-thumb,
  .admin-news-image-preview,
  .dashboard-challenge-detail-dialog-photo img,
  .dashboard-race-sidebar-thumb img,
  .dashboard-race-featured-thumb img,
  .photo-thumb img,
  .home-tile-image
) {
  object-fit: contain;
  object-position: center;
  -webkit-object-fit: contain;
}

.entity-header .page-title {
  margin: 0;
}

.entity-header .page-lead {
  margin: 0;
}

.challenge-detail-card .card-header {
  padding: 1.5rem 1.25rem;
}

.challenge-detail-card .page-title {
  margin: 0;
}

.alert-title {
  font-weight: 600;
}

.alert-text {
  margin-top: 0.5rem;
  font-size: 0.875rem;
}

.grid {
  display: grid;
}

.gap-6 {
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.shrink-0 {
  flex-shrink: 0;
}

.hover\:text-brand:hover {
  color: var(--brand);
}

.text-xl {
  font-size: 1.25rem;
}

.tracking-tight {
  letter-spacing: -0.025em;
}

.text-ink {
  color: var(--text);
}

.flex-wrap {
  display: flex;
  flex-wrap: wrap;
}

.gap-3 {
  gap: 0.75rem;
}

.gap-4 {
  gap: 1rem;
}

.items-center {
  align-items: center;
}

.items-start {
  align-items: flex-start;
}

.justify-between {
  justify-content: space-between;
}

.space-y-4 > * + * {
  margin-top: 1rem;
}

.space-y-8 > * + * {
  margin-top: 2rem;
}

.mb-4 { margin-bottom: 1rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-8 { margin-top: 2rem; }
.mt-10 { margin-top: 2.5rem; }

.text-sm { font-size: 0.875rem; }
.text-xs { font-size: 0.75rem; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }

.hidden {
  display: none !important;
}

.opacity-50 {
  opacity: 0.5;
}

.opacity-70 {
  opacity: 0.7;
}
.font-medium { font-weight: 500; }
.whitespace-nowrap { white-space: nowrap; }
.max-w-xs { max-width: 20rem; }
.italic { font-style: italic; }
.underline { text-decoration: underline; }

.w-full { width: 100%; }
.mx-auto { margin-left: auto; margin-right: auto; }
.max-w-lg { max-width: 32rem; }
.max-w-3xl { max-width: 48rem; }

.leading-relaxed { line-height: 1.625; }

.list-disc { list-style-type: disc; }

.pl-5 { padding-left: 1.25rem; }

.space-y-1 > * + * { margin-top: 0.25rem; }

.space-y-6 > * + * { margin-top: 1.5rem; }

/* Layout */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--app-tab-bar-bg);
  color: var(--app-tab-fg);
  border-bottom: 2px solid var(--app-tab-bar-edge);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.site-header-inner {
  max-width: 72rem;
  margin: 0 auto;
  padding: 0.875rem 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.site-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--app-tab-active-fg);
  text-decoration: none;
  min-width: 0;
}

.site-logo-text {
  min-width: 0;
  line-height: 1.2;
}

.site-logo:hover {
  color: var(--app-tab-active-fg);
}

.site-logo-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background: var(--brand);
  flex-shrink: 0;
}

.site-header-mobile-account {
  display: none;
}

.site-nav-mobile-account-links {
  display: none;
}

.site-header-account {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex: 0 0 auto;
  max-width: 11rem;
  padding: 0.375rem 0.625rem;
  border-radius: 0;
  color: var(--app-tab-fg);
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
  transition: color 0.15s, background 0.15s;
}

.site-header-account-item {
  display: none;
  position: relative;
  flex: 0 0 auto;
  order: 98;
}

.site-header-account-item > .site-header-account-parent-row {
  gap: 0;
  min-height: 2.75rem;
  padding: 0 0.35rem 0 0.5rem;
  border-radius: 0;
  transition: background 0.15s ease, color 0.15s ease;
}

.site-header-account-item:hover > .site-header-account-parent-row,
.site-header-account-item:focus-within > .site-header-account-parent-row {
  background: var(--app-tab-hover-bg);
}

.site-header-account-item .site-header-account {
  padding: 0.65rem 0.5rem 0.65rem 0.25rem;
  max-width: 11rem;
}

.site-header-account-parent-row {
  display: inline-flex;
  align-items: center;
  gap: 0.125rem;
}

.site-header-account-item .site-nav-submenu-caret {
  margin-right: 0.125rem;
}

.site-header-account-submenu {
  left: auto;
  right: 0;
  min-width: 12rem;
  width: max-content;
  max-width: min(20rem, calc(100vw - 1.5rem));
  box-sizing: border-box;
}

.site-header-account-item .site-nav-submenu-link {
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.35;
  hyphens: auto;
}

.site-header-account:hover,
.site-header-account:focus-visible {
  color: var(--app-tab-active-fg);
  background: var(--app-tab-hover-bg);
  outline: none;
}

.site-header-account--guest {
  color: var(--app-tab-active-fg);
  font-weight: 700;
}

html[data-theme="light"] .site-header-account--guest {
  color: var(--brand);
}

html[data-theme="light"] .site-header-account--guest:hover,
html[data-theme="light"] .site-header-account--guest:focus-visible {
  color: var(--brand-hover);
  background: var(--brand-soft);
}

html[data-theme="light"] .site-nav-menu-bar > a.nav-accent:not(.is-active) {
  color: var(--brand);
  background: transparent;
}

.site-header-account-icon {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
}

.site-header-account-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-header-brand {
  display: contents;
}

.site-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  font-size: 0.875rem;
}

.site-nav-menu-bar {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  min-width: 0;
  max-width: 100%;
  overflow: visible;
  background: transparent;
  box-shadow: inset 0 -2px 0 transparent;
}

.site-nav-menu-bar::-webkit-scrollbar {
  display: none;
}

.site-nav-menu-bar > a,
.site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > a,
.site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > .site-nav-group-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 0.35rem;
  min-height: 2.75rem;
  padding: 0.65rem 1rem;
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--app-tab-fg);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}

.site-nav-menu-bar > a:hover,
.site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > a:hover {
  background: var(--app-tab-hover-bg);
  color: var(--app-tab-active-fg);
}

.site-nav-menu-bar > a.is-active,
.site-nav-menu-bar > a.nav-accent,
.site-nav-menu-bar > .site-nav-item.is-active > .site-nav-parent-row,
.site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > a.is-active,
.site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > a.nav-accent {
  background: var(--app-tab-active-bg);
  color: var(--app-tab-active-fg);
}

.site-nav-menu-bar > a.is-active:hover,
.site-nav-menu-bar > a.nav-accent:hover,
.site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > a.is-active:hover,
.site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > a.nav-accent:hover {
  background: var(--brand-hover);
  color: var(--app-tab-active-fg);
}

.site-nav-menu-bar > .site-nav-item > .site-nav-parent-row {
  gap: 0;
  border-radius: 0;
  background: transparent;
}

.site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > .site-nav-group-label {
  cursor: default;
  padding-right: 0.25rem;
}

.site-nav-menu-bar > .site-nav-item:hover > .site-nav-parent-row,
.site-nav-menu-bar > .site-nav-item:focus-within > .site-nav-parent-row {
  background: var(--app-tab-hover-bg);
}

.site-nav-menu-bar > .site-nav-item.is-active:hover > .site-nav-parent-row,
.site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > a.is-active:hover {
  background: var(--brand-hover);
}

.site-nav-menu-bar > .site-nav-item.has-submenu {
  position: relative;
  z-index: 30;
}

.site-nav-menu-bar > .site-nav-item.has-submenu > .site-nav-submenu {
  z-index: 120;
}

.site-nav-menu-bar .site-nav-submenu-caret {
  color: inherit;
  margin-right: 0.5rem;
}

.site-nav .site-breadcrumb a {
  color: var(--app-tab-fg);
  text-decoration: none;
  padding: 0.375rem 0.625rem;
  border-radius: 0;
  transition: color 0.15s, background 0.15s;
}

.site-nav .site-breadcrumb a:hover {
  color: var(--app-tab-active-fg);
  background: var(--app-tab-hover-bg);
}

.site-nav .nav-accent {
  color: var(--app-tab-active-fg);
  font-weight: 700;
}

.site-breadcrumb {
  color: var(--site-breadcrumb);
  font-size: 0.8125rem;
}

.site-breadcrumb a {
  color: var(--site-breadcrumb-link);
}

.site-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  order: 99;
  padding: 0.4375rem;
  border-radius: 0;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: transparent;
  color: var(--app-tab-fg);
  line-height: 0;
  cursor: pointer;
  font-family: inherit;
  transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.site-theme-toggle:hover,
.site-theme-toggle:focus-visible {
  color: var(--app-tab-active-fg);
  background: var(--app-tab-hover-bg);
  border-color: rgba(252, 76, 2, 0.35);
  outline: none;
}

.site-theme-toggle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.site-theme-toggle-icon[hidden] {
  display: none !important;
}

.site-theme-toggle-label {
  display: none !important;
}

.site-nav-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.375rem 0.5rem;
}

.site-breadcrumb a:hover {
  color: var(--app-tab-active-fg);
}

/* Header navigation — desktop vždy viditelné, mobil přes checkbox Menu */
.site-nav-panel,
.admin-nav-panel {
  position: relative;
}

.site-nav-state,
.admin-nav-state {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-nav-toggle,
.admin-nav-toggle {
  display: none;
  cursor: pointer;
  user-select: none;
}

.site-header-bar,
.admin-header-bar {
  width: 100%;
}

@media (min-width: 768px) {
  .site-header-bar,
  .admin-header-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
  }

  .site-nav-panel,
  .admin-nav-panel {
    margin-left: auto;
    flex: 1 1 auto;
    min-width: 0;
  }

  .site-nav-toggle,
  .admin-nav-toggle,
  .site-nav-state,
  .admin-nav-state {
    display: none !important;
  }

  .site-nav-panel > .site-nav,
  .admin-nav-panel > .admin-nav {
    display: flex !important;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.375rem 0.75rem;
    min-width: 0;
  }

  .site-nav-panel {
    flex-wrap: nowrap;
  }

  .site-header-bar,
  .admin-header-bar {
    flex-wrap: nowrap;
  }

  .site-nav-panel > .site-theme-toggle {
    margin-left: 0.125rem;
  }

  .site-nav-panel > .site-header-account-item {
    display: block;
  }
}

.site-footer {
  margin-top: auto;
  border-top: 1px solid var(--border);
  background: var(--bg-page);
  padding: 2rem 1rem;
  text-align: center;
  font-size: 0.875rem;
  color: var(--text-muted);
}

.site-footer-version {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: var(--text-muted);
}

.site-footer-links {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
}

.site-footer-links a {
  color: var(--text-soft);
  text-decoration: none;
  font-weight: 500;
}

.site-footer-links a:hover {
  color: var(--accent-link);
  text-decoration: underline;
}

.page-main {
  max-width: var(--layout-app-max-width, 72rem);
  margin: 0 auto;
  padding: 2rem 1rem 3rem;
}

.page-body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--surface-muted);
  color: var(--ink);
}

/* Typography */
.page-title {
  font-size: 1.875rem;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--text);
}

.page-lead {
  margin-top: 0.5rem;
  color: var(--ink-muted);
  font-size: 1rem;
  line-height: 1.5;
}

.section-title {
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
}

.section-kicker {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.metric-value {
  font-weight: 700;
  color: var(--brand);
  font-variant-numeric: tabular-nums;
}

.link-brand {
  color: var(--accent-link);
  font-weight: 600;
  text-decoration: none;
}

.link-brand:hover {
  color: #fdba74;
  text-decoration: underline;
}

.link-back {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ink-muted);
  text-decoration: none;
  margin-bottom: 1rem;
}

.link-back:hover {
  color: var(--brand);
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25rem;
  padding: 0.625rem 1.125rem;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.12s ease, background 0.15s, box-shadow 0.15s, color 0.15s;
}

.btn:hover {
  text-decoration: none;
}

.btn:active {
  transform: translateY(1px);
}

.btn-primary {
  background: var(--brand);
  color: #fff;
  box-shadow: 0 1px 2px rgba(252, 76, 2, 0.25);
}

.btn-primary:hover {
  background: var(--brand-hover);
  color: #fff;
}

.btn-secondary {
  background: rgba(148, 163, 184, 0.12);
  color: var(--text);
  border: 1px solid var(--border-strong);
}

.btn-secondary:hover {
  border-color: rgba(251, 146, 60, 0.45);
  color: var(--accent-link);
  background: rgba(251, 146, 60, 0.1);
}

.btn-ghost {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.btn-ghost:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}

.btn-strava {
  background: var(--strava);
  color: #fff;
}

.btn-strava:hover {
  background: var(--strava-hover);
  color: #fff;
}

.btn-strava svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}

.btn-fitnesssyncer {
  background: var(--fitnesssyncer);
  color: #fff;
}

.btn-fitnesssyncer:hover {
  background: var(--fitnesssyncer-hover);
  color: #fff;
}

.btn-fitnesssyncer svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}

.btn-google-health {
  background: var(--google-health);
  color: #fff;
}

.btn-google-health:hover {
  background: var(--google-health-hover);
  color: #fff;
}

.btn-google-health svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}

.btn-manual {
  background: rgba(248, 250, 252, 0.12);
  color: #f8fafc;
  border: 1px solid var(--border-strong);
  box-shadow: none;
}

.btn-manual:hover {
  background: rgba(248, 250, 252, 0.18);
  color: #fff;
}

.site-header .btn-manual {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: none;
}

.site-header .btn-manual:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}

html[data-theme="light"] .site-header {
  background: var(--app-tab-bar-bg);
  color: var(--app-tab-fg);
  border-bottom-color: var(--app-tab-bar-edge);
}

html[data-theme="light"] .site-logo {
  color: var(--text);
}

html[data-theme="light"] .site-logo:hover {
  color: var(--text);
}

html[data-theme="light"] .site-breadcrumb-current {
  color: var(--text);
}

html[data-theme="light"] .site-theme-toggle {
  border-color: var(--border);
  color: var(--text-soft);
  background: var(--bg-card);
}

html[data-theme="light"] .site-theme-toggle:hover,
html[data-theme="light"] .site-theme-toggle:focus-visible {
  color: var(--text);
  background: var(--bg-hover);
  border-color: rgba(252, 76, 2, 0.35);
}

html[data-theme="light"] .site-header .btn-manual {
  background: var(--bg-card);
  color: var(--text);
  border-color: var(--border);
}

html[data-theme="light"] .site-header .btn-manual:hover {
  background: var(--bg-hover);
  border-color: var(--border-strong);
  color: var(--text);
}

html[data-theme="light"] .site-nav-toggle,
html[data-theme="light"] .admin-nav-toggle {
  border-color: var(--border);
  background: var(--bg-card);
  color: var(--text-soft);
}

html[data-theme="light"] .site-nav-state:checked ~ .site-nav-toggle,
html[data-theme="light"] .admin-nav-state:checked ~ .admin-nav-toggle {
  background: var(--bg-hover);
  color: var(--text);
}

.btn-danger-outline {
  background: transparent;
  color: #fca5a5;
  border: 1px solid rgba(248, 113, 113, 0.45);
}

.btn-danger-outline:hover {
  background: rgba(239, 68, 68, 0.12);
}

.btn-danger {
  background: #dc2626;
  color: #fff;
}

.btn-danger:hover {
  background: #b91c1c;
  color: #fff;
}

.btn-sm {
  padding: 0.4375rem 0.875rem;
  font-size: 0.8125rem;
}

.btn-xs {
  padding: 0.3rem 0.55rem;
  font-size: 0.75rem;
  line-height: 1.2;
  min-height: 1.75rem;
}

.btn-block {
  width: 100%;
}

.btn:not(.btn-block):not(.w-full) {
  width: auto;
  max-width: 100%;
  flex: 0 0 auto;
}

.btn-icon {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}

/* Cards */
.card {
  background: var(--bg-card-gradient);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  color: var(--text-soft);
}

.card-shadow {
  box-shadow: var(--shadow-lg);
}

.card-interactive {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.card-interactive:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-xl);
  border-color: rgba(251, 146, 60, 0.4);
}

.card-body {
  padding: 1.5rem;
}

.card-header {
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--border);
  background: var(--bg-header);
}

.card-header-dark {
  background: rgba(2, 6, 23, 0.75);
  color: #fff;
  border-bottom: none;
}

.card-footer {
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--surface-line);
}

.card-footer-centered {
  text-align: center;
}

.card-header-centered {
  text-align: center;
}

.card-header-centered .flex-wrap {
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.card-panel-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.card-panel {
  padding: 1.5rem;
}

@media (min-width: 768px) {
  .card-panel-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .card-panel + .card-panel {
    border-left: 1px solid var(--surface-line);
  }
}

.card-panel .section-kicker {
  text-align: center;
}

.leaderboard-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.leaderboard-list > * + * {
  margin-top: 0.5rem;
}

.leaderboard-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: baseline;
  max-width: 22rem;
  margin-left: auto;
  margin-right: auto;
  font-size: 0.875rem;
  text-align: left;
}

.leaderboard-row .metric-value {
  text-align: right;
  white-space: nowrap;
}

.card-panel-empty {
  text-align: center;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

/* Forms */
.fg-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.form-card {
  padding: 1.75rem 2rem;
  width: 100%;
  overflow: hidden;
}

.form-card > * {
  min-width: 0;
}

.form-label {
  display: block;
  margin-bottom: 0.375rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ink);
}

.form-input,
.form-select,
.form-textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  padding: 0.625rem 0.875rem;
  font-size: 0.9375rem;
  color: var(--text);
  background: var(--bg-input);
  transition: border-color 0.15s, box-shadow 0.15s;
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  outline: none;
  border-color: rgba(252, 76, 2, 0.55);
  box-shadow: 0 0 0 3px rgba(252, 76, 2, 0.12);
}

body:not(.admin-body) input[type="date"],
body:not(.admin-body) input[type="datetime-local"],
body:not(.admin-body) input[type="time"],
body:not(.admin-body) input[type="month"],
body:not(.admin-body) input[type="week"],
body:not(.admin-body) .form-input[type="date"],
body:not(.admin-body) .form-input[type="datetime-local"],
body:not(.admin-body) .form-input[type="time"],
body:not(.admin-body) .form-input[type="month"],
body:not(.admin-body) .form-input[type="week"] {
  color: var(--text);
  color-scheme: dark;
}

body:not(.admin-body) input[type="date"]::-webkit-datetime-edit,
body:not(.admin-body) input[type="datetime-local"]::-webkit-datetime-edit,
body:not(.admin-body) input[type="time"]::-webkit-datetime-edit,
body:not(.admin-body) input[type="month"]::-webkit-datetime-edit,
body:not(.admin-body) input[type="week"]::-webkit-datetime-edit,
body:not(.admin-body) .form-input[type="date"]::-webkit-datetime-edit,
body:not(.admin-body) .form-input[type="datetime-local"]::-webkit-datetime-edit,
body:not(.admin-body) .form-input[type="time"]::-webkit-datetime-edit,
body:not(.admin-body) .form-input[type="month"]::-webkit-datetime-edit,
body:not(.admin-body) .form-input[type="week"]::-webkit-datetime-edit,
body:not(.admin-body) input[type="date"]::-webkit-datetime-edit-fields-wrapper,
body:not(.admin-body) .form-input[type="date"]::-webkit-datetime-edit-fields-wrapper,
body:not(.admin-body) input[type="date"]::-webkit-datetime-edit-text,
body:not(.admin-body) .form-input[type="date"]::-webkit-datetime-edit-text,
body:not(.admin-body) input[type="date"]::-webkit-datetime-edit-month-field,
body:not(.admin-body) input[type="date"]::-webkit-datetime-edit-day-field,
body:not(.admin-body) input[type="date"]::-webkit-datetime-edit-year-field,
body:not(.admin-body) .form-input[type="date"]::-webkit-datetime-edit-month-field,
body:not(.admin-body) .form-input[type="date"]::-webkit-datetime-edit-day-field,
body:not(.admin-body) .form-input[type="date"]::-webkit-datetime-edit-year-field {
  color: var(--text);
  -webkit-text-fill-color: var(--text);
}

.admin-body input[type="date"],
.admin-body input[type="datetime-local"],
.admin-body input[type="time"],
.admin-body input[type="month"],
.admin-body input[type="week"],
.admin-body .form-input[type="date"],
.admin-body .form-input[type="datetime-local"],
.admin-body .form-input[type="time"],
.admin-body .form-input[type="month"],
.admin-body .form-input[type="week"] {
  color-scheme: light;
}

body:not(.admin-body) input[type="date"]::-webkit-calendar-picker-indicator,
body:not(.admin-body) input[type="datetime-local"]::-webkit-calendar-picker-indicator,
body:not(.admin-body) input[type="time"]::-webkit-calendar-picker-indicator,
body:not(.admin-body) input[type="month"]::-webkit-calendar-picker-indicator,
body:not(.admin-body) input[type="week"]::-webkit-calendar-picker-indicator,
body:not(.admin-body) .form-input[type="date"]::-webkit-calendar-picker-indicator,
body:not(.admin-body) .form-input[type="datetime-local"]::-webkit-calendar-picker-indicator,
body:not(.admin-body) .form-input[type="time"]::-webkit-calendar-picker-indicator,
body:not(.admin-body) .form-input[type="month"]::-webkit-calendar-picker-indicator,
body:not(.admin-body) .form-input[type="week"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 1;
  filter: none;
  width: 1.25rem;
  height: 1.25rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
}

.form-fieldset {
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-md);
  padding: 1rem;
}

.form-legend {
  padding: 0 0.25rem;
  font-size: 0.875rem;
  font-weight: 600;
}

/* Badges */
.badge {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  padding: 0.25rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.badge-live {
  background: var(--brand-soft);
  color: var(--badge-live-text);
}

.badge-soon {
  background: var(--badge-soon-bg);
  color: var(--badge-soon-text);
}

.badge-neutral {
  background: var(--badge-neutral-bg);
  color: var(--badge-neutral-text);
}

/* Alerts / flash */
.flash {
  margin-bottom: 1.5rem;
  border-radius: var(--radius-md);
  border: 1px solid;
  padding: 0.875rem 1rem;
  font-size: 0.9375rem;
}

.flash[data-auto-dismiss] {
  transition: opacity 0.35s ease, transform 0.35s ease, max-height 0.35s ease, margin 0.35s ease, padding 0.35s ease;
}

.flash[data-auto-dismiss].is-dismissing {
  opacity: 0;
  transform: translateY(-0.35rem);
  max-height: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
  overflow: hidden;
  pointer-events: none;
}

.flash-success {
  border-color: var(--alert-success-border);
  background: var(--alert-success-bg);
  color: var(--alert-success-text);
}

.flash-error {
  border-color: var(--alert-error-border);
  background: var(--alert-error-bg);
  color: var(--alert-error-text);
}

.alert {
  border-radius: var(--radius-md);
  padding: 0.875rem 1rem;
  font-size: 0.875rem;
  border: 1px solid;
}

.alert-success {
  border-color: var(--alert-success-border);
  background: var(--alert-success-bg);
  color: var(--alert-success-text);
}

.alert-info {
  border-color: var(--alert-info-border);
  background: var(--alert-info-bg);
  color: var(--alert-info-text);
}

.alert-warning {
  border-color: var(--alert-warning-border);
  background: var(--alert-warning-bg);
  color: var(--alert-warning-text);
}

.alert-strava {
  border-color: rgba(252, 76, 2, 0.35);
  background: var(--brand-soft);
  color: #fdba74;
}

/* Tabs — sjednocený horizontální pruh (tmavý podklad, oranžová aktivní) */
.view-tabs:not(.dashboard-mode-tabs),
.challenge-section-tabs,
.dashboard-events-tabs,
.suz-main-tabs {
  position: sticky;
  top: var(--site-header-sticky-height);
  z-index: 85;
}

.view-tabs,
.challenge-section-tabs,
.dashboard-mode-tabs,
.dashboard-events-tabs,
.dashboard-sports-tabs.dashboard-challenge-sports-tabs,
.challenge-results-sport-tabs,
.suz-main-tabs {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-bottom: 1.25rem;
  padding: 0;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  border: none;
  border-radius: 0;
  background: var(--app-tab-bar-bg);
  box-shadow: inset 0 -2px 0 var(--app-tab-bar-edge);
}

.view-tabs::-webkit-scrollbar,
.challenge-section-tabs::-webkit-scrollbar,
.dashboard-mode-tabs::-webkit-scrollbar,
.dashboard-events-tabs::-webkit-scrollbar,
.dashboard-sports-tabs.dashboard-challenge-sports-tabs::-webkit-scrollbar,
.challenge-results-sport-tabs::-webkit-scrollbar,
.suz-main-tabs::-webkit-scrollbar {
  display: none;
}

.view-tab,
.challenge-section-tab,
.dashboard-mode-tab,
.dashboard-events-tab,
.dashboard-sport-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 0.35rem;
  min-height: 2.75rem;
  padding: 0.65rem 1rem;
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--app-tab-fg);
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}

.view-tab:hover,
.challenge-section-tab:hover,
.dashboard-mode-tab:hover,
.dashboard-events-tab:hover,
.dashboard-sport-tab:hover {
  background: var(--app-tab-hover-bg);
  color: var(--app-tab-active-fg);
}

.view-tab-active,
.challenge-section-tab.is-active,
.dashboard-mode-tab.is-active,
.dashboard-events-tab.is-active,
.dashboard-sport-tab.is-active {
  background: var(--app-tab-active-bg);
  color: var(--app-tab-active-fg);
  box-shadow: none;
}

.view-tab-active:hover,
.challenge-section-tab.is-active:hover,
.dashboard-mode-tab.is-active:hover,
.dashboard-events-tab.is-active:hover,
.dashboard-sport-tab.is-active:hover {
  background: var(--brand-hover);
  color: var(--app-tab-active-fg);
}

.view-tabs > .view-tab + .view-tab,
.view-tabs > .view-tab-active + .view-tab,
.view-tabs > .view-tab + .view-tab-active,
.challenge-section-tabs > .challenge-section-tab + .challenge-section-tab,
.dashboard-mode-tabs > .dashboard-mode-tab + .dashboard-mode-tab,
.dashboard-events-tabs > .dashboard-events-tab + .dashboard-events-tab,
.dashboard-sports-tabs.dashboard-challenge-sports-tabs > .dashboard-sport-tab + .dashboard-sport-tab,
.challenge-results-sport-tabs > .dashboard-sport-tab + .dashboard-sport-tab,
.suz-main-tabs > .view-tab + .view-tab {
  box-shadow: inset 1px 0 0 var(--app-tab-divider);
}

.challenge-section-tab-label,
.page-challenge-detail .challenge-detail-rankings .view-tab .view-tab-label-full,
.page-challenge-detail .challenge-detail-rankings .view-tab .view-tab-label-short {
  display: inline;
  padding: 0;
  border-radius: 0;
  line-height: inherit;
  text-decoration: none;
  background: transparent;
}

.challenge-section-tab.is-active .challenge-section-tab-label,
.page-challenge-detail .challenge-detail-rankings .view-tab-active .view-tab-label-full,
.page-challenge-detail .challenge-detail-rankings .view-tab-active .view-tab-label-short {
  text-decoration: none;
  background: transparent;
}

.dashboard-events-tab-count {
  font-size: 0.75rem;
  font-weight: 700;
  color: inherit;
  opacity: 0.85;
}

.dashboard-mode-tab--profile {
  gap: 0.4rem;
  max-width: 11rem;
}

.dashboard-mode-tab-icon {
  display: inline-flex;
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
}

.dashboard-mode-tab-icon svg {
  width: 100%;
  height: 100%;
}

.dashboard-mode-tab-label {
  overflow: hidden;
  text-overflow: ellipsis;
}

.view-tab-label-short {
  display: none;
}

.filter-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 2.5rem;
  padding: 0.55rem 0.9rem;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s, color 0.15s;
}

.filter-pill-inactive {
  background: var(--selection-pill-bg);
  color: var(--selection-pill-fg);
}

.filter-pill-inactive:hover {
  background: var(--bg-hover);
  color: var(--text);
}

.filter-pill-active {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}

.selection-bar,
.dashboard-challenge-sports-tabs,
.dashboard-sports-tabs,
.challenge-results-sport-tabs,
.scroll-x-row.selection-bar {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0;
  margin-bottom: 0.75rem;
  border-radius: 0;
  background: var(--app-tab-bar-bg);
  border: none;
  box-shadow: inset 0 -2px 0 var(--app-tab-bar-edge);
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
}

.selection-bar::-webkit-scrollbar,
.dashboard-challenge-sports-tabs::-webkit-scrollbar,
.challenge-results-sport-tabs::-webkit-scrollbar {
  display: none;
}

.selection-bar > .filter-pill,
.selection-bar > .dashboard-sport-tab,
.selection-bar > a {
  flex: 0 0 auto;
  border-radius: 0;
  border: none;
  box-shadow: inset 1px 0 0 var(--app-tab-divider);
  background: transparent;
}

.selection-bar > .filter-pill:first-child,
.selection-bar > .dashboard-sport-tab:first-child,
.selection-bar > .filter-pill-active:first-child,
.selection-bar > a:first-child {
  box-shadow: none;
}

.selection-bar .filter-pill-inactive,
.selection-bar .dashboard-sport-tab:not(.is-active) {
  background: transparent;
  color: var(--app-tab-fg);
  border-color: transparent;
}

.selection-bar .filter-pill-inactive:hover,
.selection-bar .dashboard-sport-tab:not(.is-active):hover {
  background: var(--app-tab-hover-bg);
  color: var(--app-tab-active-fg);
}

.selection-bar .filter-pill-active,
.selection-bar .dashboard-sport-tab.is-active,
.dashboard-challenge-sports-tabs .dashboard-sport-tab.is-active,
.dashboard-sports-tabs .dashboard-sport-tab.is-active,
.challenge-results-sport-tabs .dashboard-sport-tab.is-active {
  background: var(--app-tab-active-bg);
  color: var(--app-tab-active-fg);
  border-color: transparent;
  box-shadow: none;
}

.selection-bar .filter-pill-active:first-child,
.selection-bar .dashboard-sport-tab.is-active:first-child {
  box-shadow: none;
}

.dashboard-challenge-sports-tabs .dashboard-sport-tab > span[aria-hidden="true"],
.challenge-results-sport-tabs .dashboard-sport-tab > :not(span:last-child) {
  display: none;
}

/* Tables / leaderboards */
.table-shell {
  overflow: hidden;
  border-radius: var(--radius-xl);
  border: 1px solid var(--border);
  background: var(--bg-card);
  box-shadow: var(--shadow-md);
}

.table-shell-header {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border);
  background: var(--bg-header);
}

.data-table {
  width: 100%;
  text-align: left;
  font-size: 0.875rem;
  color: var(--text-soft);
}

.data-table thead {
  background: var(--bg-table-head);
  color: var(--text-muted);
}

.data-table th {
  padding: 0.75rem 1rem;
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.data-table td {
  padding: 0.875rem 1rem;
}

.data-table tbody tr {
  border-top: 1px solid var(--border);
}

.data-table tbody tr:hover {
  background: var(--bg-hover);
}

.data-table tbody tr.is-current-user,
.data-table tbody tr.is-current-user td,
.challenge-results-table tr.is-current-user,
.challenge-results-table tr.is-current-user td,
.dashboard-table tr.is-current-user,
.dashboard-table tr.is-current-user td,
.page-suz .challenge-leaderboard-table tr.is-current-user,
.page-suz .challenge-leaderboard-table tr.is-current-user td,
.page-suz .data-table tr.is-current-user,
.page-suz .data-table tr.is-current-user td,
.page-suz .suz-activities-table tr.is-current-user,
.page-suz .suz-activities-table tr.is-current-user td {
  background: color-mix(in srgb, #38bdf8 30%, var(--bg-card, #fff));
}

.data-table tbody tr.is-current-user,
.challenge-results-table tr.is-current-user,
.dashboard-table tr.is-current-user,
.page-suz .challenge-leaderboard-table tr.is-current-user,
.page-suz .data-table tr.is-current-user,
.page-suz .suz-activities-table tr.is-current-user {
  box-shadow:
    inset 3px 0 0 #0ea5e9,
    inset 0 0 0 1px color-mix(in srgb, #38bdf8 45%, transparent);
}

.challenge-results-table tr.is-current-user .challenge-results-name-cell,
.dashboard-table tr.is-current-user td:nth-child(2),
.page-suz .data-table tr.is-current-user td:nth-child(2),
.page-suz .suz-activities-table tr.is-current-user td.suz-col-participant {
  font-weight: 600;
}

.data-table tbody tr.is-current-user:hover,
.data-table tbody tr.is-current-user:hover td,
.page-suz .data-table tbody tr.is-current-user:hover,
.page-suz .data-table tbody tr.is-current-user:hover td,
.page-suz .challenge-leaderboard-table tbody tr.is-current-user:hover,
.page-suz .challenge-leaderboard-table tbody tr.is-current-user:hover td,
.page-suz .suz-activities-table tbody tr.is-current-user:hover,
.page-suz .suz-activities-table tbody tr.is-current-user:hover td {
  background: color-mix(in srgb, #38bdf8 30%, var(--bg-card, #fff));
}

.metric-value-num {
  font-weight: 700;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}

.metric-value-unit {
  font-weight: 600;
  color: var(--text);
}

.suz-metric-km-cell {
  white-space: nowrap;
}

.records-table-scroll {
  max-height: min(70vh, 40rem);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.records-table-scroll .data-table thead th,
.records-table-scroll .dashboard-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  /* Neprůhledné pozadí — --bg-table-head je v tmavém motivu poloprůhledné. */
  background: var(--bg-card);
  background-clip: padding-box;
  box-shadow: 0 1px 0 var(--border);
}

.records-table-scroll .dashboard-table thead th {
  background: var(--surface-muted, var(--bg-table-head));
}

.records-table-scroll::-webkit-scrollbar {
  width: 0.45rem;
  height: 0.45rem;
}

.records-table-scroll::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.45);
  border-radius: 999px;
}

.records-table-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.rank-cell {
  font-weight: 800;
  color: var(--table-rank);
  font-variant-numeric: tabular-nums;
}

.rank-cell-top {
  color: var(--brand);
}

.leaderboard-board-title {
  background: var(--bg-table-head);
  color: var(--text);
  padding: 0.625rem 1rem;
  font-size: 0.875rem;
  font-weight: 700;
  text-align: center;
  border-bottom: 1px solid var(--border);
}

.leaderboard-board-title-alt {
  background: var(--brand);
  color: #fff;
}

/* Hero / stats strip */
.hero-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.stat-chip {
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 0.875rem 1.125rem;
  min-width: 8rem;
  text-align: center;
}

.stat-chip-label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.stat-chip-value {
  margin-top: 0.25rem;
  font-size: 1.375rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}

/* Auth */
.auth-wrap {
  width: 100%;
  max-width: 26rem;
  margin: 0 auto;
}

.auth-wrap .card,
.auth-wrap .btn-block {
  width: 100%;
}

.auth-wrap .btn-primary,
.auth-wrap .btn-strava {
  padding: 0.625rem 1.125rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  min-height: 2.75rem;
  white-space: nowrap;
}

.auth-wrap .btn-strava svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}

.auth-divider {
  margin: 1.5rem 0;
  text-align: center;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

/* Admin shell — světlý režim pro administraci */
.admin-body {
  --brand-soft: #fff4ef;
  --accent-link: var(--brand);
  --text: #242428;
  --text-soft: #3d3d42;
  --text-muted: #6b7280;
  --bg-page: #f7f7fa;
  --bg-card: #ffffff;
  --bg-card-gradient: #ffffff;
  --bg-elevated: #ffffff;
  --bg-input: #ffffff;
  --bg-header: linear-gradient(180deg, #fafafa 0%, #fff 100%);
  --bg-table-head: #fafafa;
  --bg-hover: #fafafa;
  --border: #e8e8ed;
  --border-strong: #d1d5db;
  --alert-success-bg: #f0fdf4;
  --alert-success-border: #bbf7d0;
  --alert-success-text: #166534;
  --alert-error-bg: #fef2f2;
  --alert-error-border: #fecaca;
  --alert-error-text: #991b1b;
  --alert-info-bg: #eff6ff;
  --alert-info-border: #bfdbfe;
  --alert-info-text: #1e40af;
  --alert-warning-bg: #fffbeb;
  --alert-warning-border: #fde68a;
  --alert-warning-text: #92400e;
  --badge-live-text: #c93d00;
  --badge-soon-bg: #eff6ff;
  --badge-soon-text: #1d4ed8;
  --badge-neutral-bg: #f3f4f6;
  --badge-neutral-text: #374151;
  --ink: var(--text);
  --ink-soft: var(--text-soft);
  --ink-muted: var(--text-muted);
  --surface: var(--bg-card);
  --surface-muted: var(--bg-page);
  --surface-line: var(--border);
  color-scheme: light;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--surface-muted);
  color: var(--ink);
}

.admin-body .btn-secondary {
  background: var(--surface);
  color: var(--ink);
  border: 1px solid var(--surface-line);
}

.admin-body .btn-secondary:hover {
  border-color: rgba(252, 76, 2, 0.35);
  color: var(--brand);
  background: var(--brand-soft);
}

.admin-body .btn-manual {
  background: #242428;
  color: #fff;
  border: none;
  box-shadow: 0 1px 2px rgba(36, 36, 40, 0.18);
}

.admin-body .btn-manual:hover {
  background: #3d3d42;
  color: #fff;
}

.admin-body .btn-danger-outline {
  color: #b91c1c;
  border-color: #fecaca;
}

.admin-body .btn-danger-outline:hover {
  background: #fef2f2;
}

.admin-body .card {
  box-shadow: 0 1px 2px rgba(36, 36, 40, 0.06), 0 8px 24px rgba(36, 36, 40, 0.08);
}

.admin-body .card-interactive:hover {
  box-shadow: 0 12px 32px rgba(36, 36, 40, 0.12);
  border-color: rgba(252, 76, 2, 0.35);
}

.admin-body .table-shell {
  box-shadow: 0 1px 2px rgba(36, 36, 40, 0.04);
}

.admin-body .filter-pill-inactive {
  background: #ececf1;
}

.admin-body .filter-pill-inactive:hover {
  background: #e2e2e8;
}

.admin-body .filter-pill-active {
  background: #242428;
  color: #fff;
}

.admin-body .link-brand {
  color: var(--brand);
}

.admin-body .link-brand:hover {
  color: var(--brand-hover);
}

.admin-body .prose code {
  background: #f3f4f6;
  color: #0f172a;
}

.admin-body code,
.admin-shell code,
.admin-modal code,
.home-page-builder-dialog code {
  padding: 0.15rem 0.4rem;
  border-radius: 0.25rem;
  font-size: 0.875em;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  background: #eef2f7;
  color: #0f172a;
  border: 1px solid #cbd5e1;
}

.admin-body label code,
.admin-body .form-field label code,
.admin-body .page-lead code,
.admin-body .admin-page-lead code,
.admin-modal-label code,
.admin-modal-lead code {
  color: #0f172a;
  background: #eef2f7;
  border-color: #cbd5e1;
}

.admin-body .form-input,
.admin-body .admin-form input[type="text"],
.admin-body .admin-form input[type="email"],
.admin-body .admin-form input[type="number"],
.admin-body .admin-form input[type="password"],
.admin-body .admin-form input[type="search"],
.admin-body .admin-form select,
.admin-body .admin-form textarea,
.admin-modal .form-input {
  color-scheme: light;
  color: #242428;
  background: #ffffff;
}

.admin-body .form-input::placeholder,
.admin-body .admin-form input::placeholder,
.admin-modal .form-input::placeholder {
  color: #94a3b8;
  opacity: 1;
}

/* Admin shell — AdminFlow vzor (tmavý sidebar + světlý obsah) */
.admin-shell {
  --admin-sidebar-width: 16rem;
  --admin-topbar-height: 4rem;
  --admin-blue: #3b82f6;
  --admin-blue-soft: #eff6ff;
  --admin-sidebar-bg: #1a2234;
  --admin-sidebar-text: #94a3b8;
  --admin-sidebar-active: #ffffff;
  --admin-sidebar-active-bg: rgba(59, 130, 246, 0.18);
  --admin-sidebar-border: rgba(148, 163, 184, 0.12);
  --admin-content-bg: #eef2f7;
}

.admin-shell.admin-body {
  background: var(--admin-content-bg);
  overflow-x: clip;
  max-width: 100%;
}

.admin-shell-layout {
  display: flex;
  min-height: 100vh;
  max-width: 100%;
  min-width: 0;
}

.admin-shell-sidebar {
  width: var(--admin-sidebar-width);
  flex-shrink: 0;
  background: var(--admin-sidebar-bg);
  border-right: 1px solid var(--admin-sidebar-border);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 40;
}

.admin-shell-sidebar-brand {
  padding: 1.15rem 1rem 0.85rem;
  border-bottom: 1px solid var(--admin-sidebar-border);
}

.admin-shell-sidebar-brand-link {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  text-decoration: none;
  color: #f8fafc;
}

.admin-shell-sidebar-brand-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 0.55rem;
  background: rgba(59, 130, 246, 0.2);
  color: #93c5fd;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.admin-shell-sidebar-brand-icon svg {
  width: 1.15rem;
  height: 1.15rem;
}

.admin-shell-sidebar-brand-text {
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: -0.03em;
}

.admin-shell-nav {
  flex: 1;
  overflow: auto;
  padding: 1rem 0.5rem 0.75rem;
}

.admin-shell-nav-section {
  margin: 0.85rem 0.75rem 0.35rem;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}

.admin-shell-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.2rem;
}

.admin-shell-nav-link {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.6rem 0.75rem;
  border-radius: 0.65rem;
  text-decoration: none;
  color: var(--admin-sidebar-text);
  font-size: 0.875rem;
  font-weight: 500;
  transition: background 0.15s, color 0.15s;
}

.admin-shell-nav-link:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #e2e8f0;
}

.admin-shell-nav-group {
  margin: 0.15rem 0;
}

.admin-shell-nav-group-summary {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.6rem 0.75rem;
  border-radius: 0.65rem;
  color: var(--admin-sidebar-text);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: background 0.15s, color 0.15s;
}

.admin-shell-nav-group-summary::-webkit-details-marker {
  display: none;
}

.admin-shell-nav-group-summary:hover,
.admin-shell-nav-group[open] > .admin-shell-nav-group-summary {
  background: rgba(255, 255, 255, 0.06);
  color: #e2e8f0;
}

.admin-shell-nav-group-summary.is-active {
  color: #f8fafc;
}

.admin-shell-nav-chevron {
  margin-left: auto;
  width: 0.45rem;
  height: 0.45rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.15s;
  opacity: 0.7;
}

.admin-shell-nav-group[open] > .admin-shell-nav-group-summary .admin-shell-nav-chevron {
  transform: rotate(-135deg);
  margin-top: 0.15rem;
}

.admin-shell-nav-sublist {
  list-style: none;
  margin: 0.15rem 0 0.35rem;
  padding: 0 0 0 0.35rem;
  display: grid;
  gap: 0.1rem;
}

.admin-shell-nav-sublink {
  padding-left: 2.15rem;
  font-size: 0.8125rem;
  font-weight: 500;
}

.admin-shell-nav-link.is-active {
  background: var(--admin-sidebar-active-bg);
  color: var(--admin-sidebar-active);
  font-weight: 600;
}

.admin-shell-nav-link-muted {
  color: #64748b;
}

.admin-shell-nav-icon {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  display: inline-flex;
}

.admin-shell-nav-icon svg {
  width: 100%;
  height: 100%;
}

.admin-shell-sidebar-foot {
  padding: 0.75rem 0.5rem 1rem;
  border-top: 1px solid var(--admin-sidebar-border);
  display: grid;
  gap: 0.2rem;
}

.admin-shell-main {
  flex: 1;
  min-width: 0;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  overflow-x: clip;
}

.admin-shell-topbar {
  height: var(--admin-topbar-height);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0 1.25rem;
  background: var(--admin-sidebar-bg);
  border-bottom: 1px solid var(--admin-sidebar-border);
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.12);
  position: sticky;
  top: 0;
  z-index: 30;
  color: #e2e8f0;
}

.admin-shell-topbar-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  flex: 1;
}

.admin-shell-menu-toggle {
  display: none;
  border: 1px solid rgba(148, 163, 184, 0.25);
  background: rgba(255, 255, 255, 0.06);
  border-radius: 0.5rem;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  cursor: pointer;
}

.admin-shell-menu-toggle-icon {
  display: block;
  width: 1rem;
  height: 2px;
  background: #e2e8f0;
  margin: 0 auto;
  box-shadow: 0 -5px 0 #e2e8f0, 0 5px 0 #e2e8f0;
}

.admin-shell-topbar-brand {
  font-weight: 800;
  font-size: 1.125rem;
  letter-spacing: -0.03em;
  color: #f8fafc;
  text-decoration: none;
  white-space: nowrap;
}

.admin-shell-topbar-brand-subtle {
  font-weight: 700;
  font-size: 1rem;
  color: #cbd5e1;
}

.admin-shell-topbar-brand:hover,
.admin-shell-topbar-brand-subtle:hover {
  color: #ffffff;
}

.admin-shell-topbar-center {
  flex: 1;
  max-width: 28rem;
  display: flex;
  justify-content: center;
}

.admin-shell-search {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.5rem 0.85rem;
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: #94a3b8;
}

.admin-shell-search-input {
  border: none;
  background: transparent;
  width: 100%;
  font-size: 0.875rem;
  color: #f8fafc;
  outline: none;
}

.admin-shell-search-input::placeholder {
  color: #94a3b8;
}

.admin-shell-search-wrap {
  position: relative;
  width: 100%;
  max-width: 34rem;
}

.admin-shell-search-results {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  z-index: 40;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 0.85rem;
  box-shadow: var(--shadow-lg);
  max-height: 22rem;
  overflow: auto;
  padding: 0.35rem;
}

.admin-shell-search-result {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.55rem;
  text-decoration: none;
  color: inherit;
}

.admin-shell-search-result:hover,
.admin-shell-search-result.is-active {
  background: #f1f5f9;
}

.admin-shell-search-result-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: #0f172a;
}

.admin-shell-search-result-meta {
  font-size: 0.75rem;
  color: #64748b;
}

.admin-shell-search-empty {
  padding: 0.85rem 0.75rem;
  font-size: 0.875rem;
  color: #64748b;
}

.admin-activities-group-row td {
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

.admin-table-sort-link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: inherit;
  font-weight: inherit;
  text-decoration: none;
  white-space: nowrap;
}

.admin-table-sort-link:hover {
  color: var(--admin-blue);
}

.admin-table-sort-link.is-active {
  color: var(--admin-blue);
}

.admin-table-sort-indicator {
  font-size: 0.75rem;
  opacity: 0.45;
  line-height: 1;
}

.admin-table-sort-link.is-active .admin-table-sort-indicator,
.admin-table-sort-link:hover .admin-table-sort-indicator {
  opacity: 1;
}

.data-table-sort-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  text-align: inherit;
  cursor: pointer;
  white-space: nowrap;
}

.data-table-sort-btn:hover,
.data-table th.is-sort-active .data-table-sort-btn {
  color: var(--brand-orange, #f97316);
}

.admin-shell .data-table-sort-btn:hover,
.admin-shell .data-table th.is-sort-active .data-table-sort-btn {
  color: var(--admin-blue);
}

.data-table-sort-indicator {
  font-size: 0.75rem;
  opacity: 0.45;
  line-height: 1;
}

.data-table-sort-btn:hover .data-table-sort-indicator,
.data-table th.is-sort-active .data-table-sort-indicator {
  opacity: 1;
}

.dashboard-goal-activities-table.data-table,
.dashboard-goal-activities-table .data-table {
  min-width: 640px;
}

.dashboard-goal-activities-table .data-table th,
.dashboard-goal-activities-table .data-table td {
  padding: 0.45rem 0.55rem;
  vertical-align: middle;
}

.dashboard-goal-activities-table .data-table tbody td {
  white-space: nowrap;
}

.dashboard-goal-activities-table .dashboard-goal-activity-title {
  max-width: 14rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dashboard-goal-activities-table .dashboard-goal-activity-actions-col {
  width: 2.25rem;
  padding-inline: 0.35rem;
}

.admin-activities-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: flex-end;
}

.admin-shell-topbar-right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.admin-shell-version-link {
  font-size: 0.75rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: #cbd5e1;
  text-decoration: none;
  padding: 0.25rem 0.5rem;
  border-radius: 0.375rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(148, 163, 184, 0.2);
}

.admin-shell-version-link:hover {
  color: #ffffff;
  border-color: rgba(147, 197, 253, 0.45);
}

.admin-shell-web-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.85rem;
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: 0.65rem;
  background: rgba(255, 255, 255, 0.06);
  color: #e2e8f0;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.admin-shell-web-link:hover {
  background: rgba(59, 130, 246, 0.18);
  border-color: rgba(147, 197, 253, 0.45);
  color: #ffffff;
}

.admin-shell-web-link-icon {
  display: inline-flex;
  width: 1.1rem;
  height: 1.1rem;
}

.admin-shell-web-link-icon svg {
  width: 100%;
  height: 100%;
}

@media (max-width: 900px) {
  .admin-shell-web-link-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .admin-shell-web-link {
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    justify-content: center;
  }
}

.admin-shell-icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.65rem;
  background: #fff;
  color: #64748b;
  cursor: pointer;
}

.admin-shell-icon-btn:disabled {
  opacity: 0.85;
  cursor: default;
}

.admin-shell-icon-badge {
  position: absolute;
  top: 0.2rem;
  right: 0.2rem;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1.1rem;
  text-align: center;
}

.admin-shell-user {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.35rem 0.65rem 0.35rem 0.35rem;
  border: 1px solid rgba(148, 163, 184, 0.25);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  text-decoration: none;
  color: inherit;
}

.admin-shell-user:hover {
  border-color: rgba(147, 197, 253, 0.45);
  background: rgba(255, 255, 255, 0.1);
}

.admin-shell-user-caret {
  width: 0.45rem;
  height: 0.45rem;
  margin-right: 0.15rem;
  border-right: 2px solid #94a3b8;
  border-bottom: 2px solid #94a3b8;
  transform: rotate(45deg) translateY(-1px);
}

.admin-shell-user-avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #3b82f6, #2563eb);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
}

.admin-shell-user-meta {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  padding-right: 0.35rem;
}

.admin-shell-user-name {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #f8fafc;
}

.admin-shell-user-role {
  font-size: 0.6875rem;
  color: #94a3b8;
  text-transform: lowercase;
}

.admin-shell-content {
  flex: 1;
  padding: 1.25rem 1.5rem 2rem;
  max-width: 100%;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  overflow-x: clip;
}

.admin-shell-footer {
  padding: 0.75rem 1.5rem;
  border-top: 1px solid #e2e8f0;
  background: #fff;
}

.admin-shell .btn-primary,
.admin-shell .admin-page-header-action {
  background: var(--admin-blue);
  border-color: var(--admin-blue);
  color: #ffffff;
  font-weight: 600;
}

.admin-shell .btn-primary:hover,
.admin-shell .admin-page-header-action:hover {
  background: #2563eb;
  border-color: #2563eb;
  color: #ffffff;
}

.admin-shell .btn-secondary {
  background: #ffffff;
  border-color: #cbd5e1;
  color: #334155;
  font-weight: 600;
}

.admin-shell .btn-secondary:hover {
  background: #f8fafc;
  border-color: #94a3b8;
  color: #0f172a;
}

.admin-shell .btn-danger {
  background: #dc2626;
  border-color: #dc2626;
  color: #ffffff;
  font-weight: 600;
}

.admin-shell .btn-danger:hover {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #ffffff;
}

.admin-shell .btn-sm {
  min-height: 2.25rem;
  padding: 0.45rem 0.9rem;
}

.admin-shell .form-input,
.admin-shell .form-select,
.admin-shell textarea.form-input {
  border-color: #cbd5e1;
  background: #ffffff;
  color: #0f172a;
}

.admin-shell .form-input:focus,
.admin-shell .form-select:focus,
.admin-shell textarea.form-input:focus {
  border-color: var(--admin-blue);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}

.admin-page-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin-bottom: 1.25rem;
}

.admin-page-title {
  margin: 0;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #0f172a;
  line-height: 1.15;
}

.admin-page-lead {
  margin: 0.5rem 0 0;
  max-width: 46rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: #64748b;
}

.admin-list-toolbar {
  padding: 1rem 1.15rem;
  margin-bottom: 1rem;
  display: grid;
  gap: 1rem;
}

.admin-list-toolbar-form {
  margin: 0;
}

.admin-list-search {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  max-width: 22rem;
  padding: 0.55rem 0.85rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.65rem;
  background: #f8fafc;
  color: #94a3b8;
}

.admin-list-search-input {
  border: none;
  background: transparent;
  width: 100%;
  font-size: 0.875rem;
  color: #334155;
  outline: none;
}

.admin-list-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
}

.admin-list-filter-group {
  display: grid;
  gap: 0.45rem;
}

.admin-list-filter-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #64748b;
}

.admin-list-filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.admin-filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 0.9rem;
  border-radius: 999px;
  border: 2px solid transparent;
  background: var(--selection-pill-bg, #f3f5f8);
  color: var(--selection-pill-fg, #475569);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.admin-filter-pill:hover {
  background: var(--bg-hover, #f8fafc);
  color: var(--text, #0f172a);
}

.admin-filter-pill.is-active {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}

.admin-list-table-card {
  padding: 0;
  overflow: hidden;
}

.admin-list-table-title {
  margin: 0;
  padding: 1rem 1.15rem 0.75rem;
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
}

.admin-list-table-shell {
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.admin-users-table td,
.admin-users-table th {
  vertical-align: middle;
}

.admin-user-name-cell {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.admin-user-avatar {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  overflow: hidden;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #93c5fd, #2563eb);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
}

.admin-user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-user-name {
  font-weight: 600;
  color: #0f172a;
}

.admin-user-activity {
  font-variant-numeric: tabular-nums;
  color: #64748b;
  white-space: nowrap;
}

.admin-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.3;
}

.admin-pill-role-admin {
  background: #dbeafe;
  color: #1d4ed8;
}

.admin-pill-role-editor {
  background: #ede9fe;
  color: #6d28d9;
}

.admin-pill-role-author {
  background: #dcfce7;
  color: #15803d;
}

.admin-pill-role-user {
  background: #f1f5f9;
  color: #475569;
}

.admin-pill-status-active {
  background: #dcfce7;
  color: #166534;
}

.admin-pill-status-inactive {
  background: #fee2e2;
  color: #b91c1c;
}

.admin-row-actions,
.admin-actions,
.admin-crud-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.85rem;
  align-items: center;
}

.admin-crud-actions--card {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.85rem;
}

.admin-crud-action,
.admin-row-action,
.admin-action-link,
button.admin-action-muted,
button.admin-action-danger,
.home-page-builder-action.menu-tree-action-text,
a.home-page-builder-action.menu-tree-action-text {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0;
  border: none;
  background: none;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--admin-blue);
  text-decoration: none;
  cursor: pointer;
  line-height: 1.3;
}

.admin-crud-action svg,
.admin-row-action svg {
  flex-shrink: 0;
}

.admin-crud-action-edit,
.admin-row-action,
.admin-action-link {
  color: #2563eb;
}

.admin-crud-action-preview {
  color: #0891b2;
}

.admin-crud-action-settings {
  color: #475569;
}

.admin-crud-action-danger,
.admin-row-action-danger,
button.admin-action-danger,
.home-page-builder-action-danger {
  color: #dc2626;
}

.admin-crud-action:hover,
.admin-row-action:hover,
.admin-action-link:hover,
button.admin-action-muted:hover {
  color: #1d4ed8;
  text-decoration: underline;
}

.admin-crud-action-danger:hover,
.admin-row-action-danger:hover,
button.admin-action-danger:hover,
.home-page-builder-action-danger:hover {
  color: #b91c1c;
}

.admin-crud-action-icon,
.home-page-builder-action:not(.menu-tree-action-text):not(.admin-crud-action) {
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid #e2e8f0;
  border-radius: 0.55rem;
  background: #ffffff;
  color: #475569;
  text-decoration: none;
}

.admin-crud-actions--card .admin-crud-action {
  justify-content: flex-start;
  width: auto;
  min-height: auto;
  padding: 0;
  border-radius: 0;
}

.admin-crud-actions--card .admin-crud-action-icon {
  width: 2rem;
  height: 2rem;
  padding: 0;
  border-radius: 0.55rem;
}

.admin-crud-actions--card .admin-crud-action:hover {
  background: transparent;
  text-decoration: underline;
}

.admin-crud-actions--card .admin-crud-action-icon:hover {
  background: #f8fafc;
  text-decoration: none;
}

.admin-shell .data-table td .admin-crud-actions,
.admin-shell .data-table td .admin-row-actions,
.admin-shell .data-table td .admin-actions {
  flex-wrap: nowrap;
}

.admin-shell .data-table td:last-child {
  min-width: 12rem;
}

.admin-form-actions,
.admin-modal-footer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: flex-end;
  align-items: center;
  margin-top: 1rem;
}

.admin-list-empty {
  text-align: center;
  color: #94a3b8;
  padding: 2rem 1rem !important;
}

.admin-list-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding: 0.85rem 1.15rem 1rem;
  border-top: 1px solid #f1f5f9;
}

.admin-list-footer-summary {
  margin: 0;
  font-size: 0.8125rem;
  color: #64748b;
}

.admin-pagination {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.admin-pagination-btn,
.admin-pagination-current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.45rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  color: #64748b;
}

.admin-pagination-btn:hover {
  background: #f1f5f9;
  color: var(--admin-blue);
}

.admin-pagination-btn.is-disabled {
  opacity: 0.35;
  pointer-events: none;
}

.admin-pagination-current {
  background: var(--admin-blue);
  color: #fff;
}

.admin-body .page-title,
.admin-shell .page-title {
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #0f172a;
}

.admin-body .page-lead,
.admin-shell .page-lead {
  color: #64748b;
  line-height: 1.55;
}

.admin-page-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.tk-startlist-api-dialog {
  max-width: min(36rem, calc(100vw - 2rem));
  width: calc(100% - 2rem);
}

.race-team-starts-dialog {
  max-width: min(52rem, calc(100vw - 2rem));
  width: calc(100% - 2rem);
}

.race-team-starts-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.race-team-starts-dialog-close {
  border: none;
  background: transparent;
  color: #64748b;
  font-size: 1.75rem;
  line-height: 1;
  padding: 0;
  cursor: pointer;
}

.race-team-starts-dialog-close:hover {
  color: #0f172a;
}

.race-team-starts-dialog .admin-modal-body {
  max-height: min(70vh, 36rem);
  overflow: auto;
}

.race-team-starts-table-wrap {
  margin-bottom: 0;
}

.tk-startlist-api-dialog .admin-modal-body {
  max-height: min(70vh, 32rem);
  overflow: auto;
}

.admin-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.admin-kpi-card {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 1rem 1.1rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 0.85rem;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  transition: border-color 0.15s, box-shadow 0.15s;
}

.admin-kpi-card:hover {
  border-color: #bfdbfe;
  box-shadow: 0 8px 24px rgba(37, 99, 235, 0.08);
}

.admin-kpi-card-static {
  cursor: default;
}

.admin-kpi-card-static:hover {
  border-color: #e2e8f0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.admin-version-log-current {
  background: rgba(37, 99, 235, 0.04);
}

.admin-version-log-summary {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  min-width: 14rem;
}

.admin-version-log-edit {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem;
  width: 100%;
}

.admin-version-log-change-label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1 1 14rem;
  min-width: 0;
}

.admin-version-log-change-label-text {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ink-muted, #64748b);
}

.admin-version-log-change-input {
  width: 100%;
  min-width: 0;
}

.admin-version-log-change-preview {
  font-size: 0.875rem;
  line-height: 1.4;
}

.admin-version-log-detail-pre {
  margin: 0;
  color: #0f172a;
  white-space: pre-wrap;
  word-break: break-word;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.8125rem;
  line-height: 1.5;
  max-height: min(70vh, 28rem);
  overflow: auto;
}

.admin-version-log-detail-dialog .admin-modal-inner {
  width: min(42rem, calc(100vw - 2rem));
}

.tk-participant-detail-dialog .admin-modal-inner {
  width: min(42rem, calc(100vw - 2rem));
}

.tk-participant-detail-dialog .admin-modal-body {
  max-height: min(75vh, 40rem);
  overflow: auto;
}

.tk-participant-name-btn {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  font-weight: 600;
  color: inherit;
  cursor: pointer;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.tk-participant-name-btn:hover,
.tk-participant-name-btn:focus-visible {
  color: var(--brand, #1d4ed8);
}

.admin-person-detail {
  display: grid;
  gap: 1rem;
}

.admin-person-detail-hero {
  display: flex;
  gap: 0.9rem;
  align-items: center;
  padding: 0.95rem 1rem;
  border-radius: 0.85rem;
  background:
    linear-gradient(135deg, rgba(29, 78, 216, 0.08), rgba(14, 165, 233, 0.06)),
    var(--surface-muted, #f8fafc);
  border: 1px solid rgba(148, 163, 184, 0.28);
}

.admin-person-detail-avatar {
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--admin-blue, #1d4ed8);
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.35);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.admin-person-detail-hero-text {
  min-width: 0;
  display: grid;
  gap: 0.2rem;
}

.admin-person-detail-name {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--ink, #0f172a);
}

.admin-person-detail-email {
  color: var(--ink-muted, #64748b);
  font-size: 0.875rem;
  text-decoration: none;
  word-break: break-all;
}

.admin-person-detail-email:hover,
.admin-person-detail-email:focus-visible {
  color: var(--brand, #1d4ed8);
  text-decoration: underline;
}

.admin-person-detail-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 0.15rem;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--admin-blue, #1d4ed8);
  background: rgba(29, 78, 216, 0.1);
}

.admin-person-detail-section {
  padding: 0.9rem 1rem;
  border-radius: 0.85rem;
  border: 1px solid rgba(148, 163, 184, 0.28);
  background: #fff;
}

.admin-person-detail-section--payment {
  background:
    linear-gradient(180deg, rgba(34, 197, 94, 0.05), transparent 42%),
    #fff;
}

.admin-person-detail-heading {
  margin: 0 0 0.75rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted, #64748b);
}

.admin-person-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 0.75rem;
}

.admin-person-detail-field {
  min-width: 0;
  padding: 0.55rem 0.65rem;
  border-radius: 0.55rem;
  background: var(--surface-muted, #f8fafc);
}

.admin-person-detail-field.is-wide {
  grid-column: 1 / -1;
}

.admin-person-detail-label {
  display: block;
  margin-bottom: 0.2rem;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--ink-muted, #64748b);
}

.admin-person-detail-value {
  display: block;
  font-size: 0.925rem;
  font-weight: 550;
  color: var(--ink, #0f172a);
  word-break: break-word;
}

.admin-person-detail-value--mono,
.admin-person-detail-value code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.9rem;
}

.admin-person-detail-payment-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 0.65rem;
  background: var(--surface-muted, #f8fafc);
  border: 1px solid rgba(148, 163, 184, 0.22);
}

.admin-person-detail-payment-status {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.admin-person-detail-payment-total {
  text-align: right;
}

.admin-person-detail-payment-total strong {
  display: block;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink, #0f172a);
}

.admin-person-detail-empty {
  margin: 0;
  font-size: 0.875rem;
  color: var(--ink-muted, #64748b);
}

.admin-person-detail-orders {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.admin-person-detail-order {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
  padding: 0.55rem 0.7rem;
  border-radius: 0.55rem;
  background: var(--surface-muted, #f8fafc);
  font-size: 0.875rem;
}

.admin-person-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 0.25rem;
}

@media (max-width: 560px) {
  .admin-person-detail-grid {
    grid-template-columns: 1fr;
  }

  .admin-person-detail-field.is-wide {
    grid-column: auto;
  }

  .admin-person-detail-payment-total {
    text-align: left;
  }
}

.tk-participant-detail-section + .tk-participant-detail-section {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
}

.tk-participant-detail-heading {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  font-weight: 650;
}

.tk-participant-detail-orders {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.35rem;
  font-size: 0.875rem;
}

.tk-participant-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
}

.admin-kpi-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.65rem;
  background: var(--admin-blue-soft);
  color: var(--admin-blue);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.admin-kpi-icon svg {
  width: 1.35rem;
  height: 1.35rem;
}

.admin-kpi-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.admin-kpi-label {
  font-size: 0.8125rem;
  color: #64748b;
  font-weight: 500;
}

.admin-kpi-value {
  font-size: 1.5rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.admin-kpi-hint {
  font-size: 0.75rem;
  color: #94a3b8;
}

.tk-payment-summary {
  padding: 1rem 1.15rem;
}

.tk-payment-summary-head {
  margin-bottom: 0.85rem;
}

.tk-payment-summary-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  font-size: 0.8125rem;
  color: #64748b;
}

.tk-payment-summary-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: var(--admin-blue-soft, #eff6ff);
  color: var(--admin-blue, #2563eb);
  font-size: 0.75rem;
  font-weight: 600;
}

.tk-payment-summary-prices {
  color: #475569;
}

.tk-payment-summary-link {
  font-size: 0.8125rem;
}

.tk-payment-kpi-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 0.75rem;
}

.tk-payment-kpi-card {
  padding: 0.75rem 0.9rem;
  align-items: center;
}

.tk-payment-kpi-icon {
  width: 2.25rem;
  height: 2.25rem;
}

.tk-payment-kpi-icon-total {
  background: #eef2ff;
  color: #4338ca;
}

.tk-payment-kpi-icon-paid {
  background: #ecfdf5;
  color: #059669;
}

.tk-payment-kpi-icon-unpaid {
  background: #fff7ed;
  color: #d97706;
}

.tk-payment-kpi-value-paid {
  color: #047857;
}

.tk-payment-kpi-value-unpaid {
  color: #b45309;
}

.tk-payment-progress {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
}

.tk-payment-progress-track {
  flex: 1;
  height: 0.45rem;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}

.tk-payment-progress-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #10b981, #059669);
  transition: width 0.25s ease;
}

.tk-payment-progress-label {
  flex-shrink: 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
}

.tk-payment-summary-foot {
  display: grid;
  gap: 0.35rem;
  padding-top: 0.75rem;
  border-top: 1px solid #e2e8f0;
}

.tk-payment-summary-foot-line {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: #64748b;
  line-height: 1.45;
}

.tk-payment-summary-foot-icon {
  display: inline-flex;
  width: 1rem;
  height: 1rem;
  margin-top: 0.1rem;
  color: #94a3b8;
  flex-shrink: 0;
}

.tk-payment-summary-foot-icon svg {
  width: 1rem;
  height: 1rem;
}

.admin-shell .card,
.admin-shell .admin-kpi-card,
.admin-shell .admin-list-table-card {
  border-radius: 1rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06), 0 8px 24px rgba(15, 23, 42, 0.04);
}

.admin-dashboard-web-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}

.admin-analytics-note {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
  font-size: 0.875rem;
}

.admin-dashboard-analytics {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.admin-dashboard-analytics-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.9fr);
  gap: 1rem;
  align-items: stretch;
}

.admin-dashboard-analytics-grid--secondary {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-dashboard-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.admin-dashboard-dual-chart {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.admin-dashboard-chart-title {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-chart-bars {
  display: flex;
  align-items: flex-end;
  gap: 0.65rem;
  height: 9rem;
  min-height: 9rem;
  padding-top: 0.5rem;
}

.admin-chart-bar-col {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  height: 100%;
  min-width: 0;
}

.admin-chart-bar {
  width: 100%;
  max-width: 2.5rem;
  min-height: 4px;
  flex-shrink: 0;
  border-radius: 0.45rem 0.45rem 0.15rem 0.15rem;
  background: linear-gradient(180deg, #60a5fa 0%, var(--admin-blue, #3b82f6) 100%);
}

.admin-dashboard-chart-block:nth-child(2) .admin-chart-bar {
  background: linear-gradient(180deg, #34d399 0%, #059669 100%);
}

.admin-chart-bar-label {
  font-size: 0.6875rem;
  color: #94a3b8;
  text-transform: uppercase;
}

.admin-line-chart {
  width: 100%;
  height: 9rem;
  display: block;
}

.admin-line-chart-area {
  fill: rgba(59, 130, 246, 0.12);
}

.admin-line-chart-line {
  fill: none;
  stroke: var(--admin-blue, #3b82f6);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.admin-line-chart-labels {
  display: flex;
  justify-content: space-between;
  gap: 0.35rem;
  margin-top: 0.65rem;
  font-size: 0.6875rem;
  color: #94a3b8;
}

.admin-tracked-metrics {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

.admin-tracked-metrics li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.875rem;
  color: #64748b;
}

.admin-tracked-metrics li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.admin-tracked-metrics strong {
  font-size: 1rem;
  color: #0f172a;
  font-variant-numeric: tabular-nums;
}

.admin-feed-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.admin-feed-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
}

.admin-feed-avatar {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  background: var(--admin-blue-soft, #eff6ff);
  color: var(--admin-blue, #3b82f6);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
}

.admin-feed-avatar--sport {
  background: #ecfdf5;
  font-size: 1rem;
}

.admin-feed-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.admin-feed-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: #0f172a;
}

.admin-feed-meta {
  font-size: 0.75rem;
  color: #64748b;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-feed-time {
  font-size: 0.6875rem;
  color: #94a3b8;
  white-space: nowrap;
}

.admin-dashboard-log-table th,
.admin-dashboard-log-table td {
  font-size: 0.8125rem;
}

.admin-dashboard-panels {
  display: grid;
  grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.admin-dashboard-panels-stacked {
  grid-template-columns: minmax(0, 1fr);
}

.admin-dashboard-panel {
  padding: 1.25rem;
}

.admin-dashboard-panel-areas {
  padding-bottom: 1.5rem;
}

.admin-dashboard-areas-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.admin-dashboard-areas-heading {
  min-width: 0;
}

.admin-dashboard-view-toggle {
  display: inline-flex;
  flex-shrink: 0;
  border: 1px solid #e2e8f0;
  border-radius: 0.55rem;
  overflow: hidden;
  background: #fff;
}

.admin-dashboard-view-toggle-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.admin-dashboard-view-toggle-btn + .admin-dashboard-view-toggle-btn {
  border-left: 1px solid #e2e8f0;
}

.admin-dashboard-view-toggle-btn svg {
  width: 1.1rem;
  height: 1.1rem;
}

.admin-dashboard-view-toggle-btn:hover {
  background: #f8fafc;
  color: #0f172a;
}

.admin-dashboard-view-toggle-btn.is-active {
  background: var(--admin-blue-soft, #eff6ff);
  color: var(--admin-blue, #2563eb);
}

.admin-dashboard-section-group + .admin-dashboard-section-group {
  margin-top: 1.75rem;
}

.admin-dashboard-section-group .home-tiles-section {
  margin-bottom: 0;
}

.admin-dashboard-section-list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.admin-dashboard-section-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.875rem 1rem;
  padding: 0.875rem 1rem;
  text-decoration: none;
  color: inherit;
}

.admin-dashboard-section-row-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.65rem;
  background: #f8fafc;
  font-size: 1.35rem;
  line-height: 1;
  flex-shrink: 0;
}

.admin-dashboard-section-row-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.admin-dashboard-section-row-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #0f172a;
}

.admin-dashboard-section-row-meta {
  font-size: 0.8125rem;
  color: #64748b;
}

.admin-dashboard-section-row-action {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--admin-blue, #2563eb);
  white-space: nowrap;
}

.admin-dashboard-panel-wide .home-tiles-section {
  margin-bottom: 1.5rem;
}

.admin-body .data-table th {
  background: #f8fafc;
  color: #64748b;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-badge-published,
.admin-body .badge-success {
  background: #dcfce7;
  color: #166534;
}

.admin-badge-draft,
.admin-body .badge-neutral {
  background: #f1f5f9;
  color: #475569;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 1100px) {
  .admin-kpi-grid,
  .admin-dashboard-web-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tk-payment-kpi-grid {
    grid-template-columns: 1fr;
  }

  .admin-dashboard-analytics-grid,
  .admin-dashboard-analytics-grid--secondary,
  .admin-dashboard-dual-chart {
    grid-template-columns: 1fr;
  }

  .admin-dashboard-panels,
  .admin-dashboard-panels-stacked {
    grid-template-columns: 1fr;
  }

  .admin-dashboard-areas-header {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-dashboard-view-toggle {
    align-self: flex-end;
  }

  .admin-dashboard-section-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .admin-dashboard-section-row-action {
    grid-column: 2;
    justify-self: start;
  }

  .admin-shell-topbar-center {
    display: none;
  }
}

@media (max-width: 900px) {
  .admin-shell-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .admin-shell-sidebar {
    position: fixed;
    left: 0;
    top: 0;
    transform: translateX(-100%);
    transition: transform 0.2s ease;
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.15);
  }

  body.admin-shell-nav-open::before {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    z-index: 35;
  }

  body.admin-shell-nav-open .admin-shell-sidebar {
    transform: translateX(0);
  }

  .admin-shell-user-meta {
    display: none;
  }

  .admin-shell-content {
    padding: 1rem 0.85rem 1.5rem;
  }

  .admin-shell form.admin-form > .admin-form-actions {
    left: 0;
    width: auto;
    padding: 0.65rem 0.85rem;
  }

  .admin-shell-topbar {
    padding: 0 0.85rem;
    gap: 0.65rem;
  }

  .admin-page-header {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-page-header-actions,
  .admin-form-actions {
    width: 100%;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .admin-page-header-actions .btn,
  .admin-form-actions .btn {
    flex: 0 1 auto;
    justify-content: center;
  }

  .admin-page-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .admin-page-toolbar > .flex {
    width: 100%;
  }

  .admin-page-toolbar .btn {
    flex: 0 1 auto;
  }

  .admin-list-toolbar {
    padding: 0.85rem;
  }

  .admin-list-search {
    max-width: none;
    width: 100%;
  }

  .admin-list-filters {
    flex-direction: column;
    gap: 0.75rem;
  }

  .table-shell,
  .admin-list-table-shell {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table-shell .data-table,
  .admin-list-table-shell .data-table {
    min-width: 36rem;
  }

  .admin-form-wide {
    max-width: none;
  }
}

.admin-body .home-tile .card-title {
  font-size: 1.25rem;
}

.admin-body .cards-grid-home {
  max-width: none;
}

.admin-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

.admin-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.admin-page-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.admin-page-toolbar .page-title {
  margin: 0;
}

.admin-page-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.flex-1 { flex: 1 1 0%; }

.admin-stat-grid {
  display: grid;
  gap: 0.875rem;
  grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
  margin-bottom: 2rem;
}

.admin-stat-card {
  background: var(--surface);
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
  padding: 1rem 1.125rem;
  box-shadow: 0 1px 2px rgba(36, 36, 40, 0.04);
  transition: border-color 0.15s, box-shadow 0.15s;
  text-decoration: none;
  color: inherit;
  display: flex;
  align-items: center;
  gap: 0.875rem;
  min-height: 4.75rem;
}

.admin-stat-card:hover {
  border-color: rgba(252, 76, 2, 0.35);
  box-shadow: 0 6px 18px rgba(36, 36, 40, 0.08);
}

.admin-stat-card:hover .admin-stat-label {
  color: var(--brand);
}

.admin-stat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--radius-md);
  background: var(--brand-soft);
  color: var(--brand);
  flex-shrink: 0;
}

.admin-stat-body {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.admin-stat-label {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.admin-stat-value {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ink-muted);
  line-height: 1.2;
}

.admin-sport-icon-cell {
  width: 2rem;
  font-size: 1.125rem;
  text-align: center;
}

.admin-sport-picker {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
}

.admin-sport-picker-item {
  margin: 0;
  padding: 0.625rem 0.75rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-md);
  background: var(--surface-muted);
}

.admin-sport-picker-icon {
  font-size: 1.125rem;
  line-height: 1;
}

.emoji-picker-current {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.emoji-picker-preview {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: var(--surface-muted);
  font-size: 1.5rem;
  line-height: 1;
  flex-shrink: 0;
}

.emoji-picker-input {
  flex: 1;
  min-width: 0;
}

.emoji-picker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(2.5rem, 1fr));
  gap: 0.375rem;
  max-width: 24rem;
}

.emoji-picker-option {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 1;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-md);
  background: var(--surface);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: border-color 0.15s, background 0.15s, transform 0.12s;
}

.emoji-picker-option:hover {
  border-color: rgba(252, 76, 2, 0.45);
  background: var(--brand-soft);
}

.emoji-picker-option.is-selected {
  border-color: var(--brand);
  background: var(--brand-soft);
  box-shadow: 0 0 0 2px rgba(252, 76, 2, 0.15);
}

.emoji-picker-option:active {
  transform: scale(0.96);
}

.admin-empty {
  border-radius: var(--radius-xl);
  border: 1px solid var(--surface-line);
  background: var(--surface);
  padding: 2rem;
  text-align: center;
  color: var(--ink-muted);
}

.admin-form {
  max-width: 32rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
}

.admin-form-wide,
.admin-danger-zone {
  align-items: flex-start;
}

.admin-form > .form-field,
.admin-form > label.form-field,
.admin-form > label.form-checkbox,
.admin-form > fieldset,
.admin-form-wide > .form-field,
.admin-form-wide > label.form-field,
.admin-form-wide > label.form-checkbox,
.admin-form-wide > fieldset,
.admin-form > textarea,
.admin-form > select,
.admin-form > input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.admin-form-wide > textarea,
.admin-form-wide > select,
.admin-form-wide > input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]) {
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.admin-shell .admin-form > .btn:not(.btn-block),
.admin-shell .admin-danger-zone > .btn:not(.btn-block),
.admin-shell .admin-form-delete .admin-form-actions {
  align-self: flex-start;
}

.admin-shell .admin-form-actions {
  align-self: stretch;
  width: 100%;
}

.admin-shell .admin-form-actions .btn:not(.btn-block) {
  width: auto;
  max-width: 100%;
  flex: 0 0 auto;
}

.admin-form-wide {
  max-width: min(48rem, 100%);
  width: 100%;
  box-sizing: border-box;
}

.admin-shell .card,
.admin-shell .admin-form,
.admin-shell .admin-form-wide,
.admin-shell .admin-list-table-card {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.admin-shell .table-shell,
.admin-shell .admin-list-table-shell,
.admin-shell .records-table-scroll,
.admin-shell .shared-event-admin-participants-scroll {
  max-width: 100%;
  min-width: 0;
}

.admin-participants-panel {
  max-width: none;
}

.shared-event-add-user-form {
  padding: 1rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
  background: rgba(148, 163, 184, 0.06);
}

.shared-event-add-user-grid {
  display: grid;
  gap: 0.75rem 1rem;
  align-items: end;
}

@media (min-width: 900px) {
  .shared-event-add-user-grid {
    grid-template-columns: minmax(16rem, 2fr) minmax(12rem, 1.5fr) auto;
  }
}

.admin-bulk-participants-panel {
  padding-top: 0.25rem;
  border-top: 1px solid var(--border);
}

.admin-bulk-participants-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: flex-end;
}

.admin-bulk-participants-team-form {
  flex: 1 1 18rem;
  max-width: 28rem;
  margin-bottom: 0;
}

.shared-event-add-user-actions {
  display: flex;
  align-items: flex-end;
  padding-bottom: 0.125rem;
}

.shared-event-admin-participants-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
  padding-bottom: 0.25rem;
}

.admin-participants-scroll-5 {
  --admin-participants-visible-rows: 5;
  --admin-participants-row-height: 2.65rem;
  --admin-participants-header-height: 3.35rem;
  overflow-y: auto;
  max-height: calc(
    var(--admin-participants-header-height)
    + var(--admin-participants-row-height) * var(--admin-participants-visible-rows)
  );
}

.admin-participants-scroll-5 .admin-participants-compact-table thead tr:first-child th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--surface-alt, #f8fafc);
  box-shadow: 0 1px 0 var(--surface-line);
}

.admin-participants-scroll-5 .admin-participants-compact-table thead .admin-table-filter-row th {
  position: sticky;
  top: 1.65rem;
  z-index: 2;
  background: var(--surface-alt, #f8fafc);
  box-shadow: 0 1px 0 var(--surface-line);
}

.admin-body .shared-event-admin-participants-table.table-shell {
  overflow-x: auto;
  max-width: 100%;
  min-width: 0;
}

.shared-event-admin-participants-table .data-table th,
.shared-event-admin-participants-table .data-table td {
  vertical-align: top;
}

.admin-table-filter-row th {
  padding-top: 0.25rem;
  padding-bottom: 0.75rem;
}

.admin-table-filter-row .form-input-sm {
  min-width: 4.5rem;
  width: 100%;
}

.shared-event-admin-participants-table th.shared-event-participants-actions-col,
.shared-event-admin-participants-table td.shared-event-participants-actions-col {
  position: sticky;
  right: 0;
  z-index: 4;
  min-width: 9.5rem;
  background-color: var(--bg-card, #ffffff);
  box-shadow: -8px 0 14px rgba(15, 23, 42, 0.16);
}

.shared-event-admin-participants-table .data-table thead th.shared-event-participants-actions-col {
  z-index: 6;
  background-color: var(--bg-table-head, #fafafa);
}

.shared-event-admin-participants-table tr.tk-admin-team-row--0 td.shared-event-participants-actions-col {
  background-color: color-mix(in srgb, rgb(59, 130, 246) 18%, var(--bg-card, #fff));
}

.shared-event-admin-participants-table tr.tk-admin-team-row--1 td.shared-event-participants-actions-col {
  background-color: color-mix(in srgb, rgb(34, 197, 94) 18%, var(--bg-card, #fff));
}

.shared-event-admin-participants-table tr.tk-admin-team-row--2 td.shared-event-participants-actions-col {
  background-color: color-mix(in srgb, rgb(234, 179, 8) 22%, var(--bg-card, #fff));
}

.shared-event-admin-participants-table tr.tk-admin-team-row--3 td.shared-event-participants-actions-col {
  background-color: color-mix(in srgb, rgb(168, 85, 247) 18%, var(--bg-card, #fff));
}

.shared-event-admin-participants-table tr.tk-admin-team-row--4 td.shared-event-participants-actions-col {
  background-color: color-mix(in srgb, rgb(236, 72, 153) 18%, var(--bg-card, #fff));
}

.shared-event-admin-participants-table tr.tk-admin-team-row--5 td.shared-event-participants-actions-col {
  background-color: color-mix(in srgb, rgb(20, 184, 166) 18%, var(--bg-card, #fff));
}

.shared-event-admin-participants-table .shared-event-participants-email {
  min-width: 11rem;
  word-break: break-word;
}

.shared-event-admin-participants-table .shared-event-participants-address {
  min-width: 12rem;
  max-width: 18rem;
  word-break: break-word;
}

.shared-event-admin-participants-table .shared-event-participants-note {
  min-width: 8rem;
  max-width: 14rem;
}

.shared-event-admin-participants-table .shared-event-participants-name {
  min-width: 8rem;
}

.admin-form.card {
  padding: 1.5rem;
}

.admin-fieldset {
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
  padding: 1rem;
  margin: 0;
}

.admin-fieldset legend {
  padding: 0 0.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ink-soft);
}

.dashboard-tabs-override-banner {
  border: 1px dashed var(--surface-line);
  border-radius: var(--radius-md);
  background: var(--surface-muted, rgba(0, 0, 0, 0.03));
  padding: 0.75rem 0.875rem;
}

.dashboard-tabs-override-banner--active {
  border-style: solid;
  border-color: var(--brand, #2563eb);
  background: color-mix(in srgb, var(--brand, #2563eb) 8%, transparent);
}

.dashboard-content-picker-list {
  max-height: 14rem;
  overflow: auto;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-md);
  background: var(--bg-soft, #f8fafc);
}

.dashboard-content-section + .dashboard-content-section {
  padding-top: 0.25rem;
  border-top: 1px solid var(--surface-line);
}

.admin-panel {
  margin-top: 1.5rem;
  max-width: 42rem;
}

.admin-page-menu .admin-panel,
.admin-page-menu .admin-panel.card {
  max-width: none;
  width: 100%;
}

.admin-page-menu .admin-danger-zone {
  max-width: 56rem;
}

.admin-panel.card {
  padding: 1.5rem;
}

.admin-list {
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.admin-list-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--surface-line);
  font-size: 0.875rem;
}

.admin-list-item:first-child {
  border-top: none;
}

.admin-danger-zone {
  margin-top: 2rem;
  border: 1px solid #fecaca;
  background: #fef2f2;
  border-radius: var(--radius-xl);
  padding: 1.5rem;
}

.admin-danger-zone .section-title {
  color: #991b1b;
}

.admin-toolbar-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-xl);
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(36, 36, 40, 0.04);
}

.form-field label {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ink-soft);
}

.form-field .form-hint {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.form-input,
.admin-form input[type="text"],
.admin-form input[type="email"],
.admin-form input[type="number"],
.admin-form input[type="password"],
.admin-form input[type="file"],
.admin-form select,
.admin-form textarea {
  width: 100%;
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  padding: 0.625rem 0.75rem;
  font-size: 0.875rem;
  font-family: inherit;
  background: var(--surface);
  color: var(--ink);
}

.form-input:focus,
.admin-form input:focus,
.admin-form select:focus,
.admin-form textarea:focus {
  outline: none;
  border-color: rgba(252, 76, 2, 0.45);
  box-shadow: 0 0 0 3px rgba(252, 76, 2, 0.12);
}

.password-field {
  position: relative;
  width: 100%;
}

.password-field input {
  width: 100%;
  padding-right: 2.75rem;
}

input[type="password"]::-ms-reveal {
  display: none;
}

.password-field-toggle {
  position: absolute;
  top: 50%;
  right: 0.5rem;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  border-radius: var(--radius-md);
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
}

.password-field-toggle:hover {
  color: var(--text-soft);
  background: var(--bg-hover);
  opacity: 1;
}

.admin-body .password-field .password-field-toggle,
.admin-body .password-field .password-field-toggle:hover {
  color: var(--text);
  opacity: 1;
}

.password-field-toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(252, 76, 2, 0.12);
}

.password-field-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

.password-field-toggle .password-field-icon-hide {
  display: none;
}

.password-field-toggle[aria-pressed="true"] .password-field-icon-show {
  display: none;
}

.password-field-toggle[aria-pressed="true"] .password-field-icon-hide {
  display: inline-flex;
}

.form-checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
}

.admin-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding-top: 0.25rem;
}

.admin-shell form.admin-form > .admin-form-actions {
  position: fixed;
  z-index: 40;
  left: var(--admin-sidebar-width);
  right: 0;
  bottom: 0;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0.75rem 1.5rem;
  background: #fff;
  border-top: 1px solid #e2e8f0;
  box-shadow: 0 -6px 18px rgba(15, 23, 42, 0.08);
}

.admin-shell:has(form.admin-form > .admin-form-actions) .admin-shell-content {
  padding-bottom: 5.5rem;
}

.admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem 0.75rem;
  align-items: center;
}

.admin-action-link {
  color: var(--brand);
  font-weight: 600;
  text-decoration: none;
  font-size: 0.875rem;
}

.admin-action-link:hover {
  color: var(--brand-hover);
  text-decoration: underline;
}

.admin-action-muted {
  color: var(--ink-muted);
  font-weight: 500;
  text-decoration: none;
  font-size: 0.875rem;
}

.admin-action-muted:hover {
  color: var(--ink-soft);
  text-decoration: underline;
}

.admin-action-danger {
  color: #b91c1c;
  font-weight: 600;
  text-decoration: none;
  font-size: 0.875rem;
}

.admin-inline-form {
  display: inline;
  margin: 0;
}

.admin-inline-form button.admin-action-danger {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font: inherit;
}

.admin-inline-form button.admin-action-danger:hover {
  text-decoration: underline;
}

.admin-action-danger:hover {
  color: #991b1b;
  text-decoration: underline;
}

.admin-badge {
  display: inline-block;
  border-radius: 9999px;
  padding: 0.125rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.25;
}

.admin-badge-success {
  background: var(--brand-soft);
  color: var(--brand-hover);
}

.admin-badge-warning {
  background: #fef3c7;
  color: #92400e;
}

.admin-badge-muted {
  background: #ececf1;
  color: var(--ink-muted);
}

.admin-badge-dark {
  background: var(--ink);
  color: #fff;
}

.admin-badge-info {
  background: #e0f2fe;
  color: #0369a1;
}

.admin-calendar-entries-empty {
  padding: 1.5rem 1.25rem;
}

.admin-calendar-entries-wrap {
  padding: 0;
  overflow: hidden;
}

.admin-calendar-entries-table {
  margin: 0;
}

.admin-calendar-entries-table thead th {
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
  font-size: 0.6875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  white-space: nowrap;
}

.admin-calendar-entries-table tbody tr {
  transition: background 0.12s ease;
}

.admin-calendar-entries-table tbody tr:hover {
  background: #f8fafc;
}

.admin-calendar-entries-col-color {
  width: 2.5rem;
  padding-left: 1rem !important;
}

.admin-calendar-entry-color {
  display: inline-block;
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 999px;
  background: var(--calendar-accent, #94a3b8);
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);
}

.admin-calendar-entry-kind {
  background: #ede9fe;
  color: #5b21b6;
}

.admin-calendar-entry-kind-user {
  background: #cffafe;
  color: #0e7490;
}

.admin-calendar-entry-title {
  font-weight: 600;
  color: #0f172a;
  max-width: 18rem;
}

.admin-calendar-entry-title-text {
  display: inline;
}

.admin-calendar-entry-flag {
  margin-left: 0.35rem;
  color: #d97706;
  font-size: 0.8125rem;
}

.admin-calendar-entry-date {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: #334155;
}

.admin-logo-thumb {
  display: block;
  height: 1.75rem;
  max-width: 3.5rem;
  object-fit: contain;
  object-position: center center;
  padding: 0.125rem 0.25rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-sm);
  background: var(--surface);
}

.admin-logo-preview-wrap {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.admin-logo-preview {
  display: block;
  height: 2.25rem;
  max-width: 5rem;
  object-fit: contain;
  object-position: center center;
  padding: 0.25rem 0.375rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-md);
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(36, 36, 40, 0.04);
}

.admin-race-logo-preview {
  height: 3.5rem;
  max-width: 10rem;
}

.admin-brand-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-md);
  background: var(--surface);
}

.admin-brand-header-logo {
  display: block;
  max-width: 4.5rem;
  max-height: 3rem;
  object-fit: contain;
}

.admin-brand-header-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.admin-brand-header-title {
  font-size: 1rem;
  line-height: 1.3;
}

.admin-brand-header-subtitle {
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.home-page-builder-card-icon.has-image {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 0.25rem;
}

.admin-builder-card-logo {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 2.5rem;
  max-height: 2.5rem;
  object-fit: contain;
}

.admin-news-image-preview {
  width: 100%;
  max-width: 20rem;
  aspect-ratio: 16 / 9;
  max-height: none;
  object-fit: contain;
  -webkit-object-fit: contain;
  padding: 0;
}

.admin-hint {
  margin-top: 1rem;
  font-size: 0.875rem;
  color: var(--ink-muted);
  line-height: 1.5;
}

.admin-back-link {
  display: inline-block;
  margin-bottom: 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--brand);
  text-decoration: none;
}

.admin-back-link:hover {
  color: var(--brand-hover);
  text-decoration: underline;
}

.admin-body .page-main {
  flex: 1;
}

.admin-body .site-footer {
  margin-top: 0;
}

/* Activity feed */
.activity-feed-item {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  align-items: flex-start;
  padding: 1.25rem 1.5rem;
  border-top: 1px solid var(--surface-line);
}

.activity-feed-item:first-child {
  border-top: none;
}

.activity-feed-meta {
  font-size: 0.8125rem;
  color: var(--ink-muted);
}

.source-strava {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--brand);
}

.activity-source-badge,
.activity-source-badge-device {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--brand);
  white-space: nowrap;
}

.photo-thumb-list {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  align-items: center;
}

.photo-thumb:not(.site-page-gallery-thumb):not(.site-page-admin-gallery-thumb) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: 1px solid var(--surface-line);
  border-radius: 0.375rem;
  overflow: hidden;
  cursor: zoom-in;
  background: var(--bg-elevated);
  vertical-align: middle;
  transition: border-color 0.15s, box-shadow 0.15s, transform 0.12s;
}

.photo-thumb:not(.site-page-gallery-thumb):not(.site-page-admin-gallery-thumb):hover {
  border-color: rgba(252, 76, 2, 0.45);
  box-shadow: 0 0 0 2px rgba(252, 76, 2, 0.12);
}

.photo-thumb:not(.site-page-gallery-thumb):not(.site-page-admin-gallery-thumb):active {
  transform: scale(0.96);
}

.photo-thumb:not(.site-page-gallery-thumb):not(.site-page-admin-gallery-thumb) img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  -webkit-object-fit: contain;
  display: block;
  pointer-events: none;
}

.site-page-gallery-thumb.photo-thumb,
.photo-thumb.site-page-gallery-thumb {
  display: flex;
  width: 100%;
  height: auto;
  min-height: 0;
  border: none;
  border-radius: var(--radius-lg);
  background: none;
}

.site-page-gallery-thumb.photo-thumb img,
.photo-thumb.site-page-gallery-thumb img {
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: auto;
  object-fit: contain;
  -webkit-object-fit: contain;
  display: block;
  pointer-events: none;
}

.site-page-admin-gallery-thumb.photo-thumb,
.photo-thumb.site-page-admin-gallery-thumb {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  border: none;
  background: none;
}

.site-page-admin-gallery-thumb.photo-thumb img,
.photo-thumb.site-page-admin-gallery-thumb img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  -webkit-object-fit: contain;
  display: block;
  pointer-events: none;
}

.photo-lightbox {
  margin: auto;
  padding: 0;
  border: none;
  width: min(92vw, 1200px);
  max-height: 92vh;
  background: transparent;
  overflow: visible;
}

.photo-lightbox::backdrop {
  background: var(--overlay-backdrop);
}

.photo-lightbox-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.photo-lightbox-img {
  display: block;
  max-width: 100%;
  max-height: 88vh;
  width: auto;
  height: auto;
  margin: 0 auto;
  border-radius: 0.5rem;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45);
}

.photo-lightbox-close {
  position: absolute;
  top: -2.5rem;
  right: 0;
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 9999px;
  background: var(--surface-chip);
  color: var(--text);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.photo-lightbox-close:hover {
  background: var(--surface-chip-hover);
}

.photo-lightbox-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.75rem;
  height: 2.75rem;
  border: none;
  border-radius: 9999px;
  background: var(--surface-chip);
  color: var(--text);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
  z-index: 2;
}

.photo-lightbox-nav:hover {
  background: var(--surface-chip-hover);
}

.photo-lightbox-prev {
  left: -3.25rem;
}

.photo-lightbox-next {
  right: -3.25rem;
}

.photo-lightbox-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2.25rem;
  margin: 0;
  text-align: center;
  font-size: 0.875rem;
  color: var(--text);
}

.photo-lightbox-counter {
  position: absolute;
  top: -2.25rem;
  left: 0;
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-muted);
}

@media (max-width: 640px) {
  .photo-lightbox-prev {
    left: 0.25rem;
  }

  .photo-lightbox-next {
    right: 0.25rem;
  }

  .photo-lightbox-close {
    top: 0.25rem;
    right: 0.25rem;
  }
}

.activity-message-preview {
  display: inline;
  max-width: 100%;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: rgba(251, 146, 60, 0.45);
  text-underline-offset: 0.15em;
}

.activity-message-preview:hover {
  color: var(--accent-link);
}

.activity-message-preview-dialog {
  margin: auto;
  padding: 0;
  border: none;
  width: min(92vw, 32rem);
  max-height: 85vh;
  background: transparent;
  overflow: visible;
}

.activity-message-preview-dialog::backdrop {
  background: var(--overlay-backdrop);
}

.activity-message-preview-inner {
  position: relative;
  padding: 1.25rem 1.375rem 1.125rem;
  border-radius: 0.75rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45);
}

.activity-message-preview-title {
  margin: 0 2rem 0.75rem 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
}

.activity-message-preview-body {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--text-soft);
  white-space: pre-wrap;
  word-break: break-word;
}

.activity-message-preview-close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: 9999px;
  background: var(--surface-chip);
  color: var(--text);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.activity-message-preview-close:hover {
  background: var(--surface-chip-hover);
}

.suz-page .suz-my-activities,
.suz-page .suz-all-activities,
.suz-page .suz-gallery {
  text-align: left;
  width: 100%;
  max-width: 100%;
}

.suz-page .suz-tab-panel {
  text-align: left;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.page-suz .suz-leaderboard {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.suz-page .suz-main-tabs {
  width: 100%;
}

.suz-page .suz-my-activities .section-title,
.suz-page .suz-all-activities .section-title,
.suz-page .suz-gallery .section-title,
.suz-page .suz-my-activities .page-lead,
.suz-page .suz-all-activities .page-lead,
.suz-page .suz-gallery .page-lead {
  text-align: left;
}

.suz-gallery-grid {
  margin-top: 0.5rem;
}

.suz-gallery-item {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.suz-gallery-caption {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  text-align: left;
}

.suz-gallery-author {
  font-weight: 600;
  color: var(--ink);
}

.suz-gallery-when,
.suz-gallery-meta {
  color: var(--ink-muted);
}

.suz-gallery-note {
  margin-top: 0.125rem;
  color: var(--ink-soft, var(--ink-muted));
  font-style: italic;
}

.suz-gallery-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}

.suz-gallery-download-all {
  flex: 0 0 auto;
  white-space: nowrap;
}

.suz-gallery-download-link {
  display: inline-block;
  margin-top: 0.25rem;
  font-size: 0.8125rem;
  font-style: normal;
  font-weight: 600;
}

.suz-page .suz-activities-table {
  width: 100%;
  margin-inline: 0;
}

.suz-page .suz-all-activities-table .challenge-activities-scroll .data-table {
  min-width: 0;
}

.suz-page .suz-my-activities-table .challenge-activities-scroll .data-table {
  min-width: 0;
}

.suz-page .suz-activities-table .challenge-activities-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  max-width: 100%;
}

.suz-page .suz-activities-table .challenge-activities-scroll .data-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  margin-inline: 0;
}

.page-suz .suz-leaderboard-table,
.page-suz .suz-activities-table .data-table {
  table-layout: fixed;
  width: 100%;
}

.page-suz .suz-leaderboard-table th,
.page-suz .suz-activities-table .data-table th {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.page-suz .suz-leaderboard-table th,
.page-suz .suz-leaderboard-table td,
.page-suz .suz-activities-table .data-table th,
.page-suz .suz-activities-table .data-table td {
  padding: 0.35rem 0.4rem;
  font-size: 0.8125rem;
  line-height: 1.25;
  vertical-align: middle;
}

.page-suz .suz-leaderboard-table td,
.page-suz .suz-activities-table .data-table td {
  overflow: hidden;
  text-overflow: ellipsis;
}

.page-suz .suz-activities-table .data-table th.suz-col-photos,
.page-suz .suz-activities-table .data-table td.suz-col-photos {
  overflow: visible;
  text-overflow: clip;
  max-width: none;
}

.page-suz .suz-activities-table .suz-col-photos .photo-thumb-list {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.2rem;
  max-width: none;
}

.page-suz .suz-col-rank,
.page-suz .suz-col-km,
.page-suz .suz-col-photos,
.page-suz .suz-col-source,
.page-suz .suz-col-edit,
.page-suz .suz-col-count,
.page-suz .suz-col-participants,
.page-suz .suz-col-activities,
.page-suz .suz-metric-km-cell,
.page-suz .activity-edit-col,
.page-suz .activity-edit-cell {
  white-space: nowrap;
}

.page-suz .suz-leaderboard-table--team {
  width: 100%;
}

.page-suz .suz-leaderboard-table--team th.suz-col-participants,
.page-suz .suz-leaderboard-table--team th.suz-col-activities {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  line-height: 1.2;
}

.page-suz .suz-leaderboard-table--team .suz-col-name {
  overflow: visible;
  text-overflow: clip;
}

.page-suz .suz-leaderboard-table--team .suz-col-km,
.page-suz .suz-leaderboard-table--team .suz-col-participants,
.page-suz .suz-leaderboard-table--team .suz-col-activities {
  padding-left: 0.5rem;
}

@media (min-width: 768px) {
  .page-suz .suz-leaderboard-table--team {
    table-layout: auto;
    width: max-content;
    max-width: 100%;
  }

  .page-suz .suz-leaderboard-table--team col.suz-col-rank { width: 2.25rem; }

  .page-suz .suz-leaderboard-table--team th.suz-col-km,
  .page-suz .suz-leaderboard-table--team td.suz-col-km {
    min-width: 5.5rem;
  }

  .page-suz .suz-leaderboard-table--team th.suz-col-participants,
  .page-suz .suz-leaderboard-table--team td.suz-col-participants {
    min-width: 6.25rem;
  }

  .page-suz .suz-leaderboard-table--team th.suz-col-activities,
  .page-suz .suz-leaderboard-table--team td.suz-col-activities {
    min-width: 4.75rem;
  }

  .page-suz .suz-leaderboard-table--team th.suz-col-participants,
  .page-suz .suz-leaderboard-table--team th.suz-col-activities {
    white-space: nowrap;
  }

  .page-suz .suz-leaderboard-table--team .suz-col-name {
    padding-right: 0.75rem;
  }

  .page-suz .suz-leaderboard-table--team .suz-col-km {
    padding-left: 0.35rem;
    padding-right: 0.65rem;
  }

  .page-suz .suz-leaderboard-table--team .suz-col-km,
  .page-suz .suz-leaderboard-table--team .suz-col-participants,
  .page-suz .suz-leaderboard-table--team .suz-col-activities {
    overflow: visible;
    text-overflow: clip;
  }
}

.page-suz .suz-leaderboard-table--individual col.suz-col-rank { width: 1.75rem; }
.page-suz .suz-leaderboard-table--individual col.suz-col-name { width: 34%; }
.page-suz .suz-leaderboard-table--individual col.suz-col-team { width: 26%; }
.page-suz .suz-leaderboard-table--individual col.suz-col-km { width: 3.75rem; }
.page-suz .suz-leaderboard-table--individual col.suz-col-count { width: 2.35rem; }

.page-suz .suz-my-activities-table col.suz-col-edit { width: 1.75rem; }
.page-suz .suz-my-activities-table col.suz-col-date { width: 4.75rem; }
.page-suz .suz-my-activities-table col.suz-col-type { width: 18%; }
.page-suz .suz-my-activities-table col.suz-col-source { width: 2.5rem; }
.page-suz .suz-my-activities-table col.suz-col-km { width: 3.5rem; }
.page-suz .suz-my-activities-table col.suz-col-message { width: auto; }
.page-suz .suz-my-activities-table col.suz-col-photos { width: auto; min-width: 2.25rem; }

.page-suz .suz-all-activities-table col.suz-col-edit { width: 1.75rem; }
.page-suz .suz-all-activities-table col.suz-col-date { width: 4.5rem; }
.page-suz .suz-all-activities-table col.suz-col-participant { width: 17%; }
.page-suz .suz-all-activities-table col.suz-col-team { width: 13%; }
.page-suz .suz-all-activities-table col.suz-col-type { width: 14%; }
.page-suz .suz-all-activities-table col.suz-col-source { width: 2.35rem; }
.page-suz .suz-all-activities-table col.suz-col-km { width: 3.5rem; }
.page-suz .suz-all-activities-table col.suz-col-message { width: auto; }
.page-suz .suz-all-activities-table col.suz-col-photos { width: auto; min-width: 2.25rem; }

.page-suz .suz-activities-table .suz-col-participant .user-profile-preview-trigger {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}

.suz-page .suz-activities-table .data-table th,
.suz-page .suz-activities-table .data-table td {
  text-align: left;
}

.suz-page .suz-activities-table .data-table th.text-right,
.suz-page .suz-activities-table .data-table td.text-right,
.suz-page .suz-activities-table .suz-col-km {
  text-align: right;
}

/* SUZ — tabulky: řádky dat + hlavička, sticky head, posuvníky */
.page-suz .suz-table-scroll-9 {
  --suz-table-row-height: 2.375rem;
  --suz-desktop-table-rows: 9;
  --suz-table-visible-rows: var(--suz-desktop-table-rows, 9);
  width: 100%;
  max-width: 100%;
  max-height: calc(var(--suz-table-row-height) * (var(--suz-table-visible-rows) + 1));
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.page-suz .suz-table-scroll-9 .data-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--bg-card);
  box-shadow: 0 1px 0 var(--border);
}

.page-suz .suz-table-scroll-9 .data-table th,
.page-suz .suz-table-scroll-9 .data-table td,
.page-suz .suz-table-scroll-full .data-table th,
.page-suz .suz-table-scroll-full .data-table td {
  vertical-align: middle;
}

.page-suz .suz-table-scroll-9 .data-table tbody tr {
  height: var(--suz-table-row-height);
}

.page-suz .suz-leaderboard .table-shell.challenge-leaderboard-table,
.page-suz .suz-activities-table.table-shell {
  width: 100%;
  max-width: 100%;
}

.page-suz .suz-activities-pagination-footer {
  margin-top: 0.75rem;
}

.page-suz .suz-table-modal .suz-activities-pagination-footer {
  margin-top: 1rem;
  padding-top: 0.25rem;
}

.page-suz .suz-activities-pagination-summary {
  margin: 0;
}

.page-suz .suz-activities-lead {
  margin-top: 0;
}

.page-suz .suz-activities-lead-row {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.375rem;
}

.page-suz .suz-activities-lead-text {
  line-height: 1.5;
}

.page-suz .page-lead .suz-activities-legend-hint-btn {
  flex-shrink: 0;
}

.page-suz .suz-section-open-btn.section-title {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.5rem;
  padding: 0;
  border: none;
  background: none;
  color: inherit;
  font: inherit;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
  cursor: pointer;
  text-align: left;
}

.page-suz .suz-section-open-btn.section-title:hover,
.page-suz .suz-section-open-btn.section-title:focus-visible {
  color: var(--accent-link);
  outline: none;
}

.page-suz .suz-section-open-btn.section-title::after {
  content: '⤢';
  font-size: 0.85em;
  font-weight: 600;
  opacity: 0.65;
}

.page-suz .suz-leaderboard .table-shell-header {
  margin-bottom: 0.5rem;
}

@media (max-width: 767px) {
  .page-suz {
    --suz-mobile-table-rows: 8;
  }

  .page-suz .suz-table-scroll-9,
  .page-suz .suz-table-scroll-full,
  .page-suz .suz-activities-table .challenge-activities-scroll.suz-table-scroll-9,
  .page-suz .suz-activities-table .challenge-activities-scroll.suz-table-scroll-full,
  .page-suz .suz-leaderboard .records-table-scroll.suz-table-scroll-9,
  .page-suz .suz-leaderboard .records-table-scroll.suz-table-scroll-full {
    --suz-table-visible-rows: var(--suz-mobile-table-rows, 8);
    max-height: calc(var(--suz-table-row-height, 2.375rem) * (var(--suz-table-visible-rows) + 1));
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .page-suz .suz-leaderboard .table-shell {
    overflow-x: visible;
  }

  .page-suz .suz-leaderboard .records-table-scroll.suz-table-scroll-9,
  .page-suz .suz-leaderboard .records-table-scroll.suz-table-scroll-full {
    overflow: auto;
  }

  .page-suz .suz-leaderboard .data-table {
    min-width: 0;
    width: 100%;
    table-layout: fixed;
  }

  .page-suz .suz-leaderboard .suz-metric-km-cell {
    overflow: visible;
    text-align: right;
  }
}

.suz-table-modal {
  width: min(96vw, 58rem);
  max-height: 92vh;
  padding: 0;
  overflow: hidden;
}

.suz-table-modal-form {
  display: flex;
  flex-direction: column;
  max-height: 92vh;
  overflow: hidden;
  box-sizing: border-box;
}

.suz-table-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.page-suz .suz-table-scroll-full {
  --suz-table-row-height: 2.375rem;
  width: 100%;
  max-width: 100%;
  max-height: min(70vh, 40rem);
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.page-suz .suz-table-scroll-full .data-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--bg-card);
  box-shadow: 0 1px 0 var(--border);
}

.page-suz .suz-table-scroll-full .data-table th,
.page-suz .suz-table-scroll-full .data-table td {
  vertical-align: middle;
}

.page-suz .suz-table-scroll-full .data-table tbody tr {
  height: var(--suz-table-row-height);
}

.page-suz .suz-table-modal .table-shell {
  width: 100%;
  max-width: 100%;
}

/* SUZ — mobil: kompaktní tabulky, více sloupců viditelných */
@media (max-width: 767px) {
  .suz-page .suz-activities-table .data-table th,
  .suz-page .suz-activities-table .data-table td {
    font-size: 0.75rem;
    padding-inline: 0.3rem;
  }

  .page-suz .suz-leaderboard-table th,
  .page-suz .suz-leaderboard-table td {
    font-size: 0.75rem;
    padding-inline: 0.3rem;
  }

  .page-suz .suz-leaderboard-table--individual col.suz-col-name { width: 30%; }
  .page-suz .suz-leaderboard-table--individual col.suz-col-team { width: 22%; }
  .page-suz .suz-leaderboard-table--team {
    max-width: none;
  }
  .page-suz .suz-leaderboard-table--team col.suz-col-rank { width: 1.85rem; }
  .page-suz .suz-leaderboard-table--team .suz-col-rank {
    padding-right: 0.1rem;
    padding-left: 0.2rem;
    text-align: center;
  }
  .page-suz .suz-leaderboard-table--team .suz-col-name {
    padding-left: 0.15rem;
    padding-right: 0.35rem;
  }
  .page-suz .suz-leaderboard-table--team col.suz-col-name { width: auto; }
  .page-suz .suz-leaderboard-table--team col.suz-col-km { width: 2.75rem; }
  .page-suz .suz-leaderboard-table--team col.suz-col-participants,
  .page-suz .suz-leaderboard-table--team col.suz-col-activities,
  .page-suz .suz-leaderboard-table--team .suz-col-participants,
  .page-suz .suz-leaderboard-table--team .suz-col-activities {
    display: none;
  }
  .page-suz .suz-leaderboard-table--individual col.suz-col-km { width: 2.75rem; }
  .page-suz .suz-leaderboard-table col.suz-col-count { width: 2rem; }

  .page-suz .suz-all-activities-table col.suz-col-participant { width: 20%; }
  .page-suz .suz-all-activities-table col.suz-col-team { width: 15%; }
  .page-suz .suz-all-activities-table col.suz-col-type { width: 16%; }

  .page-suz .suz-activities-table .challenge-activities-scroll .data-table {
    width: max-content;
    min-width: 100%;
    table-layout: auto;
  }

  .page-suz .suz-all-activities-table .suz-col-date {
    min-width: 5.5rem;
  }

  .page-suz .suz-all-activities-table .suz-col-participant {
    min-width: 8rem;
    max-width: 11rem;
    overflow: hidden;
  }

  .page-suz .suz-all-activities-table .suz-col-km {
    min-width: 4.75rem;
    padding-left: 0.5rem;
    overflow: visible;
    background: var(--bg-card);
  }

  .page-suz .suz-all-activities-table .suz-col-message {
    min-width: 6rem;
  }

  .page-suz .suz-all-activities-table .suz-col-team {
    min-width: 6.5rem;
  }

  .page-suz .suz-all-activities-table .suz-col-type {
    min-width: 7.5rem;
  }

  .page-suz .suz-all-activities-table .suz-col-photos {
    min-width: 3rem;
  }

  .page-suz .suz-my-activities-table .suz-col-date {
    min-width: 5.5rem;
  }

  .page-suz .suz-my-activities-table .suz-col-km {
    min-width: 4rem;
    padding-left: 0.5rem;
    overflow: visible;
    background: var(--bg-card);
  }

  .suz-page .suz-activities-table .suz-col-photos .photo-thumb,
  .suz-page .suz-activities-table .suz-col-photos a {
    transform: scale(0.88);
    transform-origin: left center;
  }
}

.site-page--layout-narrow {
  max-width: 48rem;
}

.site-page--layout-medium {
  max-width: 56rem;
}

.site-page--layout-wide {
  max-width: 72rem;
}

.site-page--layout-full {
  max-width: none;
  width: 100%;
}

.admin-web-content-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
}

.admin-web-content-card {
  padding: 1rem 1.15rem;
  border: 1px solid var(--color-border, rgba(148, 163, 184, 0.35));
  border-radius: 0.5rem;
  background: var(--color-surface, #fff);
}

.admin-web-content-card-title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}

.admin-web-content-card-desc {
  margin: 0;
  font-size: 0.875rem;
  color: var(--color-muted, #64748b);
  line-height: 1.45;
}

.home-page-builder-toolbar-group--bulk {
  flex: 1 1 100%;
  min-width: 12rem;
}

.home-page-builder-bulk-layout-form {
  display: inline;
}

@media (min-width: 768px) {
  .page-suz .suz-activities-table {
    display: block;
    width: 100%;
    max-width: 100%;
  }

  .page-suz .suz-activities-table .suz-table-scroll-9,
  .page-suz .suz-activities-table .suz-table-scroll-full {
    width: 100%;
    max-width: 100%;
  }

  .page-suz .suz-activities-table .suz-table-scroll-9 .data-table,
  .page-suz .suz-activities-table .suz-table-scroll-full .data-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
  }

  .page-suz .suz-leaderboard .suz-table-scroll-9 .data-table,
  .page-suz .suz-leaderboard .suz-table-scroll-full .data-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
  }
}

/* SUZ — na desktopu užší sloupec místo roztažení přes celou obrazovku */
@media (min-width: 1024px) {
  .page-suz {
    --suz-layout-width-percent: 70;
  }

  .page-suz .page-main,
  .page-suz .page-main.page-main--home-layout.page-main--align-stretch,
  .page-suz .page-main.page-main--home-layout.page-main--align-left,
  .page-suz .page-main.page-main--home-layout.page-main--align-right,
  .page-suz .page-main.page-main--home-layout.page-main--align-center {
    max-width: calc(var(--suz-layout-width-percent, 70) * 1vw);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .page-suz .home-page-content,
  .page-suz .home-page-content--align-stretch,
  .page-suz .home-page-content--align-left,
  .page-suz .home-page-content--align-right,
  .page-suz .home-page-content--align-center {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .page-suz .suz-page {
    width: 100%;
    max-width: 100%;
  }

  .page-suz .suz-toolbar-sticky {
    left: auto;
    right: auto;
    width: 100%;
  }

  /* Filtry týmů a sportů — viditelný horizontální posuvník na desktopu */
  .page-suz .scroll-x-row.selection-bar {
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--ink-muted) 50%, transparent) transparent;
    padding-bottom: 0.2rem;
  }

  .page-suz .scroll-x-row.selection-bar::-webkit-scrollbar {
    display: block;
    height: 0.45rem;
  }

  .page-suz .scroll-x-row.selection-bar::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--ink-muted) 55%, transparent);
    border-radius: 999px;
  }

  .page-suz .scroll-x-row.selection-bar::-webkit-scrollbar-track {
    background: transparent;
  }
}

.suz-my-activities {
  margin-bottom: 2.5rem;
}

.suz-my-activities-lead {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: var(--text-muted);
}

.suz-my-activities-cards {
  display: grid;
  gap: 0.75rem;
}

.suz-my-activity-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.suz-my-activity-card-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}

.suz-my-activity-card-date {
  font-size: 0.8125rem;
  color: var(--text-muted);
  white-space: nowrap;
}

.suz-my-activity-card-message {
  margin: 0 0 0.5rem;
}

.privacy-banner {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 90;
  padding: 1rem;
  pointer-events: none;
}

.privacy-banner-inner {
  pointer-events: auto;
  max-width: 72rem;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  padding: 1rem 1.25rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-xl);
  background: var(--bg-card);
  box-shadow: var(--shadow-xl);
}

.privacy-banner-title {
  margin: 0 0 0.375rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
}

.privacy-banner-text {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--ink-muted);
  max-width: 42rem;
}

.privacy-banner-actions {
  flex-shrink: 0;
}

@media (max-width: 640px) {
  .privacy-banner-inner {
    flex-direction: column;
    align-items: stretch;
  }

  .privacy-banner-actions .btn {
    width: 100%;
    justify-content: center;
  }
}

.text-ink-muted { color: var(--ink-muted); }

.sport-overview-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}

@media (min-width: 900px) {
  .sport-overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.sport-overview-card {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.sport-overview-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  padding: 1rem 1.25rem 0.25rem;
}

.sport-overview-stats .stat-chip {
  flex: unset;
  min-width: 0;
}

.sport-overview-table {
  margin: 0.75rem 1.25rem 0;
  border-radius: var(--radius-lg);
}

.sport-overview-table .data-table th,
.sport-overview-table .data-table td {
  text-align: center;
}

.sport-overview-empty {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  text-align: center;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.sport-overview-footer {
  padding: 0.875rem 1.25rem 1.25rem;
  margin-top: auto;
  text-align: center;
}

@media (max-width: 520px) {
  .sport-overview-stats {
    grid-template-columns: 1fr;
  }
}

.prose code {
  background: rgba(148, 163, 184, 0.14);
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
  font-size: 0.875em;
  color: var(--text-soft);
}

@media (max-width: 640px) {
  .page-title {
    font-size: 1.5rem;
  }

  .site-nav-state:checked ~ .site-nav {
    width: 100%;
  }

  .btn {
    justify-content: center;
  }
}

/* Legacy Tailwind emerald utilities → Strava brand (admin & starší šablony) */
.bg-emerald-600 {
  background-color: var(--brand) !important;
}

.hover\:bg-emerald-700:hover {
  background-color: var(--brand-hover) !important;
}

.text-emerald-600,
.text-emerald-700,
.text-emerald-800 {
  color: var(--brand) !important;
}

.hover\:text-emerald-700:hover,
.hover\:text-emerald-800:hover {
  color: var(--brand-hover) !important;
}

.border-emerald-200,
.border-emerald-300 {
  border-color: rgba(252, 76, 2, 0.25) !important;
}

.bg-emerald-50,
.bg-emerald-100 {
  background-color: var(--brand-soft) !important;
}

.hover\:border-emerald-300:hover {
  border-color: rgba(252, 76, 2, 0.35) !important;
}

/* Final results page */
.results-page {
  max-width: 56rem;
}

.results-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.results-group-picker {
  padding: 1rem 1.25rem;
  max-width: 28rem;
}

.results-group-picker .form-select {
  width: 100%;
}

.results-picker {
  padding: 1.25rem;
}

.results-picker-section + .results-picker-section {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}

.results-picker-label {
  margin: 0 0 0.625rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.results-picker-empty {
  font-size: 0.9375rem;
  line-height: 1.5;
}

.results-challenge-list {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.results-challenge-header {
  margin-bottom: 1.5rem;
}

.results-challenge-kicker {
  margin: 0 0 0.375rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ink-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.results-challenge-title {
  margin: 0;
  font-size: clamp(1.375rem, 2.5vw, 1.75rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--text);
}

.results-challenge-meta {
  margin: 0.5rem 0 0;
  font-size: 0.9375rem;
  color: var(--ink-muted);
}

.results-section + .results-section {
  margin-top: 2rem;
}

.results-section-title {
  margin: 0 0 1.25rem;
  padding: 0.625rem 1rem;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-md);
  background: var(--bg-elevated);
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  color: var(--text);
}

.results-sport-list {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

.results-sport-row {
  display: grid;
  grid-template-columns: minmax(6.5rem, 8rem) 1fr;
  gap: 1rem 1.5rem;
  align-items: start;
}

.results-sport-label {
  padding-top: 1.75rem;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--text-soft);
}

.results-sport-columns {
  display: grid;
  gap: 1rem;
}

.results-sport-columns--gender {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.results-sport-columns--mix,
.results-sport-columns--teams {
  grid-template-columns: minmax(0, 1fr);
}

.results-column-heading {
  margin: 0 0 0.625rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text-muted);
}

.results-podium {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.results-podium-item {
  display: grid;
  grid-template-columns: 1.75rem 1fr;
  gap: 0.375rem;
  align-items: stretch;
}

.results-podium-rank {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text-muted);
}

.results-podium-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-height: 2rem;
  padding: 0.375rem 0.75rem;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.2;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
}

.results-podium-name {
  flex: 1;
  min-width: 0;
}

.results-podium-value {
  flex-shrink: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  white-space: nowrap;
  opacity: 0.92;
}

.results-podium-item--1 .results-podium-bar {
  background: linear-gradient(90deg, #ea580c 0%, #fbbf24 100%);
  color: #0f172a;
  border-color: rgba(251, 191, 36, 0.45);
  box-shadow: 0 4px 14px rgba(234, 88, 12, 0.28);
}

.results-podium-item--2 .results-podium-bar {
  background: linear-gradient(90deg, rgba(71, 85, 105, 0.95) 0%, rgba(100, 116, 139, 0.88) 100%);
  color: #f8fafc;
  border-color: rgba(148, 163, 184, 0.4);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.35);
}

.results-podium-item--3 .results-podium-bar {
  background: linear-gradient(90deg, #9a3412 0%, #d97706 100%);
  color: #fff7ed;
  border-color: rgba(217, 119, 6, 0.45);
  box-shadow: 0 4px 14px rgba(154, 52, 18, 0.28);
}

.results-podium-empty {
  margin: 0;
  color: var(--ink-muted);
  font-size: 0.9375rem;
}

.challenge-results-intro {
  margin-bottom: 1.25rem;
}

.challenge-results-intro .page-lead {
  margin: 0;
}

.challenge-results-page--embedded {
  max-width: none;
}

.challenge-results-page--embedded .challenge-results-grid {
  margin-top: 0.5rem;
}

/* Challenge results page (dashboard layout) */
.page-challenge-results .challenge-results-page {
  max-width: none;
}

.challenge-results-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.challenge-results-title {
  margin: 0.25rem 0 0;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 800;
  letter-spacing: -0.02em;
}

.challenge-results-kicker {
  margin: 0;
  font-size: 0.875rem;
  color: var(--ink-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}

.challenge-results-meta {
  margin: 0.5rem 0 0;
  color: var(--ink-muted);
  font-size: 0.9375rem;
}

.challenge-results-sport-tabs {
  margin-bottom: 1.25rem;
}

.challenge-results-overall-podium {
  margin-bottom: 1.25rem;
  padding: 1.25rem 1.5rem;
}

.challenge-results-section-title {
  margin: 0 0 1rem;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.challenge-results-grid {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.challenge-results-panel {
  padding: 1.25rem 1.5rem;
  min-width: 0;
}

.challenge-results-panel-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.challenge-results-panel-head .challenge-results-section-title {
  margin-bottom: 0;
}

.challenge-results-gender-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.challenge-results-gender-col {
  min-width: 0;
}

.challenge-results-gender-col .results-column-heading {
  margin-bottom: 0.625rem;
}

.challenge-results-sport-boards {
  display: flex;
  flex-direction: column;
}

.challenge-results-sport-block + .challenge-results-sport-block {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}

.challenge-results-sport-name {
  margin: 0 0 0.875rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--brand);
}

.challenge-results-panel .dashboard-table-wrap {
  max-height: min(28rem, 60vh);
  overflow: auto;
}

.results-podium-visual {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.625rem;
  align-items: stretch;
}

.results-podium-visual-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.35rem;
  min-width: 0;
  min-height: 5.75rem;
  padding: 0.75rem 0.5rem;
  border-radius: 0.75rem;
  background: color-mix(in srgb, var(--brand) 8%, var(--surface));
  border: 1px solid var(--border);
}

.results-podium-visual-item--1 {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--brand) 18%, var(--surface)),
    color-mix(in srgb, var(--brand) 8%, var(--surface))
  );
  border-color: color-mix(in srgb, var(--brand) 40%, var(--border));
  box-shadow: 0 4px 16px rgba(249, 115, 22, 0.1);
}

.results-podium-visual-item--2,
.results-podium-visual-item--3 {
  min-height: 5.75rem;
}

.results-podium-visual-medal {
  font-size: 1.25rem;
  line-height: 1;
  flex-shrink: 0;
}

.results-podium-visual-name {
  font-size: clamp(0.6875rem, 2vw, 0.8125rem);
  font-weight: 700;
  line-height: 1.25;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  word-break: break-word;
}

.results-podium-visual-value {
  font-size: 0.75rem;
  color: var(--ink-muted);
  font-weight: 600;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.page-challenge-results {
  overflow-x: clip;
}

.page-challenge-results .page-main {
  max-width: 100%;
  min-width: 0;
}

.challenge-results-sport-select {
  display: none;
  margin-bottom: 0.75rem;
}

.challenge-results-sport-select .form-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ink-muted);
}

.challenge-results-section-title-short {
  display: none;
}

.challenge-results-section-title-full {
  display: inline;
}

.challenge-results-team-mobile {
  display: none;
}

.race-results-podium-wrap {
  margin-bottom: 1rem;
}

.dashboard-panel-head-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}

@media (max-width: 900px) {
  .challenge-results-gender-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

@media (max-width: 767px) {
  .page-challenge-results .page-main {
    padding: 1rem max(0.75rem, env(safe-area-inset-left)) 2rem max(0.75rem, env(safe-area-inset-right));
  }

  .page-challenge-results .challenge-results-header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
    margin-bottom: 1rem;
  }

  .page-challenge-results .challenge-results-header-actions {
    width: 100%;
  }

  .page-challenge-results .challenge-results-header-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .page-challenge-results .challenge-results-title {
    font-size: 1.15rem;
    line-height: 1.3;
    overflow-wrap: anywhere;
  }

  .page-challenge-results .challenge-results-meta {
    font-size: 0.875rem;
  }

  .page-challenge-results .challenge-results-sport-select {
    display: block;
  }

  .page-challenge-results .challenge-results-sport-tabs--desktop {
    display: none !important;
  }

  .page-challenge-results .challenge-results-overall-podium,
  .page-challenge-results .challenge-results-panel {
    padding: 0.875rem 0.875rem 1rem;
  }

  .page-challenge-results .challenge-results-section-title {
    font-size: 0.875rem;
    margin-bottom: 0.875rem;
  }

  .page-challenge-results .challenge-results-section-title-full {
    display: none;
  }

  .page-challenge-results .challenge-results-section-title-short {
    display: inline;
  }

  .page-challenge-results .challenge-results-panel-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }

  .page-challenge-results .challenge-results-panel-head .dashboard-powered {
    font-size: 0.6875rem;
  }

  .page-challenge-results .results-podium-visual {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  .page-challenge-results .results-podium-visual-item {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
    gap: 0.625rem;
    min-height: 0;
    padding: 0.75rem 0.875rem;
  }

  .page-challenge-results .results-podium-visual-item--1 {
    order: 1;
  }

  .page-challenge-results .results-podium-visual-item--2 {
    order: 2;
  }

  .page-challenge-results .results-podium-visual-item--3 {
    order: 3;
  }

  .page-challenge-results .results-podium-visual-medal {
    font-size: 1.125rem;
    flex-shrink: 0;
    width: 1.5rem;
    text-align: center;
  }

  .page-challenge-results .results-podium-visual-name {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
  }

  .page-challenge-results .results-podium-visual-value {
    flex-shrink: 0;
    margin-left: auto;
    padding-left: 0.5rem;
    font-size: 0.8125rem;
  }

  .page-challenge-results .challenge-results-table {
    width: 100%;
    min-width: 0;
    font-size: 0.8125rem;
    table-layout: fixed;
  }

  .page-challenge-results .challenge-results-table th,
  .page-challenge-results .challenge-results-table td {
    padding: 0.5rem 0.35rem;
    vertical-align: middle;
  }

  .page-challenge-results .challenge-results-table th:nth-child(1),
  .page-challenge-results .challenge-results-table td:nth-child(1) {
    width: 2.25rem;
  }

  .page-challenge-results .challenge-results-table th:nth-child(3),
  .page-challenge-results .challenge-results-table td:nth-child(3),
  .page-challenge-results .challenge-results-table th:nth-child(5),
  .page-challenge-results .challenge-results-table td:nth-child(5) {
    display: none;
  }

  .page-challenge-results .challenge-results-table td:nth-child(2) {
    overflow: hidden;
    white-space: normal;
  }

  .page-challenge-results .challenge-results-name-cell {
    min-width: 0;
  }

  .page-challenge-results .challenge-results-team-mobile {
    display: block;
    margin-top: 0.125rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--ink-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .page-challenge-results .challenge-results-table td:nth-child(4) {
    text-align: right;
    white-space: nowrap;
    font-weight: 700;
  }

  .page-challenge-results .challenge-results-panel .dashboard-table-wrap {
    max-height: none;
    margin-inline: 0;
    overflow-x: visible;
  }

  .page-challenge-results .challenge-results-sport-name {
    font-size: 0.875rem;
  }

  .page-challenge-results .results-column-heading {
    font-size: 0.8125rem;
  }
}

@media (max-width: 640px) {
  .challenge-results-overall-podium,
  .challenge-results-panel {
    padding: 1rem 1rem 1.125rem;
  }

  .challenge-results-header {
    margin-bottom: 1rem;
  }

  .page-challenge-results .challenge-results-overall-podium,
  .page-challenge-results .challenge-results-panel {
    padding: 0.875rem 0.875rem 1rem;
  }
}

@media (max-width: 480px) {
  .page-challenge-results .challenge-results-title {
    font-size: 1.0625rem;
  }
}

@media (max-width: 400px) {
  .results-podium-visual {
    grid-template-columns: repeat(3, minmax(5.25rem, 1fr));
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    padding-bottom: 0.125rem;
  }
}

@media (max-width: 720px) {
  .results-sport-row {
    grid-template-columns: 1fr;
  }

  .results-sport-label {
    padding-top: 0;
  }

  .results-sport-columns--gender {
    grid-template-columns: 1fr;
  }
}

/* Návod k použití (veřejný) */
.user-guide-header .page-lead {
  color: var(--ink-soft);
  line-height: 1.55;
}

.user-guide-toc-title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 800;
}

.user-guide-toc-list {
  margin: 0;
  padding-left: 1.25rem;
  display: grid;
  gap: 0.35rem;
}

.user-guide-toc-list a {
  color: var(--accent-link);
  text-decoration: none;
  font-weight: 600;
}

.user-guide-toc-list a:hover {
  text-decoration: underline;
}

.user-guide-sections {
  display: grid;
  gap: 1.25rem;
}

.user-guide-section {
  padding: 1.25rem 1.25rem 1.5rem;
  scroll-margin-top: 5rem;
}

.user-guide-section-head {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 1rem;
}

.user-guide-section-num {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--brand) 18%, var(--surface));
  color: var(--brand);
  font-weight: 800;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.user-guide-section-title {
  margin: 0 0 0.35rem;
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1.3;
}

.user-guide-section-lead {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.55;
  font-size: 0.9375rem;
}

.user-guide-figure {
  margin: 0 0 1.25rem;
}

.user-guide-figure-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.75rem;
  border: 1px solid var(--border);
  background: #0f172a;
}

.user-guide-figure-caption {
  margin-top: 0.5rem;
  font-size: 0.8125rem;
  color: var(--ink-muted);
  text-align: center;
}

.user-guide-steps {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 1rem;
}

.user-guide-step {
  padding: 0.85rem 1rem;
  border-radius: 0.65rem;
  background: color-mix(in srgb, var(--brand) 4%, var(--surface));
  border: 1px solid var(--border);
}

.user-guide-step-title {
  margin: 0 0 0.35rem;
  font-size: 0.9375rem;
  font-weight: 700;
}

.user-guide-step p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.875rem;
  line-height: 1.55;
}

.user-guide-footer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

@media (max-width: 960px) {
  .user-guide-footer-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .user-guide-footer-actions .btn {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .user-guide-section {
    padding: 1rem 0.85rem 1.15rem;
  }

  .user-guide-section-head {
    gap: 0.65rem;
  }
}

/* Dokumentace aplikace (admin) */
.app-documentation {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}

.app-documentation-toc {
  position: sticky;
  top: 5rem;
}

.app-documentation-toc-title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 800;
}

.app-documentation-toc-list {
  margin: 0;
  padding-left: 1.25rem;
  display: grid;
  gap: 0.35rem;
}

.app-documentation-toc-list a {
  color: var(--accent-link);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.875rem;
}

.app-documentation-toc-list a:hover {
  text-decoration: underline;
}

.app-documentation-chapters {
  display: grid;
  gap: 1.25rem;
  min-width: 0;
}

.app-documentation-chapter {
  padding: 1.25rem 1.25rem 1.5rem;
  scroll-margin-top: 5rem;
}

.app-documentation-chapter-head {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 1rem;
}

.app-documentation-chapter-num {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--brand) 18%, var(--surface));
  color: var(--brand);
  font-weight: 800;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.app-documentation-chapter-title {
  margin: 0 0 0.35rem;
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.3;
}

.app-documentation-chapter-lead {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.55;
  font-size: 0.9375rem;
}

.app-documentation-paragraph {
  margin: 0 0 1rem;
  color: var(--ink-soft);
  line-height: 1.6;
  font-size: 0.9rem;
}

.app-documentation-block {
  margin-bottom: 1.25rem;
}

.app-documentation-block-title {
  margin: 0 0 0.5rem;
  font-size: 0.9375rem;
  font-weight: 700;
}

.app-documentation-list {
  margin: 0;
  padding-left: 1.25rem;
  display: grid;
  gap: 0.35rem;
  color: var(--ink-soft);
  font-size: 0.875rem;
  line-height: 1.55;
}

.app-documentation-note {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.65rem;
  background: color-mix(in srgb, var(--brand) 8%, var(--surface));
  border: 1px solid color-mix(in srgb, var(--brand) 25%, var(--border));
  color: var(--ink-soft);
  font-size: 0.875rem;
  line-height: 1.55;
}

.app-documentation-rules-table th {
  width: 34%;
  vertical-align: top;
  font-weight: 600;
  font-size: 0.8125rem;
  white-space: normal;
}

.app-documentation-rules-table td {
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--ink-soft);
}

@media (max-width: 960px) {
  .app-documentation {
    grid-template-columns: 1fr;
  }

  .app-documentation-toc {
    position: static;
  }
}

/* Statické stránky (O nás, Kontakty) */
.site-page-body {
  line-height: 1.65;
}

.site-page-body h2,
.site-page-body h3,
.site-page-body h4 {
  margin: 1.25rem 0 0.5rem;
  font-weight: 800;
  line-height: 1.25;
}

.site-page-body h2 { font-size: 1.25rem; }
.site-page-body h3 { font-size: 1.125rem; }

.site-page-body p,
.site-page-body ul,
.site-page-body ol {
  margin: 0 0 0.875rem;
}

.site-page-body ul,
.site-page-body ol {
  padding-left: 1.25rem;
}

.site-page-body a {
  color: var(--accent-link);
  text-decoration: underline;
}

.simple-editor-area a {
  cursor: text;
}

.site-page-body blockquote {
  margin: 0 0 0.875rem;
  padding: 0.75rem 0 0.75rem 1rem;
  border-left: 3px solid var(--brand);
  color: var(--text-muted);
}

.site-page-body hr {
  border: 0;
  border-top: 1px solid var(--surface-line);
  margin: 1.25rem 0;
}

.site-page-body table.rich-text-table,
.simple-editor-area table.rich-text-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1rem;
  font-size: 0.9375rem;
}

.site-page-body table.rich-text-table th,
.site-page-body table.rich-text-table td,
.simple-editor-area table.rich-text-table th,
.simple-editor-area table.rich-text-table td {
  border: 1px solid var(--surface-line);
  padding: 0.5rem 0.625rem;
  vertical-align: top;
  min-width: 3rem;
}

.site-page-body table.rich-text-table th,
.simple-editor-area table.rich-text-table th {
  background: rgba(148, 163, 184, 0.12);
  font-weight: 700;
  text-align: left;
}

.site-page-body table.rich-text-table tbody tr:nth-child(even) td,
.simple-editor-area table.rich-text-table tbody tr:nth-child(even) td {
  background: rgba(148, 163, 184, 0.04);
}

.site-page-body s,
.site-page-body strike {
  text-decoration: line-through;
}

.site-page-body sub,
.site-page-body sup {
  font-size: 0.75em;
  line-height: 0;
}

.site-page-body img.site-page-inline-image,
.simple-editor-area img.site-page-inline-image {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0;
  border-radius: var(--radius-lg);
  border: 1px solid var(--surface-line);
  box-shadow: 0 8px 24px rgba(36, 36, 40, 0.08);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.site-page-image-lightbox {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 1.25rem auto;
  padding: 0;
  border: none;
  background: none;
  cursor: zoom-in;
  text-align: left;
}

.site-page-image-lightbox:hover img.site-page-inline-image {
  box-shadow: 0 12px 32px rgba(36, 36, 40, 0.14);
  transform: scale(1.005);
}

.site-page-image-lightbox:focus-visible {
  outline: 2px solid rgba(252, 76, 2, 0.45);
  outline-offset: 4px;
  border-radius: var(--radius-lg);
}

.site-page-image-lightbox-hint {
  position: absolute;
  right: 0.75rem;
  bottom: 0.75rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #fff;
  background: rgba(15, 15, 18, 0.72);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.18s ease, transform 0.18s ease;
  pointer-events: none;
}

.site-page-image-lightbox:hover .site-page-image-lightbox-hint,
.site-page-image-lightbox:focus-visible .site-page-image-lightbox-hint {
  opacity: 1;
  transform: translateY(0);
}

.simple-editor-area img.site-page-inline-image {
  margin: 0.75rem 0;
}

.simple-editor-hint {
  margin: 0;
  padding: 0.625rem 0.75rem;
  border-top: 1px solid var(--surface-line);
  background: var(--surface-muted);
}

.editor-link-dialog {
  width: min(92vw, 28rem);
  max-width: calc(100vw - 2rem);
  padding: 0;
  margin: auto;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-xl);
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 16px 48px rgba(36, 36, 40, 0.22);
  overflow: hidden;
}

.editor-link-dialog::backdrop {
  background: var(--overlay-backdrop);
}

.editor-link-dialog .admin-form {
  margin: 0;
  padding: 1.25rem 1.5rem 1.5rem;
  background: var(--surface);
}

.editor-link-dialog .admin-form-actions {
  margin-top: 0;
}

.site-page-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: 1rem;
}

.site-page-gallery-item {
  margin: 0;
}

.site-page-gallery-thumb {
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: none;
  cursor: zoom-in;
}

.site-page-gallery-thumb img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  -webkit-object-fit: contain;
  border-radius: var(--radius-lg);
  border: 1px solid var(--surface-line);
}

.site-page-gallery-caption {
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  color: var(--ink-muted);
  text-align: center;
}

.site-page-map-frame {
  overflow: hidden;
  padding: 0;
}

.site-page-map-frame iframe {
  display: block;
  width: 100%;
  min-height: 360px;
}

/* Výpis sekcí a článků */
.site-section-listing {
  max-width: 44rem;
  margin-left: auto;
  margin-right: auto;
}

.site-section-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.site-section-header .page-lead {
  margin-top: 0.75rem;
  margin-left: auto;
  margin-right: auto;
  max-width: 32rem;
}

.site-section-subsections {
  margin-bottom: 2.5rem;
}

.site-section-subsections .section-title {
  margin-bottom: 1rem;
}

.site-section-empty {
  text-align: center;
  color: var(--ink-muted);
}

.article-feed {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.article-card {
  background: var(--surface);
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(36, 36, 40, 0.04);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.article-card:hover {
  border-color: rgba(252, 76, 2, 0.28);
  box-shadow: 0 10px 28px rgba(36, 36, 40, 0.1);
  transform: translateY(-2px);
}

.article-card-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.article-card-link--has-media {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.article-card-media {
  aspect-ratio: 16 / 9;
  max-height: 14rem;
  overflow: hidden;
  background: var(--bg-elevated);
}

.article-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
}

.article-card-media img.contain {
  object-fit: contain;
  -webkit-object-fit: contain;
  padding: 0.5rem;
  box-sizing: border-box;
  background: rgba(148, 163, 184, 0.06);
}

.article-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  padding: 1.375rem 1.5rem 1.5rem;
  flex: 1;
}

.article-card-meta {
  margin: 0;
}

.article-card-meta time {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.site-section-listing--articles .article-card-meta time {
  color: var(--brand);
}

.article-card-title {
  margin: 0;
  font-size: 1.3125rem;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--ink);
  transition: color 0.15s ease;
}

.article-card:hover .article-card-title {
  color: var(--brand);
}

.article-card-excerpt {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--ink-muted);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.article-card-cta {
  margin-top: auto;
  padding-top: 0.625rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--brand);
}

.article-card-link:hover .article-card-cta {
  color: var(--brand-hover);
}

@media (min-width: 640px) {
  .article-card-link--has-media {
    grid-template-columns: 11rem minmax(0, 1fr);
    align-items: stretch;
  }

  .article-card-link--has-media .article-card-media {
    aspect-ratio: auto;
    max-height: none;
    min-height: 100%;
  }

  .article-card-link--has-media .article-card-body {
    padding: 1.5rem 1.625rem;
  }
}

/* Admin — editor stránek */
.simple-editor {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--bg-input, #fff);
}

.simple-editor-toolbar {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 0.5rem;
  border-bottom: 1px solid var(--surface-line);
  background: var(--surface-muted, #f8f8f9);
}

.simple-editor-toolbar-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  width: 100%;
}

.simple-editor-toolbar-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem;
}

.simple-editor-toolbar-sep {
  width: 1px;
  align-self: stretch;
  min-height: 1.75rem;
  background: var(--surface-line);
  margin: 0 0.125rem;
}

.simple-editor-btn {
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.5rem;
  border: 1px solid var(--surface-line);
  border-radius: 0.375rem;
  background: var(--bg-card, #fff);
  color: var(--text, #242428);
  cursor: pointer;
  font-size: 0.875rem;
  line-height: 1;
}

.simple-editor-btn:hover,
.simple-editor-btn.is-active {
  border-color: var(--brand);
  color: var(--brand);
  background: rgba(252, 76, 2, 0.06);
}

.simple-editor-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.simple-editor-toolbar-save {
  margin-left: auto;
}

.simple-editor-btn-save {
  min-width: 4.75rem;
  padding: 0 0.875rem;
  font-weight: 600;
  color: #fff;
  background: var(--brand);
  border-color: var(--brand);
}

.simple-editor-btn-save:hover {
  color: #fff;
  background: #e04400;
  border-color: #e04400;
}

.simple-editor-select-label {
  display: inline-flex;
  align-items: center;
}

.simple-editor-select {
  min-height: 2.25rem;
  height: auto;
  min-width: 6.5rem;
  max-width: 9.5rem;
  padding: 0.375rem 1.75rem 0.375rem 0.625rem;
  border: 1px solid var(--surface-line);
  border-radius: 0.375rem;
  background: var(--bg-card, #fff);
  font-size: 0.8125rem;
  font-family: inherit;
  line-height: 1.35;
  color: var(--ink, #242428);
  box-sizing: border-box;
  vertical-align: middle;
  overflow: visible;
}

.simple-editor-select:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 2px rgba(252, 76, 2, 0.12);
}

.simple-editor-toolbar-colors {
  gap: 0.375rem;
}

.simple-editor-color {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--surface-line);
  border-radius: 0.375rem;
  background: var(--bg-card, #fff);
  cursor: pointer;
  overflow: hidden;
}

.simple-editor-color:hover {
  border-color: var(--brand);
}

.simple-editor-color input[type="color"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  border: 0;
  padding: 0;
}

.simple-editor-color-icon {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

.simple-editor-color-highlight .simple-editor-color-icon {
  color: #c4a000;
}

.simple-editor-scroll {
  flex: 1 1 auto;
  height: 22rem;
  max-height: 22rem;
  overflow: hidden;
  background: var(--bg-input, #fff);
}

.simple-editor-area {
  height: 100%;
  max-height: 100%;
  padding: 0.875rem 1rem;
  line-height: 1.65;
  outline: none;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.simple-editor-area:focus {
  box-shadow: inset 0 0 0 2px rgba(252, 76, 2, 0.15);
}

.admin-body .simple-editor,
.admin-body .simple-editor-scroll,
.admin-body .simple-editor-area {
  background: var(--bg-input);
  color: var(--text);
}

.admin-body .simple-editor-btn,
.admin-body .simple-editor-select,
.admin-body .simple-editor-color {
  background: var(--bg-card);
  color: var(--text);
}

.admin-body .simple-editor-toolbar {
  background: var(--bg-table-head);
}

.admin-body .simple-editor-color-icon {
  color: var(--text);
}

.admin-body .simple-editor-color-highlight .simple-editor-color-icon {
  color: #c4a000;
}

.shared-event-detail-desc-body .rich-text-body,
.shared-event-detail-desc-body.site-page-body.rich-text-body {
  color: var(--text-soft);
}

html[data-theme="light"] .shared-event-detail-desc-body .rich-text-body,
html[data-theme="light"] .shared-event-detail-desc-body .rich-text-body :where(p, li, h2, h3, h4, blockquote) {
  color: inherit;
}

html:not([data-theme="light"]) .shared-event-detail-desc-body .rich-text-body :where(p, li, h2, h3, h4) {
  color: inherit;
}

.race-tshirt-size-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
}

.race-tshirt-size-option {
  min-width: 3.5rem;
}

.race-tshirt-preview-image,
.race-tshirt-offer-image img {
  display: block;
  max-width: 12rem;
  max-height: 12rem;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: var(--surface-muted);
}

.race-tshirt-offer {
  margin-top: 1rem;
  padding: 1rem 1.125rem;
}

.race-tshirt-offer-body {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: flex-start;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-page-admin-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  gap: 1rem;
}

.site-page-admin-gallery-item {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.75rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
  background: #fff;
}

.site-page-admin-gallery-thumb {
  width: 100%;
  height: auto;
  object-fit: contain;
  -webkit-object-fit: contain;
  border-radius: var(--radius-md);
}

button.site-page-admin-gallery-thumb {
  display: block;
  padding: 0;
  border: none;
  background: none;
  cursor: zoom-in;
}

button.site-page-admin-gallery-thumb img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  -webkit-object-fit: contain;
  border-radius: var(--radius-md);
}

.site-page-admin-caption-form {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.admin-meeting-map {
  width: 100%;
  height: 22rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
  margin-top: 0.75rem;
}

.shared-event-map iframe {
  width: 100%;
  min-height: 16rem;
  border: 0;
  border-radius: var(--radius-lg);
}

.cards-grid-home {
  gap: 1.5rem;
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
  align-items: stretch;
}

.cards-grid-home--tiles-left,
.cards-grid-home--tiles-center,
.cards-grid-home--tiles-right {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
  max-width: 72rem;
  grid-template-columns: none;
}

.cards-grid-home--tiles-left {
  justify-content: flex-start;
  margin-left: 0;
  margin-right: auto;
}

.cards-grid-home--tiles-center {
  justify-content: center;
  margin-left: auto;
  margin-right: auto;
}

.cards-grid-home--tiles-right {
  justify-content: flex-end;
  margin-left: auto;
  margin-right: 0;
}

.cards-grid-home--tiles-left > .home-tile,
.cards-grid-home--tiles-center > .home-tile,
.cards-grid-home--tiles-right > .home-tile,
.cards-grid-home--tiles-left > .home-hub-tile-wrap,
.cards-grid-home--tiles-center > .home-hub-tile-wrap,
.cards-grid-home--tiles-right > .home-hub-tile-wrap {
  flex: 0 1 min(100%, 22rem);
  width: min(100%, 22rem);
  max-width: min(100%, 22rem);
  min-width: 0;
}

.cards-grid-home--scale-8.cards-grid-home--tiles-left > .home-tile,
.cards-grid-home--scale-8.cards-grid-home--tiles-center > .home-tile,
.cards-grid-home--scale-8.cards-grid-home--tiles-right > .home-tile,
.cards-grid-home--scale-9.cards-grid-home--tiles-left > .home-tile,
.cards-grid-home--scale-9.cards-grid-home--tiles-center > .home-tile,
.cards-grid-home--scale-9.cards-grid-home--tiles-right > .home-tile,
.cards-grid-home--scale-10.cards-grid-home--tiles-left > .home-tile,
.cards-grid-home--scale-10.cards-grid-home--tiles-center > .home-tile,
.cards-grid-home--scale-10.cards-grid-home--tiles-right > .home-tile,
.cards-grid-home--scale-8.cards-grid-home--tiles-left > .home-hub-tile-wrap,
.cards-grid-home--scale-8.cards-grid-home--tiles-center > .home-hub-tile-wrap,
.cards-grid-home--scale-8.cards-grid-home--tiles-right > .home-hub-tile-wrap,
.cards-grid-home--scale-9.cards-grid-home--tiles-left > .home-hub-tile-wrap,
.cards-grid-home--scale-9.cards-grid-home--tiles-center > .home-hub-tile-wrap,
.cards-grid-home--scale-9.cards-grid-home--tiles-right > .home-hub-tile-wrap,
.cards-grid-home--scale-10.cards-grid-home--tiles-left > .home-hub-tile-wrap,
.cards-grid-home--scale-10.cards-grid-home--tiles-center > .home-hub-tile-wrap,
.cards-grid-home--scale-10.cards-grid-home--tiles-right > .home-hub-tile-wrap {
  flex-basis: min(100%, 28rem);
  width: min(100%, 28rem);
  max-width: min(100%, 28rem);
}

@media (min-width: 640px) {
  .cards-grid-home--tiles-left > .home-tile,
  .cards-grid-home--tiles-center > .home-tile,
  .cards-grid-home--tiles-right > .home-tile,
  .cards-grid-home--tiles-left > .home-hub-tile-wrap,
  .cards-grid-home--tiles-center > .home-hub-tile-wrap,
  .cards-grid-home--tiles-right > .home-hub-tile-wrap {
    flex-basis: min(100%, calc(50% - 0.75rem));
    width: min(100%, calc(50% - 0.75rem));
    max-width: min(100%, calc(50% - 0.75rem));
  }
}

@media (min-width: 1024px) {
  .cards-grid-home--tiles-left:not(.cards-grid-home--scale-8):not(.cards-grid-home--scale-9):not(.cards-grid-home--scale-10) > .home-tile,
  .cards-grid-home--tiles-center:not(.cards-grid-home--scale-8):not(.cards-grid-home--scale-9):not(.cards-grid-home--scale-10) > .home-tile,
  .cards-grid-home--tiles-right:not(.cards-grid-home--scale-8):not(.cards-grid-home--scale-9):not(.cards-grid-home--scale-10) > .home-tile,
  .cards-grid-home--tiles-left:not(.cards-grid-home--scale-8):not(.cards-grid-home--scale-9):not(.cards-grid-home--scale-10) > .home-hub-tile-wrap,
  .cards-grid-home--tiles-center:not(.cards-grid-home--scale-8):not(.cards-grid-home--scale-9):not(.cards-grid-home--scale-10) > .home-hub-tile-wrap,
  .cards-grid-home--tiles-right:not(.cards-grid-home--scale-8):not(.cards-grid-home--scale-9):not(.cards-grid-home--scale-10) > .home-hub-tile-wrap {
    flex-basis: min(100%, calc(33.333% - 1rem));
    width: min(100%, calc(33.333% - 1rem));
    max-width: min(100%, calc(33.333% - 1rem));
  }
}

.home-tiles-section--tiles-left,
.home-tiles-section--tiles-right,
.home-tiles-section--tiles-center {
  display: flex;
  flex-direction: column;
}

.home-tiles-section--content-center .section-title,
.home-tiles-section--content-center .page-lead,
.home-events-section.home-tiles-section--content-center .section-title,
.home-events-section.home-tiles-section--content-center .page-lead,
.home-races-section.home-tiles-section--content-center .section-title,
.home-races-section.home-tiles-section--content-center .page-lead,
.home-articles-section.home-tiles-section--content-center .section-title,
.home-articles-section.home-tiles-section--content-center .page-lead,
.home-vyzvy-section.home-tiles-section--content-center .section-title,
.home-vyzvy-section.home-tiles-section--content-center .page-lead,
.home-news-section.home-tiles-section--content-center .section-title,
.home-news-section.home-tiles-section--content-center .page-lead {
  text-align: center;
}

.home-tiles-section--content-center .home-section-more-link,
.home-events-section.home-tiles-section--content-center .home-section-more-link,
.home-races-section.home-tiles-section--content-center .home-section-more-link,
.home-articles-section.home-tiles-section--content-center .home-section-more-link,
.home-vyzvy-section.home-tiles-section--content-center .home-section-more-link,
.home-news-section.home-tiles-section--content-center .home-section-more-link {
  text-align: center;
}

.home-tiles-section--content-right .section-title,
.home-tiles-section--content-right .page-lead,
.home-events-section.home-tiles-section--content-right .section-title,
.home-events-section.home-tiles-section--content-right .page-lead,
.home-races-section.home-tiles-section--content-right .section-title,
.home-races-section.home-tiles-section--content-right .page-lead,
.home-articles-section.home-tiles-section--content-right .section-title,
.home-articles-section.home-tiles-section--content-right .page-lead,
.home-vyzvy-section.home-tiles-section--content-right .section-title,
.home-vyzvy-section.home-tiles-section--content-right .page-lead,
.home-news-section.home-tiles-section--content-right .section-title,
.home-news-section.home-tiles-section--content-right .page-lead {
  text-align: right;
}

.home-tiles-section--content-right .home-section-more-link,
.home-events-section.home-tiles-section--content-right .home-section-more-link,
.home-races-section.home-tiles-section--content-right .home-section-more-link,
.home-articles-section.home-tiles-section--content-right .home-section-more-link,
.home-vyzvy-section.home-tiles-section--content-right .home-section-more-link,
.home-news-section.home-tiles-section--content-right .home-section-more-link {
  text-align: right;
}

.home-events-section.home-tiles-section--content-left .home-section-more-link,
.home-races-section.home-tiles-section--content-left .home-section-more-link,
.home-articles-section.home-tiles-section--content-left .home-section-more-link,
.home-vyzvy-section.home-tiles-section--content-left .home-section-more-link,
.home-news-section.home-tiles-section--content-left .home-section-more-link {
  text-align: left;
}

.home-tile--content-left .card-body {
  align-items: flex-start;
  text-align: left;
}

.home-tile--content-left .home-tile-icon-slot {
  margin-left: 0;
  margin-right: auto;
}

.home-tile--content-right .card-body {
  align-items: flex-end;
  text-align: right;
}

.home-tile--content-right .home-tile-icon-slot {
  margin-left: auto;
  margin-right: 0;
}

.home-tile--content-center .card-body {
  align-items: center;
  text-align: center;
}

.admin-align-quick-picks .admin-inline-actions {
  gap: 0.375rem;
}

.home-tile {
  height: 100%;
  overflow: hidden;
}

.home-tile-has-banner .card-body {
  min-height: 11rem;
}

.home-tile-has-banner .card-photo-banner {
  height: 12rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.25rem;
  background: rgba(148, 163, 184, 0.06);
}

@media (min-width: 640px) {
  .home-tile-has-banner .card-photo-banner {
    height: 14rem;
  }
}

.home-tile-has-banner .card-photo-banner-image.contain {
  object-fit: contain;
  -webkit-object-fit: contain;
  padding: 1rem;
  box-sizing: border-box;
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.98) 0%, rgba(226, 232, 240, 0.94) 100%);
  border: 1px solid rgba(148, 163, 184, 0.22);
  box-shadow: 0 4px 16px rgba(2, 6, 23, 0.18);
}

.home-races-slide-card .home-tile-has-banner .card-photo-banner,
.home-articles-slide-card .home-tile-has-banner .card-photo-banner {
  min-height: 14rem;
  height: auto;
}

.home-races-slide-card .home-tile-has-banner .card-photo-banner-image.contain,
.home-articles-slide-card .home-tile-has-banner .card-photo-banner-image.contain {
  max-height: 13rem;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  display: block;
}

.card-photo-banner {
  width: 100%;
  height: 9rem;
  overflow: hidden;
  background: var(--surface-muted, #f3f4f6);
  border-bottom: 1px solid var(--surface-line);
}

.card-photo-banner-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
  display: block;
}

.shared-event-card-has-banner .card-photo-banner,
.challenge-detail-card-has-banner .card-photo-banner,
.race-list-card-has-banner .card-photo-banner {
  height: 12rem;
}

.challenge-detail-photo-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.96) 0%, rgba(30, 41, 59, 0.92) 100%);
}

.challenge-detail-photo-banner .card-photo-banner-image.contain {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

@media (min-width: 640px) {
  .shared-event-card-has-banner .card-photo-banner,
  .challenge-detail-card-has-banner .card-photo-banner,
  .race-list-card-has-banner .card-photo-banner {
    height: 14rem;
  }
}

.race-list-card .card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.race-list-card .card-action {
  margin-top: auto;
}

.race-detail-photo .card-photo-banner {
  height: auto;
  min-height: 0;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.25rem;
  background: rgba(148, 163, 184, 0.06);
  border-bottom: 1px solid var(--surface-line);
}

.race-detail-photo .card-photo-banner-image.contain {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(70vh, 32rem);
  object-fit: contain;
  object-position: center;
}

.entity-detail-photo-hero-btn {
  display: flex;
  width: 100%;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: zoom-in;
  background: transparent;
  text-align: inherit;
  font: inherit;
}

.entity-detail-photo-hero-btn:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

.shared-event-card-has-banner .shared-event-card-brand,
.challenge-detail-card-has-banner .card-header {
  justify-content: center;
  text-align: center;
}

.shared-event-card-has-banner .shared-event-card-head {
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.shared-event-card-has-banner .shared-event-card-title-wrap,
.shared-event-card-has-banner .shared-event-card-brand > div {
  width: 100%;
}

.home-tile-banner {
  width: 100%;
  height: 9rem;
  overflow: hidden;
  background: var(--surface-muted, #f3f4f6);
  border-bottom: 1px solid var(--surface-line);
}

.home-tile-banner-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
  display: block;
}

.home-tile .card-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-height: 15.5rem;
  padding: 1.75rem 1.5rem;
}

.home-tile .card-title {
  font-size: 1.375rem;
}

.home-tile-icon-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5rem;
  height: 5rem;
  min-width: 5rem;
  min-height: 5rem;
  margin-bottom: 0.875rem;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
}

.home-tile-pictogram {
  font-size: 2.75rem;
  line-height: 1;
  display: block;
}

.home-tile-pictogram-fallback[hidden] {
  display: none !important;
}

.home-tile-image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 5rem;
  max-height: 5rem;
  object-fit: contain;
  object-position: center center;
  -webkit-object-fit: contain;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  background: rgba(148, 163, 184, 0.08);
}

.home-tile-image.contain {
  object-fit: contain;
  -webkit-object-fit: contain;
  padding: 0.35rem;
  box-sizing: border-box;
}

.home-tile--group .home-tile-icon-slot {
  width: 6.75rem;
  height: 6.75rem;
  min-width: 6.75rem;
  min-height: 6.75rem;
  padding: 0.45rem;
  border-radius: var(--radius-lg);
  background: rgba(148, 163, 184, 0.08);
  border: 1px solid var(--border);
}

.home-tile--group .home-tile-image.contain {
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: 100%;
  padding: 0.5rem;
  border-radius: calc(var(--radius-lg) - 4px);
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.98) 0%, rgba(226, 232, 240, 0.94) 100%);
  border: 1px solid rgba(148, 163, 184, 0.22);
  box-shadow: 0 4px 16px rgba(2, 6, 23, 0.18);
}

.home-tile--group .card-action {
  color: var(--accent-link);
}

.home-tile .card-meta {
  margin-top: auto;
  padding-top: 1rem;
  font-size: 0.875rem;
}

.home-tile .card-action {
  margin-top: 0.75rem;
}

.home-tile-badge {
  display: inline-block;
  margin-bottom: 0.625rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  background: rgba(252, 76, 2, 0.1);
  color: var(--brand);
}

@media (min-width: 640px) {
  .cards-grid-home {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .cards-grid-home {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Velikost dlaždic — sekce (mřížka) a jednotlivé dlaždice (1 = nejmenší, 10 = největší) */
.cards-grid-home--scale-1 { gap: 0.5rem; }
.cards-grid-home--scale-2 { gap: 0.625rem; }
.cards-grid-home--scale-3 { gap: 0.75rem; }
.cards-grid-home--scale-4 { gap: 0.875rem; }
.cards-grid-home--scale-5 { gap: 1.5rem; }
.cards-grid-home--scale-6 { gap: 1.5rem; }
.cards-grid-home--scale-7 { gap: 1.625rem; }
.cards-grid-home--scale-8 { gap: 1.625rem; }
.cards-grid-home--scale-9 { gap: 1.75rem; }
.cards-grid-home--scale-10 { gap: 1.75rem; }

@media (min-width: 640px) {
  .cards-grid-home--scale-1 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards-grid-home--scale-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards-grid-home--scale-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards-grid-home--scale-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards-grid-home--scale-10 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
}

@media (min-width: 900px) {
  .cards-grid-home--scale-1 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cards-grid-home--scale-2 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cards-grid-home--scale-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cards-grid-home--scale-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cards-grid-home--scale-8 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards-grid-home--scale-9 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards-grid-home--scale-10 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1200px) {
  .cards-grid-home--scale-1 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .cards-grid-home--scale-2 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .cards-grid-home--scale-3 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .cards-grid-home--scale-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.home-tile--scale-1 .card-body { min-height: 7.5rem; padding: 0.75rem 0.625rem; }
.home-tile--scale-1 .card-title { font-size: 0.8125rem; }
.home-tile--scale-1 .home-tile-icon-slot { width: 2.25rem; height: 2.25rem; min-width: 2.25rem; min-height: 2.25rem; margin-bottom: 0.5rem; }
.home-tile--scale-1 .home-tile-pictogram { font-size: 1.375rem; }
.home-tile--scale-1 .home-tile-image { max-width: 2.25rem; max-height: 2.25rem; }
.home-tile--scale-1 .card-meta { font-size: 0.6875rem; padding-top: 0.5rem; }
.home-tile--scale-1 .card-action { font-size: 0.75rem; margin-top: 0.375rem; }

.home-tile--scale-2 .card-body { min-height: 9rem; padding: 0.875rem 0.75rem; }
.home-tile--scale-2 .card-title { font-size: 0.9375rem; }
.home-tile--scale-2 .home-tile-icon-slot { width: 2.75rem; height: 2.75rem; min-width: 2.75rem; min-height: 2.75rem; margin-bottom: 0.625rem; }
.home-tile--scale-2 .home-tile-pictogram { font-size: 1.625rem; }
.home-tile--scale-2 .home-tile-image { max-width: 2.75rem; max-height: 2.75rem; }
.home-tile--scale-2 .card-meta { font-size: 0.75rem; }

.home-tile--scale-3 .card-body { min-height: 10.5rem; padding: 1rem 0.875rem; }
.home-tile--scale-3 .card-title { font-size: 1rem; }
.home-tile--scale-3 .home-tile-icon-slot { width: 3.25rem; height: 3.25rem; min-width: 3.25rem; min-height: 3.25rem; margin-bottom: 0.75rem; }
.home-tile--scale-3 .home-tile-pictogram { font-size: 1.75rem; }
.home-tile--scale-3 .home-tile-image { max-width: 3.25rem; max-height: 3.25rem; }

.home-tile--scale-4 .card-body { min-height: 11.5rem; padding: 1.125rem 1rem; }
.home-tile--scale-4 .card-title { font-size: 1.0625rem; }
.home-tile--scale-4 .home-tile-icon-slot { width: 3.5rem; height: 3.5rem; min-width: 3.5rem; min-height: 3.5rem; }
.home-tile--scale-4 .home-tile-pictogram { font-size: 1.875rem; }
.home-tile--scale-4 .home-tile-image { max-width: 3.5rem; max-height: 3.5rem; }

.home-tile--scale-5 .card-body { min-height: 15.5rem; padding: 1.75rem 1.5rem; }
.home-tile--scale-5 .card-title { font-size: 1.375rem; }
.home-tile--scale-5 .home-tile-icon-slot { width: 5rem; height: 5rem; min-width: 5rem; min-height: 5rem; }
.home-tile--scale-5 .home-tile-pictogram { font-size: 2.75rem; }

.home-tile--scale-6 .card-body { min-height: 16rem; padding: 1.8125rem 1.5625rem; }
.home-tile--scale-6 .card-title { font-size: 1.4rem; }

.home-tile--scale-7 .card-body { min-height: 16.5rem; padding: 1.875rem 1.625rem; }
.home-tile--scale-7 .card-title { font-size: 1.425rem; }

.home-tile--scale-8 .card-body { min-height: 17rem; padding: 1.9375rem 1.6875rem; }
.home-tile--scale-8 .card-title { font-size: 1.45rem; }

.home-tile--scale-9 .card-body { min-height: 18rem; padding: 2rem 1.75rem; }
.home-tile--scale-9 .card-title { font-size: 1.475rem; }

.home-tile--scale-10 .card-body { min-height: 17rem; padding: 2rem 1.75rem; }
.home-tile--scale-10 .card-title { font-size: 1.5rem; }

/* Zpětná kompatibilita se starými hodnotami */
.cards-grid-home--compact { gap: 0.75rem; }
.cards-grid-home--large { gap: 1.75rem; }
@media (min-width: 900px) {
  .cards-grid-home--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cards-grid-home--large { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
  .cards-grid-home--compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.cards-grid-home--compact .home-tile .card-body,
.home-tile--compact .card-body { min-height: 12.5rem; padding: 1.25rem 1rem; }
.cards-grid-home--compact .home-tile .card-title,
.home-tile--compact .card-title { font-size: 1.125rem; }
.cards-grid-home--compact .home-tile-icon-slot,
.home-tile--compact .home-tile-icon-slot { width: 3.75rem; height: 3.75rem; min-width: 3.75rem; min-height: 3.75rem; }
.cards-grid-home--compact .home-tile-pictogram,
.home-tile--compact .home-tile-pictogram { font-size: 2rem; }
.cards-grid-home--large .home-tile .card-body,
.home-tile--large .card-body { min-height: 17rem; padding: 2rem 1.75rem; }
.cards-grid-home--large .home-tile .card-title,
.home-tile--large .card-title { font-size: 1.5rem; }
@media (min-width: 640px) {
  .cards-grid-home--large { grid-template-columns: repeat(1, minmax(0, 1fr)); }
}

.cards-grid-events {
  gap: 1.5rem;
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
  align-items: stretch;
}

@media (min-width: 900px) {
  .cards-grid-events {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.shared-event-card-compact {
  height: 100%;
}

.shared-event-card-head,
.shared-event-card-brand {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
}

.shared-event-card-title-wrap {
  flex: 1;
  min-width: 0;
}

.shared-event-card-photo {
  width: 4rem;
  height: 4rem;
  flex-shrink: 0;
  object-fit: cover;
  border-radius: var(--radius-lg);
  border: 1px solid var(--surface-line);
}

.shared-event-card-photo-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--brand-soft, #fff4ed);
  color: var(--brand);
  font-size: 1.75rem;
  line-height: 1;
}

.shared-event-card-compact .text-xl {
  font-size: 1.125rem;
}

.shared-event-card-compact .card-panel-grid {
  gap: 0;
}

.shared-event-card-compact .card-panel {
  padding: 1rem 1.125rem;
}

.shared-event-details-list {
  display: grid;
  gap: 0.625rem;
}

.shared-event-detail-row dt {
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 0.125rem;
}

.shared-event-detail-row dd {
  color: var(--ink-muted);
  margin: 0;
}

.shared-event-detail-row-map .shared-event-map iframe {
  min-height: 12rem;
}

.shared-event-participants-text {
  line-height: 1.45;
}

.shared-event-admin-photo-preview {
  width: 8rem;
  height: 8rem;
  object-fit: cover;
  border-radius: var(--radius-lg);
  border: 1px solid var(--surface-line);
}

.race-start-countdown {
  padding: 1.25rem 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  background: var(--bg-elevated);
}

.race-start-countdown-compact {
  padding: 1rem 0.85rem;
}

.race-start-countdown-label {
  margin: 0 0 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.race-start-countdown-at {
  margin: 0 0 1rem;
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--text);
}

.race-start-countdown-hint {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-muted);
}

.race-start-countdown-value {
  margin: 0;
  font-size: clamp(1.75rem, 5vw, 2.5rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--brand);
  font-variant-numeric: tabular-nums;
}

.race-scan-register {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--surface-line);
  text-align: left;
}

.race-scan-register-lead {
  margin: 0 0 0.35rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text);
}

.race-scan-race-link {
  margin: 0;
  font-size: 0.9375rem;
}

.shared-event-detail-register--scan {
  margin-top: 0;
}

.shared-event-detail-register--scan .shared-event-detail-register-note:first-child {
  margin-top: 0;
}

.shared-event-detail-register-field .form-label {
  text-align: left;
}

.shared-event-detail-register-field .form-hint {
  margin-top: 0.35rem;
  text-align: left;
}

.race-scan-page .form-input-date,
.race-scan-page .form-input[type="date"] {
  color: var(--text);
  background-color: var(--bg-input);
  color-scheme: dark;
}

.race-strava-finish-hint {
  padding: 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--border);
  background: var(--bg-elevated);
}

.share-qr-wrap {
  max-width: 24rem;
}

.share-qr-block .card-body {
  padding: 1.25rem;
}

.share-qr-image {
  display: block;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
}

.share-qr-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: stretch;
}

.share-qr-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.share-qr-buttons .btn {
  flex: 1 1 auto;
  min-width: 8.5rem;
}

.totp-qr-wrap {
  display: flex;
  justify-content: center;
  padding: 1rem;
  background: #fff;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
}

.totp-qr {
  display: block;
  image-rendering: pixelated;
}

.totp-backup-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.shared-event-participants-table {
  margin-top: 0.5rem;
}

.shared-event-participants-table .data-table {
  min-width: 0;
}

.shared-event-participants-table .data-table th,
.shared-event-participants-table .data-table td {
  padding: 0.5rem 0.625rem;
  font-size: 0.8125rem;
  vertical-align: top;
}

.admin-participants-compact-table .data-table th,
.admin-participants-compact-table .data-table td {
  padding: 0.2rem 0.45rem;
  font-size: 0.75rem;
  line-height: 1.25;
  vertical-align: middle;
}

.admin-participants-compact-table .admin-table-filter-row .form-input-sm {
  min-height: 1.6rem;
  padding-top: 0.15rem;
  padding-bottom: 0.15rem;
  font-size: 0.75rem;
}

.admin-participants-user-cell {
  min-width: 10rem;
  white-space: nowrap;
}

.admin-participants-user-name {
  font-weight: 600;
}

.admin-participants-user-email {
  color: var(--ink-muted);
  font-weight: 400;
}

.admin-participants-team-cell {
  min-width: 14rem;
  max-width: none;
  white-space: nowrap;
  vertical-align: middle;
}

.admin-participants-team-editor {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  min-width: 12rem;
}

.admin-participants-profile-teams {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.3;
  color: var(--ink-muted);
  white-space: normal;
}

.admin-participants-inline-form {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  width: 100%;
  max-width: 100%;
}

.admin-participants-inline-form .form-input-sm,
.admin-participants-inline-form .admin-participants-team-select {
  flex: 1 1 auto;
  min-width: 10rem;
  max-width: none;
  width: auto;
  min-height: 1.85rem;
  padding: 0.2rem 0.5rem;
  white-space: nowrap;
}

.admin-participants-date {
  color: var(--ink-muted);
  font-size: 0.72rem;
}

.admin-participants-compact-table .data-table th:nth-child(2),
.admin-participants-compact-table .data-table td:nth-child(2) {
  min-width: 14rem;
}

.admin-participants-compact-table .shared-event-participants-actions-col {
  min-width: 4.5rem;
}

.admin-action-compact {
  font-size: 0.72rem;
  padding: 0.1rem 0.35rem;
}

.admin-badge-xs {
  font-size: 0.62rem;
  padding: 0.05rem 0.3rem;
  vertical-align: middle;
}

.admin-clickable-row {
  cursor: pointer;
}

.admin-clickable-row:hover td {
  background: rgba(15, 23, 42, 0.04);
}

.admin-clickable-card {
  cursor: pointer;
}

.admin-clickable-card-title {
  color: inherit;
  text-decoration: none;
}

.admin-clickable-card-title:hover,
.admin-clickable-card:hover .admin-clickable-card-title {
  color: var(--brand);
  text-decoration: underline;
}

.admin-clickable-card .home-page-builder-card-body:hover .home-page-builder-card-summary {
  color: var(--ink-soft);
}

.shared-event-participants-table .shared-event-participants-note {
  min-width: 8rem;
  max-width: 20rem;
  white-space: normal;
  word-break: break-word;
}

.shared-event-card-compact .shared-event-participants-table .data-table th:nth-child(3),
.shared-event-card-compact .shared-event-participants-table .data-table td:nth-child(3),
.shared-event-card-compact .shared-event-participants-table .data-table th:nth-child(4),
.shared-event-card-compact .shared-event-participants-table .data-table td:nth-child(4) {
  display: none;
}

/* Detail pořádané akce — layout podle mockupu */
.shared-event-detail-page {
  max-width: 72rem;
  margin: 0 auto;
}

.shared-event-detail-layout {
  display: grid;
  gap: 1.5rem;
  margin-top: 1.25rem;
}

@media (min-width: 1024px) {
  .shared-event-detail-layout {
    grid-template-columns: minmax(17rem, 22rem) minmax(0, 1fr);
    align-items: start;
    gap: 1.75rem;
  }
}

/* Mobil — pořadí karet: shrnutí → nadpis → popis → detaily → výsledky → … → QR úplně dole */
@media (max-width: 1023px) {
  .page-challenge-detail .shared-event-detail-layout,
  .page-race-detail .shared-event-detail-layout,
  .page-shared-event-detail .shared-event-detail-layout {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .page-challenge-detail .shared-event-detail-aside,
  .page-challenge-detail .shared-event-detail-main,
  .page-race-detail .shared-event-detail-aside,
  .page-race-detail .shared-event-detail-main,
  .page-shared-event-detail .shared-event-detail-aside,
  .page-shared-event-detail .shared-event-detail-main {
    display: contents;
  }

  .page-challenge-detail .shared-event-detail-bottom-grid,
  .page-race-detail .shared-event-detail-bottom-grid,
  .page-shared-event-detail .shared-event-detail-bottom-grid {
    display: contents;
  }

  .page-challenge-detail .shared-event-detail-order-summary,
  .page-race-detail .shared-event-detail-order-summary,
  .page-shared-event-detail .shared-event-detail-order-summary {
    order: 1;
  }

  .page-challenge-detail .shared-event-detail-order-title,
  .page-race-detail .shared-event-detail-order-title,
  .page-shared-event-detail .shared-event-detail-order-title {
    order: 2;
  }

  .page-challenge-detail .shared-event-detail-order-hero,
  .page-race-detail .shared-event-detail-order-hero,
  .page-shared-event-detail .shared-event-detail-order-hero {
    order: 3;
  }

  .page-challenge-detail .shared-event-detail-order-desc,
  .page-race-detail .shared-event-detail-order-desc,
  .page-shared-event-detail .shared-event-detail-order-desc {
    order: 4;
  }

  .page-challenge-detail .shared-event-detail-order-details,
  .page-race-detail .shared-event-detail-order-details,
  .page-shared-event-detail .shared-event-detail-order-details {
    order: 5;
  }

  .page-challenge-detail .shared-event-detail-order-results,
  .page-race-detail .shared-event-detail-order-results,
  .page-shared-event-detail .shared-event-detail-order-results {
    order: 6;
  }

  .page-race-detail .shared-event-detail-order-registration,
  .page-shared-event-detail .shared-event-detail-order-registration {
    order: 7;
  }

  .page-race-detail .shared-event-detail-order-extra {
    order: 8;
  }

  .page-challenge-detail .shared-event-detail-order-organizer,
  .page-race-detail .shared-event-detail-order-organizer,
  .page-shared-event-detail .shared-event-detail-order-organizer {
    order: 12;
  }

  .page-challenge-detail .shared-event-detail-order-gallery,
  .page-race-detail .shared-event-detail-order-gallery,
  .page-shared-event-detail .shared-event-detail-order-gallery {
    order: 20;
  }

  .page-challenge-detail .shared-event-detail-order-participants,
  .page-race-detail .shared-event-detail-order-participants,
  .page-shared-event-detail .shared-event-detail-order-participants {
    order: 23;
  }

  .page-challenge-detail .shared-event-detail-order-activities,
  .page-race-detail .shared-event-detail-order-activities {
    order: 22;
  }

  .page-challenge-detail .shared-event-detail-order-discuss,
  .page-race-detail .shared-event-detail-order-discuss,
  .page-shared-event-detail .shared-event-detail-order-discuss {
    order: 28;
  }

  .page-challenge-detail .shared-event-detail-order-qr,
  .page-challenge-detail .shared-event-detail-share.shared-event-detail-order-qr,
  .page-race-detail .shared-event-detail-order-qr,
  .page-race-detail .shared-event-detail-qr-section.shared-event-detail-order-qr,
  .page-shared-event-detail .shared-event-detail-order-qr,
  .page-shared-event-detail .shared-event-detail-share.shared-event-detail-order-qr,
  .page-challenge-detail .share-qr-wrap,
  .page-race-detail .share-qr-wrap,
  .page-shared-event-detail .share-qr-wrap {
    order: 999;
  }

  .page-challenge-detail .shared-event-detail-page,
  .page-race-detail .shared-event-detail-page {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
  }

  .page-challenge-detail .shared-event-detail-layout,
  .page-race-detail .shared-event-detail-layout {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .page-challenge-detail .shared-event-detail-layout > *,
  .page-race-detail .shared-event-detail-layout > * {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .page-challenge-detail:has(.shared-event-detail-order-hero) .shared-event-detail-order-summary .shared-event-detail-thumb,
  .page-race-detail:has(.shared-event-detail-order-hero) .shared-event-detail-order-summary .shared-event-detail-thumb {
    display: none;
  }

  .page-challenge-detail .shared-event-detail-content-grid,
  .page-race-detail .shared-event-detail-content-grid,
  .page-challenge-detail .challenge-detail-content-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-challenge-detail .shared-event-detail-hero .card-photo-banner,
  .page-race-detail .shared-event-detail-hero .card-photo-banner {
    padding: 0.75rem 1rem;
  }

  .page-challenge-detail .shared-event-detail-hero .card-photo-banner-image.contain,
  .page-race-detail .shared-event-detail-hero .card-photo-banner-image.contain {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: min(52vh, 24rem);
  }

  .page-challenge-detail .shared-event-detail-order-summary .shared-event-detail-thumb,
  .page-race-detail .shared-event-detail-order-summary .shared-event-detail-thumb {
    aspect-ratio: unset;
    min-height: 0;
    max-height: none;
  }

  .page-challenge-detail .shared-event-detail-order-summary .shared-event-detail-thumb img,
  .page-race-detail .shared-event-detail-order-summary .shared-event-detail-thumb img {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: min(40vh, 16rem);
  }

  .page-challenge-detail .challenge-detail-rankings,
  .page-challenge-detail .challenge-detail-rankings .table-shell,
  .page-race-detail .shared-event-detail-order-results,
  .page-race-detail .shared-event-detail-order-results .table-shell {
    max-width: 100%;
    min-width: 0;
  }

  .page-challenge-detail .challenge-detail-rankings .table-shell,
  .page-challenge-detail .challenge-activities-table.table-shell,
  .page-race-detail .shared-event-detail-order-results .table-shell,
  .page-race-detail .shared-event-detail-order-extra .table-shell {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .page-challenge-detail .challenge-detail-rankings .view-tabs,
  .page-challenge-detail .challenge-detail-rankings .scroll-x-row {
    max-width: 100%;
  }

  .page-race-detail .shared-event-detail-qr-section .race-detail-qr-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-race-detail .shared-event-detail-map .shared-event-map iframe,
  .page-race-detail .shared-event-detail-map .route-map-embed iframe {
    max-width: 100%;
    min-height: 14rem;
  }

  .page-challenge-detail,
  .page-race-detail,
  .page-shared-event-detail {
    overflow-x: clip;
  }

  .page-challenge-detail .page-main,
  .page-race-detail .page-main,
  .page-shared-event-detail .page-main {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
    box-sizing: border-box;
  }

  .page-challenge-detail .challenge-detail-rankings,
  .page-challenge-detail .shared-event-detail-order-results,
  .page-race-detail .shared-event-detail-order-results,
  .page-race-detail .shared-event-detail-order-extra,
  .page-challenge-detail .shared-event-detail-order-desc,
  .page-race-detail .shared-event-detail-order-desc,
  .page-challenge-detail .shared-event-detail-order-hero,
  .page-race-detail .shared-event-detail-order-hero {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
  }

  .page-challenge-detail .view-tabs,
  .page-race-detail .view-tabs,
  .page-challenge-detail .scroll-x-row,
  .page-race-detail .scroll-x-row {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  .page-challenge-detail .results-sport-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-challenge-detail .results-sport-columns--gender {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-challenge-detail .results-sport-label {
    padding-top: 0;
  }

  .page-challenge-detail .table-shell,
  .page-race-detail .table-shell {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .page-challenge-detail .table-shell .data-table,
  .page-race-detail .table-shell .data-table {
    min-width: 0;
    width: 100%;
  }

  .page-race-detail .race-detail-results .table-shell .data-table {
    width: max-content;
    min-width: min(100%, 28rem);
  }

  .page-challenge-detail .challenge-activities-scroll,
  .page-challenge-detail .challenge-activities-table.table-shell {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .page-challenge-detail .challenge-activities-scroll .data-table {
    width: max-content;
    min-width: min(100%, 36rem);
  }
}

.shared-event-detail-aside {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.shared-event-detail-card {
  padding: 1.125rem 1.25rem;
}

.shared-event-detail-card-title,
.shared-event-detail-section-title {
  margin: 0 0 0.875rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
}

.shared-event-detail-summary {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.shared-event-detail-thumb {
  overflow: hidden;
  border-radius: 0.75rem;
  aspect-ratio: 16 / 10;
  background: rgba(148, 163, 184, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
}

.shared-event-detail-thumb img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

.shared-event-detail-summary-date {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
}

.shared-event-detail-summary-location,
.shared-event-detail-summary-kind {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-soft);
}

.shared-event-detail-summary-location span {
  color: var(--text-muted);
}

.shared-event-detail-register {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.shared-event-detail-register-form {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.shared-event-detail-register-form > .btn,
.tk-team-invite-actions {
  align-self: flex-start;
}

.tk-team-invite-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.tk-team-invite-actions .btn {
  width: auto;
  max-width: 100%;
}

.shared-event-detail-register-label {
  display: block;
}

.shared-event-detail-register-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.shared-event-detail-register-note,
.shared-event-detail-register-success {
  margin: 0;
  font-size: 0.875rem;
}

.shared-event-detail-register-success {
  color: #86efac;
  font-weight: 600;
}

.shared-event-detail-register-team-invite {
  padding: 1rem 1.25rem;
  border-radius: 0.5rem;
  border: 1px solid rgba(134, 239, 172, 0.35);
  background: rgba(134, 239, 172, 0.08);
}

.shared-event-detail-register-team-invite-label {
  margin: 0 0 0.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.shared-event-detail-register-team-invite-name {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.3;
  color: #86efac;
}

.shared-event-detail-register-team-invite-meta {
  margin: 0.5rem 0 0;
  font-size: 0.875rem;
  color: var(--text-muted);
}

.shared-event-detail-register-note {
  color: var(--text-muted);
}

.shared-event-detail-capacity {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.shared-event-detail-facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

.shared-event-detail-fact {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.shared-event-detail-fact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.625rem;
  background: rgba(251, 146, 60, 0.14);
  color: #fdba74;
  flex-shrink: 0;
}

.shared-event-detail-fact-body {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  min-width: 0;
}

.shared-event-detail-fact-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}

.shared-event-detail-fact-value {
  font-size: 0.875rem;
  color: var(--text);
  line-height: 1.45;
}

.shared-event-detail-organizer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.shared-event-detail-organizer-body {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.shared-event-detail-organizer-meta {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-muted);
}

@media (min-width: 900px) {
  .shared-event-detail-bottom-grid:has(.shared-event-detail-qr-section) {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
    grid-template-rows: auto auto;
  }

  .shared-event-detail-bottom-grid:has(.shared-event-detail-qr-section) .shared-event-detail-qr-section {
    grid-column: 1 / -1;
  }
}

.shared-event-detail-qr-section .race-detail-qr-grid {
  display: grid;
  gap: 1rem;
}

@media (min-width: 768px) {
  .shared-event-detail-qr-section .race-detail-qr-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
}

.shared-event-detail-qr-section .share-qr-block {
  margin: 0;
}

.shared-event-detail-guest-qr .share-qr-block {
  margin: 0;
}

.shared-event-detail-organizer-name {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text);
}

.shared-event-detail-discuss-hint {
  margin: 0;
  padding: 0.75rem 0.875rem;
  border-radius: 0.75rem;
  background: rgba(2, 6, 23, 0.35);
  border: 1px dashed var(--border);
  font-size: 0.875rem;
  color: var(--text-muted);
}

.shared-event-detail-share .share-qr-block {
  margin: 0;
}

.challenge-qr-grid,
.admin-challenge-qr-grid,
.share-qr-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}

@media (min-width: 768px) {
  .admin-challenge-qr-grid.share-qr-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.share-qr-grid .share-qr-block,
.challenge-qr-grid .share-qr-block,
.admin-challenge-qr-grid .share-qr-block,
.race-detail-qr-grid .share-qr-block {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.share-qr-grid .share-qr-block .card-body,
.challenge-qr-grid .share-qr-block .card-body,
.admin-challenge-qr-grid .share-qr-block .card-body,
.race-detail-qr-grid .share-qr-block .card-body {
  padding: 0.85rem 0.75rem;
}

.share-qr-grid .share-qr-block .section-title,
.challenge-qr-grid .share-qr-block .section-title,
.admin-challenge-qr-grid .share-qr-block .section-title,
.race-detail-qr-grid .share-qr-block .section-title {
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
}

.share-qr-grid .share-qr-image,
.challenge-qr-grid .share-qr-image,
.admin-challenge-qr-grid .share-qr-image,
.race-detail-qr-grid .share-qr-image {
  display: block;
  width: 100%;
  max-width: 8.5rem;
  height: auto;
  margin-inline: auto;
  box-sizing: border-box;
}

.share-qr-grid .share-qr-url,
.challenge-qr-grid .share-qr-url,
.admin-challenge-qr-grid .share-qr-url,
.race-detail-qr-grid .share-qr-url {
  max-width: 100%;
  font-size: 0.68rem;
  padding: 0.35rem 0.5rem;
  box-sizing: border-box;
}

.share-qr-grid .share-qr-actions,
.challenge-qr-grid .share-qr-actions,
.admin-challenge-qr-grid .share-qr-actions,
.race-detail-qr-grid .share-qr-actions {
  gap: 0.4rem;
}

.share-qr-grid .share-qr-buttons,
.challenge-qr-grid .share-qr-buttons,
.admin-challenge-qr-grid .share-qr-buttons,
.race-detail-qr-grid .share-qr-buttons {
  flex-direction: column;
  gap: 0.35rem;
}

.share-qr-grid .share-qr-buttons .btn,
.challenge-qr-grid .share-qr-buttons .btn,
.admin-challenge-qr-grid .share-qr-buttons .btn,
.race-detail-qr-grid .share-qr-buttons .btn {
  min-width: 0;
  width: 100%;
  font-size: 0.72rem;
  padding: 0.35rem 0.5rem;
}

.share-qr-grid .share-qr-hint,
.challenge-qr-grid .share-qr-hint,
.admin-challenge-qr-grid .share-qr-hint,
.race-detail-qr-grid .share-qr-hint {
  margin-top: 0.5rem !important;
  font-size: 0.72rem;
  line-height: 1.35;
}

.share-qr-block--hidden-public {
  opacity: 0.72;
}

.share-qr-hidden-note {
  margin: -0.25rem 0 0.75rem;
  font-style: italic;
}

.entity-statistics-dialog {
  width: min(96vw, 42rem);
  max-height: 92vh;
  padding: 0;
  overflow: hidden;
}

.entity-statistics-dialog-form {
  display: flex;
  flex-direction: column;
  max-height: 92vh;
  overflow: hidden;
  box-sizing: border-box;
}

.entity-statistics-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 0 1.25rem 1rem;
  -webkit-overflow-scrolling: touch;
}

.entity-statistics-subtitle {
  margin: 0.15rem 0 0;
  font-size: 0.875rem;
  color: var(--text-muted, var(--ink-muted));
}

.entity-statistics-layout {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.entity-statistics-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.entity-statistics-card {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: 0.85rem;
  background: linear-gradient(160deg, rgba(59, 130, 246, 0.08), rgba(15, 23, 42, 0.02));
}

.entity-statistics-card-icon {
  font-size: 1.35rem;
  line-height: 1;
}

.entity-statistics-card-label {
  font-size: 0.75rem;
  color: var(--text-muted, var(--ink-muted));
}

.entity-statistics-card-value {
  font-size: 1.05rem;
  line-height: 1.25;
}

.entity-statistics-section-title {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  font-weight: 700;
}

.entity-statistics-earth-layout {
  display: grid;
  grid-template-columns: minmax(8rem, 9.5rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
}

.entity-statistics-earth-visual {
  position: relative;
  width: 9rem;
  height: 9rem;
  margin-inline: auto;
}

.entity-statistics-earth-ring {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.entity-statistics-earth-track {
  fill: none;
  stroke: #64748b;
  stroke-width: 8;
  opacity: 0.45;
}

.entity-statistics-earth-progress {
  fill: none;
  stroke-width: 8;
  stroke-linecap: round;
}

.entity-statistics-earth-progress--first {
  stroke: #22c55e;
}

.entity-statistics-earth-progress--second {
  stroke: #ef4444;
}

.entity-statistics-earth-globe {
  position: absolute;
  inset: 1.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.entity-statistics-earth-svg {
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 4px 10px rgba(15, 23, 42, 0.18));
}

.entity-statistics-earth-label {
  position: absolute;
  inset: 1.35rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  text-align: center;
  pointer-events: none;
  z-index: 1;
}

.entity-statistics-earth-percent {
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.05;
  color: #fff;
  text-shadow: 0 1px 2px rgba(15, 23, 42, 0.65), 0 0 8px rgba(15, 23, 42, 0.35);
}

.entity-statistics-earth-lap {
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1.1;
  color: #dbeafe;
  text-shadow: 0 1px 2px rgba(15, 23, 42, 0.55);
}

.entity-statistics-earth-copy p {
  margin: 0 0 0.35rem;
}

.entity-statistics-muted,
.entity-statistics-elevation-note {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-muted, var(--ink-muted));
}

.entity-statistics-highlights,
.entity-statistics-sports {
  display: grid;
  gap: 0.75rem;
}

.entity-statistics-highlight,
.entity-statistics-sport,
.entity-statistics-route-card {
  display: flex;
  gap: 0.75rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: 0.85rem;
  background: var(--bg-card);
}

.entity-statistics-highlight-icon,
.entity-statistics-sport-icon,
.entity-statistics-route-icon {
  font-size: 1.4rem;
  line-height: 1;
}

.entity-statistics-highlight-title,
.entity-statistics-sport-label,
.entity-statistics-team-name {
  margin: 0;
  font-weight: 700;
}

.entity-statistics-highlight-value,
.entity-statistics-sport-km {
  margin: 0.15rem 0 0;
}

.entity-statistics-highlight-detail,
.entity-statistics-sport-meta,
.entity-statistics-team-meta {
  margin: 0.2rem 0 0;
  font-size: 0.8125rem;
  color: var(--text-muted, var(--ink-muted));
}

.entity-statistics-sport-head {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
}

.entity-statistics-sport {
  flex-direction: column;
}

.entity-statistics-sport-bar,
.entity-statistics-category-bar,
.entity-statistics-gender-bar {
  height: 0.45rem;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.18);
  overflow: hidden;
}

.entity-statistics-sport-bar span,
.entity-statistics-category-bar span,
.entity-statistics-gender-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2563eb, #22c55e);
}

.entity-statistics-teams {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.entity-statistics-team {
  display: flex;
  gap: 0.65rem;
  align-items: center;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
}

.entity-statistics-team-rank {
  width: 1.75rem;
  height: 1.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.12);
  font-weight: 700;
  font-size: 0.8125rem;
}

.entity-statistics-categories,
.entity-statistics-gender {
  display: grid;
  gap: 0.65rem;
}

.entity-statistics-category-head,
.entity-statistics-gender-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.35rem;
  font-size: 0.875rem;
}

.entity-statistics-gender-row {
  grid-template-columns: 4.5rem minmax(0, 1fr) auto;
}

.entity-statistics-loading,
.entity-statistics-error {
  margin: 1rem 0;
  color: var(--text-muted, var(--ink-muted));
}

.entity-statistics-error {
  color: var(--color-danger, #dc2626);
}

@media (min-width: 640px) {
  .entity-statistics-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.shared-event-detail-share.share-qr-grid {
  min-width: 0;
}

.shared-event-detail-main {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
}

.shared-event-detail-title {
  margin: 0;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text);
}

.shared-event-detail-hero {
  overflow: hidden;
  padding: 0;
}

.shared-event-detail-hero.race-detail-photo .card-photo-banner {
  border-bottom: none;
}

.shared-event-detail-hero-image {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(70vh, 24rem);
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
}

.shared-event-detail-content-grid {
  display: grid;
  gap: 1rem;
}

@media (min-width: 900px) {
  .shared-event-detail-content-grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    align-items: start;
  }
}

.shared-event-detail-desc,
.shared-event-detail-map,
.shared-event-detail-gps-profile,
.shared-event-detail-gallery,
.shared-event-detail-participants {
  padding: 1.25rem 1.375rem;
}

.shared-event-detail-desc-body {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--text-soft);
}

.shared-event-detail-desc-body p {
  margin: 0 0 0.875rem;
}

.shared-event-detail-desc-body p:last-child {
  margin-bottom: 0;
}

.shared-event-detail-bullets {
  margin: 0 0 0.875rem;
  padding-left: 1.125rem;
  color: var(--text-soft);
}

.shared-event-detail-bullets li + li {
  margin-top: 0.375rem;
}

.shared-event-detail-empty {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-muted);
}

.shared-event-detail-gps-link,
.shared-event-detail-map-link {
  margin: 0.875rem 0 0;
  font-size: 0.875rem;
}

.shared-event-detail-map .shared-event-map iframe,
.shared-event-detail-map .route-map-embed iframe {
  display: block;
  width: 100%;
  min-height: 18rem;
  border: 0;
  border-radius: 0.75rem;
}

.shared-event-detail-bottom-grid {
  display: grid;
  gap: 1rem;
}

@media (min-width: 900px) {
  .shared-event-detail-bottom-grid {
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem);
    align-items: start;
  }
}

.shared-event-detail-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.625rem;
}

.shared-event-detail-gallery-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 0.75rem;
  aspect-ratio: 16 / 10;
  background: rgba(148, 163, 184, 0.08);
}

button.shared-event-detail-gallery-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 0;
  border: none;
  background: none;
  cursor: zoom-in;
}

.shared-event-detail-gallery-item img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  transition: transform 0.2s ease;
}

.shared-event-detail-gallery-item:hover img {
  transform: scale(1.03);
}

button.shared-event-detail-gallery-thumb:hover img {
  transform: scale(1.03);
}

.shared-event-detail-participants-count {
  margin: -0.375rem 0 0.875rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.shared-event-participants-compact-scroll {
  max-height: min(18rem, 50vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  margin-right: -0.25rem;
  padding-right: 0.25rem;
}

.shared-event-participants-compact {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.shared-event-participants-compact-item {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  min-width: 0;
}

.shared-event-participant-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: rgba(59, 130, 246, 0.18);
  color: #93c5fd;
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
}

.shared-event-participant-name {
  display: block;
  min-width: 0;
  font-size: 0.875rem;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.shared-event-participant-you {
  color: #86efac;
  font-weight: 700;
  font-size: 0.875rem;
  flex-shrink: 0;
  margin-top: 0.125rem;
}

.race-participant-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}

.race-participant-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.625rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.race-participant-bib {
  font-weight: 600;
}

.race-participant-category {
  font-weight: 500;
}

.race-detail-registration {
  margin-bottom: 1rem;
}

.race-detail-registered {
  margin-top: 1rem;
}

.race-detail-results {
  margin-top: 1rem;
}

.race-results-section-title {
  margin: 1.5rem 0 0.75rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--text);
}

.race-detail-results .race-results-section-title:first-of-type {
  margin-top: 0.25rem;
}

.page-race-detail .shared-event-detail-content-grid:has(> :only-child) {
  grid-template-columns: minmax(0, 1fr);
}

.page-shared-event-detail .page-main,
.page-race-detail .page-main,
.page-challenge-detail .page-main {
  padding-top: 1.5rem;
}

.page-challenge-detail .challenge-detail-rankings {
  margin-top: 0.25rem;
}

.page-challenge-detail .challenge-detail-rankings .view-tabs {
  margin-bottom: 1.25rem;
}

.page-challenge-detail .challenge-detail-rankings .table-shell,
.page-challenge-detail .challenge-detail-rankings .card {
  margin-bottom: 0;
}

.page-challenge-detail .challenge-leaderboard-table .records-table-scroll,
.page-race-detail .race-detail-results .records-table-scroll,
.page-shared-event-detail .shared-event-participants-table .records-table-scroll,
.page-suz .suz-leaderboard .records-table-scroll.suz-table-scroll-9 {
  max-height: calc(var(--suz-table-row-height, 2.375rem) * (var(--suz-table-visible-rows, 9) + 1));
}

.challenge-activities-scroll {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  max-height: min(75vh, 40rem);
  width: 100%;
  max-width: 100%;
  border-radius: 0.75rem;
}

.challenge-activities-scroll .data-table {
  min-width: max(100%, 52rem);
  width: max-content;
}

.page-suz .challenge-activities-scroll .data-table {
  min-width: 0;
  width: 100%;
  table-layout: fixed;
}

.challenge-activities-scroll .data-table th,
.challenge-activities-scroll .data-table td {
  white-space: nowrap;
}

.challenge-activities-scroll .data-table td:nth-child(5) {
  white-space: normal;
  min-width: 10rem;
  max-width: 18rem;
}

.user-profile-preview-trigger {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  font-weight: inherit;
  cursor: pointer;
  text-align: inherit;
}

.user-profile-preview-trigger:hover,
.user-profile-preview-trigger:focus-visible {
  color: var(--brand, #2563eb);
  text-decoration: underline;
}

.user-profile-preview-trigger--inline {
  font-weight: 600;
}

.user-profile-preview-dialog {
  width: min(92vw, 28rem);
  max-height: 92vh;
  overflow: hidden;
}

.user-profile-preview-dialog .dashboard-goal-dialog-form {
  display: flex;
  flex-direction: column;
  max-height: 92vh;
  overflow: hidden;
  box-sizing: border-box;
}

.user-profile-preview-dialog--wide {
  width: min(96vw, 42rem);
}

.user-profile-preview-dialog--stats {
  width: min(96vw, 38rem);
}

.user-profile-preview-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.5rem;
}

.user-profile-preview-header .dashboard-card-title {
  min-width: 0;
}

.user-profile-preview-back[hidden] {
  display: none;
}

.user-profile-preview-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.user-profile-preview-dialog .dashboard-goal-dialog-footer {
  flex-shrink: 0;
  margin-top: 0.75rem;
}

.user-profile-preview-dialog--stats .user-profile-preview-stats {
  gap: 0.75rem;
}

.user-profile-preview-dialog--stats .user-profile-preview-stats-section {
  padding-bottom: 0;
}

.user-profile-preview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.user-profile-preview-activities-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}

.user-profile-preview-activities-table {
  min-width: max(100%, 22rem);
  width: max-content;
}

.user-profile-preview-activities-table th,
.user-profile-preview-activities-table td {
  white-space: nowrap;
}

.user-profile-preview-stats {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.user-profile-preview-stats-section {
  margin: 0;
}

.user-profile-preview-stats-heading {
  margin: 0 0 0.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text);
}

.user-profile-preview-sport-stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.user-profile-preview-sport-stat {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  font-size: 0.875rem;
}

.user-profile-preview-sport-stat-main {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  min-width: 0;
}

.user-profile-preview-sport-stat-main span {
  color: var(--text-muted);
}

.user-profile-preview-sport-count {
  font-size: 0.8125rem;
}

.user-profile-preview-weekly {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
  text-align: center;
  font-size: 0.75rem;
}

.user-profile-preview-weekly-day {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.user-profile-preview-records-group {
  margin-bottom: 0.75rem;
}

.user-profile-preview-records-title {
  margin: 0 0 0.35rem;
  font-size: 0.875rem;
  font-weight: 600;
}

.user-profile-preview-record {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.25rem 0.5rem;
  font-size: 0.8125rem;
  margin-bottom: 0.35rem;
}

.user-profile-preview-record-meta {
  grid-column: 1 / -1;
  color: var(--text-muted);
}

.user-profile-preview-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.user-profile-preview-badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  background: var(--surface-chip);
  font-size: 0.75rem;
}

.user-profile-preview-empty {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-muted);
}

.user-profile-preview-layout {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.user-profile-preview-photo {
  width: 5rem;
  height: 5rem;
  border-radius: 999px;
  object-fit: cover;
  flex-shrink: 0;
}

.user-profile-preview-photo--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(148, 163, 184, 0.2);
  color: #e2e8f0;
  font-weight: 700;
  font-size: 1.25rem;
}

.user-profile-preview-main {
  min-width: 0;
  flex: 1;
}

.user-profile-preview-name {
  margin: 0 0 0.25rem;
  font-size: 1.125rem;
  font-weight: 700;
}

.user-profile-preview-subname {
  margin: 0 0 0.75rem;
  color: #94a3b8;
  font-size: 0.875rem;
}

.user-profile-preview-facts {
  display: grid;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
}

.user-profile-preview-fact {
  display: grid;
  grid-template-columns: minmax(6.5rem, 38%) 1fr;
  gap: 0.5rem;
  font-size: 0.875rem;
}

.user-profile-preview-fact dt {
  color: #94a3b8;
  font-weight: 500;
}

.user-profile-preview-fact dd {
  margin: 0;
  font-weight: 600;
}

.user-profile-preview-note,
.user-profile-preview-loading,
.user-profile-preview-error {
  margin: 0;
  font-size: 0.8125rem;
  color: #94a3b8;
}

.user-profile-preview-error {
  color: #f87171;
}

.page-challenge-detail .challenge-detail-content-grid:has(> :only-child) {
  grid-template-columns: minmax(0, 1fr);
}

.page-challenge-detail .shared-event-detail-summary-kind .dashboard-race-badge {
  font-size: 0.8125rem;
}

.totp-backup-list code {
  font-size: 0.95rem;
  letter-spacing: 0.05em;
}

/* ── Mobilní optimalizace (desktop 768px+ beze změny) ── */
@media (max-width: 767px) {
  .page-main {
    padding: 1.25rem 0.875rem 2rem;
    padding-left: max(0.875rem, env(safe-area-inset-left));
    padding-right: max(0.875rem, env(safe-area-inset-right));
  }

  .page-title {
    font-size: 1.5rem;
  }

  .page-lead {
    font-size: 0.9375rem;
  }

  .section-title {
    font-size: 1.0625rem;
  }

  .card-body,
  .card-panel {
    padding: 1.125rem;
  }

  .card-header,
  .table-shell-header {
    padding: 0.875rem 1rem;
  }

  .form-card {
    padding: 1.25rem 1rem;
  }

  .group-card .card-body {
    min-height: auto;
    padding: 1.5rem 1.25rem;
  }

  .home-tile .card-body {
    min-height: auto;
    padding: 1.375rem 1.125rem;
  }

  .challenge-detail-card .card-header {
    padding: 1.125rem 1rem;
  }

  /* Header — logo + hamburger (mobil), menu vždy viditelné (desktop) */
  .site-header-inner,
  .admin-header-inner {
    display: block;
    padding-top: max(0.75rem, env(safe-area-inset-top));
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
    padding-bottom: 0.75rem;
  }

  .site-header-bar,
  .admin-header-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.625rem;
    width: 100%;
  }

  .site-header-bar:has(.site-nav-state:checked),
  .admin-header-bar:has(.admin-nav-state:checked) {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .site-header-brand,
  .admin-header-brand {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1 1 auto;
    min-width: 0;
  }

  .site-header-mobile-account {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex: 0 1 auto;
    max-width: min(42vw, 9.5rem);
    padding: 0.375rem 0.625rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--site-mobile-chip-border);
    background: var(--site-mobile-chip-bg);
    color: var(--site-mobile-chip-fg);
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
  }

  .site-header-mobile-account-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
  }

  .site-header-mobile-account:hover,
  .site-header-mobile-account:focus-visible {
    color: var(--accent-link);
    background: var(--site-nav-link-hover-bg);
    outline: none;
  }

  .site-header-mobile-account--guest {
    color: var(--accent-link);
    border-color: rgba(251, 146, 60, 0.35);
    background: rgba(251, 146, 60, 0.12);
  }

  .site-logo,
  .admin-header .site-logo {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.9375rem;
  }

  .site-logo-text {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .site-nav-panel,
  .admin-nav-panel {
    flex: 0 0 auto;
    align-items: center;
  }

  .site-nav-panel > .site-nav-toggle {
    order: 1;
  }

  .site-nav-panel > .site-theme-toggle {
    order: 2;
  }

  .site-nav-panel > .site-header-account-item {
    display: none;
  }

  .site-nav-panel:has(.site-nav-state:checked),
  .admin-nav-panel:has(.admin-nav-state:checked) {
    flex: 1 1 100%;
    width: 100%;
    align-items: flex-end;
  }

  .site-nav-toggle,
  .admin-nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4375rem 0.625rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--site-menu-toggle-border);
    background: var(--site-menu-toggle-bg);
    color: var(--site-menu-toggle-fg);
    font-size: 0.8125rem;
    font-weight: 600;
  }

  .site-nav-toggle-icon,
  .admin-nav-toggle-icon {
    position: relative;
    width: 1.125rem;
    height: 0.875rem;
  }

  .site-nav-toggle-icon::before,
  .site-nav-toggle-icon::after,
  .admin-nav-toggle-icon::before,
  .admin-nav-toggle-icon::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transition: transform 0.15s ease, top 0.15s ease, opacity 0.15s ease;
  }

  .site-nav-toggle-icon::before,
  .admin-nav-toggle-icon::before {
    top: 0;
    box-shadow: 0 6px 0 currentColor;
  }

  .site-nav-toggle-icon::after,
  .admin-nav-toggle-icon::after {
    top: 12px;
  }

  .site-nav-state:checked ~ .site-nav-toggle,
  .admin-nav-state:checked ~ .admin-nav-toggle {
    background: var(--site-nav-link-hover-bg);
  }

  .site-nav-state:not(:checked) ~ .site-nav,
  .admin-nav-state:not(:checked) ~ .admin-nav {
    display: none !important;
  }

  .site-nav-state:checked ~ .site-nav,
  .admin-nav-state:checked ~ .admin-nav {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
    order: 10;
    flex-basis: 100%;
    width: 100%;
    padding-top: 0.625rem;
  }

  .site-nav-state:checked ~ .site-nav .btn,
  .admin-nav-state:checked ~ .admin-nav .btn {
    width: auto;
    max-width: 100%;
    align-self: flex-end;
    justify-content: center;
  }

  .site-nav-strava-notice-wrap {
    position: static;
    width: 100%;
    max-width: 20rem;
  }

  .site-nav-state:checked ~ .site-nav .site-breadcrumb {
    width: 100%;
    text-align: right;
    padding: 0.375rem 0;
  }

  .site-nav-state:checked ~ .site-nav a:not(.btn) {
    display: block;
    text-align: right;
    padding: 0.625rem 0.75rem;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-menu-bar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    overflow: visible;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-menu-bar > a,
  .site-nav-state:checked ~ .site-nav .site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > a,
  .site-nav-state:checked ~ .site-nav .site-nav-menu-bar > .site-nav-item > .site-nav-parent-row > .site-nav-group-label {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    min-height: auto;
    padding: 0.625rem 0.75rem;
    border-radius: 0;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-menu-bar > .site-nav-item {
    width: 100%;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-menu-bar > .site-nav-item > .site-nav-parent-row {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-menu-bar > .site-nav-item.is-active > .site-nav-parent-row,
  .site-nav-state:checked ~ .site-nav .site-nav-menu-bar > a.is-active,
  .site-nav-state:checked ~ .site-nav .site-nav-menu-bar > a.nav-accent {
    background: var(--app-tab-active-bg);
    color: var(--app-tab-active-fg);
  }

  .site-nav-state:checked ~ .site-nav .site-nav-item {
    width: 100%;
    text-align: right;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-parent-row {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-parent-link,
  .site-nav-state:checked ~ .site-nav .site-nav-group-label {
    text-align: right;
    justify-content: flex-end;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-submenu-caret {
    margin-left: 0.35rem;
    margin-right: 0;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-submenu {
    margin-left: 0;
    width: 100%;
    text-align: right;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-submenu-link {
    display: block;
    text-align: right;
    padding: 0.5rem 0.75rem;
    white-space: normal;
  }

  .site-nav-state:checked ~ .site-nav .site-nav-mobile-account-links {
    display: block;
    width: 100%;
    margin-top: 0.25rem;
    padding-top: 0.35rem;
    border-top: 1px solid var(--border);
  }

  .site-nav-state:checked ~ .site-nav .site-nav-mobile-account-links .site-nav-submenu-link {
    display: block;
    text-align: right;
    padding: 0.625rem 0.75rem;
    font-size: 0.9375rem;
  }

  .admin-nav-state:checked ~ .admin-nav a,
  .admin-nav-state:checked ~ .admin-nav .admin-nav-current {
    display: block;
    text-align: right;
    padding: 0.625rem 0.75rem;
  }

  /* Starší šablona hlavičky — logo nad menu, bez překryvu */
  .site-header-inner:not(:has(.site-nav-panel)),
  .admin-header-inner:not(:has(.admin-nav-panel)) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.625rem;
  }

  .site-header-inner:not(:has(.site-nav-panel)) > .site-nav,
  .admin-header-inner:not(:has(.admin-nav-panel)) > .admin-nav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    gap: 0.375rem;
  }

  .site-header-inner:not(:has(.site-nav-panel)) > .site-nav a,
  .site-header-inner:not(:has(.site-nav-panel)) > .site-nav .btn,
  .admin-header-inner:not(:has(.admin-nav-panel)) > .admin-nav a {
    display: block;
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  /* Horizontální scroll pro záložky a filtry */
  .view-tabs,
  .scroll-x-row,
  .selection-bar,
  .dashboard-challenge-sports-tabs,
  .results-filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    padding-bottom: 0.25rem;
    margin-left: -0.125rem;
    margin-right: -0.125rem;
    padding-left: 0.125rem;
    padding-right: 0.125rem;
  }

  .view-tab,
  .scroll-x-row > *,
  .selection-bar > *,
  .results-filters > * {
    flex-shrink: 0;
  }

  /* Tabulky — posuvník místo zalomení */
  .table-shell {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--radius-lg);
  }

  .data-table {
    min-width: 34rem;
  }

  .data-table th,
  .data-table td {
    padding: 0.625rem 0.75rem;
    font-size: 0.8125rem;
  }

  .data-table th {
    font-size: 0.6875rem;
  }

  /* Admin */
  .admin-page-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-page-toolbar .btn {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .admin-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-form-actions {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .admin-form-actions .btn {
    width: auto;
    max-width: 100%;
  }

  .admin-hint {
    font-size: 0.8125rem;
  }

  .admin-toolbar-card {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-list-item {
    flex-direction: column;
    align-items: stretch;
  }

  /* Statistiky a hero */
  .hero-strip {
    gap: 0.625rem;
  }

  .stat-chip {
    min-width: 0;
    flex: 1 1 calc(50% - 0.3125rem);
    padding: 0.75rem 0.875rem;
  }

  .stat-chip-value {
    font-size: 1.25rem;
  }

  /* Aktivity, patička, formuláře */
  .activity-feed-item {
    flex-direction: column;
    padding: 1rem;
  }

  .site-footer {
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
    padding-bottom: max(2rem, env(safe-area-inset-bottom));
  }

  .privacy-banner {
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
  }

  .site-page-map-frame iframe {
    min-height: 240px;
  }

  .admin-meeting-map {
    height: 16rem;
  }

  .totp-backup-list {
    grid-template-columns: 1fr;
  }

  .card-panel-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .card-panel + .card-panel {
    border-left: none;
    border-top: 1px solid var(--surface-line);
  }

  .share-qr-actions .btn {
    width: 100%;
  }

  /* Výzva — mobilní zobrazení */
  .page-challenge-detail .view-tab-label-full,
  .challenge-page .view-tab-label-full {
    display: none;
  }

  .page-challenge-detail .view-tab-label-short,
  .challenge-page .view-tab-label-short {
    display: inline;
  }

  .page-challenge-detail .view-tabs,
  .challenge-page .view-tabs {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 0;
    margin-bottom: 1rem;
    padding-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .page-challenge-detail .view-tab,
  .challenge-page .view-tab {
    flex: 0 0 auto;
    text-align: center;
    padding: 0.5rem 0.75rem;
    font-size: 0.75rem;
    line-height: 1.2;
    min-height: 2.5rem;
  }

  .page-challenge-detail .link-back,
  .challenge-page .link-back {
    display: inline-block;
    margin-bottom: 0.875rem;
    font-size: 0.875rem;
  }

  .challenge-detail-card {
    margin-bottom: 1rem;
  }

  .challenge-detail-card-has-banner .card-photo-banner {
    height: 9rem;
  }

  .challenge-detail-card .page-title {
    font-size: 1.25rem;
    line-height: 1.25;
    hyphens: auto;
    overflow-wrap: anywhere;
  }

  .challenge-detail-card .text-ink-muted {
    font-size: 0.875rem;
  }

  .page-challenge-detail .hero-strip,
  .challenge-page .hero-strip {
    margin-bottom: 1rem;
  }

  .page-challenge-detail .alert.flex,
  .challenge-page .alert.flex {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .page-challenge-detail .alert form.inline,
  .page-challenge-detail .alert .btn,
  .challenge-page .alert form.inline,
  .challenge-page .alert .btn {
    width: 100%;
  }

  .page-challenge-detail .alert .btn-sm,
  .challenge-page .alert .btn-sm {
    padding: 0.625rem 1rem;
    min-height: 2.75rem;
  }

  .page-challenge-detail .scroll-x-row,
  .challenge-page .scroll-x-row {
    margin-bottom: 1rem;
  }

  .page-challenge-detail .filter-pill,
  .challenge-page .filter-pill {
    font-size: 0.75rem;
    padding: 0.375rem 0.75rem;
  }

  .challenge-leaderboard-table .data-table {
    min-width: 0;
  }

  .challenge-leaderboard-table .data-table:not(.suz-leaderboard-table--individual):not(.suz-leaderboard-table--team) th:nth-child(3),
  .challenge-leaderboard-table .data-table:not(.suz-leaderboard-table--individual):not(.suz-leaderboard-table--team) td:nth-child(3),
  .challenge-leaderboard-table .data-table:not(.suz-leaderboard-table--team) th:nth-child(5),
  .challenge-leaderboard-table .data-table:not(.suz-leaderboard-table--team) td:nth-child(5) {
    display: none;
  }

  .challenge-activities-table .data-table {
    min-width: 0;
  }

  .challenge-my-activities-table .data-table th:nth-child(3),
  .challenge-my-activities-table .data-table td:nth-child(3),
  .challenge-my-activities-table .data-table th:nth-child(4),
  .challenge-my-activities-table .data-table td:nth-child(4),
  .challenge-my-activities-table .data-table th:nth-last-child(2),
  .challenge-my-activities-table .data-table td:nth-last-child(2) {
    display: none;
  }

  .challenge-activities-scroll {
    max-height: min(70vh, 36rem);
  }

  .page-challenge-detail .results-podium-bar,
  .challenge-page .results-podium-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
    min-height: auto;
    padding: 0.5rem 0.625rem;
  }

  .page-challenge-detail .results-podium-value,
  .challenge-page .results-podium-value {
    white-space: normal;
    font-size: 0.75rem;
  }

  .page-challenge-detail .page-intro,
  .challenge-page .page-intro {
    margin-bottom: 1.25rem;
  }

  .page-challenge-detail .share-qr-wrap,
  .challenge-page .share-qr-wrap {
    margin-top: 2rem;
  }

  /* Výzva — detail stránky */
  .page-challenge-detail .shared-event-detail-title {
    font-size: 1.375rem;
    line-height: 1.25;
    hyphens: auto;
    overflow-wrap: anywhere;
  }

  .page-challenge-detail .shared-event-detail-card {
    padding: 1rem;
  }

  .page-challenge-detail .shared-event-detail-fact-value,
  .page-challenge-detail .shared-event-detail-desc-body {
    overflow-wrap: anywhere;
  }

  .page-challenge-detail .challenge-detail-rankings .view-tab {
    padding: 0.35rem 0.625rem;
    font-size: 0.6875rem;
  }

  .page-challenge-detail .shared-event-detail-register-actions {
    flex-direction: column;
  }

  /* Závod — detail stránky (stejné úpravy jako výzva) */
  .page-race-detail .shared-event-detail-title {
    font-size: 1.375rem;
    line-height: 1.25;
    hyphens: auto;
    overflow-wrap: anywhere;
  }

  .page-race-detail .shared-event-detail-card {
    padding: 1rem;
  }

  .page-race-detail .shared-event-detail-fact-value,
  .page-race-detail .shared-event-detail-desc-body {
    overflow-wrap: anywhere;
  }

  .page-race-detail .shared-event-detail-register-actions {
    flex-direction: column;
  }

  .page-race-detail .shared-event-detail-register-actions .btn,
  .page-challenge-detail .shared-event-detail-register-actions .btn {
    width: 100%;
  }

  .page-race-detail .link-back,
  .page-challenge-detail .link-back {
    display: inline-block;
    margin-bottom: 0.875rem;
    font-size: 0.875rem;
  }

  .page-race-detail .race-detail-results .table-shell {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .page-race-detail .race-detail-results .table-shell .data-table {
    width: max-content;
    min-width: min(100%, 28rem);
  }

  .page-challenge-detail .challenge-detail-rankings .table-shell .data-table,
  .page-challenge-detail .challenge-leaderboard-table .data-table {
    min-width: 0;
    width: 100%;
  }

  .page-challenge-detail .challenge-activities-scroll .data-table {
    min-width: min(100%, 28rem);
    width: max-content;
  }

  /* Moje aktivity — karty na mobilu (viz také pravidla u .my-activities-page na konci souboru) */
  .my-activities-table-wrap .data-table th:nth-child(4),
  .my-activities-table-wrap .data-table td:nth-child(4),
  .my-activities-table-wrap .data-table th:nth-child(5),
  .my-activities-table-wrap .data-table td:nth-child(5) {
    display: none;
  }

  .my-activities-table-wrap .data-table {
    min-width: 0;
  }

  /* Registrace */
  .auth-wrap--register .rounded-lg.border {
    padding: 0.875rem;
  }

  .auth-wrap--register .register-group-center {
    width: 100%;
  }

  /* Seznam závodů */
  .page-zavody-list .race-list-card-has-banner .card-photo-banner {
    height: 10rem;
  }

  .page-zavody-list .race-list-card .card-title {
    font-size: 1rem;
    line-height: 1.3;
  }

  /* Výběr výzvy pro aktivitu */
  .activity-pick-page .cards-grid-home {
    gap: 0.75rem;
  }

  .activity-pick-page .home-tile {
    flex-basis: 100%;
    width: 100%;
    max-width: 100%;
  }

  /* Scan závodu */
  .race-scan-page .card-body {
    padding: 1.125rem 1rem;
  }

  .race-scan-page .race-start-countdown-value {
    font-size: clamp(1.25rem, 6vw, 1.75rem);
    word-break: break-word;
  }

  /* Host akce */
  .shared-event-guest-page .page-lead {
    overflow-wrap: anywhere;
  }

  .shared-event-guest-page .auth-wrap {
    max-width: min(100%, 26rem);
    padding-left: 0;
    padding-right: 0;
  }
}

@media (max-width: 420px) {
  .admin-stat-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .stat-chip {
    flex-basis: 100%;
  }

  .site-nav-toggle-label,
  .admin-nav-toggle-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
}

/* Homepage — rotátor (aktuality, akce, …) */
.home-content-rotator,
.home-news-rotator {
  display: grid;
  gap: 0.875rem;
  max-width: 100%;
}

.home-content-rotator-viewport,
.home-news-rotator-viewport {
  display: grid;
  min-width: 0;
  width: 100%;
}

.home-content-slide,
.home-news-slide {
  grid-area: 1 / 1;
  opacity: 0;
  visibility: hidden;
  transform: translateY(0.35rem);
  transition: opacity 0.45s ease, transform 0.45s ease, visibility 0.45s ease;
  pointer-events: none;
}

.home-content-slide.is-active,
.home-news-slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  z-index: 1;
}

.home-content-rotator-dots,
.home-news-rotator-dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}

.home-content-dot,
.home-news-dot {
  width: 0.625rem;
  height: 0.625rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: var(--dot-inactive);
  cursor: pointer;
  transition: transform 0.15s ease, background-color 0.15s ease;
}

.home-content-dot.is-active,
.home-news-dot.is-active {
  background: var(--brand);
  transform: scale(1.15);
}

.home-content-dot:focus-visible,
.home-news-dot:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

.home-events-section .home-events-slide-card,
.home-races-section .home-races-slide-card,
.home-articles-section .home-articles-slide-card,
.home-vyzvy-section .home-vyzvy-slide-card,
.home-my-challenges-section .home-my-challenges-slide-card,
.home-news-section .home-news-card,
.home-events-section.home-tiles-section--card-width-auto .home-content-rotator,
.home-races-section.home-tiles-section--card-width-auto .home-content-rotator,
.home-articles-section.home-tiles-section--card-width-auto .home-content-rotator,
.home-vyzvy-section.home-tiles-section--card-width-auto .home-content-rotator,
.home-my-challenges-section.home-tiles-section--card-width-auto .home-content-rotator,
.home-news-section.home-tiles-section--card-width-auto .home-content-rotator {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

.home-events-section.home-tiles-section--tiles-left .home-events-slide-card,
.home-races-section.home-tiles-section--tiles-left .home-races-slide-card,
.home-articles-section.home-tiles-section--tiles-left .home-articles-slide-card,
.home-vyzvy-section.home-tiles-section--tiles-left .home-vyzvy-slide-card,
.home-events-section.home-tiles-section--tiles-left .home-content-rotator,
.home-races-section.home-tiles-section--tiles-left .home-content-rotator,
.home-articles-section.home-tiles-section--tiles-left .home-content-rotator,
.home-vyzvy-section.home-tiles-section--tiles-left .home-content-rotator,
.home-news-section.home-tiles-section--tiles-left .home-news-card,
.home-news-section.home-tiles-section--tiles-left .home-content-rotator {
  max-width: min(100%, 28rem);
  width: 100%;
  margin-inline: 0 auto 0 0;
}

.home-events-section.home-tiles-section--tiles-center .home-events-slide-card,
.home-races-section.home-tiles-section--tiles-center .home-races-slide-card,
.home-articles-section.home-tiles-section--tiles-center .home-articles-slide-card,
.home-vyzvy-section.home-tiles-section--tiles-center .home-vyzvy-slide-card,
.home-events-section.home-tiles-section--tiles-center .home-content-rotator,
.home-races-section.home-tiles-section--tiles-center .home-content-rotator,
.home-articles-section.home-tiles-section--tiles-center .home-content-rotator,
.home-vyzvy-section.home-tiles-section--tiles-center .home-content-rotator,
.home-news-section.home-tiles-section--tiles-center .home-news-card,
.home-news-section.home-tiles-section--tiles-center .home-content-rotator {
  max-width: min(100%, 28rem);
  width: 100%;
  margin-inline: auto;
}

.home-events-section.home-tiles-section--tiles-right .home-events-slide-card,
.home-races-section.home-tiles-section--tiles-right .home-races-slide-card,
.home-articles-section.home-tiles-section--tiles-right .home-articles-slide-card,
.home-vyzvy-section.home-tiles-section--tiles-right .home-vyzvy-slide-card,
.home-events-section.home-tiles-section--tiles-right .home-content-rotator,
.home-races-section.home-tiles-section--tiles-right .home-content-rotator,
.home-articles-section.home-tiles-section--tiles-right .home-content-rotator,
.home-vyzvy-section.home-tiles-section--tiles-right .home-content-rotator,
.home-news-section.home-tiles-section--tiles-right .home-news-card,
.home-news-section.home-tiles-section--tiles-right .home-content-rotator {
  max-width: min(100%, 28rem);
  width: 100%;
  margin-inline: 0 0 0 auto;
}

.home-events-section.home-tiles-section--tiles-stretch .home-events-slide-card,
.home-races-section.home-tiles-section--tiles-stretch .home-races-slide-card,
.home-articles-section.home-tiles-section--tiles-stretch .home-articles-slide-card,
.home-vyzvy-section.home-tiles-section--tiles-stretch .home-vyzvy-slide-card,
.home-events-section.home-tiles-section--tiles-stretch .home-content-rotator,
.home-races-section.home-tiles-section--tiles-stretch .home-content-rotator,
.home-articles-section.home-tiles-section--tiles-stretch .home-content-rotator,
.home-vyzvy-section.home-tiles-section--tiles-stretch .home-content-rotator,
.home-news-section.home-tiles-section--tiles-stretch .home-news-card,
.home-news-section.home-tiles-section--tiles-stretch .home-content-rotator {
  max-width: min(100%, 28rem);
  width: 100%;
  margin-inline: auto;
}

/* Šířka karet — nastavení z administrace */
.home-tiles-section--card-width-narrow { --home-card-max-width: 24rem; }
.home-tiles-section--card-width-medium { --home-card-max-width: 32rem; }
.home-tiles-section--card-width-wide { --home-card-max-width: 42rem; }
.home-tiles-section--card-width-xlarge { --home-card-max-width: 56rem; }
.home-tiles-section--card-width-full { --home-card-max-width: min(100%, 72rem); }

.home-tile--card-width-narrow { --home-card-max-width: 24rem; }
.home-tile--card-width-medium { --home-card-max-width: 32rem; }
.home-tile--card-width-wide { --home-card-max-width: 42rem; }
.home-tile--card-width-xlarge { --home-card-max-width: 56rem; }
.home-tile--card-width-full { --home-card-max-width: min(100%, 72rem); }

.home-tiles-section[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-news-card,
.home-tiles-section[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-content-rotator,
.home-tiles-section[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-events-slide-card,
.home-tiles-section[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-races-slide-card,
.home-tiles-section[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-articles-slide-card,
.home-tiles-section[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-vyzvy-slide-card,
.home-tiles-section[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .cards-grid-home > .home-tile,
.home-tiles-section[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .cards-grid-home > .home-hub-tile-wrap {
  max-width: var(--home-card-max-width);
  width: min(100%, var(--home-card-max-width));
}

.home-tiles-section--tiles-left[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-news-card,
.home-tiles-section--tiles-left[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-content-rotator,
.home-tiles-section--tiles-left[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-events-slide-card,
.home-tiles-section--tiles-left[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-races-slide-card,
.home-tiles-section--tiles-left[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-articles-slide-card,
.home-tiles-section--tiles-left[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-vyzvy-slide-card,
.home-tiles-section--tiles-left[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .cards-grid-home > .home-tile,
.home-tiles-section--tiles-left[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .cards-grid-home > .home-hub-tile-wrap {
  margin-inline: 0 auto 0 0;
}

.home-tiles-section--tiles-center[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-news-card,
.home-tiles-section--tiles-center[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-content-rotator,
.home-tiles-section--tiles-center[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-events-slide-card,
.home-tiles-section--tiles-center[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-races-slide-card,
.home-tiles-section--tiles-center[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-articles-slide-card,
.home-tiles-section--tiles-center[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-vyzvy-slide-card,
.home-tiles-section--tiles-center[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .cards-grid-home > .home-tile,
.home-tiles-section--tiles-center[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .cards-grid-home > .home-hub-tile-wrap,
.home-tiles-section--tiles-stretch[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-news-card,
.home-tiles-section--tiles-stretch[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-content-rotator,
.home-tiles-section--tiles-stretch[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-events-slide-card,
.home-tiles-section--tiles-stretch[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-races-slide-card,
.home-tiles-section--tiles-stretch[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-articles-slide-card,
.home-tiles-section--tiles-stretch[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-vyzvy-slide-card,
.home-tiles-section--tiles-stretch[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .cards-grid-home > .home-tile,
.home-tiles-section--tiles-stretch[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .cards-grid-home > .home-hub-tile-wrap {
  margin-inline: auto;
}

.home-tiles-section--tiles-right[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-news-card,
.home-tiles-section--tiles-right[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-content-rotator,
.home-tiles-section--tiles-right[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-events-slide-card,
.home-tiles-section--tiles-right[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-races-slide-card,
.home-tiles-section--tiles-right[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-articles-slide-card,
.home-tiles-section--tiles-right[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .home-vyzvy-slide-card,
.home-tiles-section--tiles-right[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .cards-grid-home > .home-tile,
.home-tiles-section--tiles-right[class*="--card-width-"]:not(.home-tiles-section--card-width-auto) .cards-grid-home > .home-hub-tile-wrap {
  margin-inline: 0 0 0 auto;
}

.home-tile[class*="--card-width-"] {
  flex: 0 1 min(100%, var(--home-card-max-width)) !important;
  max-width: min(100%, var(--home-card-max-width)) !important;
  width: min(100%, var(--home-card-max-width)) !important;
}

.home-events-section .home-events-slide-card .home-tile,
.home-races-section .home-races-slide-card .home-tile,
.home-articles-section .home-articles-slide-card .home-tile,
.home-vyzvy-section .home-vyzvy-slide-card .home-tile {
  height: 100%;
}

/* Homepage — rotující tlačítko (články) */
.home-hub-tile-section .home-hub-tile-wrap {
  min-width: 0;
}

.home-hub-tile-section .home-hub-tile-wrap.home-content-rotator {
  display: grid;
  gap: 0.875rem;
}

.home-hub-tile-section .home-content-slide {
  display: block;
  min-width: 0;
}

.home-hub-tile-section .home-hub-tile {
  position: relative;
  height: 100%;
}

.home-hub-tile-label {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  background: var(--surface-badge);
  color: var(--surface-badge-fg);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.home-hub-tile.home-tile-has-banner .home-hub-tile-label {
  background: var(--surface-badge);
}

/* Homepage — hlavička sekce s odkazem */
.home-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}

.home-section-head .section-title {
  min-width: 0;
}

/* Homepage — aktuality (karty) */
.home-news-card {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  width: 100%;
  text-align: left;
  padding: 1.125rem 1.25rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: var(--bg-card-gradient);
  box-shadow: var(--shadow-md);
  color: var(--text-soft);
}

.home-news-card--clickable,
.home-news-card--interactive {
  transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.home-news-card--clickable {
  cursor: pointer;
  font: inherit;
}

.home-news-card--clickable:hover,
.home-news-card--interactive:hover {
  border-color: rgba(251, 146, 60, 0.45);
  transform: translateY(-1px);
  box-shadow: var(--shadow-lg);
}

.home-news-open-trigger {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.home-news-card--hero .home-news-open-trigger.home-news-body {
  margin-top: -4rem;
  padding: 1.25rem 1.375rem 1.375rem;
}

html[data-theme="light"] .home-news-card--hero .home-news-open-trigger.home-news-body {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.88) 38%, #ffffff 100%);
}

.home-news-card--hero .home-news-body:not(.home-news-open-trigger) {
  margin-top: 0;
  padding: 1.25rem 1.375rem 1.375rem;
}

.home-news-image-lightbox {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
  text-align: left;
}

.home-news-image-lightbox:hover .home-news-image {
  opacity: 0.92;
}

.home-news-image-lightbox:focus-visible {
  outline: 2px solid rgba(252, 76, 2, 0.45);
  outline-offset: 3px;
  border-radius: var(--radius-md);
}

.home-news-image-lightbox .home-news-image {
  pointer-events: none;
}

.home-news-card--hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  padding: 0;
  overflow: hidden;
  min-height: 14rem;
}

.home-news-card--hero.home-news-card--has-image {
  grid-template-columns: minmax(0, 1fr);
}

.home-news-card--hero .home-news-media {
  position: relative;
  min-height: 0;
  aspect-ratio: unset;
  border: 0;
  border-radius: 0;
  background: var(--surface-media);
}

.home-news-card--hero .home-news-image-lightbox {
  display: block;
  width: 100%;
  height: auto;
}

.home-news-card--hero .home-news-image {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: min(52vh, 28rem);
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
}

.home-news-card--hero .home-news-open-trigger.home-news-body {
  position: relative;
  z-index: 1;
  background: linear-gradient(180deg, rgba(2, 6, 23, 0) 0%, rgba(2, 6, 23, 0.88) 38%, rgba(2, 6, 23, 0.96) 100%);
}

.home-news-link--hint {
  opacity: 0.85;
}

.home-news-card--has-image {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  align-items: stretch;
  min-width: 0;
}

.home-news-media {
  overflow: hidden;
  border-radius: var(--radius-md);
  background: rgba(148, 163, 184, 0.08);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 9;
  min-width: 0;
}

.home-news-image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
}

.home-news-image--contain {
  object-fit: contain;
  -webkit-object-fit: contain;
}

.home-news-icon {
  flex: 0 0 auto;
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-items: center;
  font-size: 1.25rem;
  border-radius: var(--radius-md);
  background: rgba(148, 163, 184, 0.12);
  border: 1px solid var(--border);
}

.home-news-body {
  min-width: 0;
  flex: 1 1 auto;
}

.home-news-date {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent-link);
}

.home-news-title {
  margin: 0 0 0.375rem;
  font-size: 1.125rem;
  line-height: 1.3;
  font-weight: 800;
  color: var(--text);
}

.home-news-lead {
  margin: 0 0 0.625rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--text-muted);
}

.home-news-link {
  display: inline-flex;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--accent-link);
}

.home-news-link:hover {
  color: var(--accent-link);
}

/* Homepage — hub layout (mockup) */
.home-hub {
  display: grid;
  gap: 1.5rem;
}

.home-hub-intro {
  margin-bottom: 0.25rem;
}

.home-hub-hero {
  display: grid;
  grid-template-columns: minmax(14rem, 22rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: stretch;
}

.home-hub-hero--news-only {
  grid-template-columns: minmax(0, 1fr);
}

.home-hub-panel {
  min-width: 0;
  padding: 1rem 1.125rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--surface-panel-border);
  background: var(--surface-panel);
  box-shadow: var(--shadow-md);
}

.home-hub-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.875rem;
}

.home-hub-panel-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--text);
}

.home-hub-panel-foot {
  margin: 0.75rem 0 0;
  text-align: center;
}

.home-hub-empty {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--text-muted);
}

.home-hub-panel--news {
  position: relative;
  padding: 0.875rem;
  border-color: transparent;
  background:
    linear-gradient(135deg, rgba(59, 130, 246, 0.55), rgba(251, 146, 60, 0.45)) border-box,
    var(--surface-panel) padding-box;
  border: 1px solid transparent;
}

html[data-theme="light"] .home-hub-panel--news {
  background:
    linear-gradient(135deg, rgba(59, 130, 246, 0.35), rgba(251, 146, 60, 0.28)) border-box,
    var(--surface-panel) padding-box;
}

.home-hub-panel--news .home-hub-panel-head {
  padding: 0 0.25rem;
}

.home-hub-panel--news .home-content-rotator--hero {
  gap: 0.625rem;
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
}

.home-hub-panel--news .home-news-card--hero {
  min-height: 0;
}

.home-hub-panel--news .home-news-card--hero .home-news-media {
  min-height: 0;
  width: 100%;
}

.home-hub-panel--news .home-news-card--hero .home-news-image {
  max-height: min(58vh, 32rem);
}

.home-hub-panel--my-challenges .home-content-rotator--compact {
  gap: 0.625rem;
}

.home-hub-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

.home-hub-panel--challenges,
.home-hub-panel--races,
.home-hub-panel--events {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.home-hub-panel--races .home-hub-races-rotator {
  flex: 1;
  min-height: 0;
}

.home-hub-panel--races .home-hub-races-rotator .home-content-slide {
  height: 100%;
}

.home-hub-panel--races .home-hub-races-rotator .home-hub-race-card {
  height: 100%;
}

.home-hub-race-phase-badge {
  display: inline-block;
}

.home-hub-tile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  flex: 1;
  align-items: stretch;
}

.home-hub-tile-grid .home-hub-tile-card:only-child {
  grid-column: 1 / -1;
}

.home-hub-articles-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.home-hub-extra {
  display: grid;
  gap: 1.5rem;
}

.home-hub-my-challenge {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 0;
  padding: 0;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}

.home-hub-my-challenge-media {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--surface-media);
}

.home-hub-my-challenge-image {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

.home-hub-my-challenge-media--fallback {
  display: grid;
  place-items: center;
  font-size: 1.75rem;
}

.home-hub-my-challenge-body {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  padding: 0.875rem 1rem 1rem;
}

.home-hub-my-challenge-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.home-hub-my-challenge-user {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--text);
}

.home-hub-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.home-hub-badge--active {
  background: var(--hub-badge-active-bg);
  color: var(--hub-badge-active-text);
}

.home-hub-badge--upcoming {
  background: var(--hub-badge-upcoming-bg);
  color: var(--hub-badge-upcoming-text);
}

.home-hub-badge--muted {
  background: rgba(148, 163, 184, 0.16);
  color: var(--text-muted);
}

.home-hub-my-challenge-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.3;
}

.home-hub-my-challenge-meta {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.35rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.home-hub-my-challenge-action {
  align-self: flex-start;
  margin-top: auto;
}

.home-hub-tile-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100%;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}

.home-hub-tile-card-media {
  flex-shrink: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--surface-media);
  display: flex;
  align-items: center;
  justify-content: center;
}

.home-hub-tile-card-image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
}

.home-hub-tile-card-image.contain {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
}

.home-hub-tile-card-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  font-size: 2rem;
}

.home-hub-tile-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.75rem;
  min-height: 5.25rem;
}

.home-hub-tile-card-title {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 800;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 2.5em;
}

.home-hub-progress {
  flex-shrink: 0;
  height: 0.25rem;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.18);
  overflow: hidden;
}

.home-hub-progress-bar {
  display: block;
  height: 100%;
  border-radius: inherit;
}

.home-hub-progress--blue .home-hub-progress-bar {
  background: linear-gradient(90deg, #3b82f6, #60a5fa);
}

.home-hub-progress--orange .home-hub-progress-bar {
  background: linear-gradient(90deg, #f97316, #fb923c);
}

.home-hub-tile-card-meta {
  margin: 0;
  margin-top: auto;
  font-size: 0.75rem;
  color: var(--text-muted);
  line-height: 1.45;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.home-hub-tile-card-action {
  color: var(--accent-link);
  font-weight: 700;
}

.home-hub-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.home-hub-list > li + li {
  border-top: 1px solid rgba(148, 163, 184, 0.14);
}

.home-hub-article-card {
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
}

.home-hub-article-card-media {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: rgba(148, 163, 184, 0.08);
}

.home-hub-article-card-image {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
}

.home-hub-article-card-body {
  display: grid;
  gap: 0.625rem;
  padding: 0.875rem;
}

.home-hub-article-card-title {
  margin: 0;
  font-size: 1rem;
  line-height: 1.3;
}

.home-hub-article-card-title a {
  color: var(--text);
  text-decoration: none;
}

.home-hub-article-card-title a:hover {
  color: var(--accent-link);
}

.home-hub-article-card-excerpt {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--text-muted);
}

.home-hub-article-card-action {
  justify-self: start;
  margin-top: auto;
}

.home-content-rotator--nav {
  position: relative;
}

.home-content-rotator-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
  width: 2.25rem;
  height: 2.25rem;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-floating);
  color: var(--surface-floating-fg);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: var(--shadow-md);
}

.home-content-rotator-nav--prev {
  left: 0.75rem;
}

.home-content-rotator-nav--next {
  right: 0.75rem;
}

.home-content-rotator-nav:hover {
  background: var(--surface-floating-hover);
}

.home-content-rotator-nav:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

.home-content-rotator--nav .home-content-rotator-dots {
  justify-content: center;
  gap: 0.2rem;
  width: min(7.5rem, 42%);
  margin-inline: auto;
  padding-top: 0.125rem;
}

.home-content-rotator--nav .home-content-dot {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
  height: 0.125rem;
  border-radius: 999px;
  transform: none;
}

.home-content-rotator--nav .home-content-dot.is-active {
  transform: none;
  background: #f97316;
}

@media (max-width: 1100px) {
  .home-hub-hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-hub-columns {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-hub-articles-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .home-hub-tile-grid,
  .home-hub-articles-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-content-rotator-nav {
    width: 2rem;
    height: 2rem;
    font-size: 1.25rem;
  }
}

.home-news-modal {
  width: min(40rem, calc(100vw - 1.5rem));
  max-height: calc(100vh - 2rem);
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text);
}

.home-news-modal::backdrop {
  background: var(--overlay-backdrop);
}

.home-news-modal-inner {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

.home-news-modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.375rem 0.75rem;
}

.home-news-modal-title {
  margin: 0;
  font-size: 1.25rem;
  line-height: 1.3;
}

.home-news-modal-date {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent-link);
}

.home-news-modal-close {
  border: 0;
  background: transparent;
  color: var(--text-muted);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
}

.home-news-modal-media {
  padding: 0 1.375rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.home-news-modal-image-btn {
  width: 100%;
  border-radius: var(--radius-md);
  background: var(--surface-media);
}

.home-news-modal-image {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: min(11rem, 32vh);
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
  border-radius: var(--radius-md);
}

.home-news-modal-body {
  padding: 0.75rem 1.375rem 1.375rem;
  overflow: auto;
}

.home-news-modal-lead {
  margin: 0 0 1rem;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--text-muted);
  white-space: pre-wrap;
}

.home-news-modal-actions {
  margin: 0;
}

.home-my-challenges-section .home-my-challenges-slide-card,
.home-my-challenges-section .home-content-rotator {
  width: 100%;
  max-width: none;
}

.news-feed {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.news-feed-item .home-news-card {
  width: 100%;
}

.news-list-page .home-news-card--has-image {
  grid-template-columns: minmax(0, 1fr);
  gap: 0.875rem;
}

.news-list-page .home-news-card--has-image .home-news-media {
  width: 100%;
  height: auto;
  min-height: 0;
}

@media (min-width: 640px) {
  .news-list-page .home-news-card--has-image {
    grid-template-columns: minmax(10rem, 14rem) minmax(0, 1fr);
    gap: 1rem;
  }

  .news-list-page .home-news-card--has-image .home-news-media {
    height: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-content-slide,
  .home-news-slide {
    transition: none;
    transform: none;
  }

  .home-content-slide:not(.is-active),
  .home-news-slide:not(.is-active) {
    display: none;
  }
}

@media (min-width: 640px) {
  .home-content-rotator,
  .home-news-rotator {
    gap: 1rem;
  }

  .home-news-card {
    padding: 1.25rem 1.5rem;
  }

  .home-news-card--has-image:not(.home-news-card--hero) .home-news-media {
    aspect-ratio: 16 / 9;
  }
}

/* Veřejná stránka — zarovnání celého obsahu */
.home-page-content {
  width: 100%;
}

.page-main.page-main--home-layout.page-main--align-stretch {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

body:not(.page-suz) .page-main.page-main--home-layout:not(.page-main--align-stretch) {
  max-width: var(--layout-home-max-width, 72rem);
}

.page-main.page-main--home-layout.page-main--align-left {
  margin-left: 0;
  margin-right: auto;
}

.page-main.page-main--home-layout.page-main--align-center {
  margin-left: auto;
  margin-right: auto;
}

.page-main.page-main--home-layout.page-main--align-right {
  margin-left: auto;
  margin-right: 0;
}

/* Náhled v administraci — canvas je širší než veřejná stránka */
.home-page-content--align-stretch {
  max-width: none;
}

.home-page-content--align-center {
  max-width: var(--layout-home-max-width, 72rem);
  margin-left: auto;
  margin-right: auto;
}

.home-page-content--align-left {
  max-width: var(--layout-home-max-width, 72rem);
  margin-right: auto;
  margin-left: 0;
}

.home-page-content--align-right {
  max-width: var(--layout-home-max-width, 72rem);
  margin-left: auto;
  margin-right: 0;
}

.home-page-content--text-left .page-intro {
  text-align: left;
}

.home-page-content--text-center .page-intro {
  text-align: center;
}

.home-page-content--text-right .page-intro {
  text-align: right;
}

/* Admin — vizuální editor hlavní stránky */
.admin-body .page-main:has(.home-page-builder) {
  max-width: 96rem;
}

.home-page-builder-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.home-page-builder-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: center;
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
}

.home-page-builder-toolbar-group {
  display: grid;
  gap: 0.5rem;
}

.home-page-builder-toolbar-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ink-muted);
}

.home-page-builder-align-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.home-page-builder-align-btn {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--ink);
  border-radius: 999px;
  padding: 0.35rem 0.8rem;
  font-size: 0.8125rem;
  cursor: pointer;
}

.home-page-builder-align-btn.is-active {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}

.home-page-builder-align-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.home-page-builder-toolbar-status-wrap {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.2rem;
  min-width: 8rem;
}

.home-page-builder-app-version {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ink-muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.home-page-builder-toolbar-status {
  font-size: 0.875rem;
  color: var(--ink-muted);
  min-height: 1.25rem;
  text-align: right;
}

.home-page-builder-toolbar-status.is-error {
  color: #b42318;
}

.home-page-builder-layout {
  display: grid;
  grid-template-columns: minmax(16rem, 20rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.home-page-builder-panel-title {
  font-size: 1rem;
  font-weight: 700;
  margin: 0;
}

.home-page-builder-panel-lead {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.home-page-builder-palette {
  padding: 1rem;
  position: sticky;
  top: 1rem;
}

.home-page-builder-palette-list {
  display: grid;
  gap: 0.65rem;
  margin-top: 1rem;
}

.home-page-builder-palette-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.75rem;
  align-items: center;
  width: 100%;
  text-align: left;
  border: 1px dashed var(--border);
  background: var(--surface-muted);
  border-radius: 0.85rem;
  padding: 0.75rem;
  cursor: grab;
}

.home-page-builder-palette-item:hover {
  border-color: var(--brand);
  background: var(--surface);
}

.home-page-builder-palette-icon {
  font-size: 1.35rem;
  line-height: 1;
}

.home-page-builder-palette-copy {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.home-page-builder-palette-copy strong {
  font-size: 0.875rem;
}

.home-page-builder-palette-copy span {
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.home-page-builder-palette-add {
  font-size: 1.1rem;
  color: var(--brand);
  font-weight: 700;
}

.home-page-builder-canvas-wrap {
  min-width: 0;
}

.home-page-builder-canvas-head {
  margin-bottom: 0.75rem;
}

.home-page-builder-canvas {
  min-height: 22rem;
  padding: 1rem;
  border: 2px dashed var(--border);
  border-radius: 1rem;
  background:
    linear-gradient(180deg, rgba(148, 163, 184, 0.08), rgba(148, 163, 184, 0.02)),
    var(--surface);
  display: grid;
  gap: 0.75rem;
}

.home-page-builder-canvas.is-drag-over {
  border-color: var(--brand);
  background-color: rgba(37, 99, 235, 0.04);
}

.home-page-builder-empty {
  display: grid;
  place-items: center;
  min-height: 14rem;
  text-align: center;
  color: var(--ink-muted);
  border: 1px dashed var(--border);
  border-radius: 0.85rem;
  padding: 1.5rem;
}

.home-page-builder-card {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  gap: 0.85rem;
  align-items: start;
  padding: 0.9rem 1rem;
  border: 1px solid var(--border);
  border-radius: 0.95rem;
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.home-page-builder-card.is-hidden {
  opacity: 0.62;
}

.home-page-builder-card.is-dragging {
  opacity: 0.45;
}

.home-page-builder-card-grip {
  cursor: grab;
  color: var(--ink-muted);
  font-weight: 700;
  user-select: none;
  padding-top: 0.15rem;
}

.home-page-builder-card-icon {
  font-size: 1.6rem;
  line-height: 1;
}

.home-page-builder-card-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  align-items: baseline;
}

.home-page-builder-card-title {
  font-size: 0.98rem;
}

.home-page-builder-card-type {
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.home-page-builder-card-summary {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.home-page-builder-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  margin-top: 0.5rem;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.home-page-builder-card-thumb {
  margin-top: 0.65rem;
  max-width: 12rem;
  border-radius: 0.65rem;
  overflow: hidden;
  border: 1px solid var(--border);
}

.home-page-builder-card-thumb img {
  display: block;
  width: 100%;
  height: auto;
}

.home-page-builder-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
}

.admin-builder-card.home-page-builder-card {
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  align-items: center;
}

.admin-builder-card .home-page-builder-card-actions {
  grid-column: 4;
  grid-row: 1;
  justify-content: flex-end;
  align-self: center;
  margin-top: 0;
  padding-top: 0;
  border-top: none;
  min-width: 0;
}

.admin-builder-card .home-page-builder-card-body {
  min-width: 0;
}

.home-page-builder-card-actions .admin-crud-actions,
.home-page-builder-card-actions.admin-crud-actions {
  justify-content: flex-end;
}

.home-page-builder-card-actions .menu-tree-action-text,
.admin-builder-card .home-page-builder-card-actions .menu-tree-action-text {
  width: auto;
  min-width: 2rem;
  height: auto;
  min-height: 2rem;
  padding: 0 0.55rem;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
}

.home-page-builder-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.55rem;
  border: 1px solid var(--border);
  background: var(--surface-muted);
  text-decoration: none;
  cursor: pointer;
}

.home-page-builder-action:hover {
  border-color: var(--brand);
}

.home-page-builder-action-danger:hover {
  border-color: #b42318;
}

.home-page-builder-dialog,
.admin-modal {
  border: none;
  border-radius: 1rem;
  padding: 0;
  max-width: 32rem;
  width: calc(100% - 2rem);
  background: #ffffff;
  color: #0f172a;
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.22);
}

.home-page-builder-dialog::backdrop,
.admin-modal::backdrop {
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(2px);
}

.home-page-builder-dialog-form,
.admin-modal-inner {
  padding: 0;
}

.admin-modal-header {
  padding: 1.25rem 1.25rem 0.5rem;
}

.admin-modal-title,
.admin-modal .section-title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #0f172a;
}

.admin-modal-body {
  padding: 0.75rem 1.25rem 0.25rem;
}

.admin-modal-lead,
.admin-modal .page-lead {
  margin: 0 0 1rem;
  color: #64748b;
  line-height: 1.55;
}

.admin-modal-field {
  display: grid;
  gap: 0.45rem;
  margin-bottom: 0.5rem;
}

#admin-confirm-dialog-typed[hidden] {
  display: none !important;
}

.admin-modal-label {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #334155;
}

.admin-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.65rem;
  padding: 1rem 1.25rem 1.25rem;
  border-top: 1px solid #f1f5f9;
}

.admin-dialog {
  max-width: 32rem;
}

@media (max-width: 960px) {
  .home-page-builder-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-page-builder-palette {
    position: static;
  }

  .home-page-builder-card {
    grid-template-columns: auto 1fr;
  }

  .home-page-builder-card-icon {
    display: none;
  }

  .home-page-builder-card-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .admin-builder-card .home-page-builder-card-actions {
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--border);
  }
}

.admin-list-builder-canvas-wrap {
  margin-top: 0;
}

.admin-list-builder-canvas {
  display: grid;
  gap: 0.75rem;
  min-height: 6rem;
  padding: 1rem;
  border: 1px dashed var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface-muted);
}

.admin-list-builder .home-page-builder-header {
  margin-bottom: 1rem;
}

.admin-panel .admin-list-builder {
  padding: 0;
}

/* —— Dashboard (layout a komponenty) —— */
.page-body-dashboard {
  --site-header-height: 3.5rem;
  --dashboard-header-offset: var(--site-header-height);
  --dashboard-sticky-tabs-top: var(--dashboard-header-offset);
  --dashboard-shell-width-narrow: 42rem;
  --dashboard-shell-width-medium: 64rem;
  --dashboard-shell-width-wide: 80rem;
  width: 100%;
  max-width: 100%;
  overflow-x: visible;
  scroll-padding-top: calc(var(--dashboard-header-offset) + 3rem);
}

.page-main.page-main-dashboard {
  max-width: none;
  padding: 0 !important;
  margin: 0 auto;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: visible;
}

.page-body-dashboard .flash {
  max-width: var(--layout-dashboard-max-width, 72rem);
  margin: 0.5rem auto 0.35rem;
}

.dashboard {
  padding: 0 1rem 2rem;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: visible;
}

.dashboard-shell,
.dashboard-shell-wide {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  display: block;
  overflow: visible;
}

.dashboard-view,
.dashboard-diploma-page,
.dashboard-race-page,
.dashboard-challenge-page,
.dashboard-goal-page,
.dashboard-statistics-page {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  overflow-x: clip;
  overflow-y: visible;
}

.dashboard-topbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  position: sticky;
  top: var(--dashboard-sticky-tabs-top);
  z-index: 90;
  margin: 0 0 0.2rem;
  padding: 0.45rem 0 0.5rem;
  background: var(--bg-page);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--dashboard-topbar-shadow);
  overflow: visible;
}

.dashboard-topbar-main {
  position: static;
  padding: 0;
  margin: 0;
  flex: 0 1 auto;
  max-width: 100%;
  min-width: 0;
  overflow: visible;
  background: transparent;
  border-bottom: none;
  box-shadow: none;
}

.dashboard-challenge-hero-top,
.dashboard-goal-hero-top {
  width: 100%;
  min-width: 0;
  flex-shrink: 0;
  display: block;
  margin: 0;
  padding: 0;
  overflow: visible;
}

.dashboard-challenge-overview,
.dashboard-goal-overview,
.dashboard-goal-hero-card,
.dashboard-statistics-hero,
.dashboard-race-summary.dashboard-hero-tile,
.dashboard-diploma-hero.dashboard-hero-tile,
.dashboard .card.card-shadow {
  padding-top: 0.85rem;
  overflow: visible;
}

.dashboard-challenge-overview,
.dashboard-goal-overview,
.dashboard-goal-hero-card {
  padding: 0.85rem 0.85rem 0.8rem;
}

.dashboard-challenge-page > .dashboard-challenge-overview:first-child,
.dashboard-goal-hero-top > .dashboard-goal-overview:first-child,
.dashboard-goal-hero-top > .dashboard-goal-hero-card:first-child {
  margin-top: 0;
}

.dashboard-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 12.5rem) minmax(0, 1.1fr);
  gap: 0.65rem 0.85rem;
  align-items: start;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

/* Sjednocená velikost gauge na kartách výzva / cíl / závod (desktop) */
.dashboard-challenge-overview-grid,
.dashboard-goal-overview-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 12.5rem) minmax(0, 1fr);
}

.dashboard-overview-col {
  min-width: 0;
  overflow: visible;
}

.dashboard-overview-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem 0.5rem;
  margin-bottom: 0.55rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.14);
}

.dashboard-overview-toolbar--actions-only {
  justify-content: flex-end;
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0.45rem;
}

.dashboard-overview-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  margin-left: auto;
  max-width: 100%;
  overflow: visible;
}

.suz-page-brand {
  display: flex;
  align-items: center;
  justify-content: center;
}

.suz-page-brand-logo {
  max-height: 4.5rem;
  width: auto;
}

.suz-page-brand-fallback {
  font-size: 1.5rem;
  font-weight: 700;
}

.suz-toolbar-sticky {
  position: -webkit-sticky;
  position: sticky;
  top: var(--site-header-sticky-height);
  z-index: 90;
  margin: 0 0 1.25rem;
  padding: 0.5rem 0;
  background: var(--bg-page);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}

.suz-toolbar-inner {
  padding: 0.65rem 0.85rem;
}

.suz-toolbar-actions {
  width: 100%;
  justify-content: flex-start;
  margin-left: 0;
  flex-wrap: wrap;
  gap: 0.375rem 0.5rem;
}

.suz-toolbar-sync-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.suz-toolbar-hint.manual-activity-blocked-notice,
.manual-activity-blocked-notice {
  margin: 0.75rem 0.85rem 0.25rem;
  padding: 0.75rem 1rem;
  border-radius: 0.65rem;
  border: 1px solid #f97316;
  background: rgba(249, 115, 22, 0.12);
  box-shadow: 0 1px 0 rgba(249, 115, 22, 0.08);
}

.manual-activity-blocked-notice-title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.35;
  color: #c2410c;
}

.manual-activity-blocked-notice-detail {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #9a3412;
}

html[data-theme="light"] .manual-activity-blocked-notice-title {
  color: #9a3412;
}

html[data-theme="light"] .manual-activity-blocked-notice-detail {
  color: #7c2d12;
}

.dashboard-challenge-overview-notice--warning,
.shared-event-detail-register-note--warning {
  margin: 0.75rem 0 0;
  padding: 0.75rem 1rem;
  border-radius: 0.65rem;
  border: 1px solid #f97316;
  background: rgba(249, 115, 22, 0.12);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.45;
  color: #9a3412;
}

.suz-challenge-picker--toolbar {
  padding: 0.65rem 0.85rem 0.75rem;
  border-top: 1px solid var(--border);
}

.suz-challenge-picker--toolbar .suz-challenge-picker-form {
  margin: 0;
}

.suz-challenge-picker-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
}

.suz-challenge-picker-label {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ink-soft);
  white-space: nowrap;
  flex: 0 0 auto;
}

.suz-challenge-picker-select,
.suz-challenge-picker-row .form-input {
  flex: 1 1 12rem;
  min-width: 0;
  max-width: 100%;
}

.dashboard-overview-toolbar-actions .dashboard-hero-actions,
.dashboard-overview-card-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  margin: 0;
  overflow: visible;
}

.dashboard-overview-toolbar .btn,
.dashboard-overview-toolbar-actions .btn,
.dashboard-overview-card-actions .btn {
  padding: 0.3rem 0.55rem;
  font-size: 0.75rem;
  line-height: 1.2;
  min-height: 1.75rem;
  border-radius: 999px;
  white-space: nowrap;
}

.dashboard-overview-toolbar .btn-strava,
.dashboard-overview-card-actions .btn-strava,
.dashboard-overview-toolbar .btn-fitnesssyncer,
.dashboard-overview-card-actions .btn-fitnesssyncer,
.dashboard-overview-toolbar .btn-google-health,
.dashboard-overview-card-actions .btn-google-health {
  padding: 0.3rem 0.6rem;
  font-size: 0.75rem;
  gap: 0.35rem;
}

.dashboard-overview-toolbar .btn-strava svg,
.dashboard-overview-card-actions .btn-strava svg,
.dashboard-overview-toolbar .btn-fitnesssyncer svg,
.dashboard-overview-card-actions .btn-fitnesssyncer svg,
.dashboard-overview-toolbar .btn-google-health svg,
.dashboard-overview-card-actions .btn-google-health svg {
  width: 0.85rem;
  height: 0.85rem;
}

.dashboard-overview-toolbar .dashboard-goal-cancel-form,
.dashboard-overview-card-actions .dashboard-goal-cancel-form {
  margin: 0;
}

.dashboard-overview-toolbar .dashboard-goal-cancel-form .btn {
  width: auto;
}

.dashboard-challenge-detail-open {
  flex-shrink: 0;
}

.dashboard-challenge-detail-dialog {
  width: min(36rem, calc(100vw - 1.5rem));
  max-height: calc(100vh - 2rem);
}

.dashboard-challenge-detail-dialog-body {
  display: grid;
  gap: 0.75rem;
  max-height: min(70vh, 32rem);
  overflow-y: auto;
  padding-right: 0.15rem;
}

.dashboard-challenge-detail-dialog-photo img {
  width: 100%;
  max-height: 12rem;
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
  border-radius: 0.65rem;
  background: var(--surface-media);
}

.dashboard-challenge-detail-dialog-heading {
  margin: 0 0 0.35rem;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink-muted);
}

.dashboard-challenge-detail-dialog-text {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--dashboard-subtle);
}

.dashboard-overview-stats-stack {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
}

.dashboard-overview-col--center {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  text-align: center;
}

.dashboard-overview-countdown {
  width: 100%;
  max-width: 11.5rem;
  margin: 0 auto;
}

.dashboard-challenge-overview .dashboard-overview-countdown {
  max-width: min(100%, 16rem);
}

.dashboard-overview-gauge {
  width: 100%;
  max-width: 16rem;
  margin: 0 auto;
}

.dashboard-challenge-overview .dashboard-overview-gauge {
  max-width: min(100%, 16rem);
}

.dashboard-challenge-overview .dashboard-hero-gauge {
  width: min(100%, 16rem);
}

.dashboard-challenge-overview .dashboard-hero-gauge-center {
  max-width: 13rem;
  bottom: 0.55rem;
}

.dashboard-challenge-overview .dashboard-race-gauge-desc {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.05rem;
  text-transform: none;
  font-size: 0.82rem;
  letter-spacing: 0.01em;
}

.dashboard-challenge-overview .dashboard-race-gauge-desc [data-overview-gauge-label-line2]:not([hidden]) {
  display: block;
}

.dashboard-challenge-overview .dashboard-gauge-num {
  font-size: clamp(1.55rem, 3.2vw, 2rem);
}

.dashboard-challenge-overview .dashboard-gauge-track,
.dashboard-challenge-overview .dashboard-gauge-fill {
  stroke-width: 16;
}

.dashboard-challenge-overview .dashboard-challenge-time-bar {
  max-width: 100%;
}

.dashboard-overview-days-card {
  width: 100%;
  max-width: 11.5rem;
  margin: 0 auto;
}

.dashboard-overview-col--right {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.dashboard-challenge-overview-main {
  min-width: 0;
}

.dashboard-challenge-overview-copy {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.65rem;
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border);
  border-radius: 0.85rem;
  background: var(--dashboard-tile-bg);
  box-sizing: border-box;
}

.dashboard-challenge-overview-copy-text {
  flex: 1 1 auto;
  min-width: 0;
}

.dashboard-challenge-overview-copy .dashboard-challenge-photo-thumb {
  flex: 0 0 auto;
  align-self: flex-start;
  margin-left: auto;
}

.dashboard-challenge-overview .dashboard-overview-col--right {
  gap: 0.35rem;
}

.dashboard-challenge-overview-points .dashboard-points-info {
  margin: 0;
}

.dashboard-challenge-overview-points .dashboard-points-info-kpis {
  gap: 0.35rem;
}

.dashboard-challenge-overview-points .dashboard-points-info-head {
  margin-bottom: 0.55rem;
}

.dashboard-challenge-overview-notice {
  margin: 0.55rem 0 0;
}

.dashboard-goal-hero-head {
  min-width: 0;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border);
  border-radius: 0.85rem;
  background: var(--dashboard-tile-bg);
  box-sizing: border-box;
}

.dashboard-view--cile .dashboard-goal-page > .dashboard-goal-hero-top,
.dashboard-view--cile .dashboard-goal-page > .dashboard-goal-overview:first-child,
.dashboard-view--vyzvy .dashboard-challenge-page,
.dashboard-view--zavody .dashboard-race-page,
.dashboard-view--cile .dashboard-goal-page,
.dashboard-view--statistiky .dashboard-statistics-page,
.dashboard-view--diplomy .dashboard-diploma-page {
  gap: 0.35rem;
}

.dashboard-hero-tile:first-child {
  margin-top: 0;
}

.dashboard-race-page-head,
.dashboard-diploma-page-head {
  display: none;
}

.dashboard-goal-hero-top {
  gap: 0.25rem;
}

.dashboard-race-page,
.dashboard-diploma-page,
.dashboard-statistics-page {
  gap: 0.4rem;
}

.dashboard-challenge-overview-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(min(100%, 11rem), auto);
  align-items: start;
  gap: 1rem 1.25rem;
  min-width: 0;
}

@media (max-width: 900px) {
  .dashboard-challenge-overview-head {
    grid-template-columns: 1fr;
  }

  .dashboard-challenge-countdown {
    justify-self: stretch;
    width: 100%;
    max-width: none;
  }
}

.dashboard-challenge-photo-thumb {
  flex: 0 0 auto;
  position: relative;
  width: 4.5rem;
  height: 4.5rem;
  padding: 0;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 0.65rem;
  background: rgba(15, 23, 42, 0.5);
  cursor: pointer;
  overflow: hidden;
}

.dashboard-challenge-photo-thumb:hover .dashboard-challenge-photo-thumb-img,
.dashboard-challenge-photo-thumb:focus-visible .dashboard-challenge-photo-thumb-img {
  opacity: 0.88;
}

.dashboard-challenge-photo-thumb:focus-visible {
  outline: 2px solid #fb923c;
  outline-offset: 2px;
}

.dashboard-challenge-photo-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  transition: opacity 0.15s ease;
}

.dashboard-challenge-detail {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.dashboard-challenge-detail-photo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem;
  background: rgba(148, 163, 184, 0.06);
  border-bottom: 1px solid var(--surface-line);
}

.dashboard-challenge-detail-photo-img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(70vh, 18rem);
  object-fit: contain;
  object-position: center;
}

.dashboard-challenge-photo-thumb-hint {
  position: absolute;
  inset: auto 0 0;
  padding: 0.2rem 0.25rem;
  font-size: 0.625rem;
  font-weight: 600;
  text-align: center;
  color: #fff;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.72));
  pointer-events: none;
}

.dashboard-challenge-overview .dashboard-challenge-overview-main {
  flex: 0 0 auto;
}

.dashboard-challenge-detail-group {
  margin: 0 0 0.2rem;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink-muted);
}

.dashboard-challenge-detail-title {
  margin: 0 0 0.35rem;
}

.dashboard-challenge-detail-dates {
  margin: 0;
}

.dashboard-challenge-countdown {
  flex: 0 0 auto;
  min-width: 10.5rem;
  text-align: center;
  padding: 0.85rem 1rem;
}

.dashboard-challenge-countdown-value {
  margin: 0;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1;
  color: #fb923c;
}

.dashboard-challenge-countdown-value--text {
  font-size: 1.125rem;
  line-height: 1.3;
  padding: 0.35rem 0 0.15rem;
}

.dashboard-challenge-countdown-unit {
  margin: 0.15rem 0 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--dashboard-body);
  text-transform: lowercase;
}

.dashboard-challenge-countdown-label {
  margin: 0.35rem 0 0.65rem;
  font-size: 0.8125rem;
  color: var(--ink-muted);
}

.dashboard-challenge-time-bar {
  margin: 0 auto;
  max-width: 12rem;
}

.dashboard-challenge-countdown-meta {
  margin: 0.5rem 0 0;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.dashboard-challenge-detail-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 7.5rem), 1fr));
  gap: 0.75rem 1rem;
  margin: 0.75rem 0 0;
  padding: 0;
}

.dashboard-challenge-detail-facts--inline {
  margin-top: 0.65rem;
}

.dashboard-challenge-overview-copy .dashboard-challenge-detail-facts--inline {
  margin-top: 0.5rem;
  gap: 0.5rem 0.75rem;
}

.dashboard-challenge-overview-stats {
  margin: 0;
  padding-top: 0.25rem;
  border-top: 1px solid rgba(148, 163, 184, 0.12);
  min-width: 0;
  width: 100%;
}

.dashboard-challenge-detail-facts dt {
  margin: 0 0 0.2rem;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.dashboard-challenge-detail-facts dd {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
}

.dashboard-challenge-detail-description {
  margin: 0 0 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--ink-muted);
}

.dashboard-challenge-overview-footer {
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(148, 163, 184, 0.14);
  display: grid;
  gap: 0.5rem;
  min-width: 0;
}

.dashboard-challenge-footer-notice {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--dashboard-muted);
}

.dashboard-points-info {
  padding: 0.85rem 1rem;
}

.dashboard-points-info-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.dashboard-points-info-title-wrap {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  min-width: 0;
}

.dashboard-points-info-icon {
  font-size: 1.35rem;
  line-height: 1;
}

.dashboard-points-info-title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--dashboard-heading);
}

.dashboard-points-info-sub {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--dashboard-muted);
}

.dashboard-points-info-detail {
  flex: 0 0 auto;
  border: none;
  background: transparent;
  padding: 0.15rem 0;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
}

.dashboard-points-info-body {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.85rem 1rem;
  align-items: end;
}

.dashboard-points-info-kpis {
  display: grid;
  gap: 0.5rem;
}

.dashboard-points-kpi {
  display: grid;
  gap: 0.1rem;
  padding: 0.5rem 0.65rem;
  border-radius: 0.65rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  min-width: 5.5rem;
}

.dashboard-points-kpi-label {
  font-size: 0.6875rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.dashboard-points-kpi-value {
  font-size: 1.35rem;
  font-weight: 800;
  color: #fbbf24;
  line-height: 1.1;
}

html[data-theme="light"] .page-body-dashboard .dashboard-points-kpi-value {
  color: var(--text);
}

html[data-theme="light"] .page-body-dashboard .dashboard-points-kpi-label {
  color: var(--ink-muted);
}

html[data-theme="light"] .page-body-dashboard .dashboard-points-ladder-points {
  color: var(--text);
}

html[data-theme="light"] .page-body-dashboard .dashboard-points-rules-em {
  color: var(--brand);
}

html[data-theme="light"] .page-body-dashboard .profile-weekly-chart-km,
html[data-theme="light"] .page-body-dashboard .profile-weekly-chart-label,
html[data-theme="light"] .page-body-dashboard .profile-monthly-chart-km,
html[data-theme="light"] .page-body-dashboard .profile-monthly-chart-label {
  color: var(--text-muted);
}

html[data-theme="light"] .page-body-dashboard .dashboard-gauge-desc,
html[data-theme="light"] .page-body-dashboard .dashboard-gauge-sub:not(.dashboard-gauge-sub-success):not(.dashboard-gauge-sub-ranks) {
  color: var(--text-muted);
}

.dashboard-points-ladder {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 0.35rem;
  min-height: 4.5rem;
  padding: 0.25rem 0;
}

.dashboard-points-ladder-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  min-width: 1.75rem;
}

.dashboard-points-ladder-bar-wrap {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  width: 1.35rem;
  height: 3.25rem;
}

.dashboard-points-ladder-bar {
  width: 100%;
  min-height: 0.35rem;
  border-radius: 0.35rem 0.35rem 0.1rem 0.1rem;
  background: linear-gradient(180deg, #fbbf24, #f97316);
}

.dashboard-points-ladder-points {
  font-size: 0.75rem;
  font-weight: 700;
  color: #fde68a;
}

.dashboard-points-ladder-rank {
  font-size: 0.625rem;
  color: #64748b;
}

.dashboard-points-info-hint {
  margin: 0.65rem 0 0;
  font-size: 0.75rem;
  color: #94a3b8;
}

.dashboard-race-points-wrap .dashboard-points-info {
  margin: 0;
}

.dashboard-points-rules-body {
  display: grid;
  gap: 0.75rem;
}

.dashboard-points-rules-body .dashboard-card-lead {
  margin: 0;
}

.dashboard-points-rules-current {
  margin: 0;
  font-size: 0.875rem;
  color: var(--dashboard-subtle);
}

.dashboard-points-rules-em {
  color: #fde68a;
}

.dashboard-points-rules-table {
  margin-top: 0.25rem;
}

@media (max-width: 520px) {
  .dashboard-points-info-body {
    grid-template-columns: 1fr;
  }

  .dashboard-points-ladder {
    justify-content: flex-start;
  }
}

.dashboard-challenge-footer-notice {
  color: var(--dashboard-subtle);
  padding: 0.55rem 0.65rem;
  border-radius: 0.65rem;
  background: var(--surface-chip);
  border: 1px solid var(--border);
}

.dashboard-race-points-info {
  line-height: 1.4;
}

.dashboard-race-info-facts-span {
  grid-column: 1 / -1;
}

.dashboard-challenge-rules-info,
.dashboard-activity-rules-info {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--ink-muted);
  background: rgba(148, 163, 184, 0.08);
  border-radius: 0.5rem;
  border-left: 3px solid rgba(251, 146, 60, 0.55);
}

.dashboard-challenge-detail-actions {
  margin: 0;
}

.dashboard-challenge-hero-top .dashboard-hero,
.dashboard-goal-hero-top .dashboard-hero {
  margin-bottom: 0;
}

.dashboard-challenge-body,
.dashboard-goal-body {
  min-width: 0;
  width: 100%;
}

.dashboard-shell {
  max-width: var(--dashboard-shell-width-medium, var(--layout-dashboard-max-width, 64rem));
  margin: 0 auto;
  width: 100%;
  padding-inline: clamp(0.5rem, 2vw, 1rem);
  box-sizing: border-box;
}

.dashboard-shell.dashboard-shell-width-narrow {
  max-width: var(--dashboard-shell-width-narrow, 42rem);
}

.dashboard-shell.dashboard-shell-width-medium {
  max-width: var(--dashboard-shell-width-medium, var(--layout-dashboard-max-width, 64rem));
}

.dashboard-shell.dashboard-shell-width-wide {
  max-width: var(--dashboard-shell-width-wide, var(--layout-dashboard-max-width, 80rem));
}

.dashboard-shell.dashboard-shell-width-full {
  max-width: 100%;
  padding-inline: clamp(0.5rem, 1.5vw, 1.25rem);
}

.dashboard-layout-width {
  display: none;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
}

.dashboard-layout-width-label {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin-right: 0.15rem;
}

.dashboard-layout-width-options {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 0.2rem;
  padding: 0.2rem;
  border-radius: 0.55rem;
  background: var(--surface-muted);
  border: 1px solid var(--border);
}

.dashboard-layout-width-btn {
  border: none;
  background: transparent;
  color: var(--ink-muted);
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.2;
  padding: 0.35rem 0.5rem;
  border-radius: 0.4rem;
  cursor: pointer;
  white-space: nowrap;
}

.dashboard-layout-width-btn:hover {
  color: var(--text);
}

.dashboard-layout-width-btn.is-active {
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

@media (min-width: 900px) {
  .dashboard-layout-width {
    display: inline-flex;
  }

  .dashboard-topbar-user {
    flex-wrap: wrap;
    justify-content: flex-end;
  }
}

.dashboard-diplomas {
  margin-bottom: 1rem;
}

.dashboard-diploma-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

.dashboard-diploma-item {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border);
  border-radius: 0.85rem;
  background: var(--surface-muted);
}

.dashboard-diploma-title {
  margin: 0;
  font-weight: 700;
}

.dashboard-diploma-meta,
.dashboard-diploma-summary {
  margin: 0.2rem 0 0;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.dashboard-diploma-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  max-width: 100%;
  min-width: 0;
}

.dashboard-diploma-item-main {
  flex: 1 1 12rem;
  min-width: 0;
}

.dashboard-diploma-item .dashboard-diploma-actions {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.dashboard .share-qr-buttons .btn {
  min-width: 0;
  max-width: 100%;
}

.dashboard-topbar-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  align-items: end;
}

.dashboard-mode-tabs {
  width: 100%;
  max-width: 100%;
}

.dashboard-mode-tabs .dashboard-mode-tab {
  flex: 0 0 auto;
  white-space: nowrap;
  word-break: normal;
}

.dashboard-mode-tabs-7 .dashboard-mode-tab,
.dashboard-mode-tabs-8 .dashboard-mode-tab,
.dashboard-mode-tabs-9 .dashboard-mode-tab {
  padding: 0.55rem 0.75rem;
}

/* Dashboard — Akce */
.dashboard-events-page {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.dashboard-events-head {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.dashboard-events-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--text);
}

.dashboard-events-tabs {
  margin-bottom: 0.85rem;
}

.dashboard-events-layout {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}

.dashboard-events-sidebar {
  padding: 1rem;
  position: sticky;
  top: 5.5rem;
  min-width: 0;
  overflow: hidden;
}

.dashboard-events-sidebar-title {
  margin: 0 0 0.85rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text);
}

.dashboard-events-filter-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
  width: 100%;
}

.dashboard-events-filter-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.dashboard-events-filter-group {
  border: 0;
  margin: 0;
  padding: 0;
}

.dashboard-events-sport-tags {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.dashboard-events-sport-tag {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.4rem 0.55rem;
  border-radius: 0.5rem;
  cursor: pointer;
  font-size: 0.8125rem;
  color: var(--text-soft);
}

.dashboard-events-sport-tag input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.dashboard-events-sport-tag:has(input:checked) {
  background: rgba(249, 115, 22, 0.12);
  color: var(--text);
}

.dashboard-events-sport-tag-icon {
  width: 1.25rem;
  text-align: center;
}

.dashboard-events-field {
  display: block;
  min-width: 0;
  width: 100%;
}

.dashboard-events-date-range {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.65rem;
  min-width: 0;
}

.dashboard-events-date-range .form-input[type="date"] {
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  font-size: 0.8125rem;
}

.dashboard-events-filter-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.dashboard-events-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.dashboard-event-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
}

.dashboard-event-card--past {
  opacity: 0.72;
  filter: grayscale(0.35);
}

.dashboard-event-card-media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: rgba(15, 23, 42, 0.65);
}

.dashboard-event-card-image {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
  display: block;
}

.dashboard-event-card-image--placeholder {
  display: grid;
  place-items: center;
  font-size: 2rem;
}

.dashboard-event-card-badge {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  background: rgba(37, 99, 235, 0.92);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
}

.dashboard-event-card-badge--muted {
  background: rgba(100, 116, 139, 0.92);
}

.dashboard-event-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.85rem 0.95rem 1rem;
}

.dashboard-event-card-meta {
  margin: 0;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.dashboard-event-card-title {
  margin: 0;
  font-size: 1rem;
  line-height: 1.3;
}

.dashboard-event-card-title-link {
  color: var(--text);
  text-decoration: none;
}

.dashboard-event-card-title-link:hover {
  color: #93c5fd;
}

.dashboard-event-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-top: auto;
  padding-top: 0.35rem;
}

.dashboard-event-card-sport {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}

.dashboard-event-card-sport-icon {
  flex: 0 0 auto;
  width: 1.75rem;
  height: 1.75rem;
  display: grid;
  place-items: center;
  border-radius: 0.45rem;
  background: rgba(249, 115, 22, 0.15);
  font-size: 0.95rem;
}

.dashboard-event-card-sport-label {
  font-size: 0.75rem;
  color: var(--text-soft);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-event-card-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
}

.dashboard-event-card-count {
  font-size: 0.75rem;
  color: var(--ink-muted);
  white-space: nowrap;
}

.dashboard-event-card-form {
  margin: 0;
}

.dashboard-event-card-btn.is-disabled {
  pointer-events: none;
}

.dashboard-events-empty {
  padding: 2rem 1.25rem;
  text-align: center;
}

.dashboard-view--akce .dashboard-events-page {
  width: 100%;
}

@media (max-width: 1100px) {
  .dashboard-events-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.dashboard-context-select {
  margin-bottom: 1rem;
}

.dashboard-diplomas-wrap {
  margin-bottom: 1rem;
}

.dashboard-diplomas-toggle {
  width: 100%;
  max-width: 14rem;
}

.dashboard-view {
  margin-top: 0;
  padding-top: 0;
  min-width: 0;
  width: 100%;
  overflow: visible;
}

.dashboard-challenge-page {
  gap: 0.45rem;
}

.dashboard-challenge-page-controls {
  display: none;
  padding: 0.85rem;
}

.dashboard-challenge-picker {
  display: none;
}

.dashboard-race-page-controls {
  display: none;
  padding: 0.85rem;
}

.dashboard-race-picker {
  display: none;
}

.dashboard-race-picker .form-label {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink-muted);
}

.dashboard-goal-page-controls {
  display: none;
  padding: 0.85rem;
}

.dashboard-goal-picker {
  display: none;
}

.dashboard-goal-picker .form-label {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink-muted);
}

.dashboard-race-summary-metrics {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
}

.dashboard-challenge-picker .form-label {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink-muted);
}

.dashboard-challenge-sports-tabs--embedded {
  margin: 0 0 0.65rem;
  padding: 0;
  border-radius: 0;
  box-shadow: inset 0 -2px 0 var(--app-tab-bar-edge);
  border: none;
  background: var(--app-tab-bar-bg);
}

.dashboard-shell-wide {
  max-width: min(100%, var(--dashboard-shell-width-wide, 80rem));
}

.dashboard--races .dashboard-topbar,
.dashboard--diplomas .dashboard-topbar,
.dashboard--challenges .dashboard-topbar,
.dashboard--statistics .dashboard-topbar {
  margin-bottom: 0.2rem;
}

.dashboard-diploma-page-head {
  margin-bottom: 1rem;
}

.dashboard-diploma-page-title {
  margin: 0;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 700;
  color: var(--dashboard-heading);
}

.dashboard-diploma-hero {
  display: grid;
  grid-template-columns: minmax(11rem, 14rem) minmax(0, 1fr) minmax(10rem, 13rem);
  gap: 0.85rem;
  margin-bottom: 0.85rem;
}

.dashboard-diploma-sidebar,
.dashboard-diploma-goals {
  padding: 1rem;
}

.dashboard-diploma-sidebar-title,
.dashboard-diploma-section-title {
  margin: 0 0 0.75rem;
  font-size: 0.9375rem;
  font-weight: 700;
}

.dashboard-diploma-empty {
  margin: 0;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.dashboard-diploma-race-list {
  list-style: none;
  margin: 0 0 0.85rem;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}

.dashboard-diploma-race-item {
  display: flex;
  gap: 0.65rem;
  align-items: center;
}

.dashboard-diploma-race-thumb {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.55rem;
  background: var(--surface-muted);
  display: grid;
  place-items: center;
  font-size: 1.1rem;
}

.dashboard-diploma-race-name {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
}

.dashboard-diploma-race-meta {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.dashboard-diploma-race-cta {
  width: 100%;
}

.dashboard-diploma-carousel {
  padding: 1rem;
}

.dashboard-diploma-count {
  font-size: 0.875rem;
  color: var(--ink-muted);
  font-weight: 600;
}

.dashboard-diploma-carousel-track {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  padding-bottom: 0.35rem;
  scroll-snap-type: x mandatory;
}

.dashboard-diploma-card {
  flex: 0 0 min(11rem, 72vw);
  scroll-snap-align: start;
  display: block;
  text-decoration: none;
  color: inherit;
  padding: 1rem 0.85rem;
  border-radius: 0.85rem;
  border: 1px solid var(--border);
  background: var(--surface-muted);
  transition: border-color 0.15s ease, transform 0.15s ease;
}

.dashboard-diploma-card:hover,
.dashboard-diploma-card.is-selected {
  border-color: #f97316;
  transform: translateY(-1px);
}

.dashboard-diploma-card-gold {
  background: linear-gradient(160deg, rgba(250, 204, 21, 0.18), rgba(249, 115, 22, 0.08));
}

.dashboard-diploma-card-silver {
  background: linear-gradient(160deg, rgba(148, 163, 184, 0.22), rgba(100, 116, 139, 0.08));
}

.dashboard-diploma-card-bronze {
  background: linear-gradient(160deg, rgba(180, 83, 9, 0.2), rgba(120, 53, 15, 0.08));
}

.dashboard-diploma-card-locked {
  opacity: 0.72;
  filter: grayscale(0.35);
}

.dashboard-diploma-card-medal {
  font-size: 1.75rem;
  line-height: 1;
  margin-bottom: 0.5rem;
}

.dashboard-diploma-card-status {
  margin: 0 0 0.35rem;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.dashboard-diploma-card-status-earned {
  color: #22c55e;
}

.dashboard-diploma-card-status-locked {
  color: var(--ink-muted);
}

.dashboard-diploma-card-title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 700;
}

.dashboard-diploma-card-progress {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.dashboard-diploma-goal-badge {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  padding: 0.85rem;
  border-radius: 0.75rem;
  background: var(--surface-muted);
  border: 1px solid var(--border);
  font-size: 1.5rem;
}

.dashboard-diploma-goal-label {
  margin: 0;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.dashboard-diploma-goal-value {
  margin: 0.1rem 0 0;
  font-size: 1.25rem;
  font-weight: 700;
}

.dashboard-diploma-goal-hint {
  margin: 0.75rem 0 0;
  font-size: 0.8125rem;
  color: var(--ink-muted);
}

.dashboard-diploma-sports {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.85rem;
  padding: 0.65rem 0.85rem;
  border-radius: 0.85rem;
  border: 1px solid var(--border);
  background: var(--surface-muted);
}

.dashboard-diploma-sport-tab {
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ink-muted);
  text-decoration: none;
}

.dashboard-diploma-sport-tab:hover {
  color: var(--text);
}

.dashboard-diploma-sport-tab.is-active {
  background: #f97316;
  color: #fff;
}

.dashboard-diploma-strava {
  margin-left: auto;
}

.dashboard-diploma-data-table {
  min-width: 18rem;
}

.dashboard-diploma-page > .dashboard-diploma-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.85rem;
}

.dashboard-diploma-page,
.dashboard-diploma-page > .dashboard-diploma-body > *,
.dashboard-diploma-detail,
.dashboard-diploma-table,
.dashboard-diploma-hero > * {
  min-width: 0;
  max-width: 100%;
}

.dashboard-diploma-table,
.dashboard-diploma-detail {
  padding: 1rem;
  box-sizing: border-box;
}

.dashboard-diploma-data-table td,
.dashboard-diploma-data-table th {
  font-size: 0.875rem;
}

.dashboard-diploma-table-row.is-selected {
  background: rgba(249, 115, 22, 0.08);
}

.dashboard-diploma-table-link {
  color: inherit;
  font-weight: 600;
  text-decoration: none;
}

.dashboard-diploma-table-link:hover {
  color: #f97316;
}

.dashboard-diploma-status {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
}

.dashboard-diploma-status-earned {
  background: rgba(34, 197, 94, 0.15);
  color: #22c55e;
}

.dashboard-diploma-status-locked {
  background: rgba(148, 163, 184, 0.15);
  color: var(--ink-muted);
}

.dashboard-diploma-progress {
  margin-bottom: 1rem;
}

.dashboard-diploma-progress-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: baseline;
  margin-bottom: 0.45rem;
}

.dashboard-diploma-progress-label {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
}

.dashboard-diploma-progress-value {
  font-size: 0.8125rem;
  color: var(--ink-muted);
}

.dashboard-diploma-progress-bar {
  height: 0.55rem;
  border-radius: 999px;
  background: var(--surface-muted);
  overflow: hidden;
}

.dashboard-diploma-progress-fill {
  display: block;
  height: 100%;
  width: calc(var(--progress, 0) * 1%);
  border-radius: inherit;
  background: linear-gradient(90deg, #f97316, #22c55e);
}

.dashboard-diploma-detail-preview {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.85rem;
  align-items: start;
  margin-bottom: 1rem;
}

.dashboard-diploma-detail-medal {
  font-size: 2.5rem;
  line-height: 1;
}

.dashboard-diploma-detail-type {
  margin: 0 0 0.25rem;
  font-size: 0.75rem;
  color: var(--ink-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.dashboard-diploma-detail-title {
  margin: 0 0 0.5rem;
  font-size: 1.125rem;
}

.dashboard-diploma-detail-summary,
.dashboard-diploma-detail-date {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.dashboard-diploma-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  max-width: 100%;
  min-width: 0;
}

.dashboard-diploma-detail-actions .btn {
  max-width: 100%;
  box-sizing: border-box;
}

.dashboard-diploma-locked-note {
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.dashboard-race-page-head {
  margin-bottom: 1rem;
}

.dashboard-race-page-title {
  margin: 0;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 700;
  color: #fff;
}

.dashboard-race-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "kpis"
    "hero";
  gap: 0.85rem;
  padding: 1rem;
  margin-bottom: 1rem;
  align-items: stretch;
  min-width: 0;
  overflow: hidden;
}

.dashboard-race-summary-metrics {
  grid-area: kpis;
}

.dashboard-race-summary-hero {
  grid-area: hero;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-width: 0;
}

.dashboard-race-summary-side {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
}

.dashboard-race-summary-stack {
  display: grid;
  gap: 0.65rem;
  align-self: stretch;
  min-width: 0;
}

/* Tmavé dlaždice — stejný vzhled jako karta závodu (KPI, gauge, výzva, cíl) */
.dashboard-race-kpi,
.dashboard-race-summary-gauge,
.dashboard-race-sparkline,
.dashboard-race-placement-card,
.dashboard-stat-card,
.dashboard-challenge-countdown,
.dashboard-overview-countdown,
.dashboard-points-info,
.dashboard-hero-gauge-wrap.dashboard-overview-gauge,
.dashboard-goal-gauge-wrap.dashboard-hero-gauge-wrap {
  border: 1px solid var(--border);
  border-radius: 0.85rem;
  background: var(--dashboard-tile-bg);
  box-sizing: border-box;
}

.dashboard-race-kpi {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  min-height: 4.75rem;
}

.dashboard-race-kpi-icon {
  font-size: 1.35rem;
  line-height: 1;
}

.dashboard-race-kpi-body {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  flex-wrap: wrap;
  min-width: 0;
}

.dashboard-race-kpi-desc {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--ink-muted);
}

.dashboard-race-kpi-value {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.1;
  color: var(--dashboard-heading);
  flex-shrink: 0;
}

.dashboard-race-kpi-value-sm {
  font-size: 1rem;
}

.dashboard-race-summary-gauge {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.35rem;
  padding: 0.85rem 1rem;
  text-align: center;
  align-self: stretch;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.dashboard-race-gauge-season {
  margin: 0;
  font-size: 0.78rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--ink-muted);
  text-align: center;
  width: 100%;
  max-width: 100%;
  line-height: 1.35;
  overflow-wrap: break-word;
  word-break: break-word;
}

.dashboard-race-gauge.dashboard-hero-gauge {
  width: min(100%, 13.5rem);
}

.dashboard-race-gauge .dashboard-gauge-svg {
  display: block;
  width: 100%;
  height: auto;
}

.dashboard-race-gauge-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  width: 100%;
  max-width: 100%;
  margin-top: 0.35rem;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(148, 163, 184, 0.14);
  text-align: center;
  box-sizing: border-box;
}

.dashboard-race-placement-card {
  padding: 0.85rem 1rem;
  border: 1px solid var(--border);
  border-radius: 0.85rem;
  background: var(--dashboard-tile-bg);
  text-align: center;
  min-width: 0;
}

.dashboard-race-placement-label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.dashboard-race-placement-value {
  margin: 0.2rem 0 0;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.15;
  color: var(--dashboard-heading);
}

.dashboard-race-placement-list {
  list-style: none;
  margin: 0.55rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  text-align: left;
}

.dashboard-race-placement-item {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.35;
}

.dashboard-race-placement-item-label {
  color: var(--ink-muted);
  min-width: 0;
}

.dashboard-race-placement-item-detail {
  color: var(--text-muted);
  font-weight: 500;
}

.dashboard-race-placement-item-rank {
  flex-shrink: 0;
  text-align: right;
  white-space: nowrap;
}

.dashboard-race-placement-rank {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--dashboard-heading);
}

.dashboard-race-placement-total {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ink-muted);
}

.dashboard-race-placement-empty {
  color: var(--ink-muted);
  font-weight: 600;
}

.dashboard-race-gauge-num {
  margin: 0;
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
  font-weight: 800;
  line-height: 1.1;
  color: var(--dashboard-heading);
}

.dashboard-race-gauge-num--text {
  font-size: clamp(0.55rem, 1.6vw, 0.72rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.01em;
  text-transform: none;
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}

.dashboard-race-gauge-desc {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--ink-muted);
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
}

.dashboard-race-gauge-desc--time {
  margin-top: 0.25rem;
}

@media (min-width: 900px) {
  .dashboard-race-summary {
    grid-template-columns: minmax(11.5rem, 1fr) minmax(0, 2.85fr);
    grid-template-areas: "kpis hero";
    gap: 1rem;
    padding: 1.1rem 1.25rem;
  }

  .dashboard-race-summary-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(11.5rem, 1fr);
    gap: 0.85rem;
    align-items: stretch;
  }

  .dashboard-race-summary-gauge {
    min-width: 0;
  }

  .dashboard-race-summary-side {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    min-height: 100%;
  }

  .dashboard-race-sparkline {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 6.5rem;
  }

  .dashboard-race-sparkline-svg {
    flex: 1 1 auto;
    min-height: 4.5rem;
  }

  .dashboard-race-placement-card {
    flex: 0 0 auto;
  }

  .dashboard-race-kpi--summary-placement {
    display: none;
  }

  .dashboard-race-summary-gauge {
    padding: 1rem 1.15rem 1rem;
    gap: 0.4rem;
  }

  .dashboard-hero-gauge,
  .dashboard-hero-gauge-wrap,
  .dashboard-overview-gauge,
  .dashboard-challenge-overview .dashboard-overview-countdown,
  .dashboard-overview-days-card {
    max-width: 17.5rem;
    width: 100%;
  }

  .dashboard-hero-gauge {
    width: min(100%, 14.5rem);
  }

  .dashboard-challenge-overview .dashboard-hero-gauge,
  .dashboard-challenge-overview .dashboard-overview-gauge,
  .dashboard-challenge-overview .dashboard-overview-countdown {
    max-width: 17.5rem;
  }

  .dashboard-challenge-overview .dashboard-hero-gauge {
    width: min(100%, 17.5rem);
  }

  .dashboard-challenge-overview .dashboard-race-gauge-desc {
    font-size: 0.9rem;
  }

  .dashboard-challenge-overview .dashboard-gauge-num {
    font-size: 2.05rem;
  }

  .dashboard-challenge-overview .dashboard-challenge-countdown-value {
    font-size: 2.85rem;
  }

  .dashboard-challenge-overview .dashboard-challenge-time-bar {
    max-width: 100%;
  }

  .dashboard-hero-gauge-center {
    max-width: 10.5rem;
    bottom: 0.5rem;
  }

  .dashboard-hero-gauge .dashboard-gauge-num,
  .dashboard-hero-gauge .dashboard-gauge-value,
  .dashboard-hero-gauge .dashboard-race-gauge-num {
    font-size: 1.85rem;
  }

  .dashboard-hero-gauge .dashboard-race-gauge-time {
    font-size: 1.5rem;
  }

  .dashboard-hero-gauge .dashboard-race-gauge-num--text {
    font-size: 0.72rem;
  }

  .dashboard-challenge-overview-grid,
  .dashboard-goal-overview-grid {
    grid-template-columns: minmax(0, 1fr) minmax(17.5rem, 18.5rem) minmax(0, 1fr);
  }

  .dashboard-goal-hero-top .dashboard-goal-gauge {
    width: min(100%, 14.5rem);
  }

  .dashboard-race-placement-value {
    font-size: 1.5rem;
  }
}

.dashboard-race-gauge-time {
  margin: 0;
  font-size: clamp(1rem, 2.2vw, 1.25rem);
  font-weight: 700;
  line-height: 1.15;
  color: var(--dashboard-heading);
  font-variant-numeric: tabular-nums;
}

.dashboard-race-gauge-sub {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
  color: var(--ink-muted);
  text-align: center;
  width: 100%;
  max-width: 100%;
  line-height: 1.4;
  overflow-wrap: break-word;
  word-break: break-word;
}

.dashboard-race-sparkline {
  padding: 0.85rem 1rem;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.dashboard-race-sparkline-title {
  margin: 0 0 0.5rem;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.dashboard-race-sparkline-svg {
  width: 100%;
  height: auto;
  display: block;
}

.dashboard-race-body {
  display: grid;
  grid-template-columns: minmax(0, min(18rem, 100%)) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  min-width: 0;
  width: 100%;
}

.dashboard-race-sidebar {
  padding: 1rem;
  position: sticky;
  top: 1rem;
  max-height: min(70vh, 42rem);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.dashboard-race-sidebar-title {
  margin: 0 0 0.85rem;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-muted);
}

.dashboard-race-sidebar-title--spaced {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.dashboard-race-sidebar-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.dashboard-sidebar-card-wrap {
  position: relative;
  isolation: isolate;
}

.dashboard-sidebar-card-wrap .dashboard-race-sidebar-card {
  position: relative;
  z-index: 1;
}

.dashboard-favorite-star-form {
  position: absolute;
  left: 0.15rem;
  bottom: 0.15rem;
  z-index: 5;
  margin: 0;
  pointer-events: auto;
}

.dashboard-favorite-star {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: 1px solid color-mix(in srgb, #fbbf24 55%, var(--border));
  border-radius: 0.4rem;
  background: color-mix(in srgb, #fffbeb 92%, var(--surface));
  color: #a16207;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.28);
  transition: color 0.15s ease, background 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}

.dashboard-favorite-star:hover,
.dashboard-favorite-star:focus-visible {
  color: #ca8a04;
  background: color-mix(in srgb, #fef08a 55%, var(--surface));
  outline: none;
  transform: scale(1.05);
}

.dashboard-favorite-star.is-active {
  color: #ca8a04;
  background: #fef08a;
  border-color: #eab308;
}

.dashboard-favorite-star.is-pending {
  opacity: 0.92;
}

.dashboard-favorite-star-icon {
  display: block;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.65);
}

.dashboard-topbar-version {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #94a3b8;
  padding: 0.2rem 0.45rem;
  border-radius: 0.35rem;
  border: 1px solid color-mix(in srgb, #64748b 35%, transparent);
  background: color-mix(in srgb, #0f172a 55%, transparent);
  white-space: nowrap;
  flex-shrink: 0;
}

.dashboard-race-sidebar-card {
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr);
  gap: 0.65rem;
  padding: 0.55rem;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--surface);
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.dashboard-race-sidebar-card:hover,
.dashboard-race-sidebar-card.is-active {
  border-color: color-mix(in srgb, var(--brand) 45%, var(--border));
  background: color-mix(in srgb, var(--brand) 6%, var(--surface));
}

.dashboard-race-sidebar-thumb,
.dashboard-race-featured-thumb {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.55rem;
  overflow: hidden;
  background: linear-gradient(135deg, #1e293b, #334155);
  display: flex;
  align-items: center;
  justify-content: center;
}

.dashboard-race-sidebar-thumb img,
.dashboard-race-featured-thumb img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  -webkit-object-fit: contain;
  object-position: center;
}

.dashboard-race-sidebar-thumb-fallback {
  font-size: 1.25rem;
}

.dashboard-race-sidebar-name {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
}

.dashboard-race-sidebar-meta {
  margin: 0.2rem 0 0;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.dashboard-race-badge {
  display: inline-block;
  margin-top: 0.35rem;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.dashboard-race-badge-success {
  background: color-mix(in srgb, #22c55e 18%, transparent);
  color: #86efac;
}

.dashboard-race-badge-warning {
  background: color-mix(in srgb, #f97316 18%, transparent);
  color: #fdba74;
}

.dashboard-race-badge-muted {
  background: color-mix(in srgb, var(--ink-muted) 18%, transparent);
  color: var(--ink-muted);
}

.dashboard-race-featured {
  margin-top: 1rem;
  padding: 0.85rem;
  border: 1px solid color-mix(in srgb, var(--brand) 35%, var(--border));
  background: color-mix(in srgb, var(--brand) 5%, var(--surface));
}

.dashboard-race-featured-thumb {
  width: 100%;
  height: 6.5rem;
  margin-bottom: 0.65rem;
}

.dashboard-race-featured-title {
  margin: 0 0 0.25rem;
  font-size: 0.95rem;
  font-weight: 700;
}

.dashboard-race-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 1fr);
  gap: 1rem;
  align-items: start;
}

.dashboard-race-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.dashboard-challenge-main-grid {
  margin-top: 0;
}

.dashboard-challenge-side {
  display: grid;
  gap: 1rem;
  align-content: start;
  min-width: 0;
}

.dashboard-challenge-side-lead {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  color: var(--ink-muted);
  line-height: 1.4;
}

.dashboard-challenge-progress-panel .dashboard-card-title {
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.dashboard-challenge-leave,
.dashboard-race-info-leave {
  padding-top: 0.25rem;
}

.dashboard-goal-topbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem;
  width: 100%;
  background: var(--dashboard-card-bg);
  border: 1px solid var(--border);
  color: var(--dashboard-body);
}

.dashboard-goal-topbar-text {
  flex: 1 1 16rem;
  min-width: 0;
}

.dashboard-goal-topbar .dashboard-card-lead {
  margin: 0.35rem 0 0;
}

.dashboard-goal-topbar-actions {
  margin-left: auto;
}

.dashboard-panel-head--with-actions {
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.dashboard-goal-overview {
  min-width: 0;
  overflow: visible;
}

.dashboard-goal-hero-head {
  margin-bottom: 0;
}

.dashboard-goal-hero-dates {
  margin: 0.35rem 0 0;
}

.dashboard-goal-hero-wide {
  width: 100%;
  min-width: 0;
}

.dashboard-goal-hero-progress {
  margin: 0.5rem 0 0.75rem;
}

.dashboard-goal-hero-meta {
  margin: 0;
}

.dashboard-goal-hero-top .dashboard-goal-cancel-form {
  margin: 0;
}

.dashboard-goal-sidebar-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.85rem;
}

.dashboard-goal-sidebar-toolbar .dashboard-race-sidebar-title {
  margin: 0;
}

.dashboard-goal-page {
  --dashboard-goal-list-height: min(22rem, 52vh);
}

.dashboard-goal-active-strip {
  padding: 1rem;
  min-width: 0;
}

.dashboard-goal-active-strip-head {
  margin-bottom: 0.65rem;
}

.dashboard-goal-active-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  padding-bottom: 0.45rem;
  margin: 0 -0.15rem;
  padding-inline: 0.15rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(148, 163, 184, 0.55) transparent;
}

.dashboard-goal-active-scroll::-webkit-scrollbar {
  height: 0.45rem;
}

.dashboard-goal-active-scroll::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.5);
  border-radius: 999px;
}

.dashboard-goal-active-scroll::-webkit-scrollbar-track {
  background: rgba(148, 163, 184, 0.12);
  border-radius: 999px;
}

.dashboard-goal-active-list {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.65rem;
  list-style: none;
  margin: 0;
  padding: 0.15rem 0.15rem 0.25rem;
  width: max-content;
  min-width: min(100%, 1px);
}

.dashboard-goal-active-list > li {
  flex: 0 0 min(16.5rem, 78vw);
  min-width: min(16.5rem, 78vw);
  max-width: min(16.5rem, 78vw);
}

.dashboard-goal-active-list .dashboard-sidebar-card-wrap,
.dashboard-goal-active-list .dashboard-goal-sidebar-card-inner,
.dashboard-goal-active-list .dashboard-race-sidebar-card {
  height: 100%;
}

.dashboard-goal-page .dashboard-goal-body {
  align-items: stretch;
}

.dashboard-goal-page .dashboard-race-sidebar {
  display: flex;
  flex-direction: column;
  min-height: 0;
  position: static;
  top: auto;
  max-height: none;
  overflow: visible;
}

.dashboard-goal-page .dashboard-race-main .dashboard-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.dashboard-goal-page .dashboard-activity-list-scroll {
  max-height: var(--dashboard-goal-list-height);
}

.dashboard-goal-gauge-wrap {
  text-align: center;
}

.dashboard-goal-hero-top .dashboard-goal-gauge.dashboard-hero-gauge {
  margin-inline: auto;
}

.dashboard-goal-sport-label {
  margin: 0 0 0.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ink-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.dashboard-goal-sidebar-progress {
  margin-top: 0.2rem;
}

.dashboard-goal-sidebar-card-inner {
  position: relative;
}

.dashboard-goal-sidebar-card-wrap .dashboard-goal-sidebar-card-inner .dashboard-race-sidebar-card {
  padding-right: 3.25rem;
}

.dashboard-goal-sidebar-actions {
  position: absolute;
  top: 0.4rem;
  right: 0.4rem;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 0.2rem;
}

.dashboard-goal-sidebar-delete-form {
  margin: 0;
}

.dashboard-goal-sidebar-action-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.65rem;
  height: 1.65rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 0.4rem;
  background: var(--surface-chip);
  color: var(--text-soft);
  font-size: 0.95rem;
  line-height: 1;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.dashboard-goal-sidebar-action-btn:hover,
.dashboard-goal-sidebar-action-btn:focus-visible {
  color: var(--text);
  background: var(--surface);
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
  outline: none;
}

.dashboard-goal-sidebar-action-btn--danger:hover,
.dashboard-goal-sidebar-action-btn--danger:focus-visible {
  color: #b91c1c;
  border-color: color-mix(in srgb, #ef4444 45%, var(--border));
  background: color-mix(in srgb, #fee2e2 55%, var(--surface));
}

.dashboard-goal-activity-actions-col {
  width: 2.5rem;
  text-align: center;
  white-space: nowrap;
}

.dashboard-goal-activity-delete-form {
  margin: 0;
  display: inline-flex;
}

.dashboard-goal-activity-delete-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.65rem;
  height: 1.65rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 0.4rem;
  background: var(--surface-chip);
  color: var(--text-soft);
  font-size: 1.05rem;
  line-height: 1;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.dashboard-goal-activity-delete-btn:hover,
.dashboard-goal-activity-delete-btn:focus-visible {
  color: #b91c1c;
  border-color: color-mix(in srgb, #ef4444 45%, var(--border));
  background: color-mix(in srgb, #fee2e2 55%, var(--surface));
  outline: none;
}

.dashboard-goal-sidebar-thumb .dashboard-race-sidebar-thumb-fallback {
  font-size: 1.35rem;
}

.dashboard-goal-create-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dashboard-goal-create-notes {
  grid-column: 1 / -1;
}

.dashboard-goal-notes {
  margin: 0.75rem 0 0;
  font-size: 0.9375rem;
  color: var(--ink-muted);
}

.dashboard-goal-dialog {
  width: min(92vw, 34rem);
  max-width: calc(100vw - 2rem);
  padding: 0;
  margin: auto;
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: var(--bg-card);
  color: var(--text-soft);
  box-shadow: var(--shadow-xl);
  color-scheme: var(--color-scheme);
}

.dashboard-goal-dialog::backdrop {
  background: var(--overlay-backdrop);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.dashboard-goal-dialog-form {
  padding: 1.25rem 1.5rem 1.5rem;
}

.dashboard-goal-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
}

.dashboard-goal-dialog-header .dashboard-card-title {
  margin: 0;
}

.dashboard-goal-dialog-close {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  background: var(--surface-chip);
  color: var(--text);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.dashboard-goal-dialog-close:hover {
  border-color: rgba(251, 146, 60, 0.6);
  color: var(--accent-link);
}

.dashboard-goal-dialog-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.65rem;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.dashboard-goal-create-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.dashboard-goal-create-notes {
  grid-column: 1 / -1;
}

.dashboard-activity-dialog {
  width: min(92vw, 36rem);
}

.dashboard-activity-create-import,
.dashboard-activity-create-link,
.dashboard-activity-create-track,
.dashboard-activity-create-message,
.dashboard-activity-create-photos {
  grid-column: 1 / -1;
}

@media (max-width: 640px) {
  .dashboard-goal-create-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .dashboard-goal-topbar {
    flex-direction: column;
    align-items: stretch;
  }

  .dashboard-goal-topbar .dashboard-goal-new-btn {
    width: 100%;
  }
}

.dashboard-race-main-grid--info-only {
  grid-template-columns: minmax(0, 1fr);
}

.dashboard-race-info-panel {
  padding: 0;
  overflow: hidden;
}

.dashboard-race-info-photo .card-photo-banner {
  height: auto;
  min-height: 0;
  border-bottom: 1px solid var(--border);
}

.dashboard-race-info-photo .card-photo-banner-image.contain {
  max-height: min(50vh, 18rem);
}

.dashboard-race-info-body {
  padding: 1.25rem 1.5rem 1.5rem;
}

.dashboard-race-info-lead {
  margin: 0;
  font-size: 0.9rem;
  color: var(--ink-muted);
}

.dashboard-race-info-bib {
  margin: 0;
  font-size: 0.9rem;
}

.dashboard-race-info-bib strong {
  color: var(--brand);
}

.dashboard-race-info-subtitle {
  margin: 0 0 0.65rem;
  font-size: 0.95rem;
  font-weight: 600;
}

.dashboard-race-info-description {
  color: var(--ink-soft);
  line-height: 1.55;
}

.dashboard-race-info-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.dashboard-race-register {
  padding: 1rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--brand) 30%, var(--border));
  background: color-mix(in srgb, var(--brand) 5%, var(--surface));
}

.dashboard-race-sidebar-register-hint {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--brand);
}

.data-table-compact th,
.data-table-compact td {
  padding: 0.45rem 0.65rem;
  font-size: 0.8rem;
}

.dashboard-race-leaderboard-sub {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--ink-muted);
}

.dashboard-race-results-panel .race-detail-results {
  margin-top: 0;
}

.dashboard-race-results-panel .race-results-section-title {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text);
}

.dashboard-race-results-group {
  padding: 0.75rem 0 0;
  border-top: 1px solid var(--border);
}

.dashboard-race-results-group:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.dashboard-race-results-group .font-semibold {
  font-size: 0.9rem;
}

.dashboard-race-results-group .form-hint {
  margin-bottom: 0.75rem;
}

.dashboard-race-results-panel .dashboard-table-wrap,
.dashboard-race-results-group .table-shell {
  overflow-x: auto;
}

.race-results-row-current.is-current-user,
.race-results-row-current.is-current-user td {
  background: rgba(34, 197, 94, 0.12);
}

.race-results-row-current.is-current-user td {
  font-weight: 600;
}

.dashboard-race-reg-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.dashboard-race-reg-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 0.65rem;
  background: var(--surface-muted);
}

.dashboard-race-reg-name {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
}

.dashboard-race-reg-meta {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  color: var(--ink-muted);
}

.dashboard-race-time {
  margin: 0;
  font-size: 0.9rem;
  color: var(--ink-muted);
}

.dashboard-race-time strong {
  color: var(--brand);
}

.dashboard-race-hero-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.dashboard-stat-card-highlight {
  border-color: color-mix(in srgb, var(--brand) 35%, var(--border));
  background: color-mix(in srgb, var(--brand) 8%, var(--surface-muted));
}

.dashboard-race-scan-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}

.dashboard-race-scan-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--surface-muted);
}

.dashboard-race-scan-label {
  font-weight: 600;
}

.dashboard-race-scan-done {
  color: var(--brand);
}

.dashboard-race-scan-pending {
  color: var(--ink-muted);
  font-size: 0.875rem;
}

.dashboard-race-qr-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.dashboard-race-qr-grid .share-qr-block {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.dashboard-race-qr-grid .share-qr-block .card-body {
  padding: 0.75rem 0.65rem;
}

.dashboard-race-qr-grid .share-qr-block .section-title {
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
}

.dashboard-race-qr-grid .share-qr-image {
  display: block;
  width: 100%;
  max-width: 8.5rem;
  height: auto;
  margin-inline: auto;
  box-sizing: border-box;
}

.dashboard-race-qr-grid .share-qr-url {
  font-size: 0.68rem;
  padding: 0.35rem 0.5rem;
}

.dashboard-race-qr-grid .share-qr-actions {
  gap: 0.4rem;
}

.dashboard-race-qr-grid .share-qr-buttons {
  flex-direction: column;
  gap: 0.35rem;
}

.dashboard-race-qr-grid .share-qr-buttons .btn {
  min-width: 0;
  width: 100%;
  font-size: 0.72rem;
  padding: 0.35rem 0.5rem;
}

.dashboard-race-qr-grid .share-qr-hint {
  margin-top: 0.5rem !important;
  font-size: 0.72rem;
  line-height: 1.35;
}

.dashboard-race-mini-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.dashboard-race-mini-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 0.65rem;
  text-decoration: none;
  color: inherit;
}

.dashboard-race-mini-link:hover {
  border-color: var(--brand);
}

.dashboard-race {
  margin-bottom: 1rem;
}

.dashboard-challenge-title {
  margin: 0;
  font-size: 1.05rem;
  color: var(--dashboard-subtle);
}

.dashboard-challenge-title strong {
  color: var(--dashboard-heading);
}

.dashboard-challenge-select {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.dashboard-challenge-select-label {
  font-size: 0.875rem;
  color: var(--dashboard-muted);
}

.dashboard-select {
  min-width: 14rem;
  padding: 0.55rem 0.75rem;
  border-radius: 0.75rem;
  border: 1px solid var(--border-strong);
  background: var(--dashboard-select-bg);
  color: var(--dashboard-heading);
}

.dashboard-topbar-user {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
  max-width: 100%;
}

.dashboard-user-name {
  font-weight: 600;
  color: var(--dashboard-heading);
}

.dashboard-user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #fb923c, #22c55e);
  color: #0f172a;
  font-size: 0.75rem;
  font-weight: 800;
}

.dashboard-user-link {
  font-size: 0.8125rem;
  color: var(--dashboard-muted);
  text-decoration: none;
}

.dashboard-user-link:hover {
  color: #fb923c;
}

.dashboard-hero,
.dashboard-panel,
.dashboard-empty {
  background: var(--dashboard-card-bg);
  border: 1px solid var(--border);
  color: var(--dashboard-body);
}

.dashboard-hero {
  position: relative;
  padding: 1.25rem;
  margin-bottom: 1rem;
}

.dashboard-hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0;
  overflow: visible;
}

.dashboard-topbar .dashboard-hero-actions .btn,
.dashboard-challenge-actions .btn {
  flex-shrink: 0;
  min-height: 2.25rem;
  line-height: 1.25;
  align-items: center;
}

.btn-strava-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  border: 1px solid var(--strava);
  background: var(--strava);
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.875rem;
}

.btn-strava-outline:hover {
  background: var(--strava-hover);
  border-color: var(--strava-hover);
  color: #fff;
}

.btn-strava-outline svg,
.dashboard-strava-btn svg {
  fill: currentColor;
}

.dashboard-manual-btn {
  border-radius: 999px;
}

.dashboard-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  min-width: 0;
}

.dashboard-challenge-hero-top .dashboard-hero,
.dashboard-challenge-overview,
.dashboard-goal-overview {
  min-width: 0;
  overflow: visible;
}

.dashboard-challenge-hero-top .dashboard-stat-card-wide,
.dashboard-goal-hero-top .dashboard-stat-card-wide {
  grid-column: 1 / -1;
}

.dashboard-stat-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  min-height: 4.75rem;
}

.dashboard-stat-card-wide {
  grid-column: 1 / -1;
  min-height: auto;
  align-items: flex-start;
}

.dashboard-stat-icon {
  font-size: 1.35rem;
  line-height: 1;
}

.dashboard-stat-body {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  flex-wrap: wrap;
  min-width: 0;
}

.dashboard-stat-body--wide {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
}

.dashboard-stat-desc,
.dashboard-stat-label {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--ink-muted);
}

.dashboard-stat-value {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.1;
  color: var(--dashboard-heading);
  flex-shrink: 0;
}

.dashboard-stat-value-sm {
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--dashboard-heading);
}

.dashboard-gauge-wrap {
  text-align: center;
}

.dashboard-gauge {
  position: relative;
  width: min(100%, 18rem);
  margin: 0 auto;
}

/* Hero gauge — stejné rozměry jako karta závodu (desktop i mobilní základ) */
.dashboard-hero-gauge {
  width: min(100%, 13.5rem);
  margin-inline: auto;
  flex-shrink: 0;
}

.dashboard-hero-gauge-center {
  position: absolute;
  left: 50%;
  bottom: 0.45rem;
  transform: translateX(-50%);
  width: calc(100% - 1.25rem);
  max-width: 11rem;
  padding: 0;
  box-sizing: border-box;
}

.dashboard-hero-gauge-center.dashboard-race-gauge-center--stacked,
.dashboard-hero-gauge-center .dashboard-gauge-value-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  margin: 0;
  max-width: 100%;
  text-align: center;
}

.dashboard-hero-gauge .dashboard-gauge-desc,
.dashboard-hero-gauge-center .dashboard-race-gauge-desc {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  text-align: center;
  color: var(--ink-muted);
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
}

.dashboard-hero-gauge .dashboard-gauge-num,
.dashboard-hero-gauge .dashboard-gauge-value,
.dashboard-hero-gauge .dashboard-race-gauge-num,
.dashboard-hero-gauge .dashboard-race-gauge-time {
  margin: 0;
  font-weight: 800;
  line-height: 1.1;
  color: var(--dashboard-heading);
}

.dashboard-hero-gauge .dashboard-gauge-num,
.dashboard-hero-gauge .dashboard-gauge-value,
.dashboard-hero-gauge .dashboard-race-gauge-num {
  font-size: clamp(1.35rem, 2.8vw, 1.75rem);
}

.dashboard-hero-gauge .dashboard-race-gauge-num--text {
  font-size: clamp(0.55rem, 1.6vw, 0.72rem);
  font-weight: 700;
  line-height: 1.15;
}

.dashboard-hero-gauge .dashboard-race-gauge-time {
  font-size: clamp(1rem, 2.2vw, 1.35rem);
  font-variant-numeric: tabular-nums;
}

.dashboard-hero-gauge-wrap {
  width: 100%;
  max-width: 13.5rem;
  margin-inline: auto;
}

.dashboard-hero-gauge-wrap.dashboard-overview-gauge,
.dashboard-goal-gauge-wrap.dashboard-hero-gauge-wrap {
  padding: 0.85rem 1rem;
  text-align: center;
}

.dashboard-hero-gauge-wrap .dashboard-gauge-sub {
  max-width: 100%;
  margin-top: 0.35rem;
}

.dashboard-gauge-svg {
  width: 100%;
  height: auto;
  display: block;
}

.dashboard-gauge-track {
  fill: none;
  stroke: rgba(148, 163, 184, 0.18);
  stroke-width: 14;
  stroke-linecap: round;
}

.dashboard-gauge-fill {
  fill: none;
  stroke: url(#dashboardGaugeGradient);
  stroke-width: 14;
  stroke-linecap: round;
  stroke-dasharray: 251.2;
  stroke-dashoffset: calc(251.2 - (251.2 * var(--gauge-percent, 0) / 100));
  transition: stroke-dashoffset 0.6s ease;
}

.dashboard-goal-gauge .dashboard-gauge-fill {
  stroke: url(#dashboardGoalGaugeGradient);
}

.dashboard-statistics-gauge-fill {
  stroke: url(#dashboardStatsGaugeGradient);
}

.dashboard-gauge-center {
  position: absolute;
  left: 50%;
  bottom: 0.35rem;
  transform: translateX(-50%);
  width: 100%;
}

.dashboard-gauge-value-row {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.45rem;
  flex-wrap: wrap;
  margin: 0;
  max-width: 100%;
  padding: 0 0.35rem;
  box-sizing: border-box;
}

.dashboard-gauge-num {
  font-size: clamp(1.15rem, 2.5vw, 1.75rem);
  font-weight: 800;
  line-height: 1.1;
  color: var(--dashboard-heading);
  flex-shrink: 0;
}

.dashboard-gauge-desc {
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.25;
  color: var(--dashboard-muted);
  text-align: left;
  overflow-wrap: break-word;
  word-break: break-word;
}

.dashboard-gauge-label {
  margin: 0;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dashboard-muted);
}

.dashboard-gauge-value {
  margin: 0.15rem 0 0;
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  font-weight: 800;
  color: var(--dashboard-heading);
}

.dashboard-gauge-sub {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: var(--dashboard-muted);
}

.dashboard-gauge-sub-success,
.dashboard-gauge-sub-ranks {
  color: var(--text);
}

.dashboard-hero-gauge-wrap .dashboard-gauge-sub-ranks {
  white-space: pre-line;
  line-height: 1.4;
  text-align: center;
}

html[data-theme="light"] .dashboard-gauge-sub-success,
html[data-theme="light"] .dashboard-gauge-sub-ranks {
  color: var(--text);
}

html[data-theme="dark"] .dashboard-gauge-sub-success,
html[data-theme="dark"] .dashboard-gauge-sub-ranks {
  color: var(--text);
}

.dashboard-sports-tabs:not(.selection-bar):not(.dashboard-challenge-sports-tabs):not(.challenge-results-sport-tabs) {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.dashboard-challenge-page > .dashboard-challenge-overview,
.dashboard-challenge-page > .dashboard-challenge-sports-tabs,
.dashboard-challenge-page > .dashboard-race-body,
.dashboard-goal-page > .dashboard-goal-hero-top,
.dashboard-goal-page > .dashboard-goal-active-strip,
.dashboard-goal-page > .dashboard-race-body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  align-self: stretch;
  box-sizing: border-box;
}

.dashboard-challenge-sports-tabs {
  margin-bottom: 0.65rem;
  min-width: 0;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  z-index: 2;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
}

.dashboard-challenge-sports-select {
  display: none;
  margin-bottom: 0.65rem;
  padding: 0 0.15rem;
}

.dashboard-challenge-sports-select .form-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #94a3b8;
}

.dashboard-sport-select {
  width: 100%;
  min-width: 0;
}

.dashboard-challenge-sports-tabs::-webkit-scrollbar {
  display: none;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.85fr);
  gap: 1rem;
}

.dashboard-side {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.dashboard-panel {
  padding: 1rem 1rem 1.1rem;
}

.dashboard-panel-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.dashboard-card-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--dashboard-heading);
}

.dashboard-card-lead {
  margin: 0.5rem 0 1rem;
  color: var(--dashboard-muted);
}

.dashboard-powered,
.dashboard-powered-sub {
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--dashboard-muted);
}

.dashboard-powered strong {
  color: #fc4c02;
}

.dashboard-table-wrap {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.dashboard-view .card,
.dashboard-view .dashboard-panel,
.dashboard-view .dashboard-hero,
.dashboard-view .dashboard-empty {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.dashboard-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.dashboard-table th,
.dashboard-table td {
  padding: 0.65rem 0.5rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.12);
  text-align: left;
}

.dashboard-table th {
  color: var(--dashboard-muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.dashboard-statistics-page {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  overflow: visible;
}

.dashboard-statistics-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(10.5rem, 13rem) minmax(0, 1fr);
  gap: 0.55rem 0.75rem;
  align-items: start;
  min-width: 0;
  overflow: visible;
  padding: 0.7rem 0.85rem 0.75rem;
}

.dashboard-statistics-hero-top {
  grid-column: 1 / -1;
  margin-bottom: 0;
  min-width: 0;
}

.dashboard-statistics-title {
  margin: 0;
}

.dashboard-statistics-rank-card {
  width: 100%;
  max-width: none;
  justify-self: start;
  align-self: start;
  grid-column: 1;
  grid-row: 2;
}

.dashboard-statistics-hero-center {
  display: contents;
}

.dashboard-statistics-gauge {
  grid-column: 2;
  grid-row: 2;
}

.dashboard-statistics-gauge {
  margin: 0 auto;
  width: min(100%, 13.5rem);
  justify-self: center;
}

.dashboard-statistics-gauge .dashboard-gauge-sub {
  text-align: center;
}

.dashboard-statistics-summary-cards {
  display: grid;
  gap: 0.45rem;
  width: 100%;
  max-width: none;
  justify-self: end;
  align-self: start;
  grid-column: 3;
  grid-row: 2;
}

.dashboard-statistics-summary-cards .dashboard-stat-card {
  max-width: none;
  text-align: left;
}

.dashboard-statistics-hero-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.45rem 0.75rem;
  padding-top: 0.55rem;
  margin-top: 0.45rem;
  border-top: 1px solid rgba(148, 163, 184, 0.14);
  text-align: left;
  grid-column: 1 / -1;
}

.dashboard-statistics-rules-excerpt {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--dashboard-muted);
  max-width: 36rem;
}

.dashboard-statistics-rules-detail {
  flex: 0 0 auto;
  border: none;
  background: transparent;
  padding: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: underline;
}

.dashboard-statistics-rules-body {
  display: grid;
  gap: 0.85rem;
}

.dashboard-statistics-rules-body .dashboard-card-lead {
  margin: 0;
}

.dashboard-statistics-rules-list {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--dashboard-subtle);
}

.dashboard-statistics-rules-list li + li {
  margin-top: 0.45rem;
}

.dashboard-stat-card--compact {
  min-width: 9rem;
}

.dashboard-statistics-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 1.25rem;
  align-items: start;
}

.dashboard-statistics-event-group {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.75rem;
  color: #94a3b8;
}

.dashboard-statistics-page .dashboard-table-wrap.records-table-scroll,
.dashboard-challenge-page .dashboard-table-wrap.records-table-scroll,
.dashboard-race-page .dashboard-table-wrap.records-table-scroll,
.dashboard-race-results-group .records-table-scroll {
  max-height: min(70vh, 40rem);
}

@media (min-width: 901px) {
  .dashboard {
    padding-left: clamp(1rem, 2.5vw, 2.5rem);
    padding-right: clamp(1rem, 2.5vw, 2.5rem);
  }

  .dashboard-diploma-carousel-track {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
    overflow: visible;
    scroll-snap-type: none;
    padding-bottom: 0;
  }

  .dashboard-diploma-card {
    flex: none;
    width: auto;
    max-width: none;
  }

  .dashboard-diploma-hero {
    grid-template-columns: minmax(0, 15rem) minmax(0, 1fr) minmax(0, 12rem);
  }

  .dashboard-statistics-summary-cards {
    max-width: 36rem;
  }
}

@media (max-width: 900px) {
  .dashboard-statistics-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .dashboard-statistics-hero-top {
    flex-direction: column;
    align-items: stretch;
  }

  .dashboard-statistics-rank-card {
    width: 100%;
    max-width: none;
  }

  .dashboard-statistics-summary-cards {
    flex-direction: column;
    max-width: none;
  }

  .dashboard-statistics-summary-cards .dashboard-stat-card {
    max-width: none;
  }

  .dashboard-statistics-rules-excerpt {
    max-width: none;
    text-align: left;
    width: 100%;
  }

  .dashboard-statistics-hero-footer {
    justify-content: flex-start;
    text-align: left;
  }

  .dashboard-statistics-page .dashboard-panel,
  .dashboard-statistics-hero {
    padding: 0.85rem;
    min-width: 0;
    overflow: visible;
  }

  .dashboard-statistics-page .dashboard-table-wrap {
    max-width: 100%;
    margin: 0;
    padding: 0;
  }

  .dashboard-statistics-page .dashboard-table-wrap.records-table-scroll {
    overflow: auto;
  }

  .dashboard-statistics-events-table,
  .dashboard-statistics-leaderboard-table {
    min-width: 0;
    width: 100%;
    table-layout: fixed;
  }

  .dashboard-statistics-events-table th,
  .dashboard-statistics-events-table td,
  .dashboard-statistics-leaderboard-table th,
  .dashboard-statistics-leaderboard-table td {
    padding: 0.45rem 0.3rem;
    font-size: 0.75rem;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
  }

  .dashboard-statistics-events-table th:nth-child(3),
  .dashboard-statistics-events-table td:nth-child(3),
  .dashboard-statistics-events-table th:nth-child(4),
  .dashboard-statistics-events-table td:nth-child(4) {
    display: none;
  }

  .dashboard-statistics-events-table th:nth-child(2),
  .dashboard-statistics-events-table td:nth-child(2) {
    width: 42%;
  }

  .dashboard-statistics-leaderboard-table th:nth-child(3),
  .dashboard-statistics-leaderboard-table td:nth-child(3),
  .dashboard-statistics-leaderboard-table th:nth-child(4),
  .dashboard-statistics-leaderboard-table td:nth-child(4) {
    display: none;
  }

  .dashboard-statistics-leaderboard-table th:nth-child(2),
  .dashboard-statistics-leaderboard-table td:nth-child(2) {
    width: 55%;
  }

  .dashboard-statistics-page .dashboard-gauge-sub {
    text-align: center;
    overflow-wrap: break-word;
    word-break: normal;
  }
}

.dashboard-progress-caption {
  margin: 0 0 0.65rem;
  color: #cbd5e1;
  font-size: 0.875rem;
}

.dashboard-progress-bar {
  height: 0.65rem;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.18);
  overflow: hidden;
  margin-bottom: 0.85rem;
}

.dashboard-progress-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #fb923c, #facc15, #22c55e);
}

.dashboard-meta-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.dashboard-meta-list li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.875rem;
  color: var(--dashboard-muted);
}

.dashboard-meta-list strong {
  color: var(--dashboard-heading);
}

.dashboard-activity-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

.dashboard-activity-list-scroll {
  max-height: min(22rem, 52vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 0.35rem;
  margin-right: -0.15rem;
}

.dashboard-activity-list-scroll::-webkit-scrollbar {
  width: 0.45rem;
}

.dashboard-activity-list-scroll::-webkit-scrollbar-thumb {
  background: rgba(148, 163, 184, 0.45);
  border-radius: 999px;
}

.dashboard-activity-list-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.dashboard-activity-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.65rem;
  align-items: center;
}

.dashboard-activity-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 0.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(251, 146, 60, 0.12);
  font-size: 1rem;
}

.dashboard-activity-title {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--dashboard-heading);
}

.dashboard-activity-meta {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  color: var(--dashboard-muted);
}

.dashboard-activity-link {
  font-size: 0.75rem;
  color: #fb923c;
  text-decoration: none;
  white-space: nowrap;
}

.dashboard-activity-link:hover {
  text-decoration: underline;
}

.dashboard-side-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-top: 0.85rem;
}

.page-body-dashboard .link-brand {
  color: var(--accent-link);
}

.my-challenges-page {
  padding: 1.25rem 1rem 2.5rem;
}

.my-activities-page {
  width: 100%;
}

.page-activities-list .page-main {
  max-width: 72rem;
  margin: 0 auto;
  padding: 1.25rem 1rem 2.5rem;
  overflow-x: visible;
}

.page-body-dashboard.page-activities-list .page-main {
  overflow-x: visible;
}

.page-activities-list .my-activities-table-wrap.table-shell,
.page-activities-list .challenge-all-activities-table.table-shell {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
}

.page-activities-list .my-activities-table-wrap .challenge-activities-scroll,
.page-activities-list .challenge-all-activities-table .challenge-activities-scroll {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.page-activities-list .my-activities-table-wrap .data-table,
.page-activities-list .challenge-all-activities-table .challenge-activities-scroll .data-table {
  width: max-content;
  min-width: 100%;
}

.activities-list-page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin-top: 1.25rem;
}

.challenge-all-activities-table .challenge-activities-scroll,
.page-activities-list .my-activities-table-wrap .challenge-activities-scroll {
  max-height: none;
}

@media (min-width: 768px) {
  .my-activities-cards {
    display: none;
  }

  .my-activities-table-wrap {
    display: block;
  }
}

@media (max-width: 767px) {
  .my-activities-table-wrap {
    display: none;
  }

  .my-activities-cards {
    display: grid;
    gap: 0.75rem;
  }
}

.my-activities-card {
  display: grid;
  gap: 0.625rem;
}

.my-activities-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.my-activities-card-date {
  font-size: 0.8125rem;
  color: var(--text-muted);
  white-space: nowrap;
}

.my-activities-card-title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.35;
}

.my-activities-card-meta {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-muted);
  line-height: 1.45;
}

.my-activities-card-message {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-soft);
}

.my-activities-card-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.my-activities-card-km {
  font-size: 0.9375rem;
  font-weight: 700;
}

.my-activities-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  font-size: 0.8125rem;
}

.my-challenges-shell {
  max-width: 52rem;
  margin: 0 auto;
}

.my-challenges-back {
  display: inline-block;
  margin-bottom: 1rem;
}

.my-challenges-head {
  margin-bottom: 1rem;
}

.my-challenges-title {
  margin: 0;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 700;
  color: var(--dashboard-heading);
}

.my-challenges-lead {
  margin: 0.5rem 0 0;
  color: var(--dashboard-muted);
  max-width: 42rem;
}

.my-challenges-section {
  padding: 1rem;
  margin-bottom: 1rem;
}

.my-challenges-section-title {
  margin: 0 0 0.85rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--dashboard-heading);
}

.my-challenges-empty {
  padding: 1rem;
  border-radius: 0.75rem;
  border: 1px dashed var(--border);
  color: var(--dashboard-muted);
  text-align: center;
}

.my-challenges-list {
  display: grid;
  gap: 0.75rem;
}

.my-challenges-card {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  padding: 0.95rem 1rem;
  border-radius: 0.85rem;
  border: 1px solid var(--border);
  background: var(--dashboard-tile-bg);
}

.my-challenges-card-thumb {
  flex: 0 0 7.5rem;
  width: 7.5rem;
  aspect-ratio: 5 / 2;
  border-radius: 0.55rem;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface-media);
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.my-challenges-card-thumb img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

.my-challenges-card-thumb-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 1.65rem;
  line-height: 1;
}

.my-challenges-card-main {
  flex: 1;
  min-width: 0;
}

.my-challenges-card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}

.my-challenges-card-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
}

.my-challenges-card-title a {
  color: var(--dashboard-heading);
  text-decoration: none;
}

.my-challenges-card-title a:hover {
  color: var(--accent-link);
}

.my-challenges-card-meta {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: var(--dashboard-muted);
}

.my-challenges-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.85rem;
}

.my-challenges-inline-form {
  display: inline;
}

@media (max-width: 480px) {
  .my-challenges-card {
    flex-direction: column;
  }

  .my-challenges-card-thumb {
    width: 100%;
    flex: none;
    max-height: 6.5rem;
  }
}

html[data-theme="light"] .page-body-dashboard .my-challenges-card {
  background: var(--dashboard-tile-bg);
  border-color: var(--border);
}

html[data-theme="light"] .page-body-dashboard .my-challenges-card-thumb {
  background: var(--surface-media);
}

html[data-theme="light"] .page-body-dashboard .my-challenges-card-actions .btn-secondary {
  background: #ffffff;
  color: var(--text);
  border-color: var(--border-strong);
}

html[data-theme="light"] .page-body-dashboard .my-challenges-card-actions .btn-secondary:hover {
  background: var(--bg-hover);
  color: var(--brand);
  border-color: color-mix(in srgb, var(--brand) 35%, var(--border-strong));
}

.page-body-dashboard .site-footer {
  background: var(--bg-page);
  border-top: 1px solid var(--border);
  color: var(--text-muted);
}

.page-body-dashboard .site-footer a {
  color: var(--text-soft);
}

.dashboard-empty {
  padding: 1.5rem;
  text-align: center;
}

.dashboard-empty-inline {
  margin: 0;
  color: var(--dashboard-muted);
  font-size: 0.875rem;
}

.dashboard-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
}

@media (min-width: 900px) and (max-width: 1100px) {
  .dashboard-race-summary {
    grid-template-columns: 1fr;
    grid-template-areas:
      "kpis"
      "hero";
  }

  .dashboard-race-summary-hero {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1100px) {
  .dashboard-diploma-hero {
    grid-template-columns: 1fr;
  }

  .dashboard-diploma-page > .dashboard-diploma-body {
    grid-template-columns: 1fr;
  }

  .dashboard-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-race-body {
    grid-template-columns: 1fr;
    min-width: 0;
  }

  .dashboard-race-sidebar {
    position: static;
    max-height: none;
    width: 100%;
  }

  .dashboard-challenge-page .dashboard-race-body {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }

  .dashboard-challenge-page .dashboard-race-main {
    order: 1;
    width: 100%;
    min-width: 0;
  }

  .dashboard-challenge-page .dashboard-race-sidebar {
    order: 2;
    max-height: none;
    overflow: visible;
  }

  .dashboard-goal-page .dashboard-race-sidebar {
    max-height: none;
    overflow: visible;
  }

  .dashboard-race-main-grid,
  .dashboard-challenge-main-grid {
    grid-template-columns: 1fr;
    min-width: 0;
  }

  .dashboard-challenge-side {
    min-width: 0;
  }

  .dashboard-race-qr-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-race-qr-grid .share-qr-image {
    max-width: 10rem;
  }
}

@media (max-width: 899px) {
  .dashboard-view--vyzvy,
  .dashboard-challenge-page {
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
  }

  .dashboard-challenge-overview,
  .dashboard-challenge-sports-tabs,
  .dashboard-challenge-page .dashboard-race-body,
  .dashboard-challenge-page .dashboard-race-main,
  .dashboard-challenge-page .dashboard-race-sidebar,
  .dashboard-challenge-page .dashboard-panel {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .dashboard-challenge-sports-tabs--desktop {
    display: none !important;
  }

  .dashboard-challenge-sports-select {
    display: block;
    width: 100%;
    margin-bottom: 0.55rem;
    padding: 0 0.65rem;
    box-sizing: border-box;
  }

  .dashboard-challenge-page .dashboard-overview-toolbar,
  .dashboard-challenge-page .dashboard-overview-toolbar-actions,
  .dashboard-challenge-page .dashboard-overview-card-actions {
    max-width: 100%;
    min-width: 0;
  }

  .dashboard-challenge-page .dashboard-overview-card-actions .btn {
    max-width: 100%;
    min-width: 0;
  }

  .dashboard-challenge-page .dashboard-points-info,
  .dashboard-challenge-page .dashboard-points-info-body {
    max-width: 100%;
    min-width: 0;
  }

  .dashboard-challenge-page .dashboard-points-info-body {
    grid-template-columns: 1fr;
  }

  .dashboard-challenge-page .dashboard-points-ladder {
    justify-content: flex-start;
    flex-wrap: wrap;
    max-width: 100%;
  }

  .dashboard-challenge-page .dashboard-table-wrap {
    max-width: 100%;
    width: 100%;
  }

  .dashboard-challenge-page .dashboard-activity-list-scroll {
    margin-right: 0;
    max-width: 100%;
  }

  .dashboard-topbar {
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
  }

  .dashboard-topbar-main {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .dashboard-topbar-main::-webkit-scrollbar {
    display: none;
  }

  .dashboard-overview-grid {
    grid-template-columns: 1fr;
    gap: 0.55rem;
  }

  .dashboard-overview-col--left {
    order: 1;
  }

  .dashboard-overview-col--center {
    order: 2;
  }

  .dashboard-overview-col--right {
    order: 3;
  }

  .dashboard-overview-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .dashboard-overview-toolbar-actions {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }

  .dashboard-overview-toolbar-actions .dashboard-hero-actions,
  .dashboard-overview-card-actions {
    justify-content: flex-start;
    width: 100%;
  }

  .dashboard-overview-toolbar .btn,
  .dashboard-overview-card-actions .btn {
    flex: 0 0 auto;
  }

  .dashboard-challenge-overview-main {
    flex-direction: column;
  }

  .dashboard-challenge-detail-facts--inline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-statistics-hero {
    grid-template-columns: 1fr;
  }

  .dashboard-statistics-hero-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.55rem;
    grid-column: 1 / -1;
  }

  .dashboard-statistics-rank-card,
  .dashboard-statistics-gauge,
  .dashboard-statistics-summary-cards {
    grid-column: auto;
    grid-row: auto;
    justify-self: stretch;
    width: 100%;
    max-width: 16rem;
    margin-inline: auto;
  }

  .dashboard-statistics-summary-cards {
    max-width: 100%;
  }
}

@media (max-width: 960px) {
  .dashboard-hero-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-race-hero-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-race-summary {
    grid-template-columns: 1fr;
  }

  .dashboard-hero-actions,
  .dashboard-actions,
  .dashboard-race-info-actions,
  .dashboard-side-actions {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
  }

  .dashboard-hero-actions .btn,
  .dashboard-actions .btn,
  .dashboard-race-info-actions .btn,
  .dashboard-side-actions .btn,
  .dashboard-side-actions .link-brand {
    width: auto;
    max-width: 100%;
    min-width: 0;
    flex: 0 0 auto;
    padding: 0.45rem 0.75rem;
    font-size: 0.8125rem;
    line-height: 1.25;
    white-space: nowrap;
    text-align: center;
    box-sizing: border-box;
    justify-content: center;
  }

  .dashboard-side-actions .link-brand {
    display: block;
    padding: 0.35rem 0;
  }

  .dashboard-hero-actions .btn-strava-outline,
  .dashboard-actions .btn-strava-outline {
    padding: 0.4rem 0.65rem;
    font-size: 0.75rem;
  }

  .dashboard-diploma-sports {
    flex-direction: column;
    align-items: stretch;
  }

  .dashboard-diploma-strava {
    margin-left: 0;
    text-align: center;
  }

  .dashboard-diploma-detail-preview {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .dashboard-diploma-detail-medal {
    justify-self: center;
  }
}

@media (max-width: 767px) {
  .page-body-dashboard {
    --site-header-height: 3.25rem;
  }

  .page-main.page-main-dashboard {
    padding: 0 !important;
    padding-left: max(0.5rem, env(safe-area-inset-left)) !important;
    padding-right: max(0.5rem, env(safe-area-inset-right)) !important;
  }
}

@media (max-width: 640px) {
  .dashboard {
    padding: 0 0.5rem 1.5rem;
  }

  .dashboard-panel-head,
  .dashboard-powered,
  .dashboard-powered-sub,
  .dashboard-card-lead,
  .dashboard-card-title {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .dashboard-challenge-overview,
  .dashboard-overview-grid,
  .dashboard-goal-hero-card,
  .dashboard-hero-grid {
    min-width: 0;
    max-width: 100%;
  }

  .dashboard-challenge-overview,
  .dashboard-goal-hero-card,
  .dashboard-statistics-hero {
    padding: 0.65rem 0.7rem 0.7rem;
  }

  .page-body-dashboard .flash {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
  }

  .page-body-dashboard {
    --dashboard-header-offset: 3.5rem;
    --dashboard-sticky-tabs-top: var(--dashboard-header-offset);
    scroll-padding-top: calc(var(--dashboard-header-offset) + 2.5rem);
  }

  .dashboard-topbar {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.3rem;
    margin-bottom: 0.1rem;
    padding: 0.4rem 0 0.45rem;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .dashboard-topbar-main {
    width: 100%;
    flex: 0 0 auto;
  }

  .dashboard-mode-tabs,
  .dashboard-mode-tabs-3,
  .dashboard-mode-tabs-4,
  .dashboard-mode-tabs-5,
  .dashboard-mode-tabs-6,
  .dashboard-mode-tabs-7,
  .dashboard-mode-tabs-8,
  .dashboard-mode-tabs-9 {
    width: auto;
    max-width: 100%;
    min-width: 0;
  }

  .dashboard-mode-tabs-3 .dashboard-mode-tab,
  .dashboard-mode-tabs-4 .dashboard-mode-tab,
  .dashboard-mode-tabs-5 .dashboard-mode-tab,
  .dashboard-mode-tabs-6 .dashboard-mode-tab,
  .dashboard-mode-tabs-7 .dashboard-mode-tab,
  .dashboard-mode-tabs-8 .dashboard-mode-tab,
  .dashboard-mode-tabs-9 .dashboard-mode-tab {
    padding: 0.5rem 0.65rem;
    font-size: 0.8125rem;
    line-height: 1.2;
  }

  .dashboard-events-layout {
    grid-template-columns: 1fr;
  }

  .dashboard-events-sidebar {
    position: static;
  }

  .dashboard-events-grid {
    grid-template-columns: 1fr;
  }

  .dashboard-event-card-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .dashboard-event-card-actions {
    justify-content: space-between;
  }

  .dashboard-race-summary {
    grid-template-columns: 1fr;
  }

  .dashboard-diploma-hero {
    grid-template-columns: 1fr;
  }

  .dashboard-topbar-user {
    width: 100%;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
  }

  .dashboard-user-name {
    font-size: 0.8125rem;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .dashboard-challenge-select,
  .dashboard-context-select {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .dashboard-select {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }

  .dashboard-hero,
  .dashboard-panel,
  .dashboard-empty {
    padding: 0.85rem 0.75rem;
  }

  .dashboard-hero-actions .btn,
  .dashboard-actions .btn,
  .dashboard-race-info-actions .btn {
    padding: 0.5rem 0.65rem;
    font-size: 0.8125rem;
  }

  .dashboard-hero-grid {
    gap: 0.65rem;
  }

  .dashboard-stat-card,
  .dashboard-stat-card-wide {
    grid-column: auto;
  }

  .dashboard-sports-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
    max-width: 100%;
    width: 100%;
    min-width: 0;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }

  .dashboard-sports-tabs:not(.dashboard-challenge-sports-tabs) {
    flex-wrap: nowrap;
  }

  .dashboard-challenge-sports-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .dashboard-sport-tab {
    flex-shrink: 0;
  }

  .dashboard-challenge-sports-tabs .dashboard-sport-tab {
    flex: 0 0 auto;
  }

  .dashboard-challenge-overview-head {
    flex-direction: column;
  }

  .dashboard-challenge-detail-facts {
    grid-template-columns: minmax(0, 1fr);
  }

  .dashboard-challenge-countdown {
    width: 100%;
  }

  .dashboard-challenge-page .dashboard-race-body,
  .dashboard-goal-page .dashboard-race-body {
    gap: 0.75rem;
  }

  .dashboard-challenge-page .dashboard-race-sidebar {
    max-height: none;
    overflow: visible;
    padding: 0.85rem;
  }

  .dashboard-goal-page {
    --dashboard-goal-list-height: min(16rem, 40vh);
  }

  .dashboard-goal-page .dashboard-race-sidebar {
    max-height: none;
    overflow: visible;
    padding: 0.85rem;
  }

  .dashboard-challenge-page .dashboard-race-main,
  .dashboard-goal-page .dashboard-race-main {
    gap: 0.75rem;
    width: 100%;
    min-width: 0;
  }

  .dashboard-challenge-sports-tabs {
    margin-bottom: 0.55rem;
    padding: 0;
  }

  .dashboard-challenge-sports-tabs--desktop {
    display: none !important;
  }

  .dashboard-challenge-sports-select {
    display: block;
    margin-bottom: 0.55rem;
    padding: 0 0.65rem;
  }

  .dashboard-challenge-page .dashboard-hero,
  .dashboard-goal-page .dashboard-goal-overview,
  .dashboard-goal-page .dashboard-goal-topbar {
    padding: 0.75rem;
  }

  .dashboard-challenge-page .dashboard-stat-card-wide,
  .dashboard-goal-page .dashboard-stat-card-wide {
    grid-column: auto;
  }

  .dashboard-challenge-page .dashboard-panel,
  .dashboard-goal-page .dashboard-panel {
    min-width: 0;
    overflow: visible;
  }

  .dashboard-overview-gauge,
  .dashboard-overview-countdown {
    max-width: 100%;
  }

  .dashboard-challenge-picker {
    display: block;
  }

  .dashboard-challenge-page .dashboard-race-sidebar--challenge-lists {
    display: none;
  }

  .dashboard-challenge-overview {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .dashboard-challenge-overview .dashboard-overview-toolbar {
    order: 1;
    margin-bottom: 0.55rem;
  }

  .dashboard-challenge-overview .dashboard-challenge-sports-tabs--embedded {
    order: 2;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    width: 100%;
    max-width: 100%;
  }

  .dashboard-challenge-sports-tabs--desktop {
    display: none !important;
  }

  .dashboard-challenge-sports-select {
    display: block;
    order: 2;
    width: 100%;
    margin-bottom: 0.55rem;
    padding: 0 0.65rem;
    box-sizing: border-box;
  }

  .dashboard-challenge-overview .dashboard-challenge-picker {
    order: 3;
    margin-bottom: 0.65rem;
  }

  .dashboard-challenge-overview .dashboard-overview-grid {
    order: 4;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    width: 100%;
  }

  .dashboard-challenge-overview .dashboard-overview-col--center {
    order: 1;
    width: 100%;
    max-width: 100%;
  }

  .dashboard-challenge-overview .dashboard-overview-col--left {
    order: 2;
    width: 100%;
  }

  .dashboard-challenge-overview .dashboard-overview-col--right {
    display: none;
  }

  .dashboard-challenge-overview .dashboard-overview-stats-stack {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.4rem;
  }

  .dashboard-challenge-overview .dashboard-stat-card {
    padding: 0.65rem 0.55rem;
    flex-direction: row;
    align-items: center;
    text-align: left;
    gap: 0.35rem;
  }

  .dashboard-challenge-overview .dashboard-stat-card-wide {
    grid-column: 1 / -1;
  }

  .dashboard-challenge-overview .dashboard-stat-value-sm {
    font-size: 0.8125rem;
  }

  .dashboard-challenge-page {
    display: flex;
    flex-direction: column;
  }

  .dashboard-challenge-page > .dashboard-challenge-overview,
  .dashboard-challenge-page > .dashboard-challenge-page-controls {
    order: 1;
  }

  .dashboard-challenge-page > .dashboard-race-body {
    order: 2;
  }

  .dashboard-challenge-page-controls {
    display: block;
    margin-bottom: 0.45rem;
  }

  .dashboard-challenge-main-grid {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
  }

  .dashboard-challenge-main-grid > .dashboard-panel:first-child {
    order: 1;
  }

  .dashboard-challenge-main-grid > .dashboard-challenge-side {
    order: 2;
  }

  .dashboard-race-picker {
    display: block;
  }

  .dashboard-race-page-controls {
    display: block;
    margin-bottom: 0.45rem;
  }

  .dashboard-race-page .dashboard-race-sidebar--race-lists {
    display: none;
  }

  .dashboard-race-page {
    display: flex;
    flex-direction: column;
  }

  .dashboard-race-page > .dashboard-race-page-controls {
    order: 1;
  }

  .dashboard-race-page > .dashboard-race-summary {
    order: 2;
  }

  .dashboard-race-page > .dashboard-race-body {
    order: 3;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
  }

  .dashboard-race-page .dashboard-race-main {
    order: 1;
    width: 100%;
    min-width: 0;
  }

  .dashboard-race-summary {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-bottom: 0.45rem;
  }

  .dashboard-race-summary-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
    order: 2;
  }

  .dashboard-race-summary-metrics > .dashboard-race-summary-stack {
    display: contents;
  }

  .dashboard-race-summary-hero {
    order: 1;
    width: 100%;
  }

  .dashboard-race-summary-gauge {
    width: 100%;
    max-width: 100%;
  }

  .dashboard-race-kpi--summary-placement {
    display: none;
  }

  .dashboard-race-main-grid {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
  }

  .dashboard-race-main-grid > .dashboard-panel:first-child {
    order: 1;
  }

  .dashboard-race-main-grid > .dashboard-race-info-panel {
    order: 2;
  }

  .dashboard-goal-picker {
    display: block;
  }

  .dashboard-goal-page-controls {
    display: block;
    margin-bottom: 0.45rem;
  }

  .dashboard-goal-page .dashboard-race-sidebar--goal-lists {
    display: none;
  }

  .dashboard-goal-page {
    display: flex;
    flex-direction: column;
  }

  .dashboard-goal-page > .dashboard-goal-page-controls {
    order: 1;
  }

  .dashboard-goal-page > .dashboard-goal-hero-top,
  .dashboard-goal-page > .dashboard-goal-topbar {
    order: 2;
  }

  .dashboard-goal-page > .dashboard-goal-active-strip {
    order: 3;
  }

  .dashboard-goal-page > .dashboard-goal-body {
    order: 4;
  }

  .dashboard-goal-hero-top .dashboard-goal-overview,
  .dashboard-goal-hero-top .dashboard-goal-hero-card {
    display: flex;
    flex-direction: column;
  }

  .dashboard-goal-hero-top .dashboard-overview-toolbar {
    order: 1;
    margin-bottom: 0.55rem;
  }

  .dashboard-goal-hero-top .dashboard-goal-picker {
    order: 2;
    margin-bottom: 0.65rem;
  }

  .dashboard-goal-hero-top .dashboard-overview-grid {
    order: 3;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    width: 100%;
  }

  .dashboard-goal-hero-top .dashboard-overview-col--center {
    order: 1;
    width: 100%;
    max-width: 100%;
  }

  .dashboard-goal-hero-top .dashboard-overview-col--left {
    order: 2;
    width: 100%;
  }

  .dashboard-goal-hero-top .dashboard-overview-col--right {
    display: none;
  }

  .dashboard-goal-page .dashboard-goal-body {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
  }

  .dashboard-goal-page .dashboard-race-main {
    order: 1;
    width: 100%;
    min-width: 0;
  }

  .dashboard-points-info-body {
    grid-template-columns: 1fr;
  }

  .dashboard-points-ladder {
    justify-content: flex-start;
  }

  .dashboard-challenge-page .dashboard-panel-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .dashboard-challenge-page .dashboard-powered {
    max-width: 100%;
  }

  .dashboard-challenge-page .dashboard-activity-item {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: start;
  }

  .dashboard-challenge-page .dashboard-activity-link {
    grid-column: 2;
    justify-self: start;
    margin-top: 0.15rem;
  }

  .dashboard-challenge-page .dashboard-activity-body {
    min-width: 0;
  }

  .dashboard-challenge-page .dashboard-activity-title,
  .dashboard-challenge-page .dashboard-activity-meta {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .dashboard-challenge-page .dashboard-activity-list-scroll {
    max-height: min(16rem, 40vh);
  }

  .dashboard-challenge-page .dashboard-table-wrap {
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
  }

  .dashboard-challenge-page .dashboard-table {
    font-size: 0.8125rem;
  }

  .dashboard-challenge-page .dashboard-table th,
  .dashboard-challenge-page .dashboard-table td {
    padding: 0.5rem 0.35rem;
  }

  .dashboard-table-wrap,
  .table-shell {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
    min-width: 0;
    width: 100%;
  }

  .dashboard-challenge-page .dashboard-table,
  .dashboard-race-page .dashboard-table,
  .dashboard-diploma-page .dashboard-table {
    min-width: 16rem;
  }

  .dashboard-statistics-page .dashboard-table {
    min-width: 0;
  }

  .dashboard-diploma-carousel {
    padding: 0.75rem;
  }

  .dashboard-diploma-carousel-track {
    gap: 0.5rem;
  }

  .dashboard-diploma-card {
    flex: 0 0 min(78vw, 12.5rem);
  }

  .dashboard-diploma-sidebar,
  .dashboard-diploma-goals,
  .dashboard-diploma-table,
  .dashboard-diploma-detail {
    padding: 0.75rem;
  }

  .dashboard-diploma-sport-tab {
    font-size: 0.8125rem;
    padding: 0.4rem 0.65rem;
  }

  .dashboard-diploma-item {
    flex-direction: column;
    align-items: stretch;
    padding: 0.75rem;
  }

  .dashboard-diploma-item-main {
    flex: none;
    width: 100%;
  }

  .dashboard-diploma-item .dashboard-diploma-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.4rem;
    width: 100%;
  }

  .dashboard-diploma-detail-actions,
  .dashboard-diploma-actions,
  .dashboard-race-diploma-earned .dashboard-diploma-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.4rem;
    width: 100%;
  }

  .dashboard-diploma-detail-actions .btn,
  .dashboard-diploma-actions .btn,
  .dashboard-diploma-item .dashboard-diploma-actions .btn,
  .dashboard-race-diploma-earned .dashboard-diploma-actions .btn {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    justify-content: center;
    padding: 0.45rem 0.6rem;
    font-size: 0.75rem;
    line-height: 1.25;
    white-space: normal;
    text-align: center;
    box-sizing: border-box;
  }

  .dashboard .share-qr-buttons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.4rem;
    width: 100%;
  }

  .dashboard .share-qr-buttons .btn {
    width: 100%;
    max-width: 100%;
    flex: none;
    font-size: 0.75rem;
    padding: 0.45rem 0.6rem;
    box-sizing: border-box;
  }

  .dashboard-race-summary {
    grid-template-columns: 1fr;
    padding: 0.75rem;
    gap: 0.65rem;
  }

  .dashboard-race-page-title,
  .dashboard-diploma-page-title {
    font-size: 1rem;
    line-height: 1.3;
  }

  .dashboard-race-sidebar-card {
    padding: 0.65rem;
  }

  .form-card.auth-credentials-form {
    padding: 1.25rem 1rem;
  }
}

/* --- Menu tree builder (admin) --- */
.menu-location-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border);
}

.menu-location-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-muted);
  color: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.menu-location-tab:hover {
  border-color: var(--brand);
}

.menu-location-tab.is-active {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}

.menu-location-tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  font-size: 0.75rem;
  font-weight: 700;
}

.menu-location-tab:not(.is-active) .menu-location-tab-count {
  background: rgba(15, 23, 42, 0.08);
}

.menu-tree-card-actions .menu-tree-action-text {
  width: auto;
  min-width: 2rem;
  padding: 0 0.55rem;
  font-size: 0.75rem;
  font-weight: 600;
}

.menu-flat-canvas {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.menu-builder-unified .menu-tree-location-panel[hidden] {
  display: none !important;
}

.menu-tree-builder-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.menu-tree-builder-header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.menu-tree-submenu-toolbar {
  padding: 1rem 1.15rem;
  margin-bottom: 1rem;
}

.menu-tree-submenu-toolbar-fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1rem;
  margin-bottom: 0.5rem;
}

.menu-tree-submenu-field {
  flex: 1 1 12rem;
  min-width: 10rem;
  margin: 0;
}

.menu-tree-submenu-add {
  flex: 0 0 auto;
  margin-bottom: 0.15rem;
}

.menu-tree-card-grip {
  cursor: grab;
  touch-action: none;
}

.menu-tree-card-grip:active {
  cursor: grabbing;
}

.menu-builder-unified {
  width: 100%;
}

.menu-tree-builder-layout {
  display: grid;
  grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
  width: 100%;
}

.menu-tree-canvas-wrap {
  min-width: 0;
}

.menu-tree-palette {
  padding: 1rem;
  position: sticky;
  top: 1rem;
  max-height: calc(100vh - 2rem);
  overflow: auto;
}

.menu-tree-palette-title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 600;
}

.menu-tree-palette-lead {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  color: var(--color-muted, #64748b);
}

.menu-tree-palette-section-title {
  margin: 0.75rem 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-muted, #64748b);
}

.menu-tree-palette-section-title:first-child {
  margin-top: 0;
}

.menu-tree-builder-header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.menu-tree-palette-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.menu-tree-palette-item {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  width: 100%;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0.5rem;
  background: #fff;
  text-align: left;
  cursor: grab;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.menu-tree-palette-item:hover {
  border-color: rgba(59, 130, 246, 0.55);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

.menu-tree-palette-item:active {
  cursor: grabbing;
}

.menu-tree-palette-icon {
  font-size: 1.1rem;
  line-height: 1.2;
}

.menu-tree-palette-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.menu-tree-palette-body strong {
  font-size: 0.875rem;
  line-height: 1.3;
}

.menu-tree-palette-body small {
  font-size: 0.75rem;
  color: var(--color-muted, #64748b);
}

.menu-tree-block {
  margin-bottom: 0.75rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0.65rem;
  background: rgba(248, 250, 252, 0.65);
  padding: 0.35rem 0.5rem 0.5rem;
}

.menu-tree-block.has-submenu {
  border-color: rgba(59, 130, 246, 0.35);
}

.menu-tree-block.is-dragging {
  opacity: 0.5;
}

.menu-tree-block-grip {
  cursor: grab;
  user-select: none;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-muted, #64748b);
  padding: 0.25rem 0.35rem 0.15rem;
  margin-bottom: 0.15rem;
}

.menu-tree-block-grip:active {
  cursor: grabbing;
}

.menu-tree-block-children {
  margin-top: 0.15rem;
  padding-left: 0.35rem;
  border-left: 2px solid rgba(59, 130, 246, 0.2);
}

.menu-tree-block-children .menu-tree-card-child {
  margin-left: 0.75rem;
}

.menu-tree-canvas {
  min-height: 12rem;
  padding: 0.75rem;
}

.menu-tree-empty {
  padding: 2rem 1rem;
  text-align: center;
  color: var(--color-muted, #64748b);
}

.menu-tree-card {
  position: relative;
  margin-bottom: 0.5rem;
}

.menu-tree-card-child {
  margin-left: 1.75rem;
}

.menu-tree-card.is-dragging {
  opacity: 0.45;
}

.menu-tree-card.is-drop-target > .admin-list-builder-card {
  outline: 2px dashed rgba(59, 130, 246, 0.65);
  outline-offset: 2px;
}

.menu-tree-nest-target {
  min-height: 0.35rem;
  margin: 0.15rem 0 0.35rem 1.75rem;
  border-radius: 0.35rem;
  transition: min-height 0.15s, background 0.15s;
}

.menu-tree-nest-target.is-active {
  min-height: 2rem;
  background: rgba(59, 130, 246, 0.08);
  border: 1px dashed rgba(59, 130, 246, 0.45);
}

@media (min-width: 901px) {
  .admin-page-menu .menu-builder-unified {
    min-height: calc(100vh - 11rem);
  }

  .admin-page-menu .menu-tree-builder-layout {
    grid-template-columns: minmax(260px, 22rem) minmax(0, 1fr);
  }

  .admin-page-menu .menu-tree-palette {
    max-height: calc(100vh - 10rem);
  }

  .admin-page-menu .menu-tree-canvas {
    min-height: calc(100vh - 14rem);
  }
}

@media (max-width: 900px) {
  .menu-tree-builder-layout {
    grid-template-columns: 1fr;
  }

  .menu-tree-palette {
    position: static;
    max-height: none;
  }

  .menu-tree-submenu-toolbar-fields {
    flex-direction: column;
    align-items: stretch;
  }

  .menu-tree-submenu-add {
    width: 100%;
  }
}

/* --- Header submenu (public) --- */
.site-nav-item.has-submenu {
  position: relative;
}

.site-nav-parent-row {
  display: inline-flex;
  align-items: center;
  gap: 0.125rem;
  border-radius: 0;
  transition: background 0.15s;
}

.site-nav-menu-bar > .site-nav-item.has-submenu:hover > .site-nav-parent-row,
.site-nav-menu-bar > .site-nav-item.has-submenu:focus-within > .site-nav-parent-row {
  background: var(--app-tab-hover-bg);
}

.site-nav-item.has-submenu:hover > .site-nav-parent-row,
.site-nav-item.has-submenu:focus-within > .site-nav-parent-row {
  background: var(--app-tab-hover-bg);
}

.site-nav-parent-link {
  display: inline-flex;
  align-items: center;
}

.site-nav-menu-bar .site-nav-parent-link:hover {
  background: transparent;
  text-decoration: none;
}

.site-nav-parent-link:hover {
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.site-nav-group-label {
  display: inline-flex;
  align-items: center;
  color: var(--app-tab-fg);
  padding: 0.375rem 0.125rem 0.375rem 0.625rem;
  border-radius: 0;
  cursor: default;
}

.site-nav-submenu-caret {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-right: 0.125rem;
  border-radius: 0;
  color: inherit;
  opacity: 0.85;
  flex-shrink: 0;
}

.site-nav-submenu-caret::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  margin-top: -0.15rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.85;
}

.site-nav-item.has-submenu:hover > .site-nav-parent-row .site-nav-submenu-caret,
.site-nav-item.has-submenu:focus-within > .site-nav-parent-row .site-nav-submenu-caret {
  color: inherit;
  opacity: 1;
}

.site-nav-submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 12rem;
  width: max-content;
  max-width: min(20rem, calc(100vw - 1.5rem));
  box-sizing: border-box;
  padding: 0;
  background: var(--app-tab-bar-bg);
  border: 1px solid var(--app-tab-bar-edge);
  border-radius: 0;
  box-shadow: 0 10px 30px rgba(2, 6, 23, 0.35);
  z-index: 40;
}

.site-nav-item.has-submenu:hover > .site-nav-submenu,
.site-nav-item.has-submenu:focus-within > .site-nav-submenu {
  display: block;
}

.site-nav-item.site-nav-account .site-nav-submenu {
  z-index: 50;
}

.site-nav-item.site-nav-account .site-nav-submenu-link {
  position: relative;
  z-index: 1;
}

.site-nav-submenu-link {
  display: block;
  padding: 0.65rem 1rem;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.35;
  color: var(--app-tab-fg);
  font-weight: 600;
  text-decoration: none;
}

.site-nav-submenu-link:hover,
.site-nav-submenu-link.is-active {
  background: var(--app-tab-active-bg);
  color: var(--app-tab-active-fg);
}

@media (max-width: 768px) {
  .site-nav-item.has-submenu {
    width: 100%;
    text-align: right;
  }

  .site-nav-parent-row {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
  }

  .site-nav-parent-link,
  .site-nav-group-label {
    text-align: right;
    justify-content: flex-end;
  }

  .site-nav-submenu-caret {
    margin-left: 0.35rem;
    margin-right: 0;
    flex-shrink: 0;
  }

  .site-nav-submenu {
    position: static;
    display: block;
    margin-top: 0.25rem;
    margin-left: 0;
    padding: 0;
    border: none;
    box-shadow: none;
    background: transparent;
    width: 100%;
    text-align: right;
  }

  .site-nav-submenu-link {
    display: block;
    text-align: right;
    padding: 0.5rem 0.75rem;
    font-size: 0.9375rem;
    white-space: normal;
  }
}

/* GPS track profile (akce, závody, admin) */
.gps-track-profile {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.gps-track-profile-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}

.gps-track-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1rem;
  margin: 0;
}

@media (min-width: 640px) {
  .gps-track-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.gps-track-stat {
  min-width: 0;
}

.gps-track-stat dt {
  margin: 0 0 0.125rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}

.gps-track-stat dd {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
}

.gps-track-difficulty-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
}

.gps-track-difficulty-easy {
  background: rgba(34, 197, 94, 0.16);
  color: #86efac;
}

.gps-track-difficulty-moderate {
  background: rgba(59, 130, 246, 0.16);
  color: #93c5fd;
}

.gps-track-difficulty-hard {
  background: rgba(251, 146, 60, 0.16);
  color: #fdba74;
}

.gps-track-difficulty-extreme {
  background: rgba(239, 68, 68, 0.16);
  color: #fca5a5;
}

.gps-track-chart-wrap {
  margin-top: 0.25rem;
}

.gps-track-chart-caption {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.gps-track-chart-svg {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.75rem;
  background: rgba(15, 23, 42, 0.35);
}

.gps-track-chart-axis {
  stroke: rgba(148, 163, 184, 0.35);
  stroke-width: 1;
}

.gps-track-chart-line {
  fill: none;
  stroke: #fb923c;
  stroke-width: 2.5;
  stroke-linejoin: round;
  stroke-linecap: round;
}

.gps-track-chart-area {
  fill: rgba(251, 146, 60, 0.18);
  stroke: none;
}

.gps-track-chart-label {
  fill: var(--text-muted);
  font-size: 11px;
}

.gps-track-chart-label-end {
  text-anchor: end;
}

.gps-track-chart-label-ele {
  font-size: 10px;
}

.shared-event-detail-gps-profile,
.race-gps-profile,
.gps-track-profile-admin {
  min-width: 0;
}

@media (min-width: 900px) {
  .shared-event-detail-gps-profile {
    grid-column: 1 / -1;
  }
}

.shared-event-detail-gps-profile {
  padding: 1.25rem;
}

.gps-track-profile-admin .gps-track-profile-title {
  font-size: 0.9375rem;
}

/* Profile dashboard (Profil tab) */
.profile-dashboard-page {
  width: 100%;
}

.profile-dashboard-layout {
  display: grid;
  gap: 1rem;
}

@media (min-width: 960px) {
  .profile-dashboard-layout {
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    align-items: start;
  }
}

.profile-dashboard-sidebar {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.profile-dashboard-photo-wrap {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.profile-dashboard-photo {
  width: 100%;
  max-width: 220px;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 1rem;
  border: 2px solid rgba(251, 146, 60, 0.35);
}

.profile-dashboard-photo--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(249, 115, 22, 0.25), rgba(34, 211, 238, 0.18));
  font-size: 2rem;
  font-weight: 700;
  color: #fdba74;
}

.profile-dashboard-photo-upload {
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.profile-dashboard-photo-upload input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

.profile-dashboard-name {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  text-align: center;
}

.profile-dashboard-settings-btn {
  width: 100%;
}

.profile-dashboard-sync {
  margin: 0.75rem 0 0;
}

.profile-dashboard-sync-label {
  margin: 0 0 0.4rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-muted, var(--ink-muted));
}

.profile-dashboard-sync-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.profile-dashboard-sync-actions .btn {
  width: 100%;
  justify-content: center;
}

.profile-dashboard-stats {
  width: 100%;
}

.profile-dashboard-stats-title {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-muted);
}

.profile-dashboard-stats-period {
  margin: -0.4rem 0 0.85rem;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--text-muted);
  opacity: 0.9;
}

.profile-dashboard-stats-period--subtle {
  margin: -0.15rem 0 0.65rem;
  opacity: 0.8;
}

.profile-dashboard-stats-period--card {
  margin: -0.35rem 0 0.85rem;
}

.profile-dashboard-stats-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.profile-dashboard-stats-list li {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.5rem;
  align-items: center;
  padding: 0.625rem 0.75rem;
  border-radius: 0.75rem;
  background: var(--dashboard-tile-bg);
  border: 1px solid var(--surface-line);
  font-size: 0.8125rem;
  color: var(--text-soft);
}

.profile-dashboard-stats-list li strong {
  color: var(--dashboard-heading);
  font-weight: 700;
}

.profile-dashboard-stat-icon {
  font-size: 0.75rem;
  font-weight: 700;
  color: #fdba74;
  min-width: 1.75rem;
  text-align: center;
}

.profile-dashboard-stat-label {
  color: var(--text-muted);
}

.profile-dashboard-stats-subtitle {
  margin: 1rem 0 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text-muted);
}

.profile-dashboard-stat-sport {
  align-items: start;
}

.profile-dashboard-stat-sport-values {
  display: grid;
  gap: 0.125rem;
  text-align: right;
  font-size: 0.75rem;
  line-height: 1.35;
}

.profile-dashboard-stat-sport-values strong {
  font-size: 0.8125rem;
}

.profile-dashboard-stat-sport-values span {
  color: var(--text-muted);
}

.profile-dashboard-stat-sport--total {
  margin-top: 0.35rem;
  padding-top: 0.55rem;
  border-top: 1px solid var(--border);
  font-weight: 600;
}

.profile-dashboard-stat-sport--total .profile-dashboard-stat-label,
.profile-dashboard-stat-sport--total .profile-dashboard-stat-sport-values strong {
  color: var(--text);
}

.profile-monthly-chart-legend-total {
  font-weight: 600;
  color: var(--text-soft);
}

.profile-monthly-chart-legend-swatch--total {
  background: linear-gradient(135deg, var(--brand) 0%, color-mix(in srgb, var(--brand) 35%, var(--text-muted)) 100%);
}

.profile-dashboard-main {
  display: grid;
  gap: 1rem;
  min-width: 0;
}

.profile-dashboard-grid-top {
  display: grid;
  gap: 1rem;
}

@media (min-width: 900px) {
  .profile-dashboard-grid-top {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  }
}

.profile-dashboard-card {
  padding: 1.25rem 1.375rem;
}

.profile-dashboard-card-title {
  margin: 0 0 1rem;
  font-size: 1rem;
  font-weight: 600;
}

.profile-weekly-chart {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.5rem;
  align-items: end;
  min-height: 180px;
  padding-top: 0.5rem;
}

.profile-weekly-chart-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  min-height: 0;
}

.profile-weekly-chart-bar-wrap {
  width: 100%;
  max-width: 2.5rem;
  height: 120px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.profile-weekly-chart-bar {
  width: 100%;
  border-radius: 0.5rem 0.5rem 0.125rem 0.125rem;
  background: linear-gradient(180deg, #22d3ee 0%, #f97316 100%);
  min-height: 4px;
  flex-shrink: 0;
}

.profile-weekly-chart-label {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.profile-weekly-chart-km {
  font-size: 0.6875rem;
  color: var(--text-muted);
  line-height: 1.1;
}

.profile-dashboard-stat-year {
  align-items: start;
}

.profile-dashboard-stats-list--years .profile-dashboard-stat-icon {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}

.profile-dashboard-stat-year-link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.45rem 0.55rem;
  align-items: start;
  width: 100%;
  color: inherit;
  text-decoration: none;
  border-radius: var(--radius-sm);
  padding: 0.15rem 0.2rem;
  margin: -0.15rem -0.2rem;
}

.profile-dashboard-stat-year-link:hover {
  background: var(--bg-hover);
}

.profile-dashboard-stat-year.is-active .profile-dashboard-stat-year-link {
  background: var(--brand-soft);
  outline: 1px solid color-mix(in srgb, var(--brand) 35%, transparent);
}

.profile-stats-block .profile-stats-filter-form {
  margin: 0.65rem 0 1rem;
  padding: 0.85rem 0 1rem;
  border-bottom: 1px solid var(--border);
}

.profile-stats-filter-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.profile-stats-filter-row {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  align-items: end;
}

.profile-stats-period-legend {
  margin: -0.15rem 0 0;
}

.profile-stats-period-hint {
  margin: 0;
  padding: 0.55rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--bg-muted, var(--bg-card)) 88%, transparent);
  color: var(--text-muted);
  font-size: 0.8125rem;
  line-height: 1.45;
}

.profile-stats-period-hint strong {
  color: var(--text-soft);
  font-weight: 600;
}

.profile-stats-filter-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

.profile-stats-filter-field[hidden],
.profile-stats-period-hint[hidden] {
  display: none !important;
}

.profile-stats-filter-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-muted);
}

.profile-stats-filter-sports {
  margin: 0;
  padding: 0;
  border: 0;
}

.profile-stats-filter-sports-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin-bottom: 0.35rem;
}

.profile-stats-filter-sports-head .profile-stats-filter-label {
  margin: 0;
}

.profile-stats-filter-sports-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.profile-stats-filter-sport {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  border: 1px solid var(--border-strong);
  background: var(--bg-card);
  color: var(--text-soft);
  font-size: 0.8125rem;
  cursor: pointer;
  user-select: none;
}

.profile-stats-filter-sport.is-checked {
  border-color: color-mix(in srgb, var(--brand) 45%, transparent);
  background: var(--brand-soft);
  color: var(--text);
}

.profile-stats-filter-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.profile-monthly-chart--daily {
  grid-template-columns: repeat(auto-fill, minmax(1.75rem, 1fr));
}

.profile-monthly-chart {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0.35rem;
  align-items: end;
  min-height: 180px;
}

.profile-monthly-chart-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-bottom: 0.15rem;
}

.profile-monthly-chart-head .profile-dashboard-card-title {
  margin-bottom: 0;
}

.profile-monthly-chart-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.profile-monthly-chart-actions-sep {
  color: var(--text-muted);
  opacity: 0.6;
}

.profile-monthly-chart-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 0.85rem;
}

.profile-monthly-chart-filter {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0.3rem 0.55rem;
  border-radius: 999px;
  border: 1px solid var(--surface-line);
  background: var(--dashboard-tile-bg);
  color: var(--text-soft);
  font-size: 0.75rem;
  line-height: 1.2;
  cursor: pointer;
  transition: opacity 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

.profile-monthly-chart-filter:hover {
  border-color: color-mix(in srgb, var(--surface-line) 40%, #fdba74);
}

.profile-monthly-chart-filter.is-active {
  border-color: color-mix(in srgb, var(--surface-line) 30%, #22d3ee);
}

.profile-monthly-chart-filter.is-muted {
  opacity: 0.45;
}

.profile-monthly-chart-filter-label {
  white-space: nowrap;
}

.profile-monthly-chart-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  min-height: 0;
}

.profile-monthly-chart-bar-wrap {
  width: 100%;
  max-width: 2rem;
  height: 120px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  position: relative;
}

.profile-monthly-chart-stack {
  width: 100%;
  display: flex;
  flex-direction: column-reverse;
  border-radius: 0.5rem 0.5rem 0.125rem 0.125rem;
  overflow: hidden;
  min-height: 4px;
}

.profile-monthly-chart-stack.is-hidden,
.profile-monthly-chart-segment.is-hidden {
  display: none !important;
}

.profile-monthly-chart-stack--empty {
  background: color-mix(in srgb, var(--surface-line) 80%, transparent);
}

.profile-monthly-chart-segment {
  width: 100%;
  min-height: 2px;
}

.profile-monthly-chart-bar {
  width: 100%;
  border-radius: 0.5rem 0.5rem 0.125rem 0.125rem;
  background: linear-gradient(180deg, #34d399 0%, #0ea5e9 100%);
  min-height: 4px;
  flex-shrink: 0;
}

.profile-monthly-chart-label {
  font-size: 0.6875rem;
  color: var(--text-muted);
  line-height: 1.1;
}

.profile-monthly-chart-km {
  font-size: 0.625rem;
  color: var(--text-muted);
  line-height: 1.1;
}

.profile-monthly-chart-legend {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.85rem;
}

.profile-monthly-chart-legend li {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  color: var(--text-muted);
  transition: opacity 0.15s ease;
}

.profile-monthly-chart-legend li.is-muted {
  opacity: 0.4;
}

.profile-monthly-chart-legend-swatch {
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 0.2rem;
  flex-shrink: 0;
}

.profile-monthly-chart-legend-label {
  color: var(--text-soft);
}

.profile-monthly-chart-legend-km {
  font-variant-numeric: tabular-nums;
  opacity: 0.85;
}

@media (max-width: 640px) {
  .profile-monthly-chart {
    gap: 0.2rem;
    overflow-x: auto;
    grid-template-columns: repeat(12, minmax(2.25rem, 1fr));
    padding-bottom: 0.25rem;
  }

  .profile-monthly-chart-label,
  .profile-monthly-chart-km {
    font-size: 0.5625rem;
  }
}

.profile-badges-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

.profile-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 3.5rem;
  padding: 0.625rem 0.875rem;
  border-radius: 0.75rem;
  background: var(--dashboard-tile-bg);
  border: 1px solid var(--border);
  color: var(--text-soft);
  flex: 1 1 8rem;
  max-width: 100%;
}

.profile-badge--cyan {
  border-color: rgba(34, 211, 238, 0.45);
  box-shadow: inset 0 0 0 1px rgba(34, 211, 238, 0.15);
}

.profile-badge--orange {
  border-color: rgba(249, 115, 22, 0.45);
  box-shadow: inset 0 0 0 1px rgba(249, 115, 22, 0.15);
}

.profile-badge-label {
  font-size: 0.6875rem;
  line-height: 1.3;
  font-weight: 600;
}

.profile-records-grid {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .profile-records-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.profile-records-group-title {
  margin: 0 0 0.75rem;
  font-size: 0.9375rem;
  font-weight: 600;
}

.profile-record-row + .profile-record-row {
  margin-top: 0.75rem;
}

.profile-record-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.5rem;
  align-items: center;
  font-size: 0.8125rem;
  margin-bottom: 0.25rem;
}

.profile-record-meta {
  margin: 0 0 0.375rem 2rem;
  font-size: 0.75rem;
  color: var(--text-muted);
  line-height: 1.35;
}

.profile-record-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  background: rgba(249, 115, 22, 0.18);
  color: #fdba74;
  font-size: 0.625rem;
  font-weight: 700;
}

.profile-record-bar {
  height: 0.375rem;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.2);
  overflow: hidden;
}

.profile-record-bar::after {
  content: "";
  display: block;
  height: 100%;
  width: calc(var(--record-percent, 0) * 1%);
  border-radius: inherit;
  background: linear-gradient(90deg, #22d3ee, #f97316);
}

.profile-challenges-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.profile-challenges-head .profile-dashboard-card-title {
  margin-bottom: 0;
}

.profile-challenges-source {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.profile-challenges-table .dashboard-race-badge,
.profile-races-table .dashboard-race-badge {
  white-space: nowrap;
}

.profile-dashboard-card + .profile-dashboard-card {
  margin-top: 1rem;
}

.profile-dashboard-empty {
  margin: 0;
  font-size: 0.875rem;
  color: var(--text-muted);
}

.profile-dashboard-footer-link {
  margin: 0;
  font-size: 0.875rem;
}

.dashboard-user-avatar-image {
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  object-fit: cover;
  border: 1px solid rgba(251, 146, 60, 0.35);
}

.profile-settings-dialog {
  width: min(640px, calc(100vw - 2rem));
  max-height: calc(100vh - 2rem);
  padding: 0;
  border: none;
  background: transparent;
  color: inherit;
  color-scheme: var(--color-scheme);
}

.profile-settings-dialog::backdrop {
  background: var(--overlay-backdrop);
}

.profile-settings-dialog-inner {
  max-height: calc(100vh - 2rem);
  display: flex;
  flex-direction: column;
}

.profile-settings-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--surface-line);
}

.profile-settings-dialog-title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
}

.profile-settings-dialog-close {
  border: none;
  background: transparent;
  color: inherit;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
}

.profile-settings-dialog-body {
  padding: 1rem 1.25rem 1.25rem;
  overflow: auto;
}

.profile-settings-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding-top: 0.5rem;
}

.profile-settings-extra {
  padding-top: 0.5rem;
  border-top: 1px solid var(--surface-line);
}

.profile-settings-extra-title {
  margin: 0 0 0.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
}

.profile-settings-danger-form {
  margin-top: 1rem;
}

.profile-settings-danger-zone {
  border: 1px solid var(--alert-error-border);
  border-radius: var(--radius-lg);
  background: var(--alert-error-bg);
  padding: 1rem 1.125rem;
}

.profile-settings-danger-zone .form-legend {
  color: var(--alert-error-text);
}

.profile-settings-danger-zone--blocked {
  margin-top: 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--bg-hover);
  padding: 1rem 1.125rem;
}

.profile-sync-help-dialog .profile-settings-dialog-inner {
  max-width: 42rem;
}

.profile-sync-help-lead {
  margin: 0 0 1rem;
}

.profile-sync-help-section {
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--surface-line);
}

.profile-sync-help-section:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.profile-sync-help-heading {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 600;
}

.profile-sync-help-subheading {
  margin: 1rem 0 0.35rem;
  font-size: 0.875rem;
  font-weight: 600;
}

.profile-sync-help-list {
  margin: 0.35rem 0 0;
  padding-left: 1.25rem;
  font-size: 0.875rem;
  line-height: 1.55;
}

.profile-sync-help-list li + li {
  margin-top: 0.35rem;
}

.profile-sync-help-list--bullets {
  list-style: disc;
}

.profile-sync-help-list code {
  font-size: 0.8125rem;
  word-break: break-all;
}

.profile-sync-help-note {
  margin: 0.75rem 0 0;
  padding: 0.65rem 0.75rem;
  border-radius: var(--radius-md);
  background: var(--bg-hover);
  color: var(--text-soft);
}

.profile-sync-help-callout {
  margin: 0 0 1.25rem;
  padding: 0.875rem 1rem;
  border-radius: var(--radius-md);
  background: var(--alert-info-bg);
  border: 1px solid var(--alert-info-border);
  color: var(--text);
}

.profile-sync-help-callout strong {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--alert-info-text);
}

.profile-sync-help-callout p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text-soft);
}

.profile-sync-help-callout--accent {
  background: var(--alert-warning-bg);
  border-color: var(--alert-warning-border);
}

.profile-sync-help-callout--accent strong {
  color: var(--alert-warning-text);
}

.strava-connection-notice-inner {
  position: relative;
  padding-right: 1.75rem;
}

.strava-connection-notice-dismiss {
  position: absolute;
  top: 0.15rem;
  right: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--text-soft);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
}

.strava-connection-notice-dismiss:hover,
.strava-connection-notice-dismiss:focus-visible {
  color: var(--text);
  background: rgba(0, 0, 0, 0.06);
}

.strava-connection-notice[hidden] {
  display: none;
}

.site-nav-strava-connect {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.site-nav-strava-notice-wrap[hidden] {
  display: none;
}

.site-nav-strava-notice-wrap {
  position: absolute;
  top: calc(100% + 0.35rem);
  right: 0;
  z-index: 200;
  width: min(22rem, calc(100vw - 2rem));
}

.site-nav-strava-notice-wrap .strava-connection-notice,
.site-nav-strava-notice-wrap .profile-sync-help-callout {
  margin-bottom: 0;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

.dashboard-hero-actions .strava-connection-notice,
.dashboard-actions .strava-connection-notice,
.dashboard-challenge-actions .strava-connection-notice,
.dashboard-goal-actions .strava-connection-notice {
  flex: 1 1 100%;
  width: 100%;
}

.race-scan-sync-action {
  margin-bottom: 0.75rem;
}

.race-scan-sync-action .btn {
  width: 100%;
  justify-content: center;
}

.dashboard-hero-actions .dashboard-activity-sync-btn,
.dashboard-actions .dashboard-activity-sync-btn,
.dashboard-challenge-actions .dashboard-activity-sync-btn,
.dashboard-goal-actions .dashboard-activity-sync-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.btn[disabled],
.btn[aria-busy="true"] {
  cursor: wait;
  opacity: 0.8;
}

[data-activity-sync].is-busy,
[data-activity-sync-form] [type="submit"].is-busy,
button.is-busy[type="submit"],
input.is-busy[type="submit"] {
  opacity: 0.75;
  pointer-events: none;
}

.activity-sync-overlay {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: color-mix(in srgb, #0f172a 55%, transparent);
  backdrop-filter: blur(4px);
}

.activity-sync-overlay[hidden] {
  display: none !important;
}

.activity-sync-overlay-panel {
  width: min(100%, 26rem);
  padding: 1.5rem 1.35rem;
  border-radius: 1rem;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 24px 48px rgba(15, 23, 42, 0.28);
  text-align: center;
}

.activity-sync-overlay-title {
  margin: 0.85rem 0 0.35rem;
  font-size: 1rem;
  font-weight: 800;
}

.activity-sync-overlay-text {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.875rem;
  line-height: 1.55;
}

.activity-sync-spinner {
  width: 2.5rem;
  height: 2.5rem;
  margin: 0 auto;
  border-radius: 999px;
  border: 3px solid color-mix(in srgb, var(--brand) 18%, var(--border));
  border-top-color: var(--brand);
  animation: activity-sync-spin 0.85s linear infinite;
}

html.activity-sync-busy {
  overflow: hidden;
}

@keyframes activity-sync-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .activity-sync-spinner {
    animation: none;
    border-top-color: var(--border);
  }
}

/* --- Theme: kompatibilita utility tříd a sjednocení kontrastu --- */

.text-slate-400,
.text-slate-500,
.text-slate-600,
.text-slate-700 {
  color: var(--text-muted);
}

.text-slate-700 {
  color: var(--text-soft);
}

.border-slate-100,
.border-slate-200,
.border-slate-300,
.border-slate-700 {
  border-color: var(--border);
}

.hover\:bg-slate-50:hover {
  background: var(--bg-hover);
}

.data-table .font-medium {
  color: var(--text);
}

.data-table td.metric-value,
.data-table .metric-value,
.data-table .suz-metric-km-cell {
  color: var(--text);
}

.challenge-activities-table .activity-message-preview,
.suz-activities-table .activity-message-preview {
  color: var(--text-soft);
}

.activity-edit-col {
  width: 2.5rem;
  padding-inline: 0.35rem !important;
  text-align: center;
}

.activity-edit-cell {
  width: 2.5rem;
  padding-inline: 0.35rem !important;
  text-align: center;
  vertical-align: middle;
}

.activity-edit-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.375rem;
  color: var(--brand, #2563eb);
  text-decoration: none;
  touch-action: manipulation;
}

.activity-edit-link:hover,
.activity-edit-link:focus-visible {
  color: var(--brand, #2563eb);
  background: var(--bg-hover, rgba(37, 99, 235, 0.08));
  outline: none;
}

.activity-edit-icon {
  display: block;
}

.activity-edit-empty {
  color: var(--text-muted, #94a3b8);
  font-size: 0.875rem;
}

.activity-table-row {
  cursor: pointer;
}

.activity-table-row:focus-visible {
  outline: 2px solid var(--brand, #2563eb);
  outline-offset: -2px;
}

.activity-detail-dialog {
  width: min(96vw, 36rem);
  max-height: min(92vh, 44rem);
}

.activity-detail-body {
  overflow-y: auto;
  padding: 0 1.25rem 1rem;
  max-height: min(70vh, 34rem);
}

.activity-detail-loading,
.activity-detail-error {
  margin: 1rem 0;
  color: var(--text-muted, #64748b);
}

.activity-detail-error {
  color: var(--color-danger, #dc2626);
}

.activity-detail-layout {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.activity-detail-summary {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.activity-detail-type-icon {
  font-size: 1.75rem;
  line-height: 1;
}

.activity-detail-type {
  margin: 0 0 0.15rem;
  font-weight: 600;
}

.activity-detail-distance {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 700;
}

.activity-detail-challenge {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
}

.activity-detail-section-title {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted, #64748b);
}

.activity-detail-facts {
  display: grid;
  gap: 0.35rem 1rem;
  margin: 0;
}

@media (min-width: 480px) {
  .activity-detail-facts {
    grid-template-columns: minmax(7rem, auto) 1fr;
  }
}

.activity-detail-fact {
  display: contents;
}

.activity-detail-fact dt {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-muted, #64748b);
}

.activity-detail-fact dd {
  margin: 0;
  font-size: 0.9375rem;
}

.activity-detail-user-layout {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.activity-detail-user-photo {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  object-fit: cover;
  flex-shrink: 0;
}

.activity-detail-user-photo--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-chip, rgba(148, 163, 184, 0.2));
  font-weight: 600;
  font-size: 1rem;
}

.activity-detail-user-name {
  margin: 0 0 0.15rem;
  font-size: 1rem;
  font-weight: 600;
}

.activity-detail-user-subname {
  margin: 0 0 0.35rem;
  font-size: 0.8125rem;
  color: var(--text-muted, #64748b);
}

.activity-detail-message {
  margin: 0;
  white-space: pre-wrap;
  line-height: 1.5;
}

.activity-detail-photos {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.activity-detail-photo {
  padding: 0;
  border: none;
  background: none;
  border-radius: 0.375rem;
  overflow: hidden;
  cursor: pointer;
}

.activity-detail-photo img {
  display: block;
  width: 4.5rem;
  height: 4.5rem;
  object-fit: cover;
}

.activity-detail-external {
  margin: 0.5rem 0 0;
  font-size: 0.875rem;
}

.activity-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

html[data-theme="light"] .page-body .form-input,
html[data-theme="light"] .page-body .form-textarea,
html[data-theme="light"] .page-body select.form-input {
  color: var(--text);
  background: var(--bg-input);
}

html[data-theme="light"] .suz-toolbar.card,
html[data-theme="light"] .suz-my-activities.card,
html[data-theme="light"] .suz-all-activities.card {
  background: var(--bg-card);
  color: var(--text-soft);
}

/* Dashboard — světlý motiv (panely, tabulky) */
html[data-theme="light"] .page-body-dashboard .dashboard-table td,
html[data-theme="light"] .page-body-dashboard .data-table td {
  color: var(--text-soft);
}

html[data-theme="light"] .page-body-dashboard .dashboard-table th,
html[data-theme="light"] .page-body-dashboard .data-table th {
  color: var(--text-muted);
  background: var(--bg-table-head);
}

html[data-theme="light"] .page-body-dashboard .dashboard-gauge-track {
  stroke: rgba(15, 23, 42, 0.12);
}

html[data-theme="light"] .page-body-dashboard .text-ink-muted,
html[data-theme="light"] .page-body-dashboard .text-ink-soft {
  color: var(--text-muted);
}

html[data-theme="light"] .page-body-dashboard .source-strava {
  color: var(--brand);
}

html[data-theme="light"] .page-body-dashboard .dashboard-statistics-hero-footer,
html[data-theme="light"] .page-body-dashboard .dashboard-challenge-overview-footer,
html[data-theme="light"] .page-body-dashboard .dashboard-challenge-overview-stats {
  border-top-color: var(--border);
}

html[data-theme="light"] .page-body-dashboard .dashboard-points-info-detail {
  color: var(--brand);
}

html[data-theme="light"] .page-body-dashboard .dashboard-statistics-rules-detail {
  color: var(--brand);
}

html[data-theme="light"] .page-body-dashboard .dashboard-stat-value,
html[data-theme="light"] .page-body-dashboard .dashboard-stat-value-sm,
html[data-theme="light"] .page-body-dashboard .dashboard-race-kpi-value,
html[data-theme="light"] .page-body-dashboard .dashboard-race-placement-value,
html[data-theme="light"] .page-body-dashboard .dashboard-race-placement-rank,
html[data-theme="light"] .page-body-dashboard .dashboard-race-gauge-num,
html[data-theme="light"] .page-body-dashboard .dashboard-race-gauge-time,
html[data-theme="light"] .page-body-dashboard .dashboard-gauge-num,
html[data-theme="light"] .page-body-dashboard .dashboard-gauge-value {
  color: var(--text);
}

html[data-theme="light"] .page-body-dashboard .dashboard-race-badge-success {
  background: var(--hub-badge-active-bg);
  color: var(--hub-badge-active-text);
}

html[data-theme="light"] .page-body-dashboard .dashboard-race-badge-warning {
  background: #ffedd5;
  color: #9a3412;
}

html[data-theme="light"] .page-body-dashboard .dashboard-race-badge-muted {
  background: var(--badge-neutral-bg);
  color: var(--badge-neutral-text);
}

html[data-theme="light"] .page-body-dashboard .profile-dashboard-stats-list li {
  background: var(--dashboard-tile-bg);
  color: var(--text-soft);
}

html[data-theme="light"] .page-body-dashboard .profile-challenges-source,
html[data-theme="light"] .page-body-dashboard .profile-dashboard-stats-title {
  color: var(--text-muted);
}

html[data-theme="light"] .page-body-dashboard .profile-challenges-table .data-table th,
html[data-theme="light"] .page-body-dashboard .profile-races-table .data-table th,
html[data-theme="light"] .page-body-dashboard .data-table thead {
  color: var(--text-muted);
  background: var(--bg-table-head);
}

html[data-theme="light"] .page-body-dashboard .profile-record-meta a,
html[data-theme="light"] .page-body-dashboard .profile-record-meta .link-brand {
  color: var(--brand);
}

html[data-theme="light"] .site-nav-submenu {
  background: var(--bg-card);
  border-color: var(--border);
  box-shadow: var(--shadow-md);
}

html[data-theme="light"] .site-nav-submenu-link {
  color: var(--text-soft);
}

html[data-theme="light"] .site-nav-submenu-link:hover,
html[data-theme="light"] .site-nav-submenu-link.is-active {
  background: var(--brand-soft);
  color: var(--brand);
}

html[data-theme="light"] .page-body-dashboard .dashboard-meta-list strong {
  color: var(--text);
}

/* Merch */
.merch-page {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.merch-product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1rem;
}

.merch-product-grid--dashboard .merch-product-card {
  display: flex;
  flex-direction: column;
}

.merch-product-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.merch-product-card-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.merch-product-card-placeholder {
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-muted, rgba(255, 255, 255, 0.06));
  color: var(--text-muted);
  font-size: 0.85rem;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.merch-product-card-body {
  padding: 0.85rem 1rem 1rem;
}

.merch-product-card-title {
  font-size: 1rem;
  font-weight: 600;
  margin: 0.25rem 0;
}

.merch-product-type {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}

.merch-product-card-price {
  font-weight: 600;
  margin: 0;
}

.merch-product-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 1.5rem;
  align-items: start;
}

@media (max-width: 900px) {
  .merch-product-layout {
    grid-template-columns: 1fr;
  }
}

.merch-gallery-main img {
  width: 100%;
  max-height: 420px;
  object-fit: contain;
  border-radius: var(--radius-md);
}

.merch-gallery-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.merch-gallery-thumb {
  border: 2px solid transparent;
  border-radius: var(--radius-sm);
  padding: 0;
  background: none;
  cursor: pointer;
}

.merch-gallery-thumb.is-active {
  border-color: var(--brand);
}

.merch-gallery-thumb img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  display: block;
  border-radius: calc(var(--radius-sm) - 2px);
}

.merch-product-price-lg {
  font-size: 1.35rem;
  font-weight: 700;
  margin: 0.5rem 0 0;
}

.merch-payment-fieldset {
  border: 1px solid var(--border, rgba(255, 255, 255, 0.12));
  border-radius: var(--radius-md);
  padding: 1rem 1rem 0.25rem;
  margin: 0;
  grid-column: 1 / -1;
}

.merch-payment-fieldset legend {
  padding: 0 0.35rem;
  font-weight: 600;
}

.merch-payment-details {
  margin: 0 0 1rem;
  display: grid;
  gap: 0.5rem;
}

.merch-payment-detail-row {
  display: grid;
  grid-template-columns: minmax(7rem, 10rem) 1fr;
  gap: 0.5rem 1rem;
  align-items: baseline;
}

.merch-payment-detail-row dt {
  margin: 0;
  font-size: 0.85rem;
  color: var(--text-muted);
}

.merch-payment-detail-row dd {
  margin: 0;
}

.merch-payment-qr-image {
  display: block;
  margin-inline: auto;
}

.merch-admin-payment-qr-preview {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.merch-admin-payment-qr-thumb {
  width: 88px;
  height: 88px;
  object-fit: contain;
  border-radius: var(--radius-sm);
  background: #fff;
  padding: 4px;
}

.merch-admin-photos-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.75rem;
  overflow-x: auto;
  padding-bottom: 0.35rem;
  -webkit-overflow-scrolling: touch;
}

.merch-admin-photo-thumb-wrap {
  flex: 0 0 auto;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  max-width: 72px;
}

.merch-admin-photo-thumb-btn {
  border: none;
  padding: 0;
  background: none;
  cursor: zoom-in;
  border-radius: var(--radius-sm);
  line-height: 0;
}

.merch-admin-photo-thumb-btn:hover {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

.merch-admin-photo-thumb {
  width: 64px;
  height: 64px;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-sm);
}

.merch-admin-photo-delete {
  margin: 0;
}

.merch-admin-photo-delete .btn {
  font-size: 0.7rem;
  padding: 0.2rem 0.45rem;
}

.merch-admin-photo-dialog {
  border: none;
  padding: 0;
  background: transparent;
  max-width: min(92vw, 720px);
  width: 100%;
}

.merch-admin-photo-dialog::backdrop {
  background: var(--overlay-backdrop);
}

.merch-admin-photo-dialog-inner {
  position: relative;
  padding: 0.5rem;
  background: var(--bg-card, #1e293b);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg, 0 12px 40px rgba(0, 0, 0, 0.35));
}

.merch-admin-photo-dialog-img {
  display: block;
  max-width: 100%;
  max-height: min(80vh, 640px);
  width: auto;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
}

.merch-admin-photo-dialog-close {
  position: absolute;
  top: 0.35rem;
  right: 0.5rem;
  z-index: 1;
  border: none;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.dashboard-merch-page {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.dashboard-merch-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
}

.dashboard-merch-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0;
  flex: 1 1 auto;
}

.dashboard-merch-lead {
  flex: 1 1 100%;
  margin: 0;
  color: var(--text-muted);
}

.dashboard-merch-section-title {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 1rem;
}

.merch-dialog {
  border: none;
  padding: 0;
  background: transparent;
  max-width: min(420px, 92vw);
}

.merch-dialog::backdrop {
  background: var(--overlay-backdrop);
}

.merch-dialog-inner {
  padding: 1.25rem;
  position: relative;
}

.merch-dialog-close {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  border: none;
  background: none;
  font-size: 1.5rem;
  cursor: pointer;
  color: var(--text-muted);
}

.merch-product-grid--dashboard .merch-quick-info {
  margin: 0 0.75rem 0.75rem;
  align-self: flex-start;
}

.merch-cart-page .merch-cart-layout {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 900px) {
  .merch-cart-page .merch-cart-layout {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}

.merch-cart-line-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.merch-cart-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border-subtle, #e8e8e8);
}

.merch-cart-line-info {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.merch-cart-subtotal,
.merch-cart-total {
  margin-top: 1rem;
  font-size: 1.05rem;
}

.merch-fulfillment-fieldset {
  border: none;
  margin: 0 0 1rem;
  padding: 0;
}

.merch-packeta-fields[hidden] {
  display: none !important;
}

.merch-packeta-manual {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.12));
}

.merch-packeta-manual .form-label {
  margin-bottom: 0.25rem;
}

.merch-packeta-widget {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.merch-packeta-picked {
  padding: 0.75rem 0.9rem;
  border-radius: 0.5rem;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
}

.merch-packeta-picked-title {
  margin: 0 0 0.25rem;
  font-weight: 600;
}

.merch-packeta-change-btn {
  margin-top: 0.5rem;
}

.merch-packeta-map-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: var(--overlay-backdrop);
  color-scheme: var(--color-scheme);
}

.merch-packeta-map-modal[hidden] {
  display: none !important;
}

body.merch-packeta-map-open {
  overflow: hidden;
}

.merch-packeta-map-dialog {
  width: min(720px, 100%);
  max-height: min(90vh, 820px);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem;
  overflow: hidden;
}

.merch-packeta-map-dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.merch-packeta-map-dialog-head .section-title {
  margin: 0;
}

.merch-packeta-map {
  flex: 1 1 auto;
  min-height: 320px;
  border-radius: 0.5rem;
  border: 1px solid var(--border);
  overflow: hidden;
}

.merch-packeta-map-search-wrap {
  margin: 0;
}

.merch-packeta-map-layout {
  display: grid;
  gap: 0.75rem;
  min-height: 320px;
}

@media (min-width: 720px) {
  .merch-packeta-map-layout {
    grid-template-columns: 1fr 240px;
    align-items: stretch;
  }
}

.merch-packeta-branch-list-wrap {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.merch-packeta-branch-list {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  max-height: 320px;
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  background: var(--bg-elevated);
}

.merch-packeta-branch-list-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  width: 100%;
  padding: 0.55rem 0.65rem;
  border: none;
  border-bottom: 1px solid var(--border);
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.merch-packeta-branch-list-item:hover {
  background: var(--bg-hover);
}

.merch-packeta-branch-list-item span {
  font-size: 0.8rem;
  color: var(--text-muted);
}

.merch-packeta-branch-list-empty {
  padding: 0.75rem;
  font-size: 0.875rem;
}

.merch-packeta-popup .merch-packeta-popup-pick {
  margin-top: 0.5rem;
}

.merch-order-delete-card .text-danger {
  color: var(--alert-error-text, #f87171);
}

.merch-order-delete-btn {
  border-color: rgba(248, 113, 113, 0.45);
  color: var(--alert-error-text, #f87171);
}

.merch-checkout-lines-mini {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.875rem;
}

.merch-admin-checkout-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.merch-admin-checkout-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  align-items: flex-end;
}

.merch-admin-inline-form {
  display: inline-flex;
  align-items: flex-end;
}

.merch-order-detail-grid {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 960px) {
  .merch-order-detail-grid {
    grid-template-columns: 1fr 1fr;
  }

  .merch-order-detail-grid > section:first-child {
    grid-column: 1 / -1;
  }
}

.merch-order-detail-status-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  align-items: flex-end;
}

.merch-order-detail-email-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.tk-payment-email-composer {
  padding-top: 1rem;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
}

.tk-payment-email-preview-box {
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0.75rem;
  overflow: hidden;
  background: #fff;
}

.tk-payment-email-preview-meta {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.7rem 0.9rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.28);
  background: var(--surface-muted, #f8fafc);
  font-size: 0.8rem;
  color: var(--ink-muted, #64748b);
}

.tk-payment-email-preview-meta strong {
  color: var(--ink, #0f172a);
  font-size: 0.95rem;
  font-weight: 650;
  word-break: break-word;
}

.tk-payment-email-preview-body {
  padding: 0.9rem 1rem 1rem;
  max-height: 28rem;
  overflow: auto;
  font-size: 0.925rem;
  line-height: 1.5;
}

.tk-payment-email-preview-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.75rem 0;
}

.tk-payment-email-preview-body table td,
.tk-payment-email-preview-body table th {
  padding: 0.35rem 0.5rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.25);
  text-align: left;
  vertical-align: top;
}

.admin-mail-log-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  gap: 0.75rem;
}

.admin-mail-log-stat {
  padding: 0.85rem 1rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0.75rem;
  background: #fff;
}

.admin-mail-log-stat.is-warn {
  border-color: rgba(245, 158, 11, 0.45);
  background: #fffbeb;
}

.admin-mail-log-stat.is-danger {
  border-color: rgba(239, 68, 68, 0.4);
  background: #fef2f2;
}

.admin-mail-log-stat-value {
  display: block;
  font-size: 1.4rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.2;
}

.admin-mail-log-stat-label {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.8rem;
  color: var(--ink-muted, #64748b);
}

.admin-mail-log-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: flex-end;
}

.admin-mail-log-filters .form-field {
  flex: 0 1 10rem;
}

.admin-mail-log-filter-q {
  flex: 1 1 14rem !important;
}

.admin-mail-log-filter-actions {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.admin-mail-log-diag {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.25rem;
}

.admin-mail-log-row-failed td {
  background: rgba(254, 242, 242, 0.55);
}

.admin-bulk-mail-user-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: flex-end;
  margin-bottom: 0.65rem;
}

.admin-bulk-mail-user-toolbar > .form-input {
  flex: 1 1 14rem;
}

.admin-bulk-mail-user-sort {
  display: grid;
  gap: 0.25rem;
  flex: 0 0 auto;
  min-width: 9rem;
}

.admin-bulk-mail-user-sort .form-select {
  min-width: 9rem;
}

.admin-bulk-mail-user-tab {
  appearance: none;
  border: 1px solid rgba(148, 163, 184, 0.45);
  background: #fff;
  color: var(--ink-muted, #64748b);
  border-radius: 999px;
  padding: 0.25rem 0.65rem;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
}

.admin-bulk-mail-user-tab:hover,
.admin-bulk-mail-user-tab:focus-visible {
  border-color: var(--brand, #1d4ed8);
  color: var(--brand, #1d4ed8);
}

.admin-bulk-mail-user-tab.is-active {
  background: var(--admin-blue-soft, #eff6ff);
  border-color: var(--brand, #1d4ed8);
  color: var(--brand, #1d4ed8);
}

.admin-bulk-mail-user-list {
  display: grid;
  gap: 0.35rem;
  max-height: 18rem;
  overflow: auto;
  padding: 0.65rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0.65rem;
  background: var(--surface-muted, #f8fafc);
}

.admin-bulk-mail-user-page {
  display: grid;
  gap: 0.35rem;
}

.admin-bulk-mail-user-page[hidden] {
  display: none !important;
}

.admin-bulk-mail-user-page.is-filtering + .admin-bulk-mail-user-page.is-filtering {
  margin-top: 0.35rem;
  padding-top: 0.35rem;
  border-top: 1px dashed rgba(148, 163, 184, 0.35);
}

.admin-bulk-mail-user-item {
  margin: 0;
}

.admin-bulk-mail-user-item[hidden],
.admin-bulk-mail-user-item.hidden {
  display: none !important;
}

.admin-bulk-mail-layout-section {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(148, 163, 184, 0.25);
}

.admin-bulk-mail-logo-sources,
.admin-bulk-mail-scopes {
  display: grid;
  gap: 0.45rem;
}

.admin-bulk-mail-layout-tools {
  display: grid;
  gap: 0.75rem;
}

.admin-bulk-mail-preset-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: flex-end;
}

.admin-bulk-mail-preset-row .form-field {
  flex: 1 1 14rem;
}

.admin-bulk-mail-logo-preview {
  margin-top: 0.5rem;
}

.admin-bulk-mail-logo-preview img {
  max-width: 160px;
  max-height: 120px;
  border-radius: 0.5rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: #fff;
}

.admin-bulk-mail-preset-manager {
  margin-top: 1rem;
}

.admin-bulk-mail-preset-list {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.admin-bulk-mail-preset-list li {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: center;
  justify-content: space-between;
}

.admin-bulk-mail-sample-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.85rem;
}

.merch-processing-payment-fields.is-hidden {
  display: none;
}

.merch-processing-payment-fields {
  margin-top: 0.75rem;
  padding: 1rem;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 0.65rem;
  background: var(--surface-muted, #f8fafc);
}

.merch-order-payment-preview {
  padding: 1rem;
  border: 1px dashed var(--border, #cbd5e1);
  border-radius: 0.65rem;
  background: var(--surface-muted, #f8fafc);
}

.merch-order-payment-qr img {
  border-radius: 0.5rem;
  border: 1px solid var(--border, #e2e8f0);
  background: #fff;
}

.merch-list-table .merch-list-photo-cell {
  width: 56px;
  padding: 0.35rem 0.5rem;
  vertical-align: middle;
}

.merch-list-thumb-btn {
  position: relative;
  border: none;
  padding: 0;
  background: none;
  cursor: zoom-in;
  border-radius: var(--radius-sm);
  line-height: 0;
  display: block;
}

.merch-list-thumb-btn:hover {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}

.merch-list-thumb {
  width: 48px;
  height: 48px;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-sm);
  background: var(--bg-muted, #f1f5f9);
}

.merch-list-thumb-count {
  position: absolute;
  right: 2px;
  bottom: 2px;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1;
  padding: 0.15rem 0.3rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
}

.merch-list-thumb-placeholder {
  display: inline-block;
  width: 48px;
  text-align: center;
  color: var(--text-muted);
}

.merch-list-table tbody tr {
  vertical-align: middle;
}

.merch-list-photo-dialog .merch-admin-photo-dialog-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

.merch-list-photo-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  border: none;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}

.merch-list-photo-nav--prev {
  left: 0.5rem;
}

.merch-list-photo-nav--next {
  right: 0.5rem;
}

.merch-list-photo-nav:hover {
  background: rgba(0, 0, 0, 0.75);
}

.merch-list-photo-counter {
  color: var(--text-muted, #94a3b8);
  margin: 0;
}

.merch-order-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.merch-cart-added-dialog .merch-dialog-inner {
  min-width: min(360px, 92vw);
  text-align: center;
}

.merch-cart-added-title {
  margin: 0 0 0.5rem;
  font-size: 1.25rem;
}

.merch-cart-added-lead {
  margin: 0 0 1.25rem;
}

.merch-cart-added-count {
  display: block;
  margin-top: 0.35rem;
  font-weight: 600;
  color: var(--text, inherit);
}

.merch-cart-added-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.merch-cart-lines-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-bottom: 1rem;
}

.merch-cart-lines-head .section-title {
  margin: 0;
}

.merch-cart-head .btn {
  flex-shrink: 0;
}

.page-tk {
  --tk-layout-max-width: 60rem;
  overflow-x: clip;
  max-width: 100%;
}

.page-tk .page-main {
  max-width: var(--tk-layout-max-width);
  width: 100%;
  margin-inline: auto;
  min-width: 0;
  overflow-x: clip;
  box-sizing: border-box;
}

.page-tk .tk-page {
  max-width: 100%;
  width: 100%;
  min-width: 0;
  overflow-x: clip;
}

.tk-page-hero {
  display: grid;
  gap: 1rem 1.25rem;
  padding: clamp(1rem, 3vw, 1.5rem);
  overflow: hidden;
  min-width: 0;
  align-items: center;
}

.tk-page-hero--has-logo {
  grid-template-columns: auto minmax(0, 1fr);
}

.tk-page-hero-logo {
  flex-shrink: 0;
  min-width: 0;
}

.tk-page-hero-logo img {
  display: block;
  width: auto;
  max-width: min(6.5rem, 30vw);
  max-height: min(6.5rem, 24vw);
  object-fit: contain;
  object-position: left center;
}

.tk-page-hero-inner {
  min-width: 0;
}

@media (min-width: 768px) {
  .tk-page-hero--has-logo:not(.tk-page-hero--has-photo) {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .tk-page-hero--has-logo.tk-page-hero--has-photo {
    grid-template-columns: auto minmax(0, 1fr) min(240px, 32%);
  }

  .tk-page-hero:not(.tk-page-hero--has-logo).tk-page-hero--has-photo {
    grid-template-columns: minmax(0, 1fr) min(280px, 36%);
  }

  .tk-page-hero--has-logo .tk-page-hero-logo img {
    max-width: min(7.5rem, 12vw);
    max-height: min(7.5rem, 14vh);
  }
}

.tk-page-hero-kicker {
  margin: 0 0 0.35rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.tk-page-hero-title {
  margin-bottom: 0.5rem;
  overflow-wrap: break-word;
  word-break: normal;
  font-size: clamp(1.5rem, 4.5vw, 1.875rem);
  color: var(--text);
}

.tk-page-hero-lead {
  margin-bottom: 0.75rem;
  color: var(--text-soft);
}

.tk-page-hero-meta {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--text-muted);
}

.tk-page-hero-photo {
  min-width: 0;
}

.tk-page-hero-photo img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-md, 0.5rem);
  object-fit: cover;
}

.tk-page-tabs {
  flex-wrap: nowrap;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.tk-page-content {
  min-height: 12rem;
  min-width: 0;
  overflow-x: clip;
  padding: clamp(1rem, 3vw, 1.5rem);
}

.race-results-ext {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.race-results-ext__host {
  min-height: 12rem;
  width: 100%;
}

.page-tk .tk-page-body {
  color: var(--text-soft);
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.page-tk .tk-page-body :is(h2, h3, h4) {
  color: var(--text);
}

.page-tk .tk-page-body :is(p, li, blockquote, td, th, span, div, strong, em, b, i, u, s, sub, sup) {
  color: inherit;
}

.page-tk .tk-page-body a {
  color: var(--accent-link);
  text-decoration: underline;
}

.page-tk .tk-page-body img,
.page-tk .tk-page-body .site-page-inline-image,
.page-tk .tk-page-body .site-page-image-lightbox {
  max-width: 100%;
}

.page-tk .tk-page-body table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.page-tk .tk-page-body pre,
.page-tk .tk-page-body code {
  max-width: 100%;
  overflow-x: auto;
  white-space: pre-wrap;
  word-break: break-word;
}

.page-tk .site-page-map-frame {
  max-width: 100%;
  overflow: hidden;
  border-radius: var(--radius-lg);
}

.page-tk .site-page-map-frame iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: min(360px, 60vh);
  border: 0;
}

.page-tk .site-page-gallery-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.875rem;
  align-items: start;
}

@media (min-width: 640px) {
  .page-tk .site-page-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }
}

@media (min-width: 900px) {
  .page-tk .site-page-gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
  }
}

.page-tk .site-page-gallery-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  background: var(--surface);
  border-radius: var(--radius-lg);
  border: 1px solid var(--surface-line);
  overflow: hidden;
}

.page-tk .site-page-gallery-thumb img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  -webkit-object-fit: contain;
  border: 0;
  border-radius: 0;
}

.page-tk .site-page-gallery-caption {
  font-size: 0.875rem;
}

.page-tk .shared-event-detail-register,
.page-tk .shared-event-detail-register-form,
.page-tk .form-input,
.page-tk .form-textarea,
.page-tk select.form-input {
  max-width: 100%;
  min-width: 0;
}

.tk-registration-consents-fieldset {
  display: grid;
  gap: 0.75rem;
}

.tk-registration-consent-check {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  margin-bottom: 0;
  cursor: pointer;
}

.tk-registration-consent-check input[type="checkbox"] {
  margin-top: 0.2rem;
  flex-shrink: 0;
}

.tk-registration-consent-link {
  display: inline;
  margin-left: 0.25rem;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  cursor: pointer;
}

.tk-consent-dialog-body {
  padding: 0 1.25rem 1rem;
  max-height: min(60vh, 28rem);
  overflow: auto;
}

.page-tk .table-shell {
  max-width: 100%;
}

.page-tk .tk-page-race-link {
  overflow-wrap: anywhere;
  padding-inline: 0.25rem;
}

.page-tk .text-ink-muted,
.page-tk .page-lead {
  color: var(--text-muted);
}

html[data-theme="light"] .page-tk .tk-page-body {
  color: var(--text-soft);
}

html[data-theme="light"] .page-tk .tk-page-body :is(h2, h3, h4) {
  color: var(--text);
}

.admin-tk-tab-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.admin-tk-tab-card {
  padding: 1rem 1.25rem;
}

.admin-tk-tab-card-links {
  margin-top: 0.25rem;
}

.admin-tk-dashboard-page .admin-form-wide {
  max-width: none;
}

@media (min-width: 1024px) {
  .admin-tk-dashboard-page .admin-tk-tab-grid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  }

  .admin-tk-dashboard-page .grid.lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.admin-tk-quick-actions .btn {
  margin: 0;
}

.tk-overview-stats {
  padding: 1.25rem 1.5rem;
}

.tk-overview-stats-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
}

.tk-overview-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
  background: rgba(148, 163, 184, 0.06);
}

.tk-overview-stat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  color: var(--accent, #ea580c);
  background: rgba(234, 88, 12, 0.1);
}

.tk-overview-stat-value {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--text);
}

.tk-overview-stat-label {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.tk-hub-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
}

.tk-hub-card {
  display: flex;
  flex-direction: column;
  padding: 1.25rem 1.35rem;
  gap: 1rem;
  text-decoration: none;
  color: inherit;
  transition: transform 0.15s ease, border-color 0.15s ease;
}

a.tk-hub-card:hover,
a.tk-hub-card:focus-visible {
  transform: translateY(-2px);
  border-color: var(--accent, #ea580c);
  outline: none;
}

.tk-hub-card-logo {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: rgba(148, 163, 184, 0.08);
}

.tk-hub-card-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.tk-hub-card-title {
  margin: 0 0 0.35rem;
  font-size: 1.25rem;
  font-weight: 700;
}

.tk-hub-card-lead,
.tk-hub-card-meta,
.tk-hub-card-stats {
  margin: 0 0 0.5rem;
  color: var(--text-muted);
  font-size: 0.9rem;
}

.tk-hub-card-cta {
  margin-top: 0.5rem;
  align-self: flex-start;
  pointer-events: none;
}

.tk-hub-card-secondary {
  display: inline-block;
  margin-top: 0.35rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--accent, #ea580c);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.tk-product-switcher {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
}

.tk-product-switcher-back {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--accent, #ea580c);
  text-decoration: none;
}

.tk-product-switcher-back:hover,
.tk-product-switcher-back:focus-visible {
  text-decoration: underline;
}

.tk-product-switcher-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.tk-product-switcher-item {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.75rem;
  border: 1px solid var(--surface-line);
  border-radius: var(--radius-lg);
  background: rgba(148, 163, 184, 0.06);
  color: var(--text);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
}

.tk-product-switcher-item:hover,
.tk-product-switcher-item:focus-visible {
  border-color: var(--accent, #ea580c);
  outline: none;
}

.tk-product-switcher-item.is-current {
  border-color: var(--accent, #ea580c);
  color: var(--accent, #ea580c);
  background: rgba(234, 88, 12, 0.1);
}

.tk-page-gallery-grid {
  margin-top: 1.5rem;
}

.tk-startlist-public .tk-startlist-table {
  font-size: 0.875rem;
}

.tk-startlist-public .tk-startlist-scroll .tk-startlist-table thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--bg-card);
  background-clip: padding-box;
  box-shadow: 0 1px 0 var(--border);
}

.tk-startlist-public .tk-startlist-table tr.tk-startlist-team td {
  border-top-color: transparent;
  border-bottom-color: transparent;
}

.tk-startlist-public .tk-startlist-table tr.tk-startlist-team--0 td {
  background: rgba(59, 130, 246, 0.11);
  box-shadow: inset 3px 0 0 rgba(59, 130, 246, 0.55);
}

.tk-startlist-public .tk-startlist-table tr.tk-startlist-team--1 td {
  background: rgba(34, 197, 94, 0.11);
  box-shadow: inset 3px 0 0 rgba(34, 197, 94, 0.55);
}

.tk-startlist-public .tk-startlist-table tr.tk-startlist-team--2 td {
  background: rgba(234, 179, 8, 0.14);
  box-shadow: inset 3px 0 0 rgba(202, 138, 4, 0.65);
}

.tk-startlist-public .tk-startlist-table tr.tk-startlist-team--3 td {
  background: rgba(168, 85, 247, 0.11);
  box-shadow: inset 3px 0 0 rgba(168, 85, 247, 0.55);
}

.tk-startlist-public .tk-startlist-table tr.tk-startlist-team--4 td {
  background: rgba(236, 72, 153, 0.11);
  box-shadow: inset 3px 0 0 rgba(236, 72, 153, 0.55);
}

.tk-startlist-public .tk-startlist-table tr.tk-startlist-team--5 td {
  background: rgba(20, 184, 166, 0.11);
  box-shadow: inset 3px 0 0 rgba(20, 184, 166, 0.55);
}

.shared-event-admin-participants-table tr.tk-admin-team-row td {
  border-top-color: transparent;
  border-bottom-color: transparent;
}

.shared-event-admin-participants-table tr.tk-admin-team-row--0 td {
  background: rgba(59, 130, 246, 0.11);
  box-shadow: inset 3px 0 0 rgba(59, 130, 246, 0.55);
}

.shared-event-admin-participants-table tr.tk-admin-team-row--1 td {
  background: rgba(34, 197, 94, 0.11);
  box-shadow: inset 3px 0 0 rgba(34, 197, 94, 0.55);
}

.shared-event-admin-participants-table tr.tk-admin-team-row--2 td {
  background: rgba(234, 179, 8, 0.14);
  box-shadow: inset 3px 0 0 rgba(202, 138, 4, 0.65);
}

.shared-event-admin-participants-table tr.tk-admin-team-row--3 td {
  background: rgba(168, 85, 247, 0.11);
  box-shadow: inset 3px 0 0 rgba(168, 85, 247, 0.55);
}

.shared-event-admin-participants-table tr.tk-admin-team-row--4 td {
  background: rgba(236, 72, 153, 0.11);
  box-shadow: inset 3px 0 0 rgba(236, 72, 153, 0.55);
}

.shared-event-admin-participants-table tr.tk-admin-team-row--5 td {
  background: rgba(20, 184, 166, 0.11);
  box-shadow: inset 3px 0 0 rgba(20, 184, 166, 0.55);
}

.tk-startlist-captain-badge {
  display: inline-block;
  margin-left: 0.375rem;
  padding: 0.0625rem 0.375rem;
  border-radius: 0.25rem;
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  vertical-align: middle;
  color: #ffffff;
  background: rgba(var(--brand-rgb, 59, 130, 246), 0.85);
}

.tk-admin-captain-badge {
  display: inline-block;
  margin-left: 0.375rem;
  padding: 0.0625rem 0.375rem;
  border-radius: 0.25rem;
  font-size: 0.6875rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  vertical-align: middle;
  color: var(--brand);
  background: rgba(var(--brand-rgb, 59, 130, 246), 0.12);
  border: 1px solid rgba(var(--brand-rgb, 59, 130, 246), 0.25);
}

.tk-page-banners {
  padding: clamp(1rem, 3vw, 1.5rem);
}

.tk-page-banners-section + .tk-page-banners-section {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}

.tk-page-banners-title {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
  text-align: center;
}

.tk-page-banners-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1rem 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tk-page-banners-item {
  margin: 0;
}

.tk-page-banners-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.5rem;
  padding: 0.35rem 0.5rem;
}

.tk-page-banners-logo {
  display: block;
  max-width: min(160px, 28vw);
  max-height: 72px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.tk-admin-banner-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 160px;
  min-height: 80px;
  padding: 0.5rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--surface-muted, rgba(255, 255, 255, 0.04));
}

.tk-admin-banner-preview img {
  max-width: 100%;
  max-height: 72px;
  object-fit: contain;
}

.tk-admin-banner-preview--empty {
  color: var(--text-muted);
  font-size: 0.875rem;
}

.admin-detail-table-shell {
  max-width: 42rem;
}

.admin-detail-table th[scope="row"] {
  width: 11rem;
  font-weight: 600;
  color: var(--text-muted, #64748b);
  background: var(--surface-muted, #f8fafc);
  white-space: nowrap;
  vertical-align: top;
}

.admin-detail-table td {
  font-weight: 500;
}

.admin-page-toolbar--nested {
  align-items: center;
  gap: 0.75rem;
}

/* TK — ruční zadání štafetových časů (široká tabulka) */
.tk-relay-entry-shell {
  overflow: visible;
}

.tk-relay-entry-scroll {
  max-height: min(75vh, 48rem);
  overflow: auto;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.tk-relay-entry-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.tk-relay-entry-table .tk-relay-col-sticky {
  position: sticky;
  z-index: 1;
  background: var(--bg-card);
}

.tk-relay-entry-table thead .tk-relay-col-sticky {
  top: 0;
  z-index: 5;
  background: var(--bg-table-head);
}

.tk-relay-entry-table .tk-relay-col-category {
  box-shadow: 4px 0 8px -4px rgba(15, 23, 42, 0.1);
}

.tk-relay-entry-table .tk-relay-col-bib {
  left: 0;
  min-width: 3.75rem;
  max-width: 3.75rem;
}

.tk-relay-entry-table .tk-relay-col-name {
  left: 3.75rem;
  min-width: 8.5rem;
  max-width: 11rem;
}

.tk-relay-entry-table .tk-relay-col-team {
  left: 12.25rem;
  min-width: 7rem;
  max-width: 9rem;
}

.tk-relay-entry-table .tk-relay-col-category {
  left: 19.25rem;
  min-width: 4.25rem;
  max-width: 5rem;
}

.tk-relay-entry-table .tk-relay-col-name,
.tk-relay-entry-table .tk-relay-col-team {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tk-relay-entry-table .tk-relay-col-run {
  min-width: 4.35rem;
  width: 4.35rem;
}

.tk-relay-entry-table .tk-relay-col-total {
  min-width: 4.75rem;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.tk-relay-entry-table .tk-relay-run-input,
.form-input-compact {
  width: 100%;
  min-width: 0;
  padding: 0.35rem 0.45rem;
  font-size: 0.8125rem;
  line-height: 1.25;
  font-variant-numeric: tabular-nums;
}

.tk-relay-entry-table th.tk-relay-col-run,
.tk-relay-entry-table th.tk-relay-col-total {
  text-align: center;
  white-space: nowrap;
}

.tk-relay-entry-table td.tk-relay-col-run {
  padding-inline: 0.35rem;
}

@media (max-width: 767px) {
  .tk-relay-entry-table .tk-relay-col-name {
    min-width: 6.5rem;
    max-width: 7.5rem;
  }

  .tk-relay-entry-table .tk-relay-col-team {
    left: 10.25rem;
    min-width: 5.5rem;
    max-width: 6.5rem;
  }

  .tk-relay-entry-table .tk-relay-col-category {
    left: 15.75rem;
  }
}

/* TK — veřejný web, mobil */
@media (max-width: 767px) {
  .page-body.page-tk {
    overflow-x: clip;
  }

  /* Logo + foto: foto v 1. sloupci roztáhne grid a titul se zalamuje po znacích */
  .tk-page-hero--has-photo .tk-page-hero-photo {
    grid-column: 1 / -1;
    width: 100%;
    max-width: 100%;
  }

  .tk-page-hero--has-logo.tk-page-hero--has-photo {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
  }

  .tk-page-hero--has-logo.tk-page-hero--has-photo .tk-page-hero-inner {
    min-width: 0;
  }

  .tk-page-hero-title {
    text-wrap: balance;
  }

  .page-tk .tk-page-hero,
  .page-tk .tk-page-content,
  .page-tk .tk-startlist-public,
  .page-tk .shared-event-detail-content-grid,
  .page-tk .shared-event-detail-register,
  .page-tk .shared-event-detail-register-form,
  .page-tk .race-detail-results,
  .page-tk .tk-overview-stats,
  .page-tk .gps-track-profile {
    max-width: 100%;
    min-width: 0;
  }

  .page-tk .tk-page-tabs {
    flex-wrap: nowrap;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    gap: 0.375rem;
    margin-bottom: 1rem;
    padding-bottom: 0.25rem;
    scrollbar-width: thin;
  }

  .page-tk .tk-page-tabs .view-tab {
    flex-shrink: 0;
    padding: 0.45rem 0.85rem;
    font-size: 0.8125rem;
  }

  .page-tk .tk-page-content.card-body {
    padding: 1rem;
  }

  .page-tk .tk-overview-stats {
    padding: 1rem;
  }

  .page-tk .tk-overview-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
  }

  .page-tk .tk-overview-stat {
    padding: 0.75rem 0.85rem;
  }

  .page-tk .tk-overview-stat-value {
    font-size: 1.25rem;
  }

  .page-tk .tk-overview-stats-links {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .page-tk .tk-editions-picker {
    flex-wrap: nowrap;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
    margin-inline: 0;
    padding-inline: 0;
  }

  .page-tk .tk-editions-picker .admin-filter-pill {
    flex-shrink: 0;
  }

  .page-tk .shared-event-register-tabs {
    flex-wrap: nowrap;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
  }

  .page-tk .shared-event-register-tabs .admin-filter-pill {
    flex-shrink: 0;
  }

  .page-tk .table-shell {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }

  .page-tk .records-table-scroll,
  .page-tk .tk-startlist-scroll {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    max-height: none;
    overflow-x: auto;
    overflow-y: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }

  .page-tk .tk-startlist-table,
  .page-tk .table-shell .data-table {
    width: max-content;
    min-width: 36rem;
  }

  .page-tk .race-detail-results .records-table-scroll {
    max-height: none;
  }

  .page-tk .shared-event-detail-content-grid.tk-map-content-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-tk .shared-event-detail-desc,
  .page-tk .shared-event-detail-map,
  .page-tk .shared-event-detail-gps-profile {
    padding: 1rem;
  }

  .page-tk .tk-public-member .grid,
  .page-tk .shared-event-detail-register-form .grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .page-tk .tk-page-banners-grid {
    gap: 0.75rem 1rem;
  }

  .page-tk .tk-page-banners-logo {
    max-width: min(120px, 40vw);
    max-height: 56px;
  }

  .page-tk .flex.flex-wrap.items-center.justify-between.gap-3 {
    align-items: flex-start;
  }
}

@media print {
  .admin-shell-sidebar,
  .admin-shell-topbar,
  .admin-page-toolbar,
  .no-print,
  .tk-team-members-section .js-column-filter-row,
  .tk-team-members-section form,
  .tk-team-members-section .admin-actions,
  .tk-team-members-section th:last-child,
  .tk-team-members-section td:last-child {
    display: none !important;
  }

  .admin-shell-main {
    margin: 0 !important;
    padding: 0 !important;
  }

  .tk-team-members-section .card-body {
    padding: 0 !important;
  }
}

/* Kalendář */
.calendar-widget {
  margin-top: 0.5rem;
}

.calendar-widget-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.calendar-widget-nav {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.calendar-widget-title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
}

.calendar-widget-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  background: var(--surface-chip);
  color: var(--text);
  text-decoration: none;
  font-size: 1.35rem;
  line-height: 1;
}

.calendar-widget-nav-btn:hover {
  border-color: rgba(251, 146, 60, 0.6);
  color: var(--accent-link);
}

.calendar-widget-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}

.calendar-widget-type-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  border: 0;
  margin: 0;
  padding: 0;
}

.calendar-type-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 0.8125rem;
  cursor: pointer;
}

.calendar-type-chip input {
  margin: 0;
}

.calendar-grid-weekdays,
.calendar-grid-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
}

.calendar-grid-weekday {
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ink-muted);
  padding: 0.25rem 0;
}

.calendar-grid-day {
  min-height: 4.75rem;
  border: 1px solid var(--border);
  border-radius: 0.65rem;
  background: var(--bg-card);
}

.calendar-grid-day.is-outside {
  opacity: 0.45;
}

.calendar-grid-day.is-today {
  border-color: color-mix(in srgb, var(--brand) 55%, var(--border));
  background: color-mix(in srgb, var(--brand) 10%, var(--bg-card));
}

.calendar-grid-day.is-today .calendar-grid-day-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.625rem;
  min-height: 1.625rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-weight: 700;
}

.calendar-grid-day.is-today.is-selected {
  border-color: rgba(251, 146, 60, 0.85);
  box-shadow: inset 0 0 0 1px rgba(251, 146, 60, 0.45);
  background: color-mix(in srgb, var(--brand) 14%, var(--bg-card));
}

.calendar-grid-day.is-selected {
  border-color: rgba(251, 146, 60, 0.75);
  box-shadow: inset 0 0 0 1px rgba(251, 146, 60, 0.35);
}

.calendar-grid-day.is-highlighted {
  background: linear-gradient(180deg, rgba(251, 191, 36, 0.22) 0%, rgba(251, 191, 36, 0.1) 100%);
  border-color: rgba(245, 158, 11, 0.55);
}

.calendar-grid-day.is-highlighted.is-selected {
  border-color: rgba(251, 146, 60, 0.9);
  box-shadow: inset 0 0 0 2px rgba(251, 146, 60, 0.45);
}

.calendar-grid-day-link {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  height: 100%;
  padding: 0.45rem;
  color: inherit;
  text-decoration: none;
}

.calendar-grid-day-num {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text);
}

.calendar-grid-dots {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem;
  align-content: flex-start;
  margin-top: auto;
}

.calendar-grid-dot {
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 999px;
  flex-shrink: 0;
  background: var(--calendar-accent, var(--ink-muted));
}

.calendar-event--challenge { --calendar-accent: #2563eb; }
.calendar-event--race { --calendar-accent: #dc2626; }
.calendar-event--shared_event { --calendar-accent: #16a34a; }
.calendar-event--info { --calendar-accent: #7c3aed; }
.calendar-event--user { --calendar-accent: #0891b2; }

.calendar-event--color-blue { --calendar-accent: #2563eb; }
.calendar-event--color-red { --calendar-accent: #dc2626; }
.calendar-event--color-green { --calendar-accent: #16a34a; }
.calendar-event--color-violet { --calendar-accent: #7c3aed; }
.calendar-event--color-orange { --calendar-accent: #ea580c; }
.calendar-event--color-amber { --calendar-accent: #d97706; }
.calendar-event--color-pink { --calendar-accent: #db2777; }
.calendar-event--color-cyan { --calendar-accent: #0891b2; }
.calendar-event--color-slate { --calendar-accent: #64748b; }

.calendar-event-color-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.calendar-event-color-option {
  position: relative;
  margin: 0;
  cursor: pointer;
}

.calendar-event-color-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.calendar-event-color-swatch {
  display: block;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  background: var(--calendar-accent, var(--ink-muted));
  border: 2px solid transparent;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.08);
}

.calendar-event-color-input:checked + .calendar-event-color-swatch {
  border-color: var(--text);
  box-shadow: 0 0 0 2px var(--bg-card), 0 0 0 4px var(--calendar-accent, var(--text));
}

.calendar-day-detail {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.calendar-month-split {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(240px, 0.9fr);
  gap: 1.25rem;
  align-items: start;
}

.calendar-month-split-calendar {
  min-width: 0;
}

.calendar-day-detail-panel {
  min-height: 18rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--surface-chip);
}

.calendar-day-detail-panel .calendar-day-detail-title {
  margin: 0 0 0.85rem;
}

.calendar-day-detail-panel .calendar-event-list {
  max-height: 28rem;
  overflow: auto;
}

@media (max-width: 900px) {
  .calendar-month-split {
    grid-template-columns: 1fr;
  }

  .calendar-day-detail-panel {
    min-height: auto;
  }
}

.calendar-day-detail-title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  font-weight: 700;
}

.calendar-event-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

.calendar-event-item {
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--border);
  border-left: 4px solid var(--calendar-accent, var(--border-strong));
  border-radius: 0.65rem;
  background: var(--surface-chip);
}

.calendar-event-item-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.75rem;
  color: var(--ink-muted);
  margin-bottom: 0.25rem;
}

.calendar-event-title {
  margin: 0;
  font-weight: 600;
}

.calendar-event-meta,
.calendar-event-desc {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.calendar-event-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.55rem;
}

.event-social-share {
  margin: 0.5rem 0 1rem;
}

.btn-facebook-share {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

.btn-facebook-share-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 0.2rem;
  background: #1877f2;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  font-family: Helvetica, Arial, sans-serif;
}

.share-qr-buttons .btn-facebook-share {
  flex: 0 0 auto;
}

.calendar-event-delete-inline {
  display: inline-flex;
  margin: 0;
}

.calendar-week-grid {
  display: grid;
  gap: 0.5rem;
}

.calendar-week-grid-head,
.calendar-week-grid-body {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
}

.calendar-week-grid-head-cell {
  text-align: center;
  padding: 0.35rem 0.25rem;
  border-bottom: 1px solid var(--border);
}

.calendar-week-grid-head-cell.is-today .calendar-week-grid-daynum {
  background: var(--brand);
  color: #fff;
  font-weight: 700;
}

.calendar-week-grid-weekday {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ink-muted);
}

.calendar-week-grid-daynum {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.75rem;
  min-height: 1.75rem;
  margin-top: 0.15rem;
  border-radius: 999px;
  color: var(--text);
  text-decoration: none;
  font-weight: 600;
}

.calendar-week-grid-col {
  min-height: 8rem;
  padding: 0.45rem;
  border: 1px solid var(--border);
  border-radius: 0.65rem;
  background: var(--bg-card);
}

.calendar-week-grid-col.is-today {
  border-color: color-mix(in srgb, var(--brand) 55%, var(--border));
  background: color-mix(in srgb, var(--brand) 8%, var(--bg-card));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand) 35%, transparent);
}

.calendar-week-grid-empty {
  margin: 0;
  text-align: center;
  color: var(--ink-muted);
  font-size: 0.8125rem;
}

.calendar-week-event-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}

.calendar-week-event {
  padding: 0.35rem 0.45rem;
  border-radius: 0.45rem;
  background: var(--surface-chip);
  border-left: 3px solid var(--calendar-accent, var(--border-strong));
  font-size: 0.8125rem;
}

.calendar-week-event-time {
  display: block;
  font-size: 0.6875rem;
  color: var(--ink-muted);
}

.calendar-week-event-title {
  display: block;
  color: var(--text);
  text-decoration: none;
  font-weight: 600;
}

a.calendar-week-event-title:hover {
  color: var(--accent-link);
}

.calendar-day-view {
  padding-top: 0.25rem;
}

.calendar-view-tabs {
  margin-bottom: 0.35rem;
}

.calendar-sidebar-type-filters {
  border: 0;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}

.calendar-sidebar-type {
  margin: 0;
}

.dashboard-calendar-page.dashboard-events-page {
  gap: 1rem;
}

.dashboard-calendar-compact-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.85rem;
  padding: 0.75rem 1rem;
}

.dashboard-calendar-google-dialog {
  width: min(92vw, 40rem);
}

.dashboard-calendar-google-form {
  display: grid;
  gap: 0.85rem;
}

.dashboard-calendar-google-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0;
}

.dashboard-calendar-google-lead {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: var(--ink-muted, #64748b);
}

.dashboard-calendar-google-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.dashboard-calendar-google-url {
  margin: 0;
}

.dashboard-calendar-google-reset {
  margin: 0;
}

.dashboard-calendar-google-dialog .dashboard-goal-dialog-footer {
  margin-top: 0.25rem;
  padding-top: 0;
  border-top: 0;
}

.dashboard-calendar-filter-scope {
  margin: 0;
  min-width: 10rem;
}

.dashboard-calendar-filter-scope-sub {
  min-width: 11rem;
}

.dashboard-calendar-filter-types {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
  flex: 1 1 12rem;
}

.calendar-type-chip--compact span {
  font-size: 0.8125rem;
  padding: 0.2rem 0.55rem;
}

.dashboard-calendar-main {
  padding: 1rem 1.25rem 1.25rem;
}

.dashboard-calendar-event-dialog .dashboard-calendar-delete-form {
  margin: 0 1.25rem 1.25rem;
  padding-top: 0;
  border-top: 0;
}

.dashboard-calendar-recipient-list {
  display: grid;
  gap: 0.35rem;
  max-height: 11.5rem;
  overflow-y: auto;
  padding-right: 0.25rem;
}

.dashboard-calendar-recipient-filter {
  display: grid;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.dashboard-calendar-recipient-item {
  margin: 0;
}

.dashboard-calendar-recipient-item[hidden] {
  display: none;
}

.dashboard-calendar-head {
  display: grid;
  gap: 1rem;
}

.dashboard-calendar-head-main {
  min-width: 0;
}

.dashboard-calendar-head-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.dashboard-calendar-main-col {
  display: grid;
  gap: 1.25rem;
}

.dashboard-calendar-layout.dashboard-events-layout {
  display: block;
}

.dashboard-calendar-page .dashboard-events-layout {
  grid-template-columns: 1fr;
}

.btn.is-disabled {
  opacity: 0.55;
  pointer-events: none;
  cursor: not-allowed;
}

.admin-calendar-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  gap: 0.75rem;
}

.admin-calendar-stat {
  display: grid;
  gap: 0.2rem;
  padding: 0.85rem 1rem;
  text-align: center;
}

.admin-calendar-stat-value {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1.1;
}

.admin-calendar-stat-label {
  font-size: 0.8125rem;
  color: var(--ink-muted);
}

.dashboard-calendar-page {
  display: grid;
  gap: 1.25rem;
}

.dashboard-calendar-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.dashboard-calendar-title {
  margin: 0 0 0.35rem;
}

.dashboard-calendar-lead {
  margin: 0;
  color: var(--ink-muted);
}

.dashboard-calendar-layout {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 960px) {
  .dashboard-calendar-layout {
    grid-template-columns: minmax(0, 1.4fr) minmax(18rem, 0.8fr);
    align-items: start;
  }
}

.dashboard-calendar-form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.65rem;
  margin-top: 1rem;
}

.dashboard-calendar-delete-form {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.dashboard-calendar-delete-form .dashboard-calendar-form-actions,
.dashboard-calendar-form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.65rem;
}

.dashboard-calendar-delete-form .btn {
  width: auto;
  max-width: 100%;
  flex: 0 0 auto;
}

.dashboard-calendar-event-dialog .simple-editor-scroll {
  max-height: min(16rem, 42vh);
}

.dashboard-calendar-event-dialog .simple-editor {
  max-width: 100%;
}

.calendar-event-desc.rich-text-body {
  margin-top: 0.35rem;
  font-size: 0.875rem;
  color: var(--ink-muted);
}

.calendar-event-desc.rich-text-body > :first-child {
  margin-top: 0;
}

.calendar-event-desc.rich-text-body > :last-child {
  margin-bottom: 0;
}

.home-hub-panel--calendar {
  margin-top: 1.5rem;
}

.home-calendar-wrap {
  padding: 1rem 1.25rem 1.25rem;
}

.calendar-widget--compact .calendar-grid-day {
  min-height: 3.5rem;
}

@media (max-width: 640px) {
  .calendar-grid-day {
    min-height: 3.25rem;
  }

  .calendar-widget-head {
    flex-direction: column;
    align-items: stretch;
  }
}

/* Entity chat — veřejný chat u výzev, závodů a akcí */
.entity-chat-section {
  --entity-chat-row-height: 5.75rem;
  --entity-chat-panel-bg: linear-gradient(180deg, rgba(15, 23, 42, 0.72), rgba(2, 6, 23, 0.55));
  --entity-chat-panel-border: var(--border-strong);
  --entity-chat-panel-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
  --entity-chat-scroll-bg: transparent;
  --entity-chat-hint-bg: var(--bg-elevated);
  --entity-chat-hint-border: var(--border);
  --entity-chat-msg-bg: var(--bg-card);
  --entity-chat-msg-border: var(--border);
  --entity-chat-msg-shadow: 0 1px 0 rgba(255, 255, 255, 0.02);
  --entity-chat-msg-own-bg: linear-gradient(180deg, rgba(252, 76, 2, 0.14), rgba(252, 76, 2, 0.06));
  --entity-chat-msg-own-border: rgba(252, 76, 2, 0.42);
  --entity-chat-msg-other-bg: rgba(17, 24, 39, 0.92);
  --entity-chat-msg-other-border: rgba(148, 163, 184, 0.22);
  --entity-chat-action-bg: rgba(2, 6, 23, 0.35);
  --entity-chat-action-border: var(--border-strong);
  --entity-chat-action-text: var(--text-soft);
  --entity-chat-action-hover-bg: var(--bg-hover);
  --entity-chat-action-hover-text: var(--text);
  --entity-chat-danger-border: rgba(239, 68, 68, 0.35);
  --entity-chat-danger-text: #fca5a5;
  --entity-chat-danger-hover-bg: rgba(239, 68, 68, 0.12);
  --entity-chat-danger-hover-text: #fecaca;
  --entity-chat-banned-bg: rgba(239, 68, 68, 0.08);
  --entity-chat-banned-border: rgba(239, 68, 68, 0.28);
  --entity-chat-focus-ring: rgba(252, 76, 2, 0.45);
}

html[data-theme="light"] .entity-chat-section {
  --entity-chat-panel-bg: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  --entity-chat-panel-border: var(--border);
  --entity-chat-panel-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 1px 2px rgba(15, 23, 42, 0.04);
  --entity-chat-scroll-bg: transparent;
  --entity-chat-hint-bg: #f8fafc;
  --entity-chat-hint-border: var(--border);
  --entity-chat-msg-bg: #ffffff;
  --entity-chat-msg-border: var(--border);
  --entity-chat-msg-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
  --entity-chat-msg-own-bg: linear-gradient(180deg, #fff4ef 0%, #fffaf7 100%);
  --entity-chat-msg-own-border: rgba(252, 76, 2, 0.34);
  --entity-chat-msg-other-bg: #ffffff;
  --entity-chat-msg-other-border: var(--border);
  --entity-chat-action-bg: #ffffff;
  --entity-chat-action-border: var(--border-strong);
  --entity-chat-action-text: var(--text-soft);
  --entity-chat-action-hover-bg: var(--bg-hover);
  --entity-chat-action-hover-text: var(--text);
  --entity-chat-danger-border: #fecaca;
  --entity-chat-danger-text: #b91c1c;
  --entity-chat-danger-hover-bg: #fef2f2;
  --entity-chat-danger-hover-text: #991b1b;
  --entity-chat-banned-bg: var(--alert-error-bg);
  --entity-chat-banned-border: var(--alert-error-border);
  --entity-chat-focus-ring: rgba(252, 76, 2, 0.35);
}

.entity-chat-section--embedded {
  margin-top: 0;
}

.entity-chat-header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-bottom: 0.75rem;
}

.entity-chat-header-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.entity-chat-info-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.375rem;
  height: 1.375rem;
  padding: 0;
  border-radius: 999px;
  border: 1px solid var(--border-strong);
  background: var(--bg-elevated);
  color: var(--text-soft);
  font-size: 0.75rem;
  font-weight: 700;
  font-style: italic;
  line-height: 1;
  cursor: pointer;
}

.entity-chat-info-btn:hover {
  color: var(--text);
  border-color: var(--brand);
  background: var(--bg-hover);
}

.entity-chat-hint-dialog {
  width: min(92vw, 28rem);
}

.entity-chat-hint-dialog-form {
  padding: 1rem 1.125rem 1.125rem;
}

.entity-chat-hint-dialog-text {
  margin-top: 0.75rem;
}

.entity-chat-title {
  margin-bottom: 0;
}

.entity-chat-hint {
  margin: 0 0 1rem;
  padding: 0.75rem 0.875rem;
  border-radius: 10px;
  border: 1px solid var(--entity-chat-hint-border);
  background: var(--entity-chat-hint-bg);
  color: var(--text-soft);
}

.entity-chat-banned-users {
  margin-bottom: 1rem;
  padding: 0.875rem 1rem;
  border-radius: 12px;
  border: 1px solid var(--entity-chat-banned-border);
  background: var(--entity-chat-banned-bg);
  color: var(--text);
}

.entity-chat-banned-title {
  margin: 0 0 0.625rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text);
}

.entity-chat-banned-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.entity-chat-banned-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.875rem;
}

.entity-chat-messages-panel {
  margin-bottom: 1rem;
  border: 1px solid var(--entity-chat-panel-border);
  border-radius: 14px;
  background: var(--entity-chat-panel-bg);
  box-shadow: var(--entity-chat-panel-shadow);
  overflow: hidden;
}

.entity-chat-messages-scroll {
  max-height: calc(var(--entity-chat-row-height) * var(--entity-chat-visible-rows, 4));
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.875rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  scroll-behavior: smooth;
  background: var(--entity-chat-scroll-bg);
}

html[data-theme="light"] .entity-chat-messages-scroll {
  scrollbar-color: #cbd5e1 #f1f5f9;
}

.entity-chat-messages-scroll:focus {
  outline: 2px solid var(--entity-chat-focus-ring);
  outline-offset: -2px;
}

.entity-chat-message {
  border: 1px solid var(--entity-chat-msg-border);
  border-radius: 12px;
  padding: 0.8rem 0.95rem;
  background: var(--entity-chat-msg-bg);
  box-shadow: var(--entity-chat-msg-shadow);
}

.entity-chat-message--own {
  border-color: var(--entity-chat-msg-own-border);
  background: var(--entity-chat-msg-own-bg);
}

.entity-chat-message--other {
  border-color: var(--entity-chat-msg-other-border);
  background: var(--entity-chat-msg-other-bg);
}

.entity-chat-message-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.55rem;
}

.entity-chat-message-author {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.55rem;
  min-width: 0;
}

.entity-chat-message-name {
  font-size: 0.9rem;
  line-height: 1.3;
  color: var(--text);
}

.entity-chat-message-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #fff;
  background: var(--brand);
}

.entity-chat-message-time {
  font-size: 0.75rem;
  color: var(--text-muted);
  white-space: nowrap;
}

.entity-chat-message-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
}

.entity-chat-action-btn {
  appearance: none;
  border: 1px solid var(--entity-chat-action-border);
  border-radius: 999px;
  background: var(--entity-chat-action-bg);
  color: var(--entity-chat-action-text);
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
  padding: 0.28rem 0.62rem;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

html[data-theme="light"] .entity-chat-action-btn {
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}

.entity-chat-action-btn:hover {
  background: var(--entity-chat-action-hover-bg);
  color: var(--entity-chat-action-hover-text);
}

.entity-chat-edit-details > summary {
  list-style: none;
}

.entity-chat-edit-details > summary::-webkit-details-marker {
  display: none;
}

.entity-chat-action-btn--edit {
  list-style: none;
}

.entity-chat-action-btn--delete,
.entity-chat-action-btn--mod-delete,
.entity-chat-action-btn--ban {
  border-color: var(--entity-chat-danger-border);
  color: var(--entity-chat-danger-text);
}

.entity-chat-action-btn--delete:hover,
.entity-chat-action-btn--mod-delete:hover,
.entity-chat-action-btn--ban:hover {
  background: var(--entity-chat-danger-hover-bg);
  color: var(--entity-chat-danger-hover-text);
}

.entity-chat-edit-details {
  position: relative;
}

.entity-chat-edit-details > summary {
  display: inline-flex;
}

.entity-chat-edit-details[open] > summary {
  margin-bottom: 0.5rem;
}

.entity-chat-edit-form {
  width: min(100%, 28rem);
  display: grid;
  gap: 0.5rem;
  padding: 0.65rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg-card);
}

html[data-theme="light"] .entity-chat-edit-form {
  background: #ffffff;
  box-shadow: var(--shadow-sm);
}

.entity-chat-edit-textarea {
  min-height: 4.5rem;
  font-size: 0.875rem;
}

.entity-chat-edit-actions {
  display: flex;
  justify-content: flex-end;
}

.entity-chat-message-body {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--text);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.entity-chat-form {
  margin-top: 0.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.entity-chat-compose {
  margin-bottom: 0.75rem;
}

.entity-chat-compose-input {
  min-height: 5.5rem;
}

html[data-theme="light"] .entity-chat-compose-input {
  background: #ffffff;
}

.entity-chat-pagination-footer {
  margin: 0 0 1rem;
  padding: 0 0.25rem;
}

.entity-chat-pagination-summary {
  margin-bottom: 0.5rem;
  color: var(--text-muted);
}

.entity-chat-pagination {
  justify-content: flex-start;
}

html[data-theme="light"] .entity-chat-pagination .admin-pagination-btn,
html[data-theme="light"] .entity-chat-pagination .admin-pagination-current {
  background: #ffffff;
  border: 1px solid var(--border);
  color: var(--text);
}

html[data-theme="light"] .entity-chat-pagination .admin-pagination-current {
  background: var(--brand-soft);
  border-color: rgba(252, 76, 2, 0.28);
  color: var(--text);
  font-weight: 700;
}

html[data-theme="light"] .entity-chat-pagination .admin-pagination-btn:hover {
  background: var(--bg-hover);
}

.entity-chat-empty {
  padding: 0.5rem 0.25rem;
  color: var(--text-muted);
}

html[data-theme="light"] .entity-chat-count {
  color: var(--text-muted);
}

@media (max-width: 640px) {
  .entity-chat-section {
    --entity-chat-row-height: 6.25rem;
  }

  .entity-chat-message-meta {
    flex-direction: column;
    align-items: stretch;
  }

  .entity-chat-message-actions {
    justify-content: flex-start;
  }
}


/* ===== Audit 2026-10: navigace administrace ===== */
.admin-breadcrumbs {
  margin: 0 0 0.85rem;
  font-size: 0.8125rem;
  color: var(--ink-muted, #64748b);
}
.admin-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.admin-breadcrumbs li {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}
.admin-breadcrumbs li + li::before {
  content: "›";
  color: var(--ink-muted, #94a3b8);
}
.admin-breadcrumbs a {
  color: var(--brand);
  text-decoration: none;
}
.admin-breadcrumbs a:hover {
  text-decoration: underline;
}
.admin-breadcrumbs [aria-current="page"] {
  color: var(--text, #0f172a);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 28rem;
}

.admin-jump-nav {
  position: sticky;
  top: var(--admin-topbar-height, 3.75rem);
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 1.25rem;
  padding: 0.5rem 0;
  background: var(--surface-muted, #f8fafc);
}
.admin-jump-nav .admin-filter-pill {
  padding: 0.35rem 0.75rem;
}
@media (max-width: 768px) {
  .admin-jump-nav {
    position: static;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .admin-jump-nav .admin-filter-pill {
    white-space: nowrap;
  }
}

#zavod-ucastnici,
#zavod-udaje,
#zavod-terminy,
#zavod-misto,
#zavod-media,
#zavod-viditelnost,
.admin-anchor-target,
.admin-settings-section,
#bankovni-ucty,
#startovni-cisla {
  scroll-margin-top: 7.5rem;
}

.admin-product-context {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  color: var(--ink-muted, #64748b);
}
.admin-product-context strong {
  color: var(--text, #0f172a);
}
.admin-product-context select {
  width: auto;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

/* ===== Nová hlavní stránka (návrh 2026-10) — .hm ===== */
.hm {
  --hm-fill: #c93c00;
  --hm-fill-hover: #b03400;
  --hm-brand-text: #fb923c;
  --hm-card: var(--bg-card, #111827);
  --hm-card-muted: var(--bg-elevated, rgba(2, 6, 23, 0.55));
  --hm-line: var(--border, rgba(148, 163, 184, 0.16));
  --hm-chip: var(--surface-chip, rgba(148, 163, 184, 0.14));
  --hm-img: var(--surface-media, rgba(148, 163, 184, 0.08));
  --hm-muted: var(--text-muted, #94a3b8);
  --hm-soft: var(--text-soft, #cbd5e1);
  --hm-ok-bg: var(--alert-success-bg, rgba(34, 197, 94, 0.12));
  --hm-ok: var(--alert-success-text, #86efac);
  --hm-info-bg: var(--badge-soon-bg, rgba(59, 130, 246, 0.16));
  --hm-info: var(--badge-soon-text, #93c5fd);
  --hm-event: #60a5fa;
  display: flex;
  flex-direction: column;
  gap: 2.75rem;
  text-align: left;
  color: var(--text);
  max-width: 100%;
  min-width: 0;
}
html[data-theme="light"] .hm {
  --hm-brand-text: #c2410c;
  --hm-card-muted: #f1f2f6;
  --hm-img: #e6e8ee;
  --hm-event: #2563eb;
}
.hm h1, .hm h2, .hm h3 { color: var(--text); }
.hm a { text-decoration: none; }
.hm-min0 { min-width: 0; }
.hm [hidden] { display: none !important; }
.hm-muted { color: var(--hm-muted); }
.hm-small { font-size: 0.8125rem; line-height: 1.45; }
.hm-accent { color: var(--brand); }
.hm-icon { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; }
.hm-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hm-anchor, .hm [id] { scroll-margin-top: calc(var(--site-header-sticky-height, 4.25rem) + 1rem); }

.hm-card {
  display: flex;
  background: var(--hm-card);
  border: 1px solid var(--hm-line);
  border-radius: 1rem;
  color: var(--text);
  transition: border-color 0.15s ease, transform 0.15s ease;
}
a.hm-card:hover, button.hm-card:hover { border-color: var(--brand); }
.hm-card--muted { background: var(--hm-card-muted); }
.hm-card-title { font-size: 1.0625rem; font-weight: 700; line-height: 1.3; color: var(--text); }

.hm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 2.875rem;
  padding: 0 1.25rem;
  border-radius: 0.75rem;
  font-weight: 700;
  font-size: 0.9375rem;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
}
.hm-btn--primary, .hm-btn--strava { background: var(--hm-fill); color: #fff; }
.hm-btn--primary:hover, .hm-btn--strava:hover { background: var(--hm-fill-hover); color: #fff; }
.hm-btn--ghost { background: var(--hm-card); border-color: var(--hm-line); color: var(--text); font-weight: 600; }
.hm-btn--ghost:hover { border-color: var(--brand); color: var(--text); }

.hm-pill {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  background: var(--hm-card);
  color: var(--text);
  font-size: 0.75rem;
  font-weight: 700;
}
.hm-pill--solid { background: var(--hm-fill); color: #fff; text-transform: uppercase; letter-spacing: 0.04em; }
.hm-pill--muted { background: var(--hm-chip); color: var(--hm-soft); font-weight: 600; }
.hm-eyebrow { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--hm-brand-text); }
.hm-eyebrow--muted { color: var(--hm-muted); }
.hm-more { font-weight: 700; font-size: 0.875rem; color: var(--hm-brand-text); }
.hm-empty { margin: 0; padding: 1.25rem; border: 1px dashed var(--hm-line); border-radius: 1rem; color: var(--hm-muted); }

.hm-status { flex: 0 0 auto; padding: 0.3rem 0.75rem; border-radius: 999px; font-size: 0.8125rem; font-weight: 700; white-space: nowrap; }
.hm-status--ok { background: var(--hm-ok-bg); color: var(--hm-ok); }
.hm-status--info { background: var(--hm-info-bg); color: var(--hm-info); }
.hm-status--brand { background: var(--brand-soft, rgba(252, 76, 2, 0.14)); color: var(--hm-brand-text); }
.hm-status--neutral { background: var(--hm-chip); color: var(--hm-soft); }

.hm-bar { display: block; height: 0.5rem; border-radius: 99px; background: var(--hm-chip); overflow: hidden; }
.hm-bar > span { display: block; height: 100%; background: var(--brand); border-radius: inherit; }
.hm-bar--sm { height: 0.375rem; }

.hm-date { flex: 0 0 auto; width: 3.25rem; text-align: center; display: flex; flex-direction: column; line-height: 1; }
.hm-date > span { font-size: 1.375rem; font-weight: 800; }
.hm-date > small { margin-top: 0.2rem; font-size: 0.75rem; font-weight: 700; color: var(--hm-brand-text); text-transform: uppercase; }
.hm-date--box, .hm-date--lg { height: 3.75rem; justify-content: center; border-radius: 0.75rem; background: var(--hm-card-muted); border: 1px solid var(--hm-line); }
.hm-date--lg { width: 4rem; height: 4.25rem; }
.hm-date--lg > span { font-size: 1.5rem; }

/* Obrázky: celé, bez ořezu; prázdné místo vyplní rozmazaná kopie */
.hm-media { position: relative; overflow: hidden; isolation: isolate; background: var(--hm-img); }
.hm-media-bg { position: absolute; inset: -1.5rem; z-index: -2; background-position: center; background-size: cover; filter: blur(22px) saturate(1.15); opacity: 0.6; transform: scale(1.05); }
.hm-media-img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.hm-media > .hm-pill { position: relative; }

/* Úvod */
.hm-hero { display: flex; flex-wrap: wrap; gap: 2rem; align-items: stretch; }
.hm-hero-text { flex: 999 1 26rem; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 1.125rem; }
.hm-kicker { align-self: flex-start; padding: 0.375rem 0.75rem; border-radius: 999px; background: var(--hm-chip); color: var(--hm-soft); font-size: 0.8125rem; font-weight: 600; }
.hm-hero-title { margin: 0; font-size: clamp(2rem, 4.2vw, 3.25rem); line-height: 1.08; font-weight: 800; letter-spacing: -0.02em; }
.hm-hero-lead { margin: 0; max-width: 36rem; font-size: 1.125rem; color: var(--hm-soft); }
.hm-hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.hm-hero-race { flex: 1 1 22rem; min-width: 0; flex-direction: column; overflow: hidden; display: flex; background: var(--hm-card); border: 1px solid var(--hm-line); border-radius: 1.25rem; }
.hm-hero-race-media { aspect-ratio: 16 / 9; display: flex; align-items: flex-start; padding: 0.875rem; }
.hm-hero-race-media.is-empty { aspect-ratio: auto; min-height: 4rem; }
.hm-hero-race-body { padding: 1.375rem 1.5rem 1.5rem; display: flex; flex-direction: column; gap: 0.875rem; }
.hm-hero-race-head { display: flex; gap: 1rem; align-items: center; }
.hm-hero-race-title { margin: 0; font-size: 1.375rem; line-height: 1.2; font-weight: 800; }
.hm-hero-race-head p { margin: 0.25rem 0 0; }
.hm-hero-race-status { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.5rem; }
.hm-hero-race-actions { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.hm-hero-race-actions .hm-btn { flex: 1 1 auto; }

/* Sekce */
.hm-section { display: flex; flex-direction: column; gap: 1rem; }
.hm-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem; flex-wrap: wrap; }
.hm-section-head h2 { margin: 0; font-size: 1.625rem; font-weight: 800; }
.hm-section-head a { font-weight: 600; font-size: 0.9375rem; color: var(--hm-brand-text); }

/* Aktuality */
.hm-news { display: flex; flex-wrap: wrap; gap: 1rem; }
.hm-news-hero {
  flex: 3 1 26rem; min-width: 0; align-self: stretch;
  display: flex; gap: 1.25rem; align-items: center;
  padding: 1.5rem; border-radius: 1.125rem;
  background: var(--hm-card-muted); border: 1px solid var(--brand);
  color: var(--text); text-align: left; font: inherit; cursor: pointer;
}
.hm-news-hero:hover { background: var(--hm-card); }
.hm-news-hero-icon { flex: 0 0 auto; width: 3.25rem; height: 3.25rem; border-radius: 0.875rem; background: var(--hm-fill); color: #fff; display: flex; align-items: center; justify-content: center; }
.hm-news-hero-icon .hm-icon { width: 1.625rem; height: 1.625rem; }
.hm-news-hero-media { flex: 0 0 auto; width: clamp(11rem, 40%, 17rem); aspect-ratio: 4 / 3; border-radius: 0.875rem; }
.hm-news-hero-text { min-width: 0; display: flex; flex-direction: column; gap: 0.375rem; }
.hm-news-hero-title { font-size: 1.375rem; line-height: 1.25; font-weight: 800; }
.hm-news-hero-lead { color: var(--hm-soft); font-size: 0.9375rem; }
.hm-news-list { flex: 2 1 20rem; min-width: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.hm-news-card { flex-direction: column; gap: 0.25rem; padding: 0.875rem 1rem; text-align: left; font: inherit; cursor: pointer; }
.hm-news-card .hm-more { margin-top: 0.25rem; }
.hm-news-card .hm-clamp-2 { -webkit-line-clamp: 1; }
.hm-news-card-title { font-size: 1rem; line-height: 1.35; }

/* Rychlé odkazy */
.hm-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; }
.hm-quick-item { gap: 0.875rem; align-items: center; padding: 1.125rem; }
.hm-quick-item strong { display: block; font-size: 0.9375rem; color: var(--text); }
.hm-quick-item small { color: var(--hm-muted); font-size: 0.8125rem; }
.hm-quick-icon { flex: 0 0 auto; width: 2.75rem; height: 2.75rem; border-radius: 0.75rem; background: var(--hm-chip); color: var(--brand); display: flex; align-items: center; justify-content: center; }

/* Sloupce */
.hm-columns { display: flex; flex-wrap: wrap; gap: 2rem; align-items: flex-start; }
.hm-main { flex: 999 1 34rem; min-width: 0; display: flex; flex-direction: column; gap: 2.5rem; }
.hm-side { flex: 1 1 19rem; min-width: 0; display: flex; flex-direction: column; gap: 1.25rem; }

/* Výzvy */
.hm-challenges { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 1rem; }
.hm-challenge { flex-direction: column; overflow: hidden; }
.hm-challenge-media { aspect-ratio: 16 / 9; padding: 0.75rem; display: flex; align-items: flex-start; }
.hm-challenge-media.is-empty { aspect-ratio: auto; min-height: 3.25rem; }
.hm-challenge-body { padding: 1rem; display: flex; flex-direction: column; gap: 0.5rem; }

/* Závody */
.hm-list { flex-direction: column; overflow: hidden; }
.hm-list-row { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; color: var(--text); border-top: 1px solid var(--hm-line); }
.hm-list-row:first-child { border-top: 0; }
.hm-list-row:hover { background: var(--bg-hover, rgba(148, 163, 184, 0.08)); }
.hm-list-row.is-past .hm-date > span, .hm-list-row.is-past .hm-date > small { color: var(--hm-muted); }
.hm-list-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.hm-list-text strong { font-weight: 700; }

/* Akce */
.hm-events { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 1rem; }
.hm-event { gap: 1rem; padding: 1.125rem; }
.hm-event-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 0.375rem; }
.hm-event-foot { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; }

/* Kalendář */
.hm-calendar { flex-direction: column; gap: 0.875rem; padding: 1.25rem; border-radius: 1.125rem; }
.hm-calendar-head { display: flex; justify-content: space-between; align-items: baseline; }
.hm-calendar-head h2 { margin: 0; font-size: 1.125rem; font-weight: 800; }
.hm-calendar-month { font-weight: 700; font-size: 0.875rem; color: var(--hm-soft); }
.hm-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0.25rem; }
.hm-calendar-weekdays { text-align: center; font-size: 0.75rem; font-weight: 700; color: var(--hm-muted); }
.hm-day { height: 2.5rem; border-radius: 0.625rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.125rem; font-size: 0.8125rem; font-weight: 600; }
.hm-day.is-out { opacity: 0.4; }
.hm-day.is-today { background: var(--hm-fill); color: #fff; }
.hm-day-dots { display: flex; gap: 2px; height: 5px; }
.hm-dot { display: inline-block; width: 5px; height: 5px; border-radius: 99px; }
.hm-dot--race { background: var(--brand); }
.hm-dot--event { background: var(--hm-event); }
.hm-dot--challenge { background: var(--hm-soft); }
.hm-day.is-today .hm-dot { background: #fff; }
.hm-legend { display: flex; flex-wrap: wrap; gap: 0.875rem; font-size: 0.75rem; color: var(--hm-muted); }
.hm-legend span { display: inline-flex; align-items: center; gap: 0.375rem; }
.hm-legend .hm-dot { width: 8px; height: 8px; }
.hm-week { border-top: 1px solid var(--hm-line); padding-top: 0.75rem; display: flex; flex-direction: column; gap: 0.625rem; }
.hm-week-item { display: flex; flex-direction: column; padding-left: 0.75rem; border-left: 4px solid var(--hm-event); color: var(--text); }
.hm-week-item--race { border-left-color: var(--brand); }
.hm-week-item strong { font-size: 0.875rem; }
.hm-week-item--challenge { border-left-color: var(--hm-soft); }
.hm-week-item.is-past { opacity: 0.55; }
a.hm-week-item:hover strong { color: var(--hm-brand-text); }
.hm-link-btn { flex: 0 0 auto; white-space: nowrap; padding: 0; border: 0; background: none; font: inherit; font-size: 0.8125rem; font-weight: 700; color: var(--hm-brand-text); cursor: pointer; }
.hm-link-btn:hover { text-decoration: underline; }
.hm-cal-nav { display: flex; align-items: center; gap: 0.375rem; }
.hm-cal-arrow { flex: 0 0 auto; width: 2.25rem; height: 2.25rem; border-radius: 0.625rem; border: 1px solid var(--hm-line); background: var(--hm-card-muted); color: var(--text); font-size: 1.25rem; line-height: 1; cursor: pointer; }
.hm-cal-arrow:hover:not(:disabled) { border-color: var(--brand); }
.hm-cal-arrow:disabled { opacity: 0.35; cursor: default; }
.hm-cal-select { flex: 1 1 auto; min-width: 0; height: 2.25rem; padding: 0 0.25rem 0 0.5rem; border-radius: 0.625rem; border: 1px solid var(--hm-line); background: var(--hm-card-muted); color: var(--text); font: inherit; font-size: 0.8125rem; font-weight: 700; }
.hm-cal-select--year { flex: 0 0 4.75rem; }
.hm-cal-select:focus-visible, .hm-cal-arrow:focus-visible, .hm-day.has-events:focus-visible, .hm-cal-yearmonth:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
button.hm-day { border: 0; background: none; color: inherit; font: inherit; font-size: 0.8125rem; font-weight: 700; cursor: pointer; }
button.hm-day:hover { background: var(--hm-chip); }
.hm-day.is-selected { box-shadow: inset 0 0 0 2px var(--brand); }
.hm-day.is-today.is-selected { box-shadow: inset 0 0 0 2px #fff; }
.hm-cal-yearview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.375rem; }
.hm-cal-yearmonth { display: flex; flex-direction: column; align-items: center; gap: 0.125rem; padding: 0.5rem 0.25rem; border-radius: 0.75rem; border: 1px solid var(--hm-line); background: var(--hm-card-muted); color: var(--text); font: inherit; cursor: pointer; }
.hm-cal-yearmonth:hover { border-color: var(--brand); }
.hm-cal-yearmonth.is-current { border-color: var(--brand); }
.hm-cal-yearmonth.is-empty { opacity: 0.55; }
.hm-cal-yearmonth strong { font-size: 0.875rem; }
.hm-cal-list-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; }
.hm-cal-list { display: flex; flex-direction: column; gap: 0.625rem; max-height: 22rem; overflow-y: auto; overscroll-behavior: contain; padding-right: 0.25rem; }
.hm-cal-list-month { margin-top: 0.25rem; font-size: 0.75rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; color: var(--hm-muted); }
.hm-cal-open { width: 100%; }

/* Celý kalendář v modálním okně */
.hm-cal-modal { width: min(64rem, calc(100vw - 1.5rem)); max-width: none; max-height: calc(100dvh - 2rem); padding: 0; border: 1px solid var(--hm-line, var(--border)); border-radius: 1.25rem; background: var(--bg-card, #111827); color: var(--text); box-shadow: var(--shadow-lg, 0 20px 60px rgba(2, 6, 23, 0.5)); }
.hm-cal-modal::backdrop { background: var(--overlay-backdrop, rgba(2, 6, 23, 0.7)); }
.hm-cal-modal-inner { display: flex; flex-direction: column; max-height: calc(100dvh - 2rem); }
.hm-cal-modal-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--border, rgba(148, 163, 184, 0.16)); }
.hm-cal-modal-head h2 { margin: 0; font-size: 1.25rem; font-weight: 800; color: var(--text); }
.hm-cal-modal-close { width: 2.5rem; height: 2.5rem; border-radius: 0.75rem; border: 1px solid var(--border, rgba(148, 163, 184, 0.16)); background: transparent; color: var(--text); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.hm-cal-modal-close:hover { border-color: var(--brand); }
.hm-cal-modal-body { padding: 1rem 1.25rem 1.25rem; overflow-y: auto; overscroll-behavior: contain; }
.hm-cal-modal-body .home-hub-panel { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.hm-cal-modal-body .home-hub-panel-title { display: none; }
.hm-cal-modal-body .home-hub-panel-head { justify-content: flex-end; margin-bottom: 0.5rem; }
html.hm-modal-open { overflow: hidden; }

.hm-cta { flex-direction: column; gap: 0.625rem; padding: 1.25rem; border-radius: 1.125rem; }
.hm-cta h2 { margin: 0; font-size: 1.0625rem; font-weight: 800; }
.hm-cta p { margin: 0; }

/* Články */
.hm-articles { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1.25rem; }
.hm-article { flex-direction: column; overflow: hidden; }
.hm-article-cover { display: block; aspect-ratio: 16 / 9; }
.hm-article-body { padding: 1rem; display: flex; flex-direction: column; gap: 0.375rem; }

.hm-extra { margin-top: 2.5rem; }
.hm-fab { display: none; }

/* Mobil */
@media (max-width: 640px) {
  .hm { gap: 2rem; }
  .hm-hero-lead { font-size: 1rem; }
  .hm-hero-actions .hm-btn { flex: 1 1 100%; }
  .hm-section-head h2 { font-size: 1.25rem; }
  .hm-scroll-x {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    margin: 0 -1rem;
    padding: 0 1rem 0.25rem;
    gap: 0.75rem;
    contain: inline-size;
  }
  .hm-scroll-x > * { flex: 0 0 82%; scroll-snap-align: start; }
  .hm-news-list.hm-scroll-x { flex-direction: row; }
  .hm-news-card .hm-clamp-2 { -webkit-line-clamp: 2; }
  .hm-news-hero { padding: 0.875rem; gap: 0.875rem; flex-direction: column; align-items: stretch; }
  .hm-news-hero-media { width: 100%; aspect-ratio: 16 / 9; }
  .hm-news-hero-icon { width: 2.5rem; height: 2.5rem; }
  .hm-news-hero-title { font-size: 1.0625rem; }
  .hm-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.625rem; }
  .hm-quick-item { flex-direction: column; align-items: flex-start; gap: 0.5rem; padding: 0.875rem; }
  .hm-quick-item small { display: none; }
  .hm-list-row { padding: 0.875rem 1rem; gap: 0.75rem; flex-wrap: wrap; }
  .hm-list-row .hm-status { margin-left: 4rem; }
  .hm-hide-sm { display: none; }
  .hm-articles { grid-template-columns: minmax(0, 1fr); gap: 0.75rem; }
  .hm-article { flex-direction: row; align-items: center; }
  .hm-article-cover { flex: 0 0 6.5rem; width: 6.5rem; aspect-ratio: 4 / 3; border-radius: 0.75rem; margin: 0.625rem 0 0.625rem 0.625rem; }
  .hm-article-body { padding: 0.75rem; }
  .hm-cal-modal { width: 100vw; max-height: 100dvh; height: 100dvh; margin: 0; border-radius: 0; border: 0; }
  .hm-cal-modal-inner { max-height: 100dvh; height: 100%; }
  .hm-cal-modal-body { padding: 0.75rem; }
  .hm-fab {
    position: fixed;
    right: 1rem;
    bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index: 40;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    background: var(--hm-fill);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-lg, 0 8px 32px rgba(2, 6, 23, 0.45));
  }
  .hm-fab .hm-icon { width: 1.75rem; height: 1.75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hm-card { transition: none; }
}

/* ===== Veřejné stránky ve stylu nové hlavní stránky (2026-10) — body.site-public ===== */
/* Barevné tokens .hm-* komponent platí globálně (karty závodů se používají i mimo veřejné stránky). */
:root {
  --hm-fill: #c93c00;
  --hm-fill-hover: #b03400;
  --hm-brand-text: #fb923c;
  --hm-card: var(--bg-card, #111827);
  --hm-card-muted: var(--bg-elevated, rgba(2, 6, 23, 0.55));
  --hm-line: var(--border, rgba(148, 163, 184, 0.16));
  --hm-chip: var(--surface-chip, rgba(148, 163, 184, 0.14));
  --hm-img: var(--surface-media, rgba(148, 163, 184, 0.08));
  --hm-muted: var(--text-muted, #94a3b8);
  --hm-soft: var(--text-soft, #cbd5e1);
  --hm-ok-bg: var(--alert-success-bg, rgba(34, 197, 94, 0.12));
  --hm-ok: var(--alert-success-text, #86efac);
  --hm-info-bg: var(--badge-soon-bg, rgba(59, 130, 246, 0.16));
  --hm-info: var(--badge-soon-text, #93c5fd);
  --hm-event: #60a5fa;
}
html[data-theme="light"] {
  --hm-brand-text: #c2410c;
  --hm-card-muted: #f1f2f6;
  --hm-img: #e6e8ee;
  --hm-event: #2563eb;
}

/* Záhlaví stránky: zarovnání vlevo, výrazný nadpis jako na hlavní stránce */
.site-public .page-main > section > .page-back-nav,
.site-public .page-back-nav { margin: 0 0 1.25rem; text-align: left; }
.site-public .link-back {
  margin: 0;
  padding: 0.375rem 0.875rem;
  border-radius: 999px;
  background: var(--hm-chip);
  color: var(--hm-soft);
  font-size: 0.8125rem;
  font-weight: 600;
}
.site-public .link-back:hover { color: var(--text); background: var(--bg-hover, rgba(148, 163, 184, 0.2)); }
.site-public .page-main > a.link-back,
.site-public .shared-event-detail-page > a.link-back { display: inline-flex; margin-bottom: 1.25rem; }
.site-public .home-page-content--text-center,
.site-public .page-intro,
.site-public .site-section-header { text-align: left; }
.site-public .page-intro,
.site-public .site-section-header { margin-bottom: 2.25rem; }
.site-public .page-intro .page-lead,
.site-public .site-section-header .page-lead { margin-left: 0; margin-right: 0; max-width: 42rem; }
.site-public .page-title {
  font-size: clamp(1.875rem, 3.6vw, 2.75rem);
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.site-public .page-lead { color: var(--hm-soft); font-size: 1.0625rem; line-height: 1.55; }
.site-public .section-title { font-size: 1.5rem; font-weight: 800; letter-spacing: -0.01em; }
.site-public .section-kicker { color: var(--hm-brand-text); }
.site-public .entity-header { justify-content: flex-start; text-align: left; }

/* Karty, odkazy, tlačítka */
.site-public .card {
  background: var(--hm-card);
  border: 1px solid var(--hm-line);
  border-radius: 1rem;
  box-shadow: none;
  color: var(--text);
}
.site-public .card-interactive:hover { transform: none; box-shadow: none; border-color: var(--brand); }
.site-public .card-title { color: var(--text); font-weight: 700; }
.site-public .card-action,
.site-public .link-brand,
.site-public .article-card-cta,
.site-public .home-news-link { color: var(--hm-brand-text); font-weight: 700; }
.site-public .card-body.text-center.text-ink-muted,
.site-public .card.card-body.text-ink-muted {
  background: transparent;
  border-style: dashed;
  color: var(--hm-muted);
  text-align: left;
}
.site-public .btn { border-radius: 0.75rem; font-weight: 700; }
.site-public .btn:not(.btn-sm):not(.btn-xs) { min-height: 2.75rem; padding-left: 1.25rem; padding-right: 1.25rem; }
.site-public .btn-primary { background: var(--hm-fill); box-shadow: none; }
.site-public .btn-primary:hover { background: var(--hm-fill-hover); }
.site-public .btn-secondary { background: var(--hm-card); border: 1px solid var(--hm-line); color: var(--text); }
.site-public .btn-secondary:hover { border-color: var(--brand); background: var(--hm-card); color: var(--text); }
.site-public .badge { padding: 0.3rem 0.75rem; }
.site-public .badge-live { background: var(--hm-ok-bg); color: var(--hm-ok); }
.site-public .filter-pill { border-radius: 999px; min-height: 2.25rem; padding: 0.4rem 0.95rem; }
.site-public .filter-pill-inactive { background: var(--hm-card); border: 1px solid var(--hm-line); color: var(--hm-soft); }
.site-public .filter-pill-inactive:hover { border-color: var(--brand); color: var(--text); background: var(--hm-card); }
.site-public .filter-pill-active { background: var(--hm-fill); color: #fff; border: 1px solid var(--hm-fill); }
.site-public .results-filters { justify-content: flex-start; }
.site-public .form-card { border-radius: 1.125rem; }
.site-public .form-input { border-radius: 0.75rem; }
.site-public .data-table th { color: var(--hm-muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; }

/* Seznam závodů (šablona partials/race_list_card.php) */
.site-public .hm-section-head,
.hm-pub-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 1rem; }
.hm-pub-head h2 { margin: 0; font-size: 1.5rem; font-weight: 800; color: var(--text); }
.hm-pub-head .hm-pub-count { color: var(--hm-muted); font-weight: 600; font-size: 0.9375rem; }
.hm-pub-section { margin-bottom: 2.75rem; }
.hm-race-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); gap: 1rem; }
.hm-race-card { display: flex; flex-direction: column; overflow: hidden; background: var(--hm-card); border: 1px solid var(--hm-line); border-radius: 1rem; color: var(--text); text-decoration: none; transition: border-color 0.15s ease; }
.hm-race-card:hover { border-color: var(--brand); color: var(--text); }
.hm-race-card .hm-race-card-media { aspect-ratio: 16 / 9; }
.hm-media--placeholder { display: flex; align-items: center; justify-content: center; color: var(--brand); background: linear-gradient(135deg, var(--hm-card-muted), var(--hm-chip)); }
.hm-media--placeholder svg { width: 3rem; height: 3rem; opacity: 0.55; }
.hm-race-card-body { flex: 1 1 auto; display: flex; gap: 0.875rem; padding: 1rem 1.125rem 1.125rem; align-items: flex-start; }
.hm-race-card-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 0.375rem; }
.hm-race-card-title { font-size: 1.0625rem; font-weight: 700; line-height: 1.3; color: var(--text); }
.hm-race-card-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.5rem; margin-top: auto; padding-top: 0.375rem; }
.hm-race-card-text { align-self: stretch; }
.hm-race-card.is-past .hm-date > span, .hm-race-card.is-past .hm-date > small { color: var(--hm-muted); }

/* Aktuality, články, dlaždice skupin, detail závodu/akce */
.site-public .home-news-card,
.site-public .article-card-link,
.site-public .shared-event-detail-card,
.site-public .results-picker { border-radius: 1rem; }
.site-public .home-news-card { background: var(--hm-card); border: 1px solid var(--hm-line); box-shadow: none; }
.site-public .home-news-title,
.site-public .article-card-title { font-weight: 800; color: var(--text); }
.site-public .home-news-date,
.site-public .article-card-meta { color: var(--hm-brand-text); font-weight: 700; font-size: 0.75rem; letter-spacing: 0.04em; text-transform: uppercase; }
.site-public .home-news-media,
.site-public .article-card-media,
.site-public .card-photo-banner { background: var(--hm-img); }
.site-public .article-card-link { background: var(--hm-card); border: 1px solid var(--hm-line); box-shadow: none; }
.site-public .article-card-link:hover { border-color: var(--brand); transform: none; }
.site-public .home-tiles-section > .section-title,
.site-public .home-tiles-section > .page-lead { text-align: left; margin-left: 0; margin-right: 0; }
.site-public .home-tile { text-align: left; }
.site-public .home-tile .card-body { align-items: flex-start; }
.site-public .home-tile .home-tile-icon-slot { margin-left: 0; }
.site-public .shared-event-detail-title { font-size: clamp(1.75rem, 3.2vw, 2.5rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.12; }
.site-public .shared-event-detail-card-title,
.site-public .shared-event-detail-section-title { font-weight: 800; color: var(--text); }
.site-public .shared-event-detail-summary-date { color: var(--hm-brand-text); font-weight: 800; }
.site-public .site-page-body { border-radius: 1.125rem; }
.site-public .site-page-gallery-thumb,
.site-public .site-page-map-frame { border-radius: 0.875rem; }

@media (max-width: 640px) {
  .site-public .page-intro,
  .site-public .site-section-header { margin-bottom: 1.5rem; }
  .site-public .section-title,
  .hm-pub-head h2 { font-size: 1.25rem; }
  .hm-race-grid { grid-template-columns: minmax(0, 1fr); gap: 0.75rem; }
  .hm-pub-section { margin-bottom: 2rem; }
  .site-public .results-filters { flex-wrap: nowrap; overflow-x: auto; margin: 0 -1rem; padding: 0 1rem 0.25rem; contain: inline-size; }
}
.hm-pub-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.25rem; padding: 1.125rem 1.25rem; border-radius: 1rem; background: var(--hm-card-muted); border: 1px solid var(--hm-line); }
.hm-pub-cta p { margin: 0; color: var(--hm-soft); }

/* ===== Veřejné seznamy: širší rozložení, filtry a řazení na klik (2026-10) ===== */
.site-public .page-main.page-main--wide { max-width: min(100rem, 100%); width: 100%; }
.hm-pub-intro { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.5rem; }
.hm-pub-intro .page-intro { margin-bottom: 0; flex: 1 1 28rem; }
.hm-pub-intro .hm-pub-cta { flex: 0 1 30rem; }
.hm-pub-lead { margin: -0.5rem 0 1rem; }
.hm-toolbar .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.hm-toolbar {
  position: sticky;
  top: calc(var(--site-header-sticky-height, 4.25rem) + 0.5rem);
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0 0 2rem;
  padding: 0.875rem 1rem;
  border: 1px solid var(--hm-line);
  border-radius: 1rem;
  background: color-mix(in srgb, var(--hm-card) 92%, transparent);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.hm-toolbar-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.hm-search { flex: 1 1 16rem; min-width: 0; position: relative; display: flex; align-items: center; }
.hm-search svg { position: absolute; left: 0.75rem; width: 1.125rem; height: 1.125rem; color: var(--hm-muted); pointer-events: none; }
.hm-search input {
  width: 100%;
  height: 2.5rem;
  padding: 0 0.875rem 0 2.375rem;
  border-radius: 0.75rem;
  border: 1px solid var(--hm-line);
  background: var(--hm-card-muted);
  color: var(--text);
  font: inherit;
  font-size: 0.9375rem;
}
.hm-search input:focus { outline: 2px solid var(--brand); outline-offset: 1px; border-color: transparent; }
.hm-chips { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.hm-chips button {
  min-height: 2.25rem;
  padding: 0 0.875rem;
  border-radius: 999px;
  border: 1px solid var(--hm-line);
  background: var(--hm-card-muted);
  color: var(--hm-soft);
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.hm-chips button:hover { border-color: var(--brand); color: var(--text); }
.hm-chips button[aria-pressed="true"] { background: var(--hm-fill); border-color: var(--hm-fill); color: #fff; }
.hm-chips button:focus-visible, .hm-select select:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.hm-toolbar-selects { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-left: auto; }
.hm-select select {
  height: 2.5rem;
  padding: 0 0.625rem;
  border-radius: 0.75rem;
  border: 1px solid var(--hm-line);
  background: var(--hm-card-muted);
  color: var(--text);
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
}
.hm-toolbar-status { display: flex; align-items: center; gap: 0.75rem; font-size: 0.8125rem; color: var(--hm-muted); }
.hm-toolbar-status:not(:has(:not([hidden]))) { display: none; }
.hm-pub [data-hm-item][hidden], .hm-pub [data-hm-section][hidden], .hm-pub [hidden] { display: none !important; }

.site-public .page-main--wide .hm-race-grid { grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr)); }
.hm-pub-card .hm-eyebrow { font-size: 0.6875rem; }
.hm-pub-result { flex-direction: column; gap: 1rem; padding: 1.5rem; margin-bottom: 2.5rem; border-color: var(--brand); }
.hm-pub-result .results-challenge-title { margin: 0.25rem 0; font-size: 1.5rem; font-weight: 800; }

/* Skupiny na stránce Výzvy */
.hm-group-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.75rem; }
.hm-group-card { display: flex; align-items: center; gap: 0.875rem; padding: 0.875rem 1rem; border-radius: 1rem; border: 1px solid var(--hm-line); background: var(--hm-card); color: var(--text); text-decoration: none; transition: border-color 0.15s ease; }
.hm-group-card:hover { border-color: var(--brand); color: var(--text); }
.hm-group-logo { flex: 0 0 auto; width: 3rem; height: 3rem; border-radius: 0.75rem; background: var(--hm-card-muted); display: flex; align-items: center; justify-content: center; overflow: hidden; font-weight: 800; color: var(--brand); }
.hm-group-logo img { width: 100%; height: 100%; object-fit: contain; padding: 0.25rem; }
.hm-group-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.hm-group-text strong { font-size: 0.9375rem; line-height: 1.3; }

@media (max-width: 640px) {
  .hm-toolbar { position: static; padding: 0.75rem; margin-bottom: 1.5rem; backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--hm-card); }
  .hm-toolbar-selects { margin-left: 0; width: 100%; }
  .hm-toolbar-selects .hm-select { flex: 1 1 0; }
  .hm-toolbar-selects select { width: 100%; }
  .hm-chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 -0.75rem; padding: 0 0.75rem 0.125rem; scrollbar-width: none; }
  .hm-chips::-webkit-scrollbar { display: none; }
  .hm-pub-intro { margin-bottom: 1rem; }
  .hm-group-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .hm-pub-card .hm-media--placeholder, .hm-race-card .hm-media--placeholder { display: none; }
}

/* ===== Veřejné stránky přes celou šířku okna jako hlavní stránka (2026-10) ===== */
.site-public .page-main,
.site-public .page-main.page-main--wide {
  width: 100%;
  max-width: var(--layout-home-max-width, 72rem);
  padding-left: clamp(1rem, 2.5vw, 2.5rem);
  padding-right: clamp(1rem, 2.5vw, 2.5rem);
}
.site-public .site-header-inner {
  max-width: var(--layout-home-max-width, 72rem);
  padding-left: clamp(1rem, 2.5vw, 2.5rem);
  padding-right: clamp(1rem, 2.5vw, 2.5rem);
}

/* Karty: v širokém sloupci obrázek vlevo, text vpravo; málo karet vyplní celý řádek */
.hm-pub-card { container-type: inline-size; }
.hm-pub-card-in { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 100%; }
@container (min-width: 34rem) {
  .hm-pub-card-in { flex-direction: row; }
  .hm-pub-card-in > .hm-race-card-media { flex: 0 0 42%; aspect-ratio: auto; min-height: 13rem; }
  .hm-pub-card-in > .hm-race-card-body { padding: 1.25rem 1.5rem; }
  .hm-pub-card-in .hm-race-card-title { font-size: 1.25rem; }
}
.site-public .hm-race-grid { grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); }
.site-public .hm-race-grid:not(:has(> [data-hm-item]:nth-child(4))) { grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)); }

/* Aktuality a články: na širokém okně ve více sloupcích */
.site-public .site-section-listing { max-width: none; }
.site-public .news-feed,
.site-public .article-feed { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 30rem), 1fr)); gap: 1rem; align-items: stretch; }
.site-public .news-feed-item,
.site-public .news-feed-item .home-news-card,
.site-public .article-card,
.site-public .article-card-link { height: 100%; }

@media (max-width: 640px) {
  .site-public .hm-race-grid,
  .site-public .hm-race-grid:not(:has(> [data-hm-item]:nth-child(4))) { grid-template-columns: minmax(0, 1fr); }
}
.site-public .results-page,
.site-public .shared-event-detail-page,
.site-public .cards-grid-home,
.site-public .cards-grid-home--tiles-right,
.site-public .cards-grid-events,
.site-public .cards-grid-groups { max-width: none; }
