/**
 * @file: championship-public.css
 * @description: Mobile layout для публичной страницы чемпионата
 * @dependencies: public_view.html, components.css, events.css
 * @created: 2026-07-29
 */

@layer components {
  .champ-public-section {
    margin-bottom: 1.25rem;
  }

  .champ-public-participants-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    font-weight: 700;
    color: var(--text-primary);
  }

  .champ-public-key-facts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
  }

  .champ-public-participation {
    align-items: center;
  }

  .champ-public-participation__label {
    font-size: 0.8125rem;
    color: var(--text-secondary);
    white-space: nowrap;
  }

  .champ-public-my-entry {
    padding: 0.75rem 0.875rem 0.75rem 1rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md, 0.5rem);
    border-left: 3px solid var(--secondary);
  }

  .champ-public-my-entry--approved {
    border-left-color: var(--success);
  }

  .champ-public-my-entry--rejected {
    border-left-color: var(--danger);
  }

  .champ-public-my-entry--withdrawn,
  .champ-public-my-entry--disabled {
    border-left-color: var(--text-muted);
  }

  .champ-public-my-entry--pending {
    border-left-color: var(--warning);
  }

  .champ-public-my-entry__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.5rem 1.5rem;
    align-items: start;
  }

  .champ-public-my-entry__kicker {
    font-family: var(--font-display);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--primary);
    margin: 0 0 0.15rem;
  }

  .champ-public-my-entry__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.5rem;
    font-size: 0.8125rem;
    color: var(--text-secondary);
  }

  .champ-public-my-entry__dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 99px;
    background: var(--secondary);
    flex-shrink: 0;
  }

  .champ-public-my-entry--approved .champ-public-my-entry__dot {
    background: var(--success);
  }

  .champ-public-my-entry--rejected .champ-public-my-entry__dot {
    background: var(--danger);
  }

  .champ-public-my-entry--pending .champ-public-my-entry__dot {
    background: var(--warning);
  }

  .champ-public-my-entry__status {
    font-weight: 600;
    text-transform: capitalize;
    color: var(--text-primary);
  }

  .champ-public-my-entry--approved .champ-public-my-entry__status {
    color: var(--success);
  }

  .champ-public-my-entry__kind {
    min-width: 0;
    line-height: 1.35;
  }

  .champ-public-my-entry__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 0.2rem;
  }

  .champ-public-my-entry__link {
    font-size: 0.78125rem;
    color: var(--primary);
    text-decoration: none;
    white-space: nowrap;
  }

  .champ-public-my-entry__link:hover {
    color: var(--primary-hover);
    text-decoration: underline;
  }

  .champ-public-my-entry__link--muted {
    color: var(--text-secondary);
  }

  .champ-public-my-entry__link--muted:hover {
    color: var(--text-primary);
  }

  .champ-public-my-entry__fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem 2rem;
    margin-top: 0.65rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--border-color);
  }

  .champ-public-my-entry__label {
    font-size: 0.6875rem;
    color: var(--text-secondary);
    margin-bottom: 0.15rem;
  }

  .champ-public-my-entry__value {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
  }

  .champ-public-my-entry__select {
    width: auto;
    max-width: 12rem;
    min-width: 5.5rem;
    display: inline-block;
    font-weight: 600;
  }

  .champ-public-my-entry__hint {
    margin-top: 0.35rem;
    font-size: 0.75rem;
    color: var(--text-secondary);
  }

  .champ-public-my-entry .captain-reg-cta-wrap {
    flex-shrink: 0;
    margin-bottom: 0.15rem;
  }

  .champ-public-my-entry .captain-reg-cta-btn {
    white-space: nowrap;
  }

  /* Иконки на цветных бейджах — контрастный цвет текста, не фона */
  .champ-public-key-facts .badge i.bi {
    color: currentColor !important;
  }

  [data-theme="light"] .champ-public-key-facts .badge.bg-primary,
  [data-theme="light"] .champ-public-key-facts .badge.bg-success,
  [data-theme="light"] .champ-public-key-facts .badge.bg-danger {
    color: #ffffff;
  }

  [data-theme="light"] .champ-public-key-facts .badge.bg-primary i.bi,
  [data-theme="light"] .champ-public-key-facts .badge.bg-success i.bi,
  [data-theme="light"] .champ-public-key-facts .badge.bg-danger i.bi {
    color: #ffffff !important;
  }

  [data-theme="light"] .champ-public-key-facts .badge.bg-light.text-dark i.bi {
    color: var(--text-secondary) !important;
  }

  [data-theme="dark"] .champ-public-key-facts .badge.bg-primary i.bi,
  [data-theme="dark"] .champ-public-key-facts .badge.bg-success i.bi,
  [data-theme="dark"] .champ-public-key-facts .badge.bg-danger i.bi {
    color: var(--on-primary) !important;
  }

  [data-theme="dark"] .champ-public-key-facts .badge.bg-warning.text-dark i.bi {
    color: var(--on-warning) !important;
  }

  /* На public page — без левой racing-полоски у обёртки чемпионата */
  .championship-public-page .championship-card.event-card-with-strip {
    border-left: none;
  }

  .championship-public-page .championship-card.event-card-with-strip::before {
    display: none;
  }

  .champ-public-calendar {
    display: flex;
    flex-direction: column;
    scroll-margin-bottom: 1rem;
  }

  .champ-public-calendar__now {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0.15rem 0 0.35rem;
    font-family: var(--font-display);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--primary, #0077b6);
  }

  .champ-public-calendar__now::before,
  .champ-public-calendar__now::after {
    content: '';
    flex: 1 1 auto;
    height: 1px;
    background: var(--primary, #0077b6);
    opacity: 0.4;
  }

  .champ-public-round {
    display: grid;
    grid-template-columns: 4.25rem minmax(0, 1fr);
    gap: 0.35rem 1.25rem;
    padding: 1.25rem 0;
    border-top: 1px solid var(--border-color, #dee2e6);
    scroll-margin-top: 5rem;
  }

  .champ-public-round:first-child {
    border-top: none;
    padding-top: 0.35rem;
  }

  .champ-public-round--completed {
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
  }

  .champ-public-round--completed .champ-public-round__header {
    margin-bottom: 0.25rem;
  }

  .champ-public-round--completed .champ-public-round__day,
  .champ-public-round--completed .champ-public-round__track {
    color: var(--text-secondary, #6c757d);
  }

  .champ-public-round--completed .champ-public-round__track {
    font-weight: 600;
  }

  .champ-public-round__winner {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.65rem;
    margin: 0 0 0.2rem;
    font-size: 0.9375rem;
    line-height: 1.35;
  }

  .champ-public-round__winner-label {
    font-family: var(--font-display);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-secondary, #6c757d);
  }

  .champ-public-round__winner a.champ-public-round__winner-name {
    font-weight: 700;
    color: var(--text-primary);
    text-decoration: none;
  }

  .champ-public-round__winner a.champ-public-round__winner-name:hover {
    color: var(--primary, #0077b6);
    text-decoration: underline;
  }

  .champ-public-round--next {
    margin: 0 -0.75rem;
    padding: 1rem 0.75rem;
    border-top: none;
    border-radius: var(--radius, 0.5rem);
    background: color-mix(in srgb, var(--primary, #0077b6) 12%, transparent);
  }

  .champ-public-round--next:first-child {
    padding: 1rem 0.75rem;
  }

  .champ-public-round--next .champ-public-round__day,
  .champ-public-round--next .champ-public-round__month {
    color: var(--primary, #0077b6);
  }

  .champ-public-round__date time {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
  }

  .champ-public-round__day {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
  }

  .champ-public-round__month {
    font-family: var(--font-display);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--text-secondary, #6c757d);
  }

  .champ-public-round__header {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.12rem;
    margin-bottom: 0.65rem;
  }

  .champ-public-round__kicker {
    font-family: var(--font-display);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--primary, #0077b6);
  }

  .champ-public-round__kicker--done,
  .champ-public-round__kicker--partial {
    color: var(--text-secondary, #6c757d);
  }

  .champ-public-round__title-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem 1rem;
  }

  .champ-public-round__track {
    font-family: var(--font-display);
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--text-primary);
    text-decoration: none;
    overflow-wrap: break-word;
  }

  a.champ-public-round__track:hover {
    color: var(--primary, #0077b6);
  }

  .champ-public-round__aside {
    display: flex;
    flex-shrink: 0;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-end;
    gap: 0.35rem 0.65rem;
  }

  .champ-public-round__stage,
  .champ-public-round__multi {
    font-family: var(--font-display);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--text-secondary, #6c757d);
    white-space: nowrap;
  }

  .champ-public-round-race--follow {
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px dashed var(--border-color, #dee2e6);
  }

  .champ-public-round-race__head {
    margin-bottom: 0.35rem;
  }

  .champ-public-round-race__link {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-secondary, #6c757d);
    text-decoration: none;
  }

  .champ-public-round-race__link:hover {
    color: var(--primary, #0077b6);
  }

  .champ-public-round__admin {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.5rem 0.75rem;
    margin-top: 0.85rem;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--border-color, #dee2e6);
  }

  .champ-public-round__admin-label {
    flex: 0 0 auto;
    font-family: var(--font-display);
    font-size: 0.625rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-secondary, #6c757d);
    padding-top: 0.35rem;
  }

  .champ-public-round__server-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.65rem;
  }

  .champ-public-round__meta-chip {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.3rem 0.45rem;
    max-width: 100%;
    padding: 0.28rem 0.55rem;
    border: 1px solid var(--border-color, #dee2e6);
    border-radius: var(--radius-sm, 0.375rem);
    background: var(--bg-primary, #fff);
    font-size: 0.75rem;
    line-height: 1.25;
    color: var(--text-primary);
  }

  .champ-public-round__meta-chip .bi {
    color: var(--text-secondary, #6c757d);
    font-size: 0.8125rem;
  }

  .champ-public-round__meta-chip-label {
    font-weight: 600;
    color: var(--text-secondary, #6c757d);
  }

  .champ-public-round__meta-chip-value {
    font-weight: 600;
    word-break: break-word;
  }

  .champ-public-round__meta-chip--password code.champ-public-round__meta-chip-value {
    padding: 0;
    background: transparent;
    color: inherit;
    font-size: inherit;
  }

  .champ-public-round__meta-chip--status .bi-circle-fill {
    font-size: 0.5rem;
    color: var(--text-secondary, #6c757d);
  }

  .champ-public-round__meta-chip--status.is-on .bi-circle-fill {
    color: var(--success, #198754);
  }

  .champ-public-round__meta-chip--status.is-on .champ-public-round__meta-chip-value {
    color: var(--success, #198754);
  }

  .champ-public-round__admin-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    flex: 1 1 12rem;
    min-width: 0;
    max-width: 100%;
  }

  .champ-public-round__admin-server {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    flex: 1 1 auto;
    min-width: 0;
  }

  .champ-public-round__admin-server-label {
    padding-top: 0;
    line-height: 1.9;
  }

  .champ-public-round__admin-server-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    flex: 1 1 12rem;
    min-width: 0;
  }

  .champ-public-round__admin-form {
    display: inline-flex;
    margin: 0;
    min-width: 0;
    max-width: 100%;
  }

  .champ-public-round__admin-actions .btn,
  .champ-public-round__admin-form .btn {
    white-space: normal;
    overflow-wrap: anywhere;
    max-width: 100%;
    line-height: 1.3;
    text-align: center;
  }

  .champ-public-admin-btn__label-short {
    display: none;
  }

  .champ-public-round__admin-warning {
    flex: 1 1 100%;
    margin: 0;
    padding: 0.55rem 0.65rem;
    border: 1px solid color-mix(in srgb, var(--warning, #ffc107) 45%, var(--border-color, #dee2e6));
    border-radius: var(--radius-sm, 0.375rem);
    background: color-mix(in srgb, var(--warning, #ffc107) 12%, var(--bg-secondary, #f8f9fa));
    font-size: 0.8125rem;
    line-height: 1.35;
    color: var(--text-primary);
  }

  .champ-public-round__admin-warning-title {
    margin: 0 0 0.35rem;
    font-weight: 600;
  }

  .champ-public-round__admin-warning-list {
    margin: 0;
    padding-left: 1.1rem;
    color: var(--text-secondary, #6c757d);
  }

  .champ-public-round__admin-auto-start {
    flex: 1 1 100%;
    margin: 0.35rem 0 0;
    padding: 0.55rem 0.65rem;
    border: 1px solid color-mix(in srgb, var(--primary, #0d6efd) 35%, var(--border-color, #dee2e6));
    border-radius: var(--radius-sm, 0.375rem);
    background: color-mix(in srgb, var(--primary, #0d6efd) 8%, var(--bg-secondary, #f8f9fa));
    font-size: 0.8125rem;
    line-height: 1.35;
    color: var(--text-primary);
  }

  .champ-public-round__admin-auto-start-title {
    margin: 0 0 0.35rem;
    font-weight: 600;
  }

  .champ-public-round__admin-auto-start-list {
    margin: 0 0 0.45rem;
    padding-left: 1.1rem;
    color: var(--text-secondary, #6c757d);
  }

  .champ-public-round__admin-auto-start-late {
    color: var(--warning, #ffc107);
    font-weight: 600;
  }

  .champ-public-round__admin-auto-start-cancel {
    margin-top: 0.15rem;
  }

  .champ-public-round__admin-dropdown .dropdown-menu {
    min-width: 16rem;
  }

  .champ-public-round__admin-dropdown .dropdown-menu form {
    margin: 0;
  }

  .champ-public-round__admin-dropdown .dropdown-item {
    font-size: 0.8125rem;
  }

  @media (max-width: 767.98px) {
    .champ-public-admin-btn__label-full {
      display: none;
    }

    .champ-public-admin-btn__label-short {
      display: inline;
    }

    .champ-public-round__admin {
      flex-direction: column;
      align-items: stretch;
    }

    .champ-public-round__admin-label {
      padding-top: 0;
    }

    .champ-public-round__admin-actions {
      flex-direction: column;
      align-items: stretch;
      flex: 1 1 auto;
    }

    .champ-public-round__admin-server {
      flex-direction: column;
      align-items: stretch;
    }

    .champ-public-round__admin-server-label {
      line-height: 1.35;
      padding-top: 0.15rem;
    }

    .champ-public-round__admin-server-actions {
      flex-direction: column;
      align-items: stretch;
    }

    .champ-public-round__admin-form {
      display: flex;
      width: 100%;
      min-width: 0;
    }

    .champ-public-round__admin-dropdown {
      width: 100%;
    }

    .champ-public-round__admin-dropdown > .btn {
      width: 100%;
    }

    .champ-public-round__admin-actions .btn,
    .champ-public-round__admin-form .btn {
      width: 100%;
      max-width: 100%;
    }
  }

  .champ-public-round__sim {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3rem 0.45rem;
    margin: 0 0 0.45rem;
    font-size: 0.875rem;
    line-height: 1.3;
  }

  .champ-public-round__sim .bi {
    font-size: 0.875rem;
    color: var(--primary, #0077b6);
  }

  .champ-public-round__sim-label {
    font-family: var(--font-display);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-secondary, #6c757d);
  }

  .champ-public-round__sim-date {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
  }

  .champ-public-board {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.3rem 0;
  }

  .champ-public-board__row {
    display: grid;
    grid-template-columns: 5rem minmax(4.5rem, 7.5rem) 4.25rem minmax(0, 1fr);
    align-items: start;
    column-gap: 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.35;
  }

  .champ-public-board__time {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.08rem;
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
    line-height: 1.15;
  }

  .champ-public-board__sim-hour {
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--text-secondary, #6c757d);
    white-space: nowrap;
  }

  .champ-public-board__sim-hour-label {
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted, var(--text-secondary, #6c757d));
  }

  .champ-public-board__type {
    font-weight: 600;
    color: var(--text-primary);
  }

  .champ-public-board__len {
    font-variant-numeric: tabular-nums;
    color: var(--text-secondary, #6c757d);
    white-space: nowrap;
  }

  .champ-public-board__wx {
    font-size: 0.8125rem;
    color: var(--text-muted, var(--text-secondary, #6c757d));
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .champ-public-round__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.85rem;
    margin-top: 0.55rem;
    font-size: 0.8125rem;
  }

  .champ-public-round__links a,
  .champ-public-round__streams {
    padding: 0;
    border: 0;
    background: none;
    color: var(--text-secondary, #6c757d);
    font: inherit;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
  }

  .champ-public-round__links a:hover,
  .champ-public-round__streams:hover {
    color: var(--primary, #0077b6);
    text-decoration: underline;
  }

  @media (max-width: 575.98px) {
    .champ-public-round {
      grid-template-columns: 3.5rem minmax(0, 1fr);
      gap: 0.25rem 0.85rem;
    }

    .champ-public-round__day {
      font-size: 1.5rem;
    }

    .champ-public-round__track {
      font-size: 1.2rem;
    }

    .champ-public-round__title-row {
      flex-direction: column;
      align-items: flex-start;
      gap: 0.2rem;
    }

    .champ-public-round__aside {
      justify-content: flex-start;
    }

    .champ-public-board__row {
      grid-template-columns: 4.75rem minmax(3.5rem, 1fr) 3.75rem;
    }

    .champ-public-board__wx {
      grid-column: 1 / -1;
      padding-left: 4.75rem;
    }
  }

  .champ-public-registration-toggle {
    width: 100%;
  }

  .champ-public-registration-toggle {
    display: none;
  }

  .champ-public-header-surface {
    background: var(--gradient-header);
    color: var(--text-inverse, #ffffff);
    border-bottom: 1px solid var(--border-color);
  }

  .champ-public-header-surface h1 {
    font-family: var(--font-display);
  }

  [data-theme="light"] .champ-public-header-surface.card-header {
    color: #ffffff;
  }

  [data-theme="light"] .champ-public-header-surface.card-header h1 {
    color: #ffffff !important;
  }

  [data-theme="dark"] .champ-public-header-surface.card-header {
    background: #000000;
    background-image: none;
    color: var(--nav-brand);
  }

  [data-theme="dark"] .champ-public-header-surface.card-header h1 {
    color: var(--nav-brand) !important;
    text-shadow: 0 0 16px rgba(200, 164, 93, 0.25);
  }

  .champ-public-hscroll-shell {
    position: relative;
    overflow: visible;
  }

  .champ-public-hscroll-edge {
    display: none;
  }

  @media (max-width: 767.98px) {
    .championship-public-page {
      padding-bottom: 4.5rem;
    }

    .champ-public-header {
      flex-direction: column;
      align-items: flex-start;
      gap: 0.5rem;
    }

    .champ-public-header h1 {
      overflow-wrap: anywhere;
      word-break: break-word;
      width: 100%;
    }

    .champ-public-tabs {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scroll-snap-type: x proximity;
      scroll-padding-inline: 0.5rem;
      margin: 0 -0.25rem;
      padding: 0 0.25rem;
      scrollbar-width: none;
    }

    .champ-public-tabs::-webkit-scrollbar,
    .champ-public-leaders-scroll::-webkit-scrollbar {
      display: none;
    }

    .champ-public-tabs .nav-tabs {
      flex-wrap: nowrap;
      width: max-content;
      min-width: 100%;
      padding-right: 1.25rem;
      border-bottom: 1px solid var(--border-color, #dee2e6);
    }

    .champ-public-tabs .nav-item {
      flex-shrink: 0;
      scroll-snap-align: start;
    }

    .champ-public-hscroll-edge {
      position: absolute;
      top: 50%;
      width: auto;
      height: auto;
      transform: translateY(-50%);
      pointer-events: none;
      opacity: 0;
      transition: opacity 0.2s ease;
      z-index: 3;
      display: flex;
      align-items: center;
      background: none;
    }

    .champ-public-hscroll-shell--scrollable .champ-public-hscroll-edge {
      opacity: 1;
    }

    .champ-public-hscroll-shell--scrollable.champ-public-hscroll-shell--at-start .champ-public-hscroll-edge--start {
      opacity: 0;
    }

    .champ-public-hscroll-shell--scrollable.champ-public-hscroll-shell--at-end .champ-public-hscroll-edge--end {
      opacity: 0;
    }

    .champ-public-hscroll-edge--start {
      left: -0.35rem;
    }

    .champ-public-hscroll-edge--end {
      right: -0.45rem;
    }

    .champ-public-hscroll-shell--leaders .champ-public-hscroll-edge {
      top: 0.125rem;
      transform: none;
    }

    .champ-public-hscroll-shell--leaders .champ-public-hscroll-edge--start {
      left: -0.35rem;
    }

    .champ-public-hscroll-shell--leaders .champ-public-hscroll-edge--end {
      right: -0.45rem;
    }

    .champ-public-hscroll-chevron {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 1.375rem;
      height: 1.375rem;
      border-radius: 999px;
      background: var(--bg-secondary, #f8f9fa);
      border: 1px solid var(--border-color, #dee2e6);
      box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
      font-size: 0.75rem;
      line-height: 1;
      color: var(--text-secondary, #6c757d);
      opacity: 0.95;
    }

    .champ-public-hscroll-shell--scrollable:not(.champ-public-hscroll-shell--at-end) .champ-public-hscroll-chevron {
      animation: champ-public-hscroll-chevron-pulse 1.35s ease-in-out infinite;
    }

    @keyframes champ-public-hscroll-chevron-pulse {
      0%,
      100% {
        transform: translateX(0) scale(1);
        color: var(--text-secondary, #6c757d);
        opacity: 0.55;
      }

      50% {
        transform: translateX(4px) scale(1.1);
        color: var(--primary, #0077b6);
        opacity: 1;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .champ-public-hscroll-shell--scrollable:not(.champ-public-hscroll-shell--at-end) .champ-public-hscroll-chevron {
        animation: none;
        opacity: 0.85;
      }
    }

    .champ-public-leaders-scroll {
      overflow-x: auto;
      overflow-y: visible;
      -webkit-overflow-scrolling: touch;
      scroll-snap-type: x proximity;
      scroll-padding-inline: 0.5rem;
      margin: 0 -0.25rem;
      /* mini-card-position: top -6px — запас под бейдж в overflow-x контейнере */
      padding: 0.875rem 0.375rem 0.35rem;
      scrollbar-width: none;
    }

    .championship-leaders .champ-public-leaders-scroll {
      margin-top: -0.25rem;
    }

    .champ-public-leaders-scroll .leaders-mini-cards {
      flex-wrap: nowrap;
      justify-content: flex-start;
      padding-right: 0.5rem;
    }

    .champ-public-leaders-scroll .team-pilots-group-cards {
      justify-content: center;
    }

    .champ-public-leaders-scroll .mini-pilot-card-link,
    .champ-public-leaders-scroll .mini-pilot-card {
      scroll-snap-align: center;
      flex-shrink: 0;
    }

    .champ-public-leaders-scroll .mini-pilot-card-link:first-child {
      margin-left: 0.25rem;
    }

    .champ-public-leaders-scroll .mini-pilot-card-link:last-child {
      margin-right: 0.25rem;
    }

    .champ-public-actions {
      flex-direction: column;
      align-items: stretch;
      width: 100%;
    }

    .champ-public-actions--overview-bar {
      flex-direction: column;
      align-items: stretch;
      gap: 0.5rem;
    }

    .champ-public-actions--overview-bar .champ-public-actions__group {
      flex: 1 1 auto;
      min-width: 0;
      flex-direction: column;
      align-items: stretch;
      width: 100%;
    }

    .champ-public-actions--overview-bar .champ-public-actions__group .btn,
    .champ-public-actions--overview-bar .champ-public-actions__group .btn.disabled,
    .champ-public-actions--overview-bar .champ-public-actions__group form .btn {
      width: 100%;
      white-space: normal;
      overflow-wrap: anywhere;
      text-align: center;
      line-height: 1.3;
    }

    .champ-public-actions--overview-bar .champ-public-actions__share {
      width: 100%;
      margin-left: 0;
      flex-shrink: 0;
      white-space: normal;
      overflow-wrap: anywhere;
      text-align: center;
      line-height: 1.3;
    }

    .champ-public-actions > .d-flex {
      flex-direction: column;
      align-items: stretch;
      width: 100%;
    }

    .champ-public-actions .btn,
    .champ-public-actions .btn.disabled,
    .champ-public-actions form .btn {
      width: 100%;
    }

    .champ-public-actions .captain-reg-cta-wrap {
      width: 100%;
    }

    .champ-public-actions .captain-reg-cta-wrap .btn {
      width: 100%;
    }

    .champ-public-my-entry__head {
      grid-template-columns: 1fr;
    }

    .champ-public-my-entry__actions {
      flex-direction: row;
      flex-wrap: wrap;
      align-items: center;
      justify-content: flex-start;
      gap: 0.75rem 1rem;
    }

    .champ-public-my-entry__fields {
      grid-template-columns: 1fr;
    }

    .champ-public-my-entry__select {
      width: 100%;
      max-width: 100%;
    }
  }

  /* Таблица очков: строка «Место» визуально отделена от значений очков */
  .scoring-points-table {
    margin-bottom: 0;
  }

  .scoring-points-table .scoring-points-table__label {
    white-space: nowrap;
    font-weight: 600;
    color: var(--text-secondary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    min-width: 3.5rem;
  }

  .scoring-points-table thead .scoring-points-table__place {
    font-weight: 700;
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
    border-color: var(--border-color);
  }

  .scoring-points-table tbody .scoring-points-table__value {
    font-weight: 600;
    color: var(--text-primary);
    background-color: var(--bg-primary);
    border-color: var(--border-color);
  }

  .champ-public-vehicle-park__title,
  .champ-public-conditions__title {
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 0.5rem;
  }

  .champ-public-vehicle-park__list li,
  .champ-public-conditions__item {
    font-size: 0.9375rem;
    color: var(--text-primary);
    margin-bottom: 0.25rem;
  }

  .champ-public-conditions__label {
    font-weight: 600;
    margin-right: 0.25rem;
  }

  .champ-public-passport {
    padding: 1rem;
    border: 1px solid var(--border-color);
    border-radius: var(--radius, 0.375rem);
    background: var(--bg-secondary);
  }

  .champ-public-passport__grid {
    display: grid;
    gap: 0.5rem 1rem;
  }

  .champ-public-passport__row {
    display: grid;
    grid-template-columns: minmax(7rem, 9rem) 1fr;
    gap: 0.5rem 0.75rem;
    align-items: start;
  }

  .champ-public-passport__row dt {
    margin: 0;
    font-weight: 600;
    color: var(--text-secondary);
    font-size: 0.875rem;
  }

  .champ-public-passport__row dd {
    margin: 0;
    color: var(--text-primary);
    font-size: 0.9375rem;
  }

  @media (max-width: 575.98px) {
    .champ-public-passport__row {
      grid-template-columns: 1fr;
      gap: 0.125rem;
    }
  }
}

/* Тёмная тема: календарь этапов (вне @layer — подключается после base, перекрывает global a { color: primary }) */
html[data-theme="dark"] .championship-public-page .champ-public-calendar .champ-public-round__winner-label {
  color: var(--nav-brand) !important;
}

html[data-theme="dark"] .championship-public-page .champ-public-calendar .champ-public-round__sim-label {
  color: var(--nav-brand);
}

html[data-theme="dark"] .championship-public-page .champ-public-calendar a.champ-public-round__winner-name,
html[data-theme="dark"] .championship-public-page .champ-public-calendar a.champ-public-round__winner-name:visited {
  color: var(--text-primary) !important;
}

html[data-theme="dark"] .championship-public-page .champ-public-calendar a.champ-public-round__winner-name:hover {
  color: var(--text-primary) !important;
  text-decoration: underline;
}

html[data-theme="dark"] .championship-public-page .champ-public-calendar a.champ-public-round__track,
html[data-theme="dark"] .championship-public-page .champ-public-calendar a.champ-public-round__track:visited {
  color: var(--text-primary) !important;
}

html[data-theme="dark"] .championship-public-page .champ-public-round--completed a.champ-public-round__track {
  color: var(--text-secondary) !important;
}

html[data-theme="dark"] .championship-public-page .champ-public-calendar a.champ-public-round__track:hover {
  color: var(--nav-brand) !important;
}

html[data-theme="dark"] .championship-public-page .champ-public-calendar a.champ-public-round__link,
html[data-theme="dark"] .championship-public-page .champ-public-calendar a.champ-public-round__link:visited,
html[data-theme="dark"] .championship-public-page .champ-public-calendar .champ-public-round__streams {
  color: var(--text-secondary) !important;
}

html[data-theme="dark"] .championship-public-page .champ-public-calendar a.champ-public-round__link:hover,
html[data-theme="dark"] .championship-public-page .champ-public-calendar .champ-public-round__streams:hover {
  color: var(--nav-brand) !important;
}
