/* ===== Layout ===== */
.results-board {
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    overflow: hidden;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
}

.results-board.results-fullscreen {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    height: 100vh;
    z-index: 1040;
    border-radius: 0;
    margin: 0;
    overflow: hidden;
}

.results-header,
.view-selector,
.filter-bar,
.results-toolbar {
    flex-shrink: 0;
}

.results-table-wrap {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.results-board:not(.results-fullscreen) .results-table-wrap {
    flex: none;
    min-height: auto;
    overflow: visible;
}

.results-table-wrap::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.results-table-wrap::-webkit-scrollbar-track {
    background: var(--results-panel-dark);
}

.results-table-wrap::-webkit-scrollbar-thumb {
    background: var(--results-border-light);
    border-radius: 4px;
}

.results-table-wrap::-webkit-scrollbar-thumb:hover {
    background: var(--results-muted);
}

/* ===== Dark theme (scoreboard-yandex style) ===== */
#resultsApp.results-theme-dark {
    --results-bg: #0A0E14;
    --results-panel: #141922;
    --results-panel-dark: #0F1319;
    --results-border: #1F2530;
    --results-border-light: #2A3240;
    --results-text: #FFFFFF;
    --results-muted: #8B95A6;
    --results-accent: #3A7AFE;
    --results-green: #1ED760;
    --results-orange: #FF9900;
    --results-shadow: rgba(0, 0, 0, 0.35);
    --results-btn-bg: rgba(56, 66, 85, 0.75);
    --results-btn-hover: rgba(72, 84, 106, 0.95);
    --results-btn-active: rgba(58, 122, 254, 0.28);
    --results-highlight: rgba(245, 158, 11, 0.4);
    --results-highlight-border: rgba(251, 191, 36, 0.5);
    --results-highlight-accent: #f59e0b;
}

/* ===== Light theme ===== */
#resultsApp.results-theme-light {
    --results-bg: #ffffff;
    --results-panel: #ffffff;
    --results-panel-dark: #ffffff;
    --results-border: #e5e7eb;
    --results-border-light: #e5e7eb;
    --results-text: #111827;
    --results-muted: #6b7280;
    --results-accent: #0f2042;
    --results-green: #16a34a;
    --results-orange: #ff6b00;
    --results-shadow: rgba(0, 0, 0, 0.05);
    --results-btn-bg: #e2e8f0;
    --results-btn-hover: #cbd5e1;
    --results-btn-active: #0f2042;
    --results-highlight: rgba(255, 107, 0, 0.14);
    --results-highlight-border: rgba(255, 107, 0, 0.35);
    --results-highlight-accent: #ff6b00;
    --results-tab-inactive-bg: #e2e8f0;
    --results-tab-inactive-text: #4a5568;
    --results-tab-active-bg: #0f2042;
    --results-tab-active-text: #ffffff;
    --results-penalty: #d32f2f;
    --results-page-bg: #e2e8f0;
    --results-zebra: #f9fafb;
    --results-gap-leader: #991b1b;
    --results-gap-prev: #6b7280;
    --results-link: #1d4ed8;
}

body[data-results-theme="light"] {
    background-color: #e2e8f0;
}

#resultsApp.results-theme-light.results-board {
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    border-color: #e5e7eb;
    overflow: hidden;
}

#resultsApp.results-theme-light.results-board.results-fullscreen {
    border-radius: 0;
    box-shadow: none;
}

#resultsApp.results-board {
    background: var(--results-bg);
    border: 1px solid var(--results-border);
    color: var(--results-text);
}

#resultsApp .results-header {
    background: var(--results-panel);
    border-bottom: 1px solid var(--results-border);
    box-shadow: 0 2px 8px var(--results-shadow);
    padding: 16px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

#resultsApp .results-header-left {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

#resultsApp .results-event-name {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 0.3px;
    color: var(--results-text);
}

#resultsApp .results-event-date {
    font-size: 13px;
    color: var(--results-muted);
}

#resultsApp .results-header-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

#resultsApp .view-selector,
#resultsApp .filter-bar,
#resultsApp .results-toolbar {
    background: var(--results-panel);
    border-bottom: 1px solid var(--results-border);
}

#resultsApp .view-selector {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 12px;
}

#resultsApp .filter-bar {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    padding: 10px 12px;
}

#resultsApp .filter-label {
    font-weight: 600;
    color: var(--results-muted);
}

#resultsApp .class-filter {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

#resultsApp .view-btn,
#resultsApp .class-btn {
    border: 0;
    border-radius: 8px;
    background: var(--results-btn-bg);
    color: var(--results-text);
    font-weight: 600;
    padding: 8px 16px;
    font-size: 0.9rem;
    cursor: pointer;
    transition: 0.2s;
}

#resultsApp .class-btn {
    padding: 6px 16px;
}

#resultsApp .view-btn:hover,
#resultsApp .class-btn:hover {
    background: var(--results-btn-hover);
}

#resultsApp .view-btn.active,
#resultsApp .class-btn.active {
    background: var(--results-btn-active);
    color: var(--results-text);
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.22);
}

#resultsApp .view-btn-entries {
    background: rgba(30, 215, 96, 0.35);
    color: #e8fff0;
    border: 1px solid rgba(30, 215, 96, 0.55);
}

#resultsApp .view-btn-entries.active {
    background: #1ed760;
    color: #052e16;
    border-color: #1ed760;
    box-shadow: 0 0 0 2px rgba(30, 215, 96, 0.45);
}

#resultsApp.results-theme-light .view-btn-entries,
#resultsApp.results-theme-light .view-btn-day {
    background: var(--results-tab-inactive-bg);
    color: var(--results-tab-inactive-text);
    border: 1px solid #cbd5e1;
    box-shadow: none;
    transform: none;
}

#resultsApp.results-theme-light .view-btn-entries:hover,
#resultsApp.results-theme-light .view-btn-day:hover {
    background: var(--results-btn-hover);
    color: var(--results-tab-inactive-text);
}

#resultsApp.results-theme-light .view-btn-entries.active,
#resultsApp.results-theme-light .view-btn-day.active {
    background: var(--results-tab-active-bg);
    color: var(--results-tab-active-text);
    border-color: var(--results-tab-active-bg);
    box-shadow: none;
    transform: none;
}

#resultsApp.results-theme-light .view-btn-overall {
    background: rgba(255, 107, 0, 0.16);
    color: #ff6b00;
    border: 1px solid #ff6b00;
    box-shadow: none;
}

#resultsApp.results-theme-light .view-btn-overall:hover,
#resultsApp.results-theme-light .view-btn-overall.active {
    background: #ff6b00;
    color: #ffffff;
    border-color: #ff6b00;
    box-shadow: none;
}

#resultsApp.results-theme-light .view-btn.active:not(.view-btn-overall),
#resultsApp.results-theme-light .class-btn.active {
    background: var(--results-btn-active);
    color: #ffffff;
    box-shadow: none;
}

#resultsApp.results-theme-light .class-btn {
    background: var(--results-tab-inactive-bg);
    color: var(--results-tab-inactive-text);
}

#resultsApp.results-theme-light .class-btn:hover {
    background: var(--results-btn-hover);
}

#resultsApp .view-btn-day {
    background: rgba(58, 122, 254, 0.28);
    color: #e8f0ff;
    border: 1px solid rgba(93, 141, 255, 0.45);
}

#resultsApp .view-btn-day:hover {
    background: rgba(58, 122, 254, 0.42);
}

#resultsApp .view-btn-day.active {
    background: #3a7afe;
    color: #ffffff;
    border-color: #5d9bff;
    box-shadow: 0 0 0 3px rgba(58, 122, 254, 0.45), 0 4px 14px rgba(58, 122, 254, 0.35);
    transform: translateY(-1px);
}

#resultsApp .view-btn-overall {
    background: rgba(255, 153, 0, 0.75);
    color: #ffffff;
    border: 1px solid rgba(255, 180, 60, 0.7);
}

#resultsApp .view-btn-overall:hover {
    background: rgba(255, 149, 0, 0.9);
    color: #ffffff;
}

#resultsApp .view-btn-overall.active {
    background: #ff8c00;
    color: #ffffff;
    border-color: #ffb347;
    box-shadow: 0 0 0 3px rgba(255, 140, 0, 0.4);
}

#resultsApp .results-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    flex-wrap: wrap;
    align-items: center;
}

#resultsApp .results-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--results-text);
}

#resultsApp .results-meta {
    display: flex;
    gap: 16px;
    color: var(--results-muted);
    font-size: 13px;
    align-items: center;
}

#resultsApp .results-toolbar-right {
    display: flex;
    align-items: center;
    gap: 10px;
}

#resultsApp .results-control-btn {
    background: var(--results-btn-bg);
    border: 1px solid var(--results-border);
    border-radius: 8px;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--results-text);
    cursor: pointer;
    transition: all 0.2s ease;
    padding: 0;
}

#resultsApp .results-control-btn:hover {
    background: var(--results-btn-hover);
    border-color: var(--results-border-light);
    transform: scale(1.04);
}

#resultsApp .results-control-btn:active {
    transform: scale(0.96);
}

#resultsApp .results-table-wrap {
    padding: 0 0 8px;
}

#resultsApp #resultsTable {
    margin-bottom: 0;
    font-feature-settings: 'tnum' 1;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

#resultsApp #resultsTable thead th {
    background: var(--results-panel);
    color: var(--results-muted);
    border-color: var(--results-border-light);
    font-weight: 600;
    letter-spacing: 0.04em;
    position: sticky;
    top: 0;
    z-index: 2;
    font-size: 14px;
    padding: 10px 0;
    vertical-align: bottom;
}

#resultsApp #resultsTable td {
    background: var(--results-panel-dark);
    color: var(--results-text);
    border-color: var(--results-border);
    white-space: nowrap;
    padding: 10px 0;
    vertical-align: middle;
}

/* Группа 1: Поз · № · Driver · Brand — вид СУ */
#resultsApp.results-view-day #resultsTable thead th:nth-child(-n+4),
#resultsApp.results-view-day #resultsTable tbody td:nth-child(-n+4) {
    padding-left: 8px;
    padding-right: 8px;
}

#resultsApp.results-view-day #resultsTable thead th:nth-child(1),
#resultsApp.results-view-day #resultsTable tbody td:nth-child(1) {
    padding-left: 8px;
}

#resultsApp.results-view-day #resultsTable thead th:nth-child(4),
#resultsApp.results-view-day #resultsTable tbody td:nth-child(4) {
    padding-right: 12px;
}

#resultsApp.results-view-day #resultsTable thead th:nth-child(5),
#resultsApp.results-view-day #resultsTable tbody td:nth-child(5) {
    padding-left: 14px;
}

/* Группа 1: Поз · № · Driver · Brand — entries / overall */
#resultsApp.results-view-entries #resultsTable thead th:nth-child(-n+4),
#resultsApp.results-view-entries #resultsTable tbody td:nth-child(-n+4),
#resultsApp.results-view-overall #resultsTable thead th:nth-child(-n+4),
#resultsApp.results-view-overall #resultsTable tbody td:nth-child(-n+4) {
    padding-left: 8px;
    padding-right: 8px;
}

#resultsApp.results-view-entries #resultsTable thead th:nth-child(1),
#resultsApp.results-view-entries #resultsTable tbody td:nth-child(1),
#resultsApp.results-view-overall #resultsTable thead th:nth-child(1),
#resultsApp.results-view-overall #resultsTable tbody td:nth-child(1) {
    padding-left: 8px;
}

#resultsApp.results-view-entries #resultsTable thead th:nth-child(4),
#resultsApp.results-view-entries #resultsTable tbody td:nth-child(4),
#resultsApp.results-view-overall #resultsTable thead th:nth-child(4),
#resultsApp.results-view-overall #resultsTable tbody td:nth-child(4) {
    padding-right: 12px;
}

#resultsApp.results-view-entries #resultsTable thead th:nth-child(5),
#resultsApp.results-view-entries #resultsTable tbody td:nth-child(5),
#resultsApp.results-view-overall #resultsTable thead th:nth-child(5),
#resultsApp.results-view-overall #resultsTable tbody td:nth-child(5) {
    padding-left: 14px;
}

#resultsApp #resultsTable thead th:last-child,
#resultsApp #resultsTable tbody td:last-child {
    padding-right: 8px;
}

/* Минимальные ширины */
#resultsApp #resultsTable .results-th-stage-pos,
#resultsApp #resultsTable .results-td-stage-pos,
#resultsApp #resultsTable .results-td-pos {
    min-width: 52px;
}

/* WRC-style индикатор смены позиции — зарезервировано */

#resultsApp #resultsTable .results-pos-cell {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    width: 100%;
}

#resultsApp #resultsTable .results-pos-change {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 22px;
    min-height: 30px;
    line-height: 1;
}

#resultsApp #resultsTable .results-pos-arrow {
    display: block;
}

#resultsApp #resultsTable .results-pos-change-up {
    color: #1ed760;
}

#resultsApp #resultsTable .results-pos-change-down {
    color: #ff4d4f;
}

#resultsApp #resultsTable .results-pos-change-down .results-pos-arrow {
    transform: rotate(180deg);
}

#resultsApp #resultsTable .results-pos-delta {
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    margin-top: 2px;
}

#resultsApp.results-theme-light #resultsTable .results-pos-change-up {
    color: #16a34a;
}

#resultsApp.results-theme-light #resultsTable .results-pos-change-down {
    color: #dc2626;
}

#resultsApp #resultsTable .results-th-race-num,
#resultsApp #resultsTable .results-td-race-num {
    min-width: 52px;
}

#resultsApp #resultsTable .results-td-driver {
    min-width: 200px;
}

#resultsApp #resultsTable .results-td-brand {
    min-width: 72px;
}

#resultsApp #resultsTable .results-td-class {
    min-width: 72px;
}

#resultsApp #resultsTable .results-th-muted,
#resultsApp #resultsTable .results-td-hour {
    min-width: 96px;
}

#resultsApp #resultsTable .results-td-time {
    min-width: 104px;
}

#resultsApp #resultsTable .results-td-gap {
    min-width: 112px;
}

#resultsApp #resultsTable .results-td-speed {
    min-width: 96px;
}

#resultsApp #resultsTable .results-td-penalty {
    min-width: 88px;
}

#resultsApp #resultsTable .results-td-result {
    min-width: 104px;
}

#resultsApp #resultsTable .results-th-actions,
#resultsApp #resultsTable .results-td-actions {
    min-width: 80px;
}

#resultsApp #resultsTable .results-th-text,
#resultsApp #resultsTable .results-td-driver,
#resultsApp #resultsTable .results-td-brand,
#resultsApp #resultsTable .results-td-class {
    text-align: left;
}

#resultsApp #resultsTable .results-th-num,
#resultsApp #resultsTable .results-td-num,
#resultsApp #resultsTable .results-td-time,
#resultsApp #resultsTable .results-td-hour,
#resultsApp #resultsTable .results-td-gap,
#resultsApp #resultsTable .results-td-penalty,
#resultsApp #resultsTable .results-td-result {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
}

#resultsApp #resultsTable .results-td-penalty.results-td-num {
    font-weight: 400;
    font-size: 14px;
}

#resultsApp #resultsTable .results-th-actions,
#resultsApp #resultsTable .results-td-actions {
    text-align: center;
}

#resultsApp #resultsTable .results-th-muted {
    color: var(--results-muted);
    opacity: 0.85;
}

#resultsApp #resultsTable .results-td-pos,
#resultsApp #resultsTable .results-td-num {
    font-size: 15px;
    font-weight: 700;
}

#resultsApp #resultsTable .results-td-driver {
    font-size: 14px;
    font-weight: 700;
    white-space: normal;
}

#resultsApp.results-theme-dark #resultsTable .results-td-driver {
    color: #ffffff;
}

#resultsApp #resultsTable .results-td-hour {
    font-size: 12px;
    font-weight: 500;
    color: var(--results-muted);
}

#resultsApp #resultsTable .results-td-stage,
#resultsApp #resultsTable .results-td-stage.results-td-num {
    font-weight: 400;
    font-size: 13px;
}

#resultsApp #resultsTable .results-th-stage {
    font-weight: 600;
    font-size: 14px;
    white-space: nowrap;
}

#resultsApp #resultsTable .results-td-time,
#resultsApp #resultsTable .results-td-result {
    font-size: 14px;
    font-weight: 700;
}

#resultsApp #resultsTable .results-td-brand {
    color: var(--results-muted);
    font-size: 13px;
}

#resultsApp #resultsTable .results-td-class {
    font-size: 13px;
    font-weight: 600;
}

#resultsApp #resultsTable .results-gap-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    line-height: 1.2;
}

#resultsApp #resultsTable .results-gap-leader {
    font-size: 13px;
    font-weight: 700;
}

#resultsApp #resultsTable .results-gap-prev {
    font-size: 11px;
    font-weight: 500;
    color: var(--results-muted);
}

#resultsApp #resultsTable .btn {
    line-height: 1;
    padding-top: 2px;
    padding-bottom: 2px;
}

#resultsApp .results-cp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 52px;
    height: 28px;
    padding: 0 10px;
    border-radius: 6px;
    border: 1px solid #5d8dff;
    background: rgba(58, 122, 254, 0.35);
    color: #d6e6ff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
    box-shadow: 0 2px 8px rgba(58, 122, 254, 0.25);
}

#resultsApp.results-theme-dark .results-cp-btn {
    border-color: #6b9bff;
    color: #ffffff;
}

#resultsApp.results-theme-dark .results-cp-btn:hover {
    background: #3a7afe;
    border-color: #8cb4ff;
    color: #ffffff;
    box-shadow: 0 4px 14px rgba(58, 122, 254, 0.45);
}

#resultsApp .results-cp-btn-compact {
    min-width: auto;
    height: 24px;
    padding: 0 6px;
    font-size: 10px;
    margin: 1px 2px;
}

#resultsApp #resultsTable .results-td-actions {
    font-size: 12px;
    color: var(--results-muted);
    white-space: normal;
    line-height: 1.4;
}

#resultsApp.results-theme-light #resultsTable.table-dark {
    --bs-table-bg: #ffffff;
    --bs-table-striped-bg: #e6e6e6;
    --bs-table-hover-bg: #ffdead;
    --bs-table-color: #111827;
    --bs-table-border-color: #e5e7eb;
}

#resultsApp.results-theme-light #resultsTable thead th {
    background: #9ba6b5;
    color: #1a1a1a;
    border-color: #738195;
    border-bottom: 1px solid #738195;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.04em;
}

#resultsApp.results-theme-light #resultsTable .results-th-muted {
    color: #1a1a1a;
    opacity: 1;
}

#resultsApp.results-theme-light #resultsTable td {
    border-color: #e5e7eb;
    border-bottom: 1px solid #e5e7eb;
    color: #111827;
}

#resultsApp.results-theme-light #resultsTable.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: #e6e6e6 !important;
}

#resultsApp.results-theme-light #resultsTable.table-striped > tbody > tr:nth-of-type(even) > * {
    background-color: #ffffff !important;
}

#resultsApp.results-theme-light #resultsTable.table-hover > tbody > tr:hover > * {
    background-color: #ffdead !important;
}

#resultsApp.results-theme-light #resultsTable .results-td-driver {
    color: #111827;
    font-weight: 600;
}

#resultsApp.results-theme-light #resultsTable .results-td-result,
#resultsApp.results-theme-light #resultsTable .results-td-time {
    color: #111827;
    font-weight: 700;
}

#resultsApp.results-theme-light #resultsTable .results-td-pos,
#resultsApp.results-theme-light #resultsTable .results-td-stage-pos,
#resultsApp.results-theme-light #resultsTable .results-td-race-num {
    color: #111827;
    font-weight: 700;
}

#resultsApp.results-theme-light #resultsTable .results-td-hour,
#resultsApp.results-theme-light #resultsTable .results-td-brand,
#resultsApp.results-theme-light #resultsTable .results-td-speed {
    color: #6b7280;
    font-weight: 500;
}

#resultsApp.results-theme-light #resultsTable .results-td-class {
    color: #374151;
    font-weight: 600;
}

#resultsApp.results-view-entries #resultsTable thead th.results-th-pos,
#resultsApp.results-view-entries #resultsTable .results-td-pos,
#resultsApp.results-view-entries #resultsTable .results-td-race-num {
    text-align: left;
}

#resultsApp.results-theme-light #resultsTable .results-gap-leader {
    color: #1a1a1a;
    font-weight: 700;
}

#resultsApp.results-theme-light #resultsTable .results-gap-prev {
    font-size: 11px;
    font-weight: 500;
    color: #6b7280;
}

#resultsApp.results-theme-light .results-penalty-value {
    color: #ff4d4f;
}

#resultsApp.results-theme-light .results-cp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 44px;
    height: 26px;
    padding: 0 8px;
    border-radius: 6px;
    border: 1px solid #2563eb;
    background: rgba(37, 99, 235, 0.1);
    color: #1d4ed8;
    font-size: 11px;
    font-weight: 700;
    box-shadow: none;
    letter-spacing: 0.2px;
}

#resultsApp.results-theme-light .results-cp-btn:hover {
    background: #2563eb;
    border-color: #2563eb;
    color: #ffffff;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.3);
}

#resultsApp.results-theme-light .results-cp-btn-icon {
    font-size: 11px;
    line-height: 1;
}

#resultsApp .results-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.2px;
    white-space: nowrap;
    line-height: 1.3;
}

#resultsApp .results-status-running {
    background: rgba(30, 215, 96, 0.16);
    color: #16a34a;
    border: 1px solid rgba(22, 163, 74, 0.35);
}

#resultsApp.results-theme-light .results-status-running {
    background: #ecfdf3;
    color: #15803d;
    border: 1px solid #bbf7d0;
    animation: results-running-pulse 2s ease-in-out infinite;
}

#resultsApp.results-theme-dark .results-status-running {
    background: rgba(30, 215, 96, 0.18);
    color: #86efac;
    border: 1px solid rgba(30, 215, 96, 0.35);
}

#resultsApp .results-status-dnf {
    background: rgba(255, 77, 79, 0.12);
    color: #ff6b6b;
    border: 1px solid rgba(255, 77, 79, 0.3);
}

#resultsApp.results-theme-light .results-status-dnf {
    background: #fef2f2;
    color: #d32f2f;
    border: 1px solid #fecaca;
}

@keyframes results-running-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.72; }
}

/* ===== Checkpoint modal (как Online трек) ===== */
#checkpointDetailsModal.participant-modal {
    --sb-modal-panel: #141922;
    --sb-modal-border: #2a3240;
    --sb-modal-border-light: #3d4a5c;
    --sb-modal-text: #ffffff;
    --sb-modal-muted: #8b95a6;
    --sb-modal-green: #1ed760;
    --sb-modal-red: #ff4d4f;
    --sb-modal-blue: #7eb4ff;
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.72);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 20000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    backdrop-filter: blur(4px);
}

#checkpointDetailsModal.participant-modal.active {
    opacity: 1;
    visibility: visible;
}

#checkpointDetailsModal.participant-modal .modal-content {
    background: var(--sb-modal-panel);
    border-radius: 16px;
    padding: 32px;
    max-width: 760px;
    width: 95%;
    max-height: min(88vh, 920px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
    border: 1px solid var(--sb-modal-border);
    position: relative;
    transform: scale(0.9);
    transition: transform 0.3s ease;
    overflow: hidden;
    color: var(--sb-modal-text);
    display: flex;
    flex-direction: column;
}

#checkpointDetailsModal.participant-modal.active .modal-content {
    transform: scale(1);
}

#checkpointDetailsModal .modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    background: transparent;
    border: none;
    color: var(--sb-modal-muted);
    font-size: 22px;
    font-weight: 400;
    font-family: Arial, Helvetica, sans-serif;
    cursor: pointer;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    padding: 0;
    margin: 0;
    border-radius: 50%;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
    line-height: 1;
    z-index: 2;
    -webkit-appearance: none;
    appearance: none;
}

#checkpointDetailsModal .modal-close:hover {
    background: var(--sb-modal-border);
    color: var(--sb-modal-text);
    transform: rotate(90deg);
}

#checkpointDetailsModal .modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--sb-modal-border);
    flex-shrink: 0;
}

#checkpointDetailsModal .modal-header h3 {
    margin: 0;
    font-size: 24px;
    font-weight: 600;
    color: var(--sb-modal-text);
}

#checkpointDetailsModal .modal-number {
    font-size: 20px;
    font-weight: 700;
    color: var(--sb-modal-green);
    background: rgba(30, 215, 96, 0.1);
    padding: 6px 12px;
    border-radius: 8px;
}

#checkpointDetailsModal .modal-body {
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding-right: 4px;
}

#checkpointDetailsModal .modal-compact-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 13px;
    color: #d9e2f2;
    flex-shrink: 0;
}

#checkpointDetailsModal .modal-compact-meta span {
    display: inline-flex;
    align-items: center;
    padding: 5px 10px;
    border-radius: 6px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}

#checkpointDetailsModal #checkpointDetailsStatus {
    background: rgba(58, 122, 254, 0.22);
    color: #b8d4ff;
    border: 1px solid rgba(93, 141, 255, 0.35);
}

#checkpointDetailsModal #checkpointDetailsPosition,
#checkpointDetailsModal #checkpointDetailsProgress,
#checkpointDetailsModal #checkpointDetailsElapsed,
#checkpointDetailsModal #checkpointDetailsStart {
    background: rgba(30, 215, 96, 0.16);
    color: #d4ffe4;
    border: 1px solid rgba(30, 215, 96, 0.35);
}

#checkpointDetailsModal .modal-section {
    border: 1px solid var(--sb-modal-border-light);
    border-radius: 10px;
    padding: 10px;
    background: rgba(255, 255, 255, 0.02);
    flex-shrink: 0;
}

#checkpointDetailsModal .modal-section-body {
    overflow: visible;
}

#checkpointDetailsModal .details-table {
    width: 100%;
    border-collapse: collapse;
    color: #e8eefc;
    font-size: 13px;
}

#checkpointDetailsModal .details-table thead th {
    text-align: left;
    background: #2a3a52;
    color: #dbe7fb;
    padding: 8px;
    border-bottom: 1px solid var(--sb-modal-border-light);
}

#checkpointDetailsModal .details-table-checkpoints thead th:nth-child(4),
#checkpointDetailsModal .details-table-checkpoints thead th:nth-child(5) {
    text-align: right;
}

#checkpointDetailsModal .details-table-checkpoints td:nth-child(4),
#checkpointDetailsModal .details-table-checkpoints td:nth-child(5) {
    text-align: right;
}

#checkpointDetailsModal .details-table-checkpoints thead th:nth-child(3) {
    text-align: center;
    min-width: 88px;
}

#checkpointDetailsModal .details-table-checkpoints td:nth-child(3) {
    text-align: center;
    font-weight: 600;
    white-space: nowrap;
}

#checkpointDetailsModal .details-table td {
    padding: 8px;
    border-bottom: 1px solid var(--sb-modal-border-light);
}

#checkpointDetailsModal .details-table .cp-row-taken td:first-child {
    border-left: 3px solid var(--sb-modal-green);
}

#checkpointDetailsModal .details-table .cp-row-logical td:first-child {
    border-left: 3px solid var(--sb-modal-blue);
}

#checkpointDetailsModal .details-table .cp-row-missing td:first-child {
    border-left: 3px solid var(--sb-modal-red);
}

#checkpointDetailsModal .cp-status-taken {
    color: var(--sb-modal-green);
}

#checkpointDetailsModal .cp-status-logical {
    color: var(--sb-modal-blue);
}

#checkpointDetailsModal .cp-status-missing {
    color: var(--sb-modal-red);
}

#checkpointDetailsModal .cp-summary {
    margin-bottom: 10px;
    font-size: 13px;
    color: #dbe7fb;
}

#checkpointDetailsModal .cp-summary-hint {
    color: #9aa7b8;
    font-weight: 400;
    font-size: 12px;
}

#checkpointDetailsModal .details-table .total-row td {
    background: rgba(58, 122, 254, 0.15);
}

#checkpointDetailsModal .details-table .penalty {
    color: #ff9a62;
    font-weight: 600;
}

#resultsTable tbody tr.results-row-highlight > td {
    background-color: var(--results-highlight) !important;
    color: var(--results-text) !important;
    border-color: var(--results-highlight-border) !important;
    box-shadow: none;
}

#resultsTable tbody tr.results-row-highlight > td:first-child {
    box-shadow: inset 5px 0 0 var(--results-highlight-accent);
}

#resultsApp .results-header-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    margin-right: 8px;
    font-size: 12px;
    color: var(--results-muted);
    line-height: 1.3;
}

#resultsApp .results-local-clock {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

#resultsApp .results-refresh-hint {
    opacity: 0.85;
}

#resultsApp .results-category-menu {
    justify-content: space-between;
    align-items: center;
}

#resultsApp .results-group-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

#resultsApp .results-group-dropdown {
    position: relative;
}

/* Невидимый мост: курсор не теряет hover при переходе к меню */
#resultsApp .results-group-dropdown::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    min-width: 140px;
    height: 10px;
    z-index: 19;
}

#resultsApp .results-group-menu {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 20;
    min-width: 140px;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: var(--results-panel);
    border: 1px solid var(--results-border-light);
    border-radius: 8px;
    box-shadow: 0 8px 24px var(--results-shadow);
}

#resultsApp .results-group-dropdown:hover .results-group-menu,
#resultsApp .results-group-dropdown:focus-within .results-group-menu {
    display: block;
}

#resultsApp .results-group-btn.active {
    background: var(--results-btn-active);
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.18);
}

#resultsApp .results-all-btn.active,
#resultsApp .results-group-menu .class-btn.active {
    background: var(--results-btn-active);
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.18);
}

#resultsApp .results-track-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #8cb8ff;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    padding: 7px 12px;
    border-radius: 8px;
    border: 1px solid rgba(93, 157, 255, 0.55);
    background: rgba(58, 122, 254, 0.22);
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

#resultsApp.results-theme-light .results-track-link {
    color: #1d4ed8;
    background: rgba(37, 99, 235, 0.12);
    border-color: rgba(37, 99, 235, 0.4);
}

#resultsApp .results-track-link:hover {
    color: #ffffff;
    background: #3a7afe;
    border-color: #5d9bff;
}

#resultsApp.results-theme-light .results-track-link:hover {
    color: #ffffff;
    background: #2563eb;
    border-color: #2563eb;
}

#resultsApp .results-track-link .bi {
    font-size: 1rem;
}

#resultsApp .results-penalty-value {
    color: #ff4d4d;
    font-weight: 700;
}

#resultsApp .results-group-menu li {
    margin: 0;
    padding: 0;
}

#resultsApp .results-group-menu .class-btn {
    width: 100%;
    text-align: left;
    margin: 2px 0;
}
