/**
 * @file: overrides.css
 * @description: Временные точечные перекрытия на период миграции (минимизировать).
 */

@layer overrides {
  /* ===== ВРЕМЕННАЯ СОВМЕСТИМОСТЬ НА ПЕРИОД МИГРАЦИИ ШАБЛОНОВ ===== */
  /* 1) Bootstrap утилиты (dark) */
  [data-theme="dark"] .text-dark:not(.bg-warning):not([class*="bg-warning"]):not(.bg-info):not([class*="bg-info"]),
  [data-theme="dark"] .text-black {
    color: var(--text-primary) !important;
  }

  /* Bootstrap muted/secondary — в dark должны быть читаемыми на surface */
  [data-theme="dark"] .text-muted {
    color: var(--text-muted) !important;
  }

  [data-theme="dark"] .text-secondary {
    color: var(--text-secondary) !important;
  }

  /* 2) «warning + text-dark» должно быть читабельным */
  [data-theme="dark"] .bg-warning.text-dark,
  [data-theme="dark"] .card-header.bg-warning.text-dark,
  [data-theme="dark"] .badge.bg-warning.text-dark {
    background-color: var(--warning) !important;
    color: var(--on-warning) !important;
  }

  [data-theme="dark"] .alert-warning.text-dark,
  [data-theme="dark"] .alert.alert-warning.text-dark {
    background-color: rgba(210, 153, 34, 0.22) !important;
    border-color: var(--warning) !important;
    color: #fcd34d !important;
  }

  [data-theme="dark"] .alert-warning.text-dark strong,
  [data-theme="dark"] .alert-warning.text-dark i.bi,
  [data-theme="dark"] .alert.alert-warning.text-dark strong,
  [data-theme="dark"] .alert.alert-warning.text-dark i.bi {
    color: #fcd34d !important;
  }

  /* 3) «primary + text-white» (например, заголовки) */
  [data-theme="dark"] .bg-primary.text-white,
  [data-theme="dark"] .card-header.bg-primary.text-white {
    background: var(--header-primary-bg) !important;
    color: var(--on-header-primary) !important;
  }

  /* УДАЛЕНО: color: inherit для дочерних элементов .bg-primary.text-white */
  /* Это правило вызывало наследование белого цвета для всех дочерних элементов */
  /* Вместо этого используем явные правила ниже для элементов внутри карточек */

  /* УДАЛЕНО: принудительный color для .event-car-tag — ломал контраст (светлый текст на светлом фоне) */
  /* Цвета тегов машин: токены --event-car-tag-* в variables.css + events.css */

  /* УДАЛЕНО: Агрессивные правила для всех элементов внутри карточек */
  /* Эти правила вызывали конфликты и перекрытие шрифта. Вместо этого используются специфичные правила в dark.css */
  /* В светлой теме таких правил нет, поэтому там все работает нормально */

  /* КРИТИЧЕСКОЕ: Перекрываем класс .text-white для элементов внутри card-body и event-card-body */
  /* Также перекрываем для всех элементов внутри .card, кроме .card-header (где белый текст уместен) */
  [data-theme="dark"] .card-body .text-white,
  [data-theme="dark"] .event-card-body .text-white,
  [data-theme="dark"] .card-body .text-white *,
  [data-theme="dark"] .event-card-body .text-white *,
  [data-theme="dark"] .card .text-white:not(.card-header):not(.card-header *):not(.event-card-header):not(.event-card-header *),
  [data-theme="dark"] .event-card .text-white:not(.card-header):not(.card-header *):not(.event-card-header):not(.event-card-header *),
  [data-theme="dark"] .championship-card .text-white:not(.card-header):not(.card-header *):not(.event-card-header):not(.event-card-header *),
  [data-theme="dark"] .standalone-race-card .text-white:not(.card-header):not(.card-header *):not(.event-card-header):not(.event-card-header *) {
    color: var(--text-primary) !important;
  }

}

/*
 * Bootstrap bg-* utilities: @layer utilities + !important побеждает @layer overrides.
 * Правила вне слоёв — единственный надёжный способ. В новых шаблонах — семантические классы.
 */
[data-theme="dark"] .bg-light:not(.tooltip):not(.tooltip-inner),
[data-bs-theme="dark"] .bg-light:not(.tooltip):not(.tooltip-inner) {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

[data-theme="dark"] .bg-light.bg-opacity-50,
[data-bs-theme="dark"] .bg-light.bg-opacity-50 {
  background-color: color-mix(in srgb, var(--bg-secondary) 55%, transparent) !important;
  color: var(--text-primary) !important;
}

[data-theme="dark"] .bg-light-subtle,
[data-bs-theme="dark"] .bg-light-subtle {
  background-color: var(--bg-tertiary) !important;
  color: var(--text-primary) !important;
}

[data-theme="dark"] .bg-white,
[data-bs-theme="dark"] .bg-white {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

[data-theme="dark"] .badge.bg-light,
[data-bs-theme="dark"] .badge.bg-light,
[data-theme="dark"] .badge.bg-light.text-dark,
[data-bs-theme="dark"] .badge.bg-light.text-dark {
  background-color: var(--bg-tertiary) !important;
  color: var(--text-primary) !important;
  border-color: var(--border-color) !important;
}

/* ===== КРИТИЧЕСКОЕ: ЦВЕТ ТЕКСТА КНОПОК В ТЕМНОЙ ТЕМЕ ===== */
/* Правила ВНЕ слоя имеют приоритет над всеми слоями, включая Bootstrap */
/* Кнопки с цветным фоном должны иметь белый текст для контраста */

[data-theme="dark"] .btn-success,
[data-theme="dark"] .btn.btn-success,
[data-theme="dark"] a.btn-success,
[data-theme="dark"] a.btn.btn-success,
[data-theme="dark"] a.btn.btn-success.btn-sm,
[data-theme="dark"] button.btn-success,
[data-theme="dark"] button.btn.btn-success {
  --bs-btn-color: #ffffff;
  --bs-btn-hover-color: #ffffff;
  --bs-btn-active-color: #ffffff;
  color: #ffffff !important;
}

[data-theme="dark"] .btn-success *,
[data-theme="dark"] .btn-success i,
[data-theme="dark"] .btn-success i.bi,
[data-theme="dark"] .btn-success span,
[data-theme="dark"] a.btn.btn-success *,
[data-theme="dark"] a.btn.btn-success i,
[data-theme="dark"] a.btn.btn-success i.bi,
[data-theme="dark"] a.btn.btn-success span {
  color: #ffffff !important;
}

/* btn-secondary в темной теме тоже должен иметь белый текст */
[data-theme="dark"] .btn-secondary,
[data-theme="dark"] .btn.btn-secondary,
[data-theme="dark"] a.btn-secondary,
[data-theme="dark"] a.btn.btn-secondary,
[data-theme="dark"] a.btn.btn-secondary.btn-sm,
[data-theme="dark"] button.btn-secondary,
[data-theme="dark"] button.btn.btn-secondary {
  --bs-btn-color: #ffffff;
  --bs-btn-hover-color: #ffffff;
  --bs-btn-active-color: #ffffff;
  color: #ffffff !important;
}

[data-theme="dark"] .btn-secondary *,
[data-theme="dark"] .btn-secondary i,
[data-theme="dark"] .btn-secondary i.bi,
[data-theme="dark"] .btn-secondary span,
[data-theme="dark"] a.btn.btn-secondary *,
[data-theme="dark"] a.btn.btn-secondary i,
[data-theme="dark"] a.btn.btn-secondary i.bi,
[data-theme="dark"] a.btn.btn-secondary span {
  color: #ffffff !important;
}

/* badge bg-secondary: контраст на card-header и других тёмных поверхностях */
[data-theme="dark"] .badge.bg-secondary {
  background-color: var(--secondary) !important;
  border: 1px solid var(--border-color);
  color: #000 !important;
}

/* btn-primary в темной теме тоже должен иметь белый текст */
[data-theme="dark"] .btn-primary,
[data-theme="dark"] .btn.btn-primary,
[data-theme="dark"] a.btn-primary,
[data-theme="dark"] a.btn.btn-primary,
[data-theme="dark"] a.btn.btn-primary.btn-sm,
[data-theme="dark"] button.btn-primary,
[data-theme="dark"] button.btn.btn-primary {
  --bs-btn-color: #ffffff;
  --bs-btn-hover-color: #ffffff;
  --bs-btn-active-color: #ffffff;
  color: #ffffff !important;
}

[data-theme="dark"] .btn-primary *,
[data-theme="dark"] .btn-primary i,
[data-theme="dark"] .btn-primary i.bi,
[data-theme="dark"] .btn-primary span,
[data-theme="dark"] a.btn.btn-primary *,
[data-theme="dark"] a.btn.btn-primary i,
[data-theme="dark"] a.btn.btn-primary i.bi,
[data-theme="dark"] a.btn.btn-primary span {
  color: #ffffff !important;
}

/* alert-warning в тёмной теме: вне @layer, перекрывает Bootstrap text-dark и bg-warning-subtle */
[data-theme="dark"] .alert.alert-warning,
[data-theme="dark"] .alert.alert-warning.no-toast {
  background-color: rgba(210, 153, 34, 0.28) !important;
  border-color: var(--warning) !important;
  color: #fde68a !important;
}

[data-theme="dark"] .alert.alert-warning strong,
[data-theme="dark"] .alert.alert-warning i.bi,
[data-theme="dark"] .alert.alert-warning.no-toast strong,
[data-theme="dark"] .alert.alert-warning.no-toast i.bi {
  color: #fde68a !important;
}

/* ===== Командные карточки: усиленное визуальное разделение ===== */
/* Размещено в overrides.css, чтобы гарантированно перекрывать theme-правила .card/.card-body */
[data-theme="light"] .team-app-list .team-app-h,
[data-theme="dark"] .team-app-list .team-app-h {
  border-left-width: 6px !important;
}

[data-theme="light"] .team-app-list .team-app-h {
  border-color: #c3cedf !important;
  border-left-color: #4f6689 !important;
  background: #edf2fb !important;
  box-shadow: none !important;
}

[data-theme="light"] .team-app-list .team-app-h:nth-child(even) {
  background: #e5ecf8 !important;
}

[data-theme="light"] .team-app-list .team-app-h .card-body {
  background: #f8fbff !important;
  color: #1b2433 !important;
}

[data-theme="dark"] .team-app-list .team-app-h {
  border-color: #4a5d7a !important;
  border-left-color: #89aee0 !important;
  background: #1e2a3a !important;
  box-shadow: none !important;
}

[data-theme="dark"] .team-app-list .team-app-h:nth-child(even) {
  background: #223146 !important;
}

[data-theme="dark"] .team-app-list .team-app-h .card-body {
  background: #162131 !important;
  color: var(--text-primary) !important;
}

[data-theme="light"] .team-app-list .team-app-h:hover,
[data-theme="dark"] .team-app-list .team-app-h:hover {
  transform: translateY(-2px) !important;
}

/* ===== Cookie consent banner: поверх нижних виджетов и кликабельность ===== */
#cookie-consent-banner {
  display: none;
  z-index: var(--z-cookie-banner) !important;
  pointer-events: none;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

#cookie-consent-banner .overlay-surface__content {
  align-items: stretch !important;
  background-clip: padding-box;
  background-color: var(--overlay-bg) !important;
  border-color: var(--overlay-border) !important;
  color: var(--overlay-text) !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
  line-height: 1.35;
  pointer-events: auto;
}

#cookie-consent-banner .overlay-surface__content > .flex-grow-1 {
  min-width: 0;
  overflow-wrap: anywhere;
}

#cookie-consent-banner .overlay-surface__content > .flex-grow-1,
#cookie-consent-banner .overlay-surface__content > .flex-grow-1 * {
  color: var(--overlay-text) !important;
  opacity: 1 !important;
}

#cookie-consent-banner .overlay-surface__content > .d-flex.gap-2 {
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  min-width: 0;
}

#cookie-consent-banner .overlay-surface__content > .d-flex.gap-2 .btn {
  flex: 0 1 auto;
  min-width: max-content;
  white-space: normal !important;
}

@media (max-width: 575.98px) {
  #cookie-consent-banner {
    padding: 0.5rem !important;
    padding-bottom: calc(0.5rem + env(safe-area-inset-bottom, 0px)) !important;
  }

  #cookie-consent-banner .overlay-surface__content > .d-flex.gap-2 {
    justify-content: stretch !important;
  }

  #cookie-consent-banner .overlay-surface__content > .d-flex.gap-2 .btn {
    flex: 1 1 100%;
  }
}

/* Opaque backgrounds for fixed / overlay alerts (not inline hints) */
.alert-overlay,
[data-overlay="true"],
.alert.position-fixed {
  background-color: var(--overlay-bg) !important;
  border-color: var(--overlay-border) !important;
  color: var(--overlay-text) !important;
  box-shadow: var(--overlay-shadow);
}

[data-theme="light"] .alert-overlay,
[data-theme="light"] [data-overlay="true"],
[data-theme="light"] .alert.position-fixed {
  background-color: var(--overlay-bg) !important;
  color: var(--overlay-text) !important;
}

[data-theme="dark"] .alert-overlay,
[data-theme="dark"] [data-overlay="true"],
[data-theme="dark"] .alert.position-fixed {
  background-color: var(--overlay-bg) !important;
  color: var(--overlay-text) !important;
}

/* ===== Cookie consent banner: контраст в темной теме ===== */
[data-theme="dark"] #cookie-consent-banner .overlay-surface__content {
  background-color: var(--overlay-bg) !important;
  border-color: var(--border-dark) !important;
  color: var(--text-primary) !important;
}

[data-theme="dark"] #cookie-consent-banner .overlay-surface__content .alert-link,
#cookie-consent-banner .overlay-surface__content a:not(.btn) {
  color: var(--primary) !important;
  text-decoration: underline;
}

/* ===== Rating view toggle: контраст активной кнопки в dark theme ===== */
[data-theme="dark"] .pilot-cards-page .view-toggle-container a.view-toggle-btn.active,
[data-theme="dark"] .pilot-cards-page .view-toggle-container a.view-toggle-btn.active:visited,
[data-theme="dark"] .rating-page .view-toggle-container a.view-toggle-btn.active,
[data-theme="dark"] .rating-page .view-toggle-container a.view-toggle-btn.active:visited {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
}

/* ===== Pagination: контраст активной страницы (форум, категории, списки) ===== */
[data-theme="dark"] .pagination .page-item.active .page-link,
[data-theme="dark"] .pagination .page-item.active .page-link:visited,
[data-theme="dark"] .pagination .page-item.active .page-link:hover,
[data-theme="dark"] .pagination .page-item.active .page-link:focus,
[data-theme="light"] .pagination .page-item.active .page-link,
[data-theme="light"] .pagination .page-item.active .page-link:visited,
[data-theme="light"] .pagination .page-item.active .page-link:hover,
[data-theme="light"] .pagination .page-item.active .page-link:focus {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--on-primary) !important;
  -webkit-text-fill-color: var(--on-primary) !important;
  opacity: 1 !important;
}

/* ===== Period leaderboards: белый текст на активном сегменте Неделя/Месяц ===== */
a.period-lb__segment.is-active,
a.period-lb__segment.is-active:link,
a.period-lb__segment.is-active:visited,
a.period-lb__segment.is-active:hover,
a.period-lb__segment.is-active:focus,
a.period-lb__segment.is-active:active {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  opacity: 1 !important;
  text-decoration: none !important;
}

/* ===== Badge links: контраст на цветной заливке (форум, карточки) ===== */
[data-theme="dark"] a.badge.bg-primary,
[data-theme="dark"] a.badge.bg-primary:visited,
[data-theme="dark"] a.badge.bg-primary:hover,
[data-theme="dark"] a.badge.bg-primary:focus,
[data-theme="dark"] a.badge.bg-success,
[data-theme="dark"] a.badge.bg-success:visited,
[data-theme="dark"] a.badge.bg-success:hover,
[data-theme="dark"] a.badge.bg-success:focus,
[data-theme="dark"] a.badge.bg-danger,
[data-theme="dark"] a.badge.bg-danger:visited,
[data-theme="dark"] a.badge.bg-danger:hover,
[data-theme="dark"] a.badge.bg-danger:focus,
[data-theme="dark"] a.badge.bg-info,
[data-theme="dark"] a.badge.bg-info:visited,
[data-theme="dark"] a.badge.bg-info:hover,
[data-theme="dark"] a.badge.bg-info:focus,
[data-theme="dark"] a.badge.icon-light,
[data-theme="dark"] a.badge.icon-light:visited,
[data-theme="dark"] a.badge.icon-light:hover,
[data-theme="dark"] a.badge.icon-light:focus {
  color: var(--on-primary) !important;
  -webkit-text-fill-color: var(--on-primary) !important;
}

[data-theme="dark"] a.badge.bg-secondary,
[data-theme="dark"] a.badge.bg-secondary:visited,
[data-theme="dark"] a.badge.bg-secondary:hover,
[data-theme="dark"] a.badge.bg-secondary:focus {
  color: #000000 !important;
  -webkit-text-fill-color: #000000 !important;
}

[data-theme="dark"] a.badge.bg-warning,
[data-theme="dark"] a.badge.bg-warning:visited,
[data-theme="dark"] a.badge.bg-warning:hover,
[data-theme="dark"] a.badge.bg-warning:focus {
  color: var(--on-warning) !important;
  -webkit-text-fill-color: var(--on-warning) !important;
}

[data-theme="dark"] a.badge.icon-light i.bi,
[data-theme="dark"] a.badge.icon-light .bi {
  color: inherit !important;
}

/* История опыта пилота: название этапа в card-body */
[data-theme="dark"] .card-body .history-item .history-item-title {
  color: var(--text-primary) !important;
}

/* ===== Dark theme: повышенная видимость чекбоксов (не form-switch) ===== */
[data-theme="dark"] .form-check:not(.form-switch) .form-check-input[type="checkbox"],
[data-bs-theme="dark"] .form-check:not(.form-switch) .form-check-input[type="checkbox"] {
  background-color: #1f2733 !important;
  border-color: #9fb3cc !important;
  box-shadow: 0 0 0 1px rgba(159, 179, 204, 0.35) !important;
}

[data-theme="dark"] .form-check:not(.form-switch) .form-check-input[type="checkbox"]:hover,
[data-bs-theme="dark"] .form-check:not(.form-switch) .form-check-input[type="checkbox"]:hover {
  border-color: #c3d4e8 !important;
  box-shadow: 0 0 0 2px rgba(195, 212, 232, 0.28) !important;
}

[data-theme="dark"] .form-check:not(.form-switch) .form-check-input[type="checkbox"]:focus,
[data-bs-theme="dark"] .form-check:not(.form-switch) .form-check-input[type="checkbox"]:focus {
  border-color: #79a7ff !important;
  box-shadow: 0 0 0 0.25rem rgba(121, 167, 255, 0.35) !important;
}

[data-theme="dark"] .form-check:not(.form-switch) .form-check-input[type="checkbox"]:checked,
[data-bs-theme="dark"] .form-check:not(.form-switch) .form-check-input[type="checkbox"]:checked {
  background-color: #2f7dff !important;
  border-color: #6ea1ff !important;
  box-shadow: 0 0 0 1px rgba(110, 161, 255, 0.45) !important;
}

[data-theme="dark"] .form-check:not(.form-switch) .form-check-input.is-valid[type="checkbox"],
[data-bs-theme="dark"] .form-check:not(.form-switch) .form-check-input.is-valid[type="checkbox"] {
  border-color: #6ea1ff !important;
}

/* ===== Dark theme: form-switch (переключатели) ===== */
[data-theme="dark"] .form-check.form-switch .form-check-input,
[data-bs-theme="dark"] .form-check.form-switch .form-check-input {
  background-color: #2a3442 !important;
  background-image: var(--bs-form-switch-bg) !important;
  border-color: #9fb3cc !important;
  box-shadow: 0 0 0 1px rgba(159, 179, 204, 0.35) !important;
}

[data-theme="dark"] .form-check.form-switch .form-check-input:hover,
[data-bs-theme="dark"] .form-check.form-switch .form-check-input:hover {
  border-color: #c3d4e8 !important;
  box-shadow: 0 0 0 2px rgba(195, 212, 232, 0.28) !important;
}

[data-theme="dark"] .form-check.form-switch .form-check-input:focus,
[data-bs-theme="dark"] .form-check.form-switch .form-check-input:focus {
  border-color: #79a7ff !important;
  box-shadow: 0 0 0 0.25rem rgba(121, 167, 255, 0.35) !important;
}

[data-theme="dark"] .form-check.form-switch .form-check-input:checked,
[data-bs-theme="dark"] .form-check.form-switch .form-check-input:checked {
  background-color: #2f7dff !important;
  border-color: #6ea1ff !important;
  box-shadow: 0 0 0 1px rgba(110, 161, 255, 0.45) !important;
}

/*
 * Native date/time icons (Windows Chromium): color-scheme: dark не всегда
 * делает индикатор светлым, а filter: invert на ::-webkit-calendar-picker-indicator
 * часто не применяется. Светлый SVG на самом input + прозрачный native hit-area
 * поверх иконки (position:absolute), чтобы клик открывал picker.
 * @supports selector(::-webkit-...) — только Blink/WebKit, без двойной иконки в Firefox.
 */
@supports selector(::-webkit-calendar-picker-indicator) {
  [data-theme="dark"] input[type="date"].form-control,
  [data-theme="dark"] input[type="datetime-local"].form-control {
    position: relative;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23e6edf3' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.65rem center;
    background-size: 1rem 1rem;
    padding-right: 2.25rem;
  }

  [data-theme="dark"] input[type="time"].form-control {
    position: relative;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23e6edf3' viewBox='0 0 16 16'%3E%3Cpath d='M8 3.5a.5.5 0 0 0-1 0V9a.5.5 0 0 0 .252.434l3.5 2a.5.5 0 0 0 .496-.868L8 8.71V3.5z'/%3E%3Cpath d='M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm7-8A7 7 0 1 1 1 8a7 7 0 0 1 14 0z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.65rem center;
    background-size: 1rem 1rem;
    padding-right: 2.25rem;
  }

  [data-theme="dark"] input[type="date"]::-webkit-calendar-picker-indicator,
  [data-theme="dark"] input[type="time"]::-webkit-calendar-picker-indicator,
  [data-theme="dark"] input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    position: absolute;
    right: 0;
    top: 0;
    width: 2.5rem;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: pointer;
  }
}

/* Native select: option color также влияет на текст в закрытом поле (Chromium) */
[data-theme="dark"] .form-select,
[data-theme="dark"] select:not([multiple]):not([size]) {
  color: var(--text-primary) !important;
  /* Bootstrap caret по умолчанию stroke #343a40 — на тёмном фоне не виден */
  --pgt-select-caret: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23e6edf3' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-image: var(--pgt-select-caret);
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
}

[data-theme="dark"] .form-select.is-valid:not([multiple]):not([size]),
[data-theme="dark"] .form-select.is-valid:not([multiple])[size="1"],
[data-theme="dark"] .was-validated .form-select:valid:not([multiple]):not([size]),
[data-theme="dark"] .was-validated .form-select:valid:not([multiple])[size="1"] {
  background-image: var(--pgt-select-caret),
    url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233fb950' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.63-.71 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-position: right 0.75rem center, center right 2rem;
  background-size: 16px 12px, 0.75rem 0.75rem;
  background-repeat: no-repeat;
  padding-right: 2.5rem;
}

/* Узкие ЧЧ/ММ: is-valid добавляет 2-ю иконку и padding ~66px — текст пропадает */
.schedule-hour.form-select,
.schedule-minute.form-select,
.schedule-hour.form-select.is-valid,
.schedule-minute.form-select.is-valid,
.was-validated .schedule-hour.form-select:valid,
.was-validated .schedule-minute.form-select:valid {
  padding-right: 1.65rem !important;
  background-position: right 0.4rem center !important;
  background-size: 12px 10px !important;
  background-repeat: no-repeat !important;
}

[data-theme="dark"] .schedule-hour.form-select,
[data-theme="dark"] .schedule-minute.form-select,
[data-theme="dark"] .schedule-hour.form-select.is-valid,
[data-theme="dark"] .schedule-minute.form-select.is-valid,
[data-theme="dark"] .was-validated .schedule-hour.form-select:valid,
[data-theme="dark"] .was-validated .schedule-minute.form-select:valid {
  background-image: var(--pgt-select-caret) !important;
  color: var(--text-primary) !important;
}

[data-theme="dark"] .form-select option,
[data-theme="dark"] select:not([multiple]):not([size]) option,
[data-theme="dark"] .form-select optgroup,
[data-theme="dark"] select:not([multiple]):not([size]) optgroup {
  background-color: var(--native-select-option-bg) !important;
  color: var(--native-select-option-color) !important;
}

[data-theme="dark"] .form-select option:checked,
[data-theme="dark"] select:not([multiple]):not([size]) option:checked {
  background-color: var(--native-select-option-selected-bg) !important;
  color: var(--native-select-option-color) !important;
}

[data-theme="dark"] .form-select option:disabled,
[data-theme="dark"] select:not([multiple]):not([size]) option:disabled {
  color: var(--text-muted) !important;
}

/* ===== THEME SWITCHER (вне слоёв — перекрывает global link color и Bootstrap) ===== */
.navbar .theme-switcher__option,
.navbar-nav .theme-switcher__option {
  opacity: 1 !important;
  filter: none !important;
  text-decoration: none !important;
}

.navbar .theme-switcher__option:not(.active),
.navbar-nav .theme-switcher__option:not(.active) {
  background: var(--theme-switcher-idle-bg) !important;
  border: 2px solid var(--theme-switcher-idle-border) !important;
  color: var(--theme-switcher-idle-text) !important;
}

.navbar .theme-switcher__option:not(.active):hover,
.navbar .theme-switcher__option:not(.active):focus-visible,
.navbar-nav .theme-switcher__option:not(.active):hover,
.navbar-nav .theme-switcher__option:not(.active):focus-visible {
  background: var(--theme-switcher-hover-bg) !important;
  border-color: var(--theme-switcher-hover-border) !important;
  color: var(--theme-switcher-hover-text) !important;
}

.navbar .theme-switcher__option.active,
.navbar-nav .theme-switcher__option.active {
  background: var(--theme-switcher-active-bg) !important;
  border: 2px solid var(--theme-switcher-active-border) !important;
  color: var(--theme-switcher-active-text) !important;
}

.navbar .theme-switcher__option.active:hover,
.navbar .theme-switcher__option.active:focus-visible,
.navbar-nav .theme-switcher__option.active:hover,
.navbar-nav .theme-switcher__option.active:focus-visible {
  background: var(--theme-switcher-active-hover-bg) !important;
  border-color: var(--theme-switcher-active-hover-border) !important;
  color: var(--theme-switcher-active-hover-text) !important;
}

.navbar .theme-switcher__option .theme-switcher__icon,
.navbar .theme-switcher__option .theme-switcher__label,
.navbar .theme-switcher__option .theme-switcher__mark,
.navbar-nav .theme-switcher__option .theme-switcher__icon,
.navbar-nav .theme-switcher__option .theme-switcher__label,
.navbar-nav .theme-switcher__option .theme-switcher__mark {
  color: inherit !important;
}

@media (max-width: 991.98px) {
  .navbar .theme-switcher {
    padding-inline: 1rem;
  }
}

/* ===== Модальные окна: непрозрачная подложка в тёмной теме ===== */
/* Зачем: var(--bg-secondary) был циклическим токеном → прозрачный фон у .modal-content и др. */
[data-theme="dark"] .modal-content,
[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer,
[data-theme="dark"] .modal-body {
  background-color: var(--surface-2, #11161d) !important;
  background-clip: padding-box;
  color: var(--text-primary) !important;
}

[data-theme="dark"] .modal-content {
  border: 1px solid var(--border-color) !important;
  box-shadow: var(--shadow-lg);
}

[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer {
  border-color: var(--border-color) !important;
}

[data-theme="dark"] .modal-backdrop.show {
  --bs-backdrop-opacity: 0.72;
  background-color: #000 !important;
}

/* ===== Каталог команд: контраст названия на цветном заголовке (dark) ===== */
@layer overrides {
  html[data-theme="dark"] .team-catalog .team-card:not([data-rank]) .team-header {
    background: linear-gradient(135deg, rgba(31, 36, 43, 0.95) 0%, rgba(17, 22, 29, 0.95) 100%) !important;
    border-left-color: var(--primary) !important;
  }

  html[data-theme="dark"] .team-catalog .team-card[data-rank] .team-header .card-title,
  html[data-theme="dark"] .team-catalog .team-card[data-rank] .team-header .card-title a,
  html[data-theme="dark"] .team-catalog .team-card[data-rank] .team-header .card-title a:visited,
  html[data-theme="dark"] .team-catalog .team-card:not([data-rank]) .team-header .card-title,
  html[data-theme="dark"] .team-catalog .team-card:not([data-rank]) .team-header .card-title a,
  html[data-theme="dark"] .team-catalog .team-card:not([data-rank]) .team-header .card-title a:visited {
    color: var(--team-header-title-color, var(--text-primary)) !important;
    -webkit-text-fill-color: var(--team-header-title-color, var(--text-primary)) !important;
    text-shadow: var(--team-header-title-shadow, none);
    text-decoration: none;
    opacity: 1 !important;
  }

  html[data-theme="dark"] .team-catalog .team-card[data-rank] .team-header .card-title a:hover,
  html[data-theme="dark"] .team-catalog .team-card[data-rank] .team-header .card-title a:focus,
  html[data-theme="dark"] .team-catalog .team-card:not([data-rank]) .team-header .card-title a:hover,
  html[data-theme="dark"] .team-catalog .team-card:not([data-rank]) .team-header .card-title a:focus {
    color: var(--team-header-title-color, #ffffff) !important;
    -webkit-text-fill-color: var(--team-header-title-color, #ffffff) !important;
    opacity: 0.92 !important;
  }

  html[data-theme="dark"] .team-catalog .team-card[data-rank] .team-header .team-tag {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }
}

/* ===== NAVBAR BRAND (вне слоёв — перекрывает global link color в dark theme) ===== */
html[data-theme="dark"] .navbar.bg-primary .navbar-brand,
html[data-theme="dark"] .navbar.navbar-expand-lg.navbar-dark.bg-primary .navbar-brand {
  color: #ffcc02 !important;
}

html[data-theme="dark"] .navbar.bg-primary .navbar-brand:hover,
html[data-theme="dark"] .navbar.navbar-expand-lg.navbar-dark.bg-primary .navbar-brand:hover {
  color: #ffd84a !important;
}
