/**
 * Layout для страницы мероприятия (split view с сайдбаром)
 * Используется в events/show.blade.php
 */

/* ===================================
   Event Page Header (баннер + табы)
   =================================== */

.event-page-header {
    position: relative;
    /* overflow: visible — чтобы дропдауны в навтабах не обрезались */
    min-height: 160px; /* достаточная высота даже при коротком тексте */
}

.event-page-header-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: blur(2px) brightness(0.55);
    transform: scale(1.05);
    /* clip-path вместо overflow: hidden на родителе — обрезает фон не затрагивая дропдауны */
    clip-path: inset(0);
    z-index: 0;
}

.event-page-header-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.05) 0%,
        rgba(0, 0, 0, 0.45) 100%
    );
    z-index: 0;
}

.event-page-header-inner {
    position: relative;
    max-width: 1280px;
    margin: 0 auto;
    /* top padding компенсирует высоту fixed navbar (~56px) + собственный отступ */
    padding: calc(56px + var(--spacing-xl)) var(--spacing-lg) var(--spacing-md);
    z-index: 1;
}

@media (max-width: 991px) {
    .event-page-header {
        display: none; /* Мобильный nav уже показывает заголовок */
    }
}

.event-page-header-content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2xs);
}

.event-page-date {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: #fff;
    margin: 0;
    font-family: var(--font-family-heading, inherit);
}

.event-page-title-text {
    font-size: var(--font-size-sm);
    color: rgba(255, 255, 255, 0.75);
    margin: 0;
    font-weight: 400;
}

/* Навигационный слой (табы под баннером) */
.event-page-nav-layer {
    position: relative;
    z-index: 1;
    background: rgba(0, 0, 0, 0.25);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.event-page-nav-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 var(--spacing-lg);
}

/* Список табов */
.event-page-tabs {
    display: flex;
    align-items: stretch;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0;
}

.event-page-tabs-scrollable {
    overflow-x: auto;
    overflow-y: visible;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.event-page-tabs-scrollable::-webkit-scrollbar {
    display: none;
}

.event-page-tab-item {
    display: flex;
    align-items: stretch;
    position: relative;
    flex-shrink: 0;
}

.event-page-tab-item--grouped {
    display: flex;
    align-items: stretch;
}

.event-page-tab {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
    cursor: pointer;
    background: transparent;
    border-top: none;
    border-left: none;
    border-right: none;
    white-space: nowrap;
    line-height: 1;
    min-height: 48px;
}

.event-page-tab i {
    font-size: var(--font-size-md);
    flex-shrink: 0;
}

.event-page-tab:hover {
    color: rgba(255, 255, 255, 0.9);
}

.event-page-tab.active {
    color: #fff;
    border-bottom-color: var(--accent-primary);
}

.event-page-tab--grouped-left {
    border-bottom-right-radius: 0;
    padding-right: var(--spacing-sm);
}

.event-page-tab--grouped-right {
    border-bottom-left-radius: 0;
    padding-left: var(--spacing-sm);
    padding-right: var(--spacing-sm);
    border-left: 1px solid rgba(255, 255, 255, 0.15);
}

/* Скелетон для шапки */
.event-page-header-skeleton {
    height: 160px;
    background: var(--bg-content-secondary);
    display: flex;
    align-items: flex-end;
}

.event-page-header-skeleton-inner {
    padding: var(--spacing-lg);
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
}

.event-page-skeleton-content {
    max-width: 1280px;
    margin: 0 auto;
    padding: var(--spacing-md) var(--spacing-lg);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

/* ===================================
   Event Split Layout
   =================================== */

.event-split-layout {
    display: grid;
    grid-template-columns: 360px 1fr;
    max-width: 1280px;
    margin: 0 auto;
    padding: var(--spacing-md) var(--spacing-lg);
    gap: var(--spacing-md);
    align-items: start;
}

@media (max-width: 1312px) {
    .event-split-layout {
        padding: 0 var(--spacing-md);
    }
}

@media (max-width: 991px) {
    .event-split-layout {
        grid-template-columns: 1fr;
        padding: 0;
        gap: 0;
    }
}

@media (min-width: 1600px) {
    .event-split-layout {
        grid-template-columns: 400px 1fr;
    }
}

/* ===================================
   Event Sidebar
   =================================== */

.event-split-sidebar {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    position: sticky;
    top: calc(56px + var(--spacing-md)); /* высота navbar + отступ */
    max-height: calc(100vh - 56px - var(--spacing-md) * 2);
    overflow-y: auto;
    scrollbar-width: none;
}

/* Профиль в сайдбаре */
.event-sidebar-profile {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    background: var(--bg-content-primary);
    border: 1px solid var(--ui-border);
    border-radius: var(--radius-md-lg);
}

/* На адаптиве — виджеты сайдбара у края экрана без боковых линий */
@media (max-width: 991px) {
    .event-sidebar-profile,
    .event-sidebar-settings {
        /* border-left: none;
        border-right: none; */
    }
}

.event-sidebar-avatar-wrap {
    flex-shrink: 0;
}

.event-sidebar-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
}

.event-sidebar-avatar--fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-content-secondary);
    color: var(--font-secondary);
    font-size: var(--font-size-lg);
}

.event-sidebar-profile-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.event-sidebar-name {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--font-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-sidebar-role {
    font-size: var(--font-size-xs);
    color: var(--font-secondary);
}

/* Секция настроек */
.event-sidebar-settings {
    display: flex;
    flex-direction: column;
    gap: 1px;
    background: var(--ui-border);
    border: 1px solid var(--ui-border);
    border-radius: var(--radius-md-lg);
    overflow: hidden;
}

/* Карточка с данными (кликабельная) */
.event-sidebar-card {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--bg-content-primary);
    cursor: pointer;
    transition: background var(--transition-fast);
    min-height: 56px;
}

.event-sidebar-card:hover {
    background: var(--bg-hover);
}

.event-sidebar-card-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2xs);
}

/* Заглушка «добавить» */
.event-sidebar-add {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--bg-content-primary);
    cursor: pointer;
    min-height: 56px;
    text-decoration: none;
    transition: background var(--transition-fast);
}

.event-sidebar-add:hover {
    background: var(--bg-hover);
}

.event-sidebar-add span {
    font-size: var(--font-size-sm);
    color: var(--font-secondary);
}

.event-sidebar-caret {
    font-size: var(--font-size-xs);
    color: var(--font-secondary);
    flex-shrink: 0;
}

/* Класс оружия */
.event-sidebar-class-category {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.event-sidebar-class-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.event-sidebar-class-badge {
    font-size: var(--font-size-xs);
    font-weight: 700;
    background: var(--bg-content-secondary);
    color: var(--font-secondary);
    padding: 1px 5px;
    border-radius: var(--radius-sm);
    flex-shrink: 0;
    letter-spacing: 0.5px;
}

.event-sidebar-class-type-name {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--font-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-sidebar-class-icon {
    height: 14px;
    opacity: 0.6;
    flex-shrink: 0;
}

[data-theme="light"] .event-sidebar-class-icon {
    filter: invert(1);
}

.event-sidebar-class-item {
    font-size: var(--font-size-xs);
    color: var(--font-secondary);
    padding-left: calc(var(--spacing-xs) + 20px);
}

/* Оружие */
.event-sidebar-weapon {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.event-sidebar-weapon-name {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--font-primary);
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-2xs);
}

.event-sidebar-weapon-sub {
    font-size: var(--font-size-xs);
    color: var(--font-secondary);
    margin: 0;
}

/* Транспорт */
.event-sidebar-vehicle-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.event-sidebar-vehicle-name {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--font-primary);
    margin: 0;
}

.event-sidebar-vehicle-addr {
    font-size: var(--font-size-xs);
    color: var(--font-secondary);
    margin: 0;
}

/* gc-list-group внутри event-section не должен обрезать дропдауны */
.event-split-content .gc-list-group {
    overflow: visible;
}

/* ===================================
   Event Content Sections
   =================================== */

.event-split-content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

@media (max-width: 991px) {
    .event-split-content {
        gap: 0;
    }
}

.event-content-section {
    background: var(--bg-content-primary);
    border: 1px solid var(--ui-border);
    border-radius: var(--radius-md-lg);
    overflow: visible;
}

@media (max-width: 991px) {
    .event-content-section {
        border-radius: 0;
        /* border-left: none;
        border-right: none; */
        border-top: none;
    }

    .event-split-content .event-content-section:first-child {
        border-top: 1px solid var(--ui-border);
    }
}

.event-content-section--editable {
    cursor: pointer;
}

.event-content-section--editable:hover {
    background: var(--bg-hover);
}

.event-content-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
    padding: var(--spacing-md) var(--spacing-md) 0;
}

.event-content-section-edit-icon {
    font-size: var(--font-size-md);
    color: var(--font-secondary);
}

.event-content-section-body {
    padding: var(--spacing-sm) var(--spacing-md) var(--spacing-md);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.event-content-section-footer {
    padding: 0 var(--spacing-md) var(--spacing-md);
}

.event-content-section-item-aside {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    flex-shrink: 0;
}

.event-content-section-caret {
    font-size: var(--font-size-xs);
    color: var(--font-secondary);
}

.event-participants-tabs {
    flex-shrink: 0;
}

/* Упражнения: форма добавления */
.event-exercise-add-wrap {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    position: relative;
}

.event-exercise-add-wrap .gc-input {
    flex: 1;
}

/* Меню "..." для упражнений/участников */
.event-menu-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    border-radius: var(--radius-md);
    color: var(--font-secondary);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
    padding: 0;
    flex-shrink: 0;
}

.event-menu-btn:hover {
    background: var(--bg-hover);
    color: var(--font-primary);
}

.event-menu-btn i {
    font-size: var(--font-size-md);
}

/* Участники по классам */
.event-class-group {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2xs);
    margin-bottom: var(--spacing-md);
}

.event-class-group:last-child {
    margin-bottom: 0;
}

.event-class-group-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-xs) 0;
}

.event-class-badge {
    font-size: var(--font-size-xs);
    font-weight: 700;
    background: var(--bg-content-secondary);
    color: var(--font-secondary);
    padding: 2px 6px;
    border-radius: var(--radius-sm);
    flex-shrink: 0;
    letter-spacing: 0.5px;
}

.event-class-type-name {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--font-primary);
}

.event-class-type-icon {
    height: 14px;
    opacity: 0.6;
    flex-shrink: 0;
}

[data-theme="light"] .event-class-type-icon {
    filter: invert(1);
}

.event-class-subclasses {
    font-size: var(--font-size-xs);
    color: var(--font-secondary);
    margin: 0 0 var(--spacing-2xs);
}

/* ===================================
   Event Show (legacy — оставлено для совместимости)
   =================================== */

.event-show-wrapper {
    max-width: 720px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    padding: var(--spacing-md) var(--page-side-padding, var(--spacing-md));
}

@media (max-width: 991px) {
    .event-show-wrapper {
        padding: 0;
        gap: 0;
    }
    .event-show-wrapper .gc-card {
        border-radius: 0;
        /* border-left: none;
        border-right: none; */
        border-top: none;
    }
}

.event-show-info {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.event-show-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm) var(--spacing-md);
}

.event-show-meta-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-size: var(--font-size-sm);
    color: var(--font-secondary);
}

.event-show-meta-item i {
    color: var(--font-secondary);
    flex-shrink: 0;
}

.event-show-organizer {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm);
    background: var(--bg-content-secondary);
    border-radius: var(--radius-md);
}

.event-show-organizer-avatar {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    object-fit: cover;
    flex-shrink: 0;
}

.event-show-organizer-avatar-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    box-sizing: border-box;
    background: var(--ui-surface-1);
    border: 1px solid var(--ui-border);
    color: var(--font-secondary);
    font-size: var(--font-size-sm);
    font-weight: 600;
    line-height: 1;
}

.event-show-organizer-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.event-show-organizer-label {
    font-size: var(--font-size-xs);
    color: var(--font-secondary);
}

.event-show-organizer-name {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--font-primary);
    text-decoration: none;
}

.event-show-organizer-name:hover {
    text-decoration: underline;
}

.event-show-organizer-badge {
    margin-left: auto;
    flex-shrink: 0;
}

.event-show-description {
    font-size: var(--font-size-sm);
    color: var(--font-secondary);
    line-height: 1.6;
    padding-top: var(--spacing-xs);
    border-top: 1px solid var(--ui-border);
}

/* ===== БАЗОВЫЙ LAYOUT ===== */

.split-layout {
    display: grid;
    grid-template-columns: 360px 1fr;
    width: 100%; /* Растягиваем контейнер на всю доступную ширину */
    max-width: 1280px; /* Ограничиваем максимальную ширину */
    margin: 0 auto;
    gap: var(--spacing-lg);
    align-items: start;
}

/* Когда split-layout внутри page-layout, отступами управляет gap родителя */

/* Event Content - контейнер для контента страниц результатов/организаторов/заявок/скводов */
.event-content {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-mdl);
}

/* Адаптивные отступы для event-content */
@media (max-width: 1312px) { /* 1280px + 32px запас */
    .event-content {
        padding: 0 var(--spacing-md); /* 16px по бокам */
    }
}

@media (max-width: 991px) {
    .event-content {
        padding: 0; /* Без отступов на мобильных - gc-panel сам управляет */
        gap: var(--spacing-mdl); 
    }
}

/* Адаптивные отступы - как у catalog-layout */
@media (max-width: 1312px) { /* 1280px + 32px запас */
    .split-layout {
        padding: 0 var(--spacing-md); /* 16px по бокам */
    }
    
}

@media (max-width: 991px) {
    .split-layout {
        padding: 0;
    }
}

@media (min-width: 1600px) {
    .split-layout {
        grid-template-columns: 400px 1fr;
    }
}

/* ===== ЛЕВАЯ КОЛОНКА (САЙДБАР) ===== */

.split-left {
    grid-column: 1;
    min-width: 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.split-left::-webkit-scrollbar {
    display: none;
}

/* Десктоп: как .catalog-sidebar — sticky под шапкой, без растягивания по высоте правой колонки */
@media (min-width: 992px) {
    .split-left {
        position: sticky;
        top: calc(var(--gc-nav-bar-height) + var(--spacing-md));
        align-self: start;
        max-height: calc(100vh - var(--gc-nav-bar-height) - var(--spacing-md) * 2);
        overflow-y: auto;
    }
}

/* Медиа в строках лоадаута/инфо: не сжимать flex-ом (контракт gc-list-media в lists.css) */
.split-left :is(.gc-interactive-row, .event-participant-card > .gc-interactive-row) > :is(
    .gc-list-media-icon,
    .gc-list-media-square,
    img.gc-list-media-square,
    .sidebar-icon-box
) {
    flex-shrink: 0;
}

/* Полоса эпика в сайдбаре show: без горизонтального inset .gc-event-card-epic-row (токен --spacing-md из events-list). */
@media (min-width: 992px) {
    .split-left .sidebar-event-info-cell .gc-event-card-epic-row {
        padding-left: 0;
        padding-right: 0;
    }
}

/* ===== ПРАВАЯ КОЛОНКА (КОНТЕНТ) ===== */

.split-right {
    grid-column: 2;
    background: transparent;
    padding: 0;
    overflow-y: auto;
    overflow-x: visible;
    scrollbar-width: none;
    -ms-overflow-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-mdl);
}

.split-right::-webkit-scrollbar {
    display: none;
}

/* ===== СЕКЦИИ КОНТЕНТА ===== */
/* Мигрировано на gc-panel. См. styles.css для определения компонента */

/* Form Controls Wrapper - обертка для формы с инпутами */
.gc-form-controls {
    display: flex;
    gap: var(--spacing-xs);
    position: relative;
}

/* Dropdown Order Section - секция с кнопками сортировки */
.gc-dropdown-order-buttons {
    display: flex;
    gap: var(--spacing-xs);
}

/* Tabs - для обратной совместимости с старым кодом */
.content-section-tabs {
    margin-top: 0; /* Убран лишний margin */
}

/* Tab Content - контейнер для переключаемых табов */
/* Логика табов определена в bootstrap-tab-fix.css */

/* ===== ТАБЫ GC (для страницы мероприятия) ===== */
/* ВСЕ стили табов определены в tabs.css (UI-kit) */
/* gc-search-container определен в tabs.css (UI-kit) */

.gc-input-text-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: var(--font-secondary);
    cursor: pointer;
    padding: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease;
    z-index: 1;
}

.gc-input-text-button:hover {
    color: var(--font-primary);
}

.gc-input-text-button i {
    font-size: var(--font-size-md); /* 16px */
}

/* Результаты поиска - используют UI-Kit стили (.gc-list-group, .gc-list-item) */
/* Старые классы удалены - используйте .gc-list-group-header */

/* ===== gc-panel--roster: панель со списком людей / ростером (событие, канал, дуэль) ===== */

/* Gap между строкой заголовка и табами внутри gc-panel-header (flex-col) */
.gc-panel.gc-panel--roster > .gc-panel-header {
    gap: var(--spacing-mdl);
}

.gc-panel.gc-panel--roster .gc-empty-state:not(.gc-empty-state--stacked) {
    padding: var(--spacing-xl);
}

/* Стековая заглушка (профильный паттерн): внешний padding не дублируем — ритм даёт .gc-panel-content и .gc-empty-state-inner */
.gc-panel.gc-panel--roster .gc-empty-state.gc-empty-state--stacked {
    padding: 0;
}

.gc-panel.gc-panel--roster .gc-empty-state-content {
    max-width: 26rem;
}

/* Заявки на участие (/events/{id}/requests): многострочное body — как лента льгот */
.event-participant-card--request.gc-list-item {
    align-items: flex-start;
}

/* Заявки на участие (/events/{id}/requests) */
#requestsList > .gc-empty-state.gc-empty-state--stacked {
    padding: 0;
}

/* Панель «Найти / Создать / Ссылка» — отдельный gc-panel без заголовка */
.event-participants-add-section .gc-panel-content {
    gap: var(--spacing-mdl);
}

/* Результаты поиска участников (в панели добавления): на узких экранах
   actions должны уходить на следующую строку, не перекрывая имя. */
@media (max-width: 767.98px) {
    .event-participants-search-results .gc-interactive-row {
        flex-wrap: wrap;
    }

    .event-participants-search-results .gc-list-content {
        min-width: 0;
        flex: 1;
    }

    .event-participants-search-results .gc-list-actions:has(> .gc-btn:not(.gc-btn-icon-sm):not(.gc-btn-icon):not(.gc-btn-icon-xs)) {
        width: 100%;
        margin-left: 0;
        margin-top: var(--spacing-xs);
    }

    .event-participants-search-results .gc-list-actions:has(> .gc-btn:not(.gc-btn-icon-sm):not(.gc-btn-icon):not(.gc-btn-icon-xs)) > .gc-btn {
        flex: 1;
        min-height: 36px;
        font-size: var(--font-size-sm);
        padding: var(--spacing-xs) var(--spacing-sm);
    }
}

/* Первый чип — «речевой пузырёк»: верхний левый угол 4px, остальные 12px */
.event-participant-card__tags .event-participant-weapon-tag:first-child {
    border-radius: 4px var(--radius-md-lg) var(--radius-md-lg) var(--radius-md-lg);
}

/* Иконка оружия чуть крупнее в участниках */
.gc-panel.gc-panel--roster .event-participant-weapon-tag__icon {
    width: var(--font-size-lg);  /* 18px */
    height: var(--font-size-lg);
}

/* Weapon-теги в новом контексте (на bg-content-secondary карточке):
   убираем backdrop-blur, теги — bg-content-main с рамкой (chip на карточке) */
.gc-panel.gc-panel--roster .event-participant-weapon-tag {
    background: var(--bg-content-main);
    border-color: var(--ui-border);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    /* Тень на самом чипе: у базового ::before z-index:-1 тень уходит под непрозрачный фон ростера и не видна */
    box-shadow: var(--shadow-sm);
    transition:
        background var(--transition-fast),
        border-color var(--transition-fast),
        box-shadow var(--transition-fast),
        transform var(--transition-fast);
}

.gc-panel.gc-panel--roster .event-participant-weapon-tag::before {
    box-shadow: none;
}

.gc-panel.gc-panel--roster .event-participant-weapon-tag:hover {
    border-color: var(--border-tertiary);
}

.gc-panel.gc-panel--roster .event-participant-weapon-tag__icon {
    filter: none;
    opacity: 0.65;
}

[data-theme="light"] .gc-panel.gc-panel--roster .event-participant-weapon-tag__icon {
    filter: brightness(0);
    opacity: 0.55;
}

/* ===== EXERCISES SECTION ===== */

/* Попытки: чуть светлее чтобы различались от родительских упражнений */
.gc-interactive-row--attempt {
    opacity: 0.8;
}

/* ─── Программа мероприятия ─────────────────── */
.event-program-section .gc-empty-state.gc-empty-state--stacked {
    padding: 0;
}

.event-program-panel-content {
    --gc-list-item-hover-bg: transparent;
}

/* Вертикальный стек секций (заголовок + строки): программа мероприятия, модалки лоадаута */
.gc-grouped-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2xs);
    width: 100%;
    min-width: 0;
}

/* Секция внутри стека — только вертикальный ритм, без «карточной» рамки. */
.gc-grouped-list-section {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    min-width: 0;
    border-radius: var(--radius-lg);
}

.event-program-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm);
    min-width: 0;
}

.event-program-row--link {
    transition: background var(--transition-fast);
}

.event-program-row--attempt {
    opacity: 0.92;
}

/* Квадрат превью брифинга / иконка — открытие #stageViewModal (не вся строка). */
button.event-program-briefing-hit {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    color: inherit;
    cursor: pointer;
    border-radius: var(--radius-md-lg);
}

button.event-program-briefing-hit:focus-visible {
    outline: 2px solid var(--accent-primary);
    outline-offset: 2px;
}

/* Хвост строки без интерактива (шеврон для гостя) — не .gc-list-actions, чтобы data-href срабатывал */
.event-program-row__trail {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    color: var(--font-secondary);
}

/* Как в Figma item type: ~40–44px рамка, глиф 18px (не .sm — иначе 32px и mdl). */
.event-program-type-icon.gc-list-media-icon {
    --gc-list-media-size: 40px;
    --gc-list-media-icon-padding: var(--spacing-mdl);
    --gc-list-media-glyph-size: var(--font-size-lg);
    border-radius: var(--radius-md-lg);
}

.event-program-item-title {
    font-weight: 500;
}

.event-program-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0 var(--spacing-3xs);
}

.event-program-meta-sep {
    color: var(--font-tertiary);
}

.event-program-note-body {
    padding: 0 var(--spacing-sm) var(--spacing-sm);
}

.event-program-note-text {
    margin: 0;
    font-size: var(--font-size-mdl);
    line-height: var(--line-height-list-mdl);
    color: var(--font-secondary);
}

.event-program-poll-subtitle {
    margin-top: var(--spacing-4xs);
}

.event-program-poll-form {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-top: 0;
}

.event-program-poll-option {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm);
    cursor: pointer;
}

.event-program-poll-option--readonly {
    cursor: default;
}

.event-program-poll-form:not(.event-program-poll-form--readonly):not(.event-program-poll-form--choices-locked) .event-program-poll-option:hover {
    background: var(--bg-content-secondary);
    border-radius: var(--radius-md-lg);
}

.event-program-poll-form--choices-locked {
    opacity: 0.92;
}

.event-program-poll-form--choices-locked .event-program-poll-option {
    cursor: default;
}

.event-program-poll-form--choices-locked[data-has-recorded-vote="1"] .event-program-poll-option {
    cursor: pointer;
}

.event-program-poll-option-block {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.event-program-poll-voters-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-4xs);
}

.event-program-poll-voters-list--modal {
    width: 100%;
    min-width: 0;
}

/* Модал списка проголосовавших по варианту: в заголовке — вопрос опроса */
.gc-modal.event-program-poll-voters-modal-shell .modal-title {
    font-size: var(--font-size-lg);
    font-weight: 500;
    line-height: 1.35;
    word-break: break-word;
}

.gc-modal.event-program-poll-voters-modal-shell .modal-description:empty {
    display: none;
}

.event-program-poll-voter-item {
    list-style: none;
    margin: 0;
    padding: 0;
}

.event-program-poll-voter-card.event-participant-card {
    cursor: default;
}

.event-program-poll-voter-empty {
    list-style: none;
    margin: 0;
    display: block;
    text-align: center;
    padding: var(--spacing-md);
    border-radius: var(--radius-md-lg);
    background: var(--bg-content-secondary);
    font-size: var(--font-size-sm);
    color: var(--font-secondary);
}

.event-program-poll-voter-empty--error {
    color: var(--font-secondary);
}

.event-program-poll-voter-skeleton .gc-interactive-row {
    align-items: center;
}

.event-program-poll-voter-skeleton__avatar.gc-skeleton {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    box-sizing: border-box;
}

.event-program-poll-voter-skeleton__content {
    flex: 1;
    min-width: 0;
}

.event-program-poll-voter-skeleton__content .gc-skeleton-text {
    margin-bottom: 0;
}

.event-program-poll-native {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
    pointer-events: none;
}

.event-program-poll-radio {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: var(--radius-full);
    border: 2px solid var(--ui-border);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-content-main);
}

.event-program-poll-option:has(.event-program-poll-native:checked) .event-program-poll-radio {
    border-color: var(--accent-link);
}

.event-program-poll-option:has(.event-program-poll-native:checked) .event-program-poll-radio::after {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    background: var(--accent-link);
}

.event-program-poll-radio--static.is-on {
    border-color: var(--accent-link);
}

.event-program-poll-radio--static.is-on::after {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    background: var(--accent-link);
}

.event-program-poll-option__lead {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0 var(--spacing-xs);
    min-width: 0;
    flex: 1 1 auto;
}

/* Текст варианта + % в одном потоке (пробел перед % в разметке) */
.event-program-poll-option__text {
    min-width: 0;
    flex: 1 1 auto;
    font-size: var(--font-size-mdl);
    line-height: var(--line-height-list-mdl);
}

.event-program-poll-option__label {
    font-weight: 500;
    color: var(--font-primary);
}

.event-program-poll-option__pct {
    font-weight: 500;
    font-size: var(--font-size-mdl);
    color: var(--font-secondary);
}

.event-program-poll-option__tail {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    flex-shrink: 0;
}

.event-program-poll-option__tail-inner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: var(--spacing-xs);
    flex-shrink: 0;
}

.event-program-poll-votes-meta {
    font-size: var(--font-size-sm);
    color: var(--font-secondary);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.event-program-poll-faces {
    display: flex;
    align-items: center;
    flex-direction: row;
    flex-shrink: 0;
}

.event-program-poll-face {
    width: 24px;
    height: 24px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 2px solid var(--bg-content-main);
    margin-inline-start: calc(-1 * var(--spacing-xs));
    flex-shrink: 0;
}

.event-program-poll-face:first-child {
    margin-inline-start: 0;
}

.event-program-poll-option:has(.event-program-poll-native:focus-visible) {
    outline: 2px solid var(--accent-link);
    outline-offset: 2px;
}

/* Опрос: на адаптиве компактнее % и счётчик; строка варианта одна по высоте блока tail, текст варианта переносится */
@media (max-width: 991px) {
    .event-program-poll-option__pct,
    .event-program-poll-votes-meta {
        font-size: var(--font-size-xs);
    }
}

/* Грид участников: «Все» — 3 колонки; «Транспорт» — 2; <992 — 1 колонка */
.event-participants-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--spacing-mdl);
    width: 100%;
    min-width: 0;
    align-items: start;
}

.event-participants-grid.event-participants-grid--transport {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Транспорт: одинаковая высота карточек в ряду (иначе «ломается» сетка) */
#participants-transport-content .event-participants-grid.event-participants-grid--transport {
    align-items: stretch;
}

#participants-transport-content .event-participant-card--transport {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 0;
}

#participants-transport-content .event-participant-card--transport .event-participant-card__media {
    flex: 0 0 auto;
    width: 100%;
}

@media (max-width: 991px) {
    .event-participants-grid {
        grid-template-columns: 1fr;
    }

    /* Иначе 2 класса у модификатора транспорта перебивают правило выше */
    .event-participants-grid.event-participants-grid--transport {
        grid-template-columns: 1fr;
    }
}

/* Полная карточка участника мероприятия (медиа, транспорт, теги). Компактные строки канала/инвайтов — .gc-interactive-row */
.event-participant-card {
    min-width: 0;
    border-radius: var(--radius-md-lg);
    cursor: pointer;
    transition: background var(--transition-fast);
}

/* Ховер — на всю карточку целиком (и строку, и теги); см. --gc-interactive-hover-bg в variables.css */
.event-participant-card:hover {
    background: var(--gc-interactive-hover-bg);
}

/* Компактная строка участника: имя + выбранные классы оружия справа на первой линии */
.event-participant-card .event-participant-card__title-row {
    display: flex;
    align-items: baseline;
    gap: var(--spacing-sm);
    min-width: 0;
    width: 100%;
}

.event-participant-card .event-participant-card__title-row > .gc-list-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-participant-card .event-participant-card__weapon-class-label {
    flex-shrink: 0;
    max-width: 48%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--font-secondary);
    line-height: var(--line-height-list-title);
}

/* Теги: отступ чтобы совпасть с внутренним padding верхнего ряда */
.event-participant-card .event-participant-card__tags {
    padding: 0 var(--spacing-sm) var(--spacing-sm);
}

/* Список заявок и лента льгот канала: теги внутри gc-list-item-body — без двойного горизонтального inset */
.event-participant-card--request.gc-list-item .event-participant-card__tags,
.subscriptions-benefit-feed-item.event-participant-card.gc-list-item .event-participant-card__tags {
    padding: 0;
}

/* Заявки / лента: льготы — ряд баджей (льгота + при ваучере/скидке актуальная сумма) */
.event-participant-card--request .event-request-benefit-stack {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    min-width: 0;
}

.event-participant-card--request .event-request-benefit-badges,
.subscriptions-benefit-feed-item.event-participant-card .event-participant-card__tags.event-request-benefit-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: var(--spacing-xs);
    min-width: 0;
}

/* Актуальный ценник после льготы — как бывший чип «по прайсу»: светлая плашка с рамкой */
.event-participant-card--request .event-request-benefit-price,
.subscriptions-benefit-feed-item.event-participant-card .event-request-benefit-price {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-sm);
    border-radius: 4px var(--radius-md-lg) var(--radius-md-lg) var(--radius-md-lg);
    background: var(--bg-content-main);
    border: 1px solid var(--ui-border);
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--font-secondary);
    line-height: 1;
}

/* Legacy: нейтральный чип «по прайсу» (если останется вне request-benefit-row) */
.event-participant-card--request .event-participant-card__tags .event-request-benefit-muted,
.subscriptions-benefit-feed-item.event-participant-card .event-participant-card__tags .event-request-benefit-muted {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-sm);
    border-radius: 4px var(--radius-md-lg) var(--radius-md-lg) var(--radius-md-lg);
    background: var(--bg-content-main);
    border: 1px solid var(--ui-border);
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--font-secondary);
    line-height: 1;
}

/* Дерево пассажиров внутри карточки: прозрачный фон и разделители,
   чтобы hover карточки работал на всю площадь */
.event-participant-card .event-transport-crew {
    padding-bottom: var(--spacing-sm);
}

.event-participant-card .event-transport-crew .gc-list-item {
    --gc-list-item-bg: transparent;
    --gc-list-item-hover-bg: transparent;
    --gc-list-divider-color: transparent;
}

/* Inline-вариант gc-list-actions: без собственного display:flex обёртки,
   встраивается напрямую в родительский gc-list-actions */
.gc-list-actions-inline {
    display: contents;
}

/* Транспортная карточка: gap 8px между badge номера и кнопками */
.event-participant-card .gc-list-actions {
    gap: var(--spacing-sm);
}

/* Номер в колонке действий карточки авто — выравнивается по высоте с кнопками (не direct child gc-interactive-row с многострочным контентом). */
.gc-panel.gc-panel--roster .gc-list-actions .gc-badge-car-number {
    align-self: stretch;
    display: flex;
    align-items: center;
}

/* Скелетон: заполнение медиа без инлайнов (совпадает с гридом карточек) */
.event-participant-card--skeleton .event-participant-card__profile {
    background: transparent;
}

.event-participant-card--skeleton .event-participant-card__profile > .gc-skeleton {
    position: absolute;
    inset: 0;
    display: block;
    width: auto;
    height: auto;
    border-radius: var(--radius-md-lg);
}

.event-participant-card__media {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    padding: 0;
    border: none;
    border-radius: var(--radius-md-lg);
    background: transparent;
    isolation: isolate;
}

.event-participant-card__profile {
    position: absolute;
    inset: 0;
    min-height: 0;
    border-radius: var(--radius-md-lg);
    overflow: hidden;
    background: var(--bg-content-secondary);
}

/* Заглушка: лёгкий ховер — только обводка блока с контентом */
.event-participant-card--placeholder .event-participant-card__profile {
    border: 1px solid transparent;
    transition: border-color var(--transition-fast);
}

.event-participant-card--placeholder:hover .event-participant-card__profile {
    border-color: var(--ui-border-strong);
}

.event-participant-card__profile-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

/* Размытая подложка из того же фото */
.event-participant-card__backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

.event-participant-card__backdrop-img {
    position: absolute;
    inset: -12%;
    width: 124%;
    height: 124%;
    object-fit: cover;
    filter: blur(22px);
    -webkit-filter: blur(22px);
    transform: scale(1.06);
    transform-origin: center center;
    transition: transform 0.35s ease;
    will-change: transform;
    pointer-events: none;
}

.event-participant-card:hover .event-participant-card__backdrop-img {
    transform: scale(1.12);
}

/* Заглушка: ровный серый фон без blur */
.event-participant-card__backdrop--placeholder {
    background: var(--ui-surface-2);
}

/* Круглая аватарка вверху слева */
.event-participant-card__avatar-wrap {
    position: absolute;
    top: var(--spacing-mdl);
    left: var(--spacing-mdl);
    z-index: 2;
    border-radius: 50%;
    pointer-events: none;
}

.event-participant-card__avatar {
    display: block;
    width: var(--spacing-3xl);
    height: var(--spacing-3xl);
    border-radius: 50%;
    object-fit: cover;
}

.event-participant-card__avatar--fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    overflow: hidden;
    font-size: var(--font-size-xl);
    font-weight: 500;
    color: var(--font-secondary);
    background: var(--ui-surface-3);
    border: 1px solid var(--ui-border);
}

.event-participant-card__gradient {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
        to top,
        rgba(0, 0, 0, 0.72) 0%,
        rgba(0, 0, 0, 0.45) 42%,
        rgba(0, 0, 0, 0.12) 72%,
        rgba(0, 0, 0, 0) 100%
    );
}

.event-participant-card__profile-bottom {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2sm);
    padding: 0 var(--spacing-mdl) var(--spacing-mdl);
    width: 100%;
    min-width: 0;
    color: rgba(255, 255, 255, 0.96);
    pointer-events: none;
}

.event-participant-card__profile-bottom .profile-trigger {
    pointer-events: auto;
    cursor: pointer;
}

.event-participant-card__profile-bg.profile-trigger {
    cursor: pointer;
}

.event-participant-card__profile-bottom .event-participant-weapon-tag {
    pointer-events: auto;
}

.event-participant-card__name-wrap {
    width: 100%;
    min-width: 0;
}

.event-participant-card__name {
    margin: 0;
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: inherit;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    line-height: 1.25;
    word-break: break-word;
}

/* Макет Figma user-card / footer / weapon: между чипами row-gap 4px, column-gap 6px */
.event-participant-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs) var(--spacing-3xs);
    align-items: flex-start;
    width: 100%;
    min-width: 0;
}

/* Чип: pt 4 pr 10 pb 6 pl 8, gap внутри 4px, blur 6px (user-card / weapon_tag) */
.event-participant-weapon-tag {
    position: relative;
    z-index: 0;
    /* С backdrop-filter внешний box-shadow на том же слое в Chromium почти не виден — тень как у gc-btn через ::before */
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--spacing-xs);
    max-width: 100%;
    min-width: 0;
    padding: var(--spacing-3xs);
    border-radius: var(--radius-md-lg);
    cursor: pointer;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid var(--border-secondary);
    transition:
        background var(--transition-fast),
        border-color var(--transition-fast),
        backdrop-filter var(--transition-fast),
        transform var(--transition-fast);
}

.event-participant-weapon-tag::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    box-shadow: var(--shadow-sm);
    pointer-events: none;
}

/* Ховер карточки (с фото): чипы — только сильнее бордер и blur, без смены заливки */
.event-participant-card:not(.event-participant-card--placeholder):hover .event-participant-weapon-tag {
    border-color: var(--border-tertiary);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.event-participant-card:not(.event-participant-card--placeholder) .event-participant-weapon-tag:hover {
    border-color: var(--border-tertiary);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.event-participant-weapon-tag:focus-visible {
    outline: 2px solid var(--accent-primary);
    outline-offset: 2px;
}

.event-participant-weapon-tag:active {
    transform: scale(0.98);
}

.event-participant-weapon-tag__icon-wrap {
    display: flex;
    align-items: center;
    align-self: stretch;
}

.event-participant-weapon-tag__icon {
    display: block;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    filter: brightness(0) invert(1);
    opacity: 0.92;
}

.event-participant-weapon-tag__icon--pistol {
    background-image: url('/assets/weapon-icons/pistol_mini.svg');
}

.event-participant-weapon-tag__icon--carbine {
    background-image: url('/assets/weapon-icons/carbine_mini.svg');
}

.event-participant-weapon-tag__icon--shotgun {
    background-image: url('/assets/weapon-icons/shotgun_mini.svg');
}

.event-participant-weapon-tag__primary {
    flex: 0 1 auto;
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: inherit;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.event-participant-weapon-tag__secondary {
    flex: 1 1 0;
    font-size: var(--font-size-sm);
    font-weight: 400;
    color: var(--font-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

/* Карточка с заглушкой вместо фото: без тёмного градиента (оверлей не рендерится в Blade) */
.event-participant-card--placeholder .event-participant-card__profile-bottom {
    color: var(--font-primary);
}

.event-participant-card--placeholder .event-participant-weapon-tag {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: var(--ui-surface-1);
    border-color: var(--ui-border);
}

.event-participant-card--placeholder .event-participant-weapon-tag:hover {
    background: var(--ui-hover-bg);
    border-color: var(--border-tertiary);
}

.event-participant-card--placeholder:hover .event-participant-weapon-tag {
    border-color: var(--ui-border-strong);
}

.event-participant-card--placeholder:hover .event-participant-weapon-tag:hover {
    border-color: var(--border-tertiary);
}

/* Светлый чип: белая иконка (invert) нечитаема — тёмный силуэт */
.event-participant-card--placeholder .event-participant-weapon-tag__icon {
    filter: brightness(0);
    opacity: 0.88;
}

.event-participant-card--placeholder .event-participant-card__actions .gc-dropdown-toggle-icon {
    color: var(--font-primary);
    background: var(--ui-surface-1);
    border-color: var(--ui-border);
}

.event-participant-card--placeholder .event-participant-card__actions .gc-dropdown-toggle-icon:hover {
    background: var(--ui-hover-bg);
    color: var(--font-primary);
    border-color: var(--border-tertiary);
}

/* Пулы «Ищут транспорт» / «Без транспорта» — карточки без чипов оружия */
.event-participant-card--transport-pool .event-participant-card__profile-bottom {
    gap: var(--spacing-xs);
}

.event-participant-card__pool-seeking {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    flex-wrap: wrap;
    max-width: 100%;
}

.event-participant-card__pool-seeking-label {
    margin: 0;
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: rgba(255, 255, 255, 0.92);
}

.event-participant-card--placeholder .event-participant-card__pool-seeking-label {
    color: var(--font-primary);
}

.event-participant-card__pool-meta {
    margin: 0;
    font-size: var(--font-size-xs);
    font-weight: 400;
    color: rgba(255, 255, 255, 0.78);
    line-height: 1.25;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    word-break: break-word;
}

.event-participant-card--placeholder .event-participant-card__pool-meta {
    color: var(--font-secondary);
}

.event-participant-card__actions {
    position: absolute;
    top: var(--spacing-sm);
    right: var(--spacing-sm);
    z-index: 6;
    margin: 0;
    pointer-events: auto;
}

.event-participant-card__actions .gc-dropdown {
    position: relative;
    z-index: 7;
}

.event-participant-card__actions .gc-dropdown-toggle-icon {
    color: rgba(255, 255, 255, 0.96);
    background: rgba(0, 0, 0, 0.35);
    border-color: var(--border-overlay);
    transition:
        background var(--transition-fast),
        border-color var(--transition-fast),
        color var(--transition-fast);
}

.event-participant-card__actions .gc-dropdown-toggle-icon:hover {
    background: rgba(0, 0, 0, 0.5);
    color: rgba(255, 255, 255, 1);
    border-color: var(--border-tertiary);
}

.event-participant-card__actions .gc-dropdown-toggle-icon:focus-visible {
    outline: 2px solid var(--accent-primary);
    outline-offset: 2px;
}

/* ── Транспорт: 1:1; без аватара в углу; широкий нижний скрим; бейдж «Берёт пассажиров» — absolute top-left; пассажиры 32px; glass у иконки авто ── */
.event-participant-card--transport .event-participant-card__media {
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
    border-radius: var(--radius-md-lg);
    border: none;
    background: var(--bg-content-secondary);
    box-sizing: border-box;
    isolation: isolate;
    box-shadow: inset 0 0 0 1px var(--ui-border);
    transition: box-shadow var(--transition-fast);
}

.event-participant-card--transport:hover .event-participant-card__media {
    box-shadow: inset 0 0 0 1px var(--ui-border-strong);
}

.event-participant-card--transport .event-participant-card__profile {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: calc(var(--spacing-xl) * 5);
    overflow: hidden;
    border-radius: inherit;
}

.event-participant-card--transport .event-participant-card__profile-bg,
.event-participant-card--transport .event-participant-card__backdrop,
.event-participant-card--transport .event-participant-card__backdrop-img,
.event-participant-card--transport .event-participant-card__gradient {
    border-radius: 0;
}

.event-participant-card--transport .event-participant-card__avatar-wrap {
    display: none;
}

/* Подложка-размытие только мешает читать карточку — на транспорте показываем чёткое фото */
.event-participant-card--transport .event-participant-card__backdrop-img {
    filter: none;
    -webkit-filter: none;
    transform: none;
}

.event-participant-card--transport:hover .event-participant-card__backdrop-img {
    transform: none;
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__gradient {
    /* Низ — шире зона скрима и 100% непрозрачный подложка под текст (нижняя ~⅓ карточки) */
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 0.08) 24%,
        rgba(0, 0, 0, 0.28) 42%,
        rgba(0, 0, 0, 0.55) 58%,
        var(--media-photo-scrim-solid) 74%,
        var(--media-photo-scrim-solid) 100%
    );
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__name {
    font-size: var(--font-size-md);
    font-weight: 500;
    color: rgba(255, 255, 255, 0.96);
}

.event-participant-card--transport .event-participant-card__transport-hero-stack {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: var(--spacing-2sm);
    width: 100%;
    min-width: 0;
    min-height: 0;
    flex: 1 1 auto;
    margin-top: 0;
    padding: var(--spacing-2sm);
    pointer-events: none;
}

.event-participant-card--transport .event-participant-card__profile-bottom {
    position: relative;
    inset: auto;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 0;
    padding: 0;
    width: 100%;
    min-width: 0;
    color: rgba(255, 255, 255, 0.96);
    pointer-events: none;
}

.event-participant-card--transport .event-participant-card__profile-bottom .profile-trigger {
    pointer-events: auto;
    cursor: pointer;
}

.event-participant-card--transport .event-participant-card__name-wrap {
    flex: 0 1 auto;
    min-width: 0;
    width: 100%;
    max-width: 100%;
}

/* «Берёт пассажиров» — вверху слева поверх фото (как в Figma), вне ряда с именем */
.event-participant-card--transport .event-participant-card__transport-badge--corner {
    position: absolute;
    top: var(--spacing-2sm);
    left: var(--spacing-2sm);
    z-index: 3;
    pointer-events: none;
}

.event-participant-card__transport-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-3xs);
    flex-shrink: 0;
    max-width: min(100%, 11rem);
    min-height: calc(var(--spacing-lg) + var(--spacing-4xs));
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--radius-md);
    background: var(--ui-surface-1);
    border: 1px solid var(--ui-border);
    pointer-events: none;
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-badge {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.28);
}

.event-participant-card__transport-badge-label {
    margin: 0;
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--font-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-badge-label {
    color: rgba(255, 255, 255, 0.96);
}

.event-participant-card--transport.event-participant-card--placeholder .event-participant-card__transport-badge {
    background: transparent;
    border: 1px solid var(--ui-border-strong);
}

.event-participant-card--placeholder .event-participant-card__transport-badge-label {
    color: var(--font-primary);
}

.event-participant-card--transport .event-participant-card__transport-footer {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    pointer-events: auto;
}

.event-participant-card__transport-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    width: 100%;
    min-width: 0;
}

.event-participant-card__transport-row-primary {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--spacing-sm);
    min-width: 0;
    flex: 1 1 auto;
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-car-icon {
    color: rgba(255, 255, 255, 0.92);
    /* Figma transport-v2 / Item type: 40×40, blur 6px, fill rgba(255,255,255,0.2) */
    background: rgba(255, 255, 255, 0.2);
    border: none !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.event-participant-card__transport-car-icon.gc-list-media-icon {
    flex-shrink: 0;
    --gc-list-media-size: var(--spacing-1-5xl);
    --gc-list-media-icon-padding: var(--spacing-2sm);
    --gc-list-media-glyph-size: var(--font-size-xl);
    --gc-list-media-mask-inset: var(--spacing-3xs);
    border: none !important;
}

.event-participant-card__transport-text-stack {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-2xs);
    min-width: 0;
}

.event-participant-card__transport-plate {
    flex-shrink: 0;
    align-self: center;
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-model {
    color: rgba(255, 255, 255, 0.96);
    font-size: var(--font-size-sm);
    font-weight: 500;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    display: block;
}

.event-participant-card__transport-model {
    margin: 0;
    min-width: 0;
    width: 100%;
    line-height: 1.25;
    overflow: hidden;
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-note {
    color: rgba(255, 255, 255, 0.72);
    font-size: var(--font-size-xs);
    font-weight: 400;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    word-break: break-word;
}

.event-participant-card__transport-note {
    margin: 0;
    padding: 0;
}

/* Заглушка транспорта: герой + имя + бейдж на сером фоне, ритм как у карточки с фото */
.event-participant-card--transport.event-participant-card--placeholder .event-participant-card__transport-hero-stack {
    color: var(--font-primary);
    width: 100%;
    padding-top: var(--spacing-mdl);
}

.event-participant-card--placeholder .event-participant-card__transport-model {
    color: var(--font-primary);
    font-size: var(--font-size-md);
    font-weight: 500;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    white-space: normal;
}

.event-participant-card--placeholder .event-participant-card__transport-note {
    color: var(--font-secondary);
    font-size: var(--font-size-xs);
    font-weight: 400;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    word-break: break-word;
}

.event-participant-card--placeholder .event-participant-card__transport-car-icon {
    color: var(--font-secondary);
    background: var(--ui-surface-1);
    border: none !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.event-participant-card--transport.event-participant-card--placeholder .event-participant-card__name {
    font-size: var(--font-size-md);
    font-weight: 500;
    color: var(--font-primary);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    word-break: break-word;
}

.event-participant-card--placeholder .event-participant-card__transport-model {
    letter-spacing: -0.01em;
}

.event-participant-card__transport-passengers {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    pointer-events: auto;
}

/* Figma: без пассажиров второй ряд скрыт — футер короче, тёмная зона визуально выше */
.event-participant-card__transport-passengers--empty {
    display: none;
    min-height: 0;
}

.event-participant-card__transport-passengers-dropdown {
    display: block;
    width: 100%;
    min-width: 0;
}

/* Триггер списка: не gc-btn — сброс gc-dropdown-toggle под макет transport-v2 */
.event-participant-card__transport-passengers-toggle.gc-dropdown-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-family: inherit;
    font-size: var(--font-size-sm);
    font-weight: 500;
    line-height: 1.25;
    color: var(--font-primary);
    text-align: left;
    gap: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-passengers-toggle.gc-dropdown-toggle {
    color: rgba(255, 255, 255, 0.96);
    font-size: var(--font-size-mdl);
    font-weight: 500;
}

.event-participant-card--placeholder .event-participant-card__transport-passengers-toggle.gc-dropdown-toggle {
    color: var(--font-primary);
}

.event-participant-card__transport-passengers-toggle.gc-dropdown-toggle:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--bg-main), 0 0 0 4px rgba(var(--accent-link-rgb), 0.4);
}

.event-participant-card__transport-passengers-toggle.gc-dropdown-toggle::after {
    display: none;
}

.event-participant-card__transport-passengers-toggle-inner {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    min-width: 0;
    width: 100%;
}

.event-participant-card__transport-passengers-avatars {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-shrink: 0;
    min-width: 0;
    padding-right: var(--spacing-sm);
}

.event-participant-card__transport-passengers-avatar-slot {
    position: relative;
    flex-shrink: 0;
    width: var(--spacing-xl);
    height: var(--spacing-xl);
    box-sizing: border-box;
    margin-right: calc(-1 * var(--spacing-sm));
    border-radius: 50%;
    overflow: hidden;
    /* Толще и совпадает с непрозрачным низом градиента (скрим, не theme surface) */
    border: var(--spacing-xs) solid var(--media-photo-scrim-solid);
}

.event-participant-card__transport-passengers-avatar-slot:nth-child(1) {
    z-index: 1;
}

.event-participant-card__transport-passengers-avatar-slot:nth-child(2) {
    z-index: 2;
}

.event-participant-card__transport-passengers-avatar-slot:nth-child(3) {
    z-index: 3;
}

.event-participant-card__transport-passengers-avatar-slot:nth-child(4) {
    z-index: 4;
}

.event-participant-card--transport.event-participant-card--placeholder .event-participant-card__transport-passengers-avatar-slot {
    border-color: var(--bg-content-secondary);
}

.event-participant-card__transport-passengers-avatar-img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.event-participant-card__transport-passengers-avatar-fallback {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    box-sizing: border-box;
    font-size: var(--font-size-sm);
    font-weight: 500;
    line-height: 1;
    color: var(--font-secondary);
    background: var(--ui-surface-2);
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-passengers-avatar-fallback {
    color: rgba(255, 255, 255, 0.88);
    background: rgba(0, 0, 0, 0.35);
}

.event-participant-card__transport-passengers-avatar-slot--more .event-participant-card__transport-passengers-more {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0 var(--spacing-3xs);
    font-size: var(--font-size-xs);
    font-weight: 500;
    line-height: 1;
    color: var(--font-secondary);
    background: var(--ui-surface-1);
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-passengers-avatar-slot--more .event-participant-card__transport-passengers-more {
    color: rgba(255, 255, 255, 0.92);
    background: rgba(0, 0, 0, 0.4);
}

.event-participant-card__transport-passengers-count {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--font-secondary);
    text-align: left;
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-passengers-count {
    font-size: var(--font-size-mdl);
    font-weight: 400;
    color: rgba(255, 255, 255, 0.72);
}

.event-participant-card--placeholder .event-participant-card__transport-passengers-count {
    color: var(--font-secondary);
}

.event-participant-card__transport-passengers-menu {
    min-width: min(92vw, calc(var(--spacing-xl) * 9));
}

/* Пункты меню: без gc-dropdown-item — те же отступы через токены (sm / mdl / 1-5xl) */
.event-participant-card__transport-passengers-menu .event-participant-card__transport-passengers-menu-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: var(--spacing-sm) var(--spacing-mdl);
    border: none;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--font-primary);
    font-family: inherit;
    font-size: var(--font-size-sm);
    font-weight: 500;
    line-height: 1;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    min-height: var(--spacing-1-5xl);
    appearance: none;
    -webkit-appearance: none;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.event-participant-card__transport-passengers-menu .event-participant-card__transport-passengers-menu-item:hover {
    background: var(--bg-hover);
    color: var(--font-primary);
}

.event-participant-card__transport-passengers-menu .event-participant-card__transport-passengers-menu-item:focus-visible {
    background: var(--bg-hover);
    color: var(--font-primary);
    outline: 2px solid var(--accent-primary);
    outline-offset: 2px;
}

.event-participant-card__transport-passengers-menu-avatar {
    display: block;
    width: var(--spacing-lg);
    height: var(--spacing-lg);
    flex-shrink: 0;
    border-radius: 50%;
    object-fit: cover;
}

.event-participant-card__transport-passengers-menu-avatar--fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    font-size: var(--font-size-xs);
    font-weight: 500;
    line-height: 1;
    color: var(--font-secondary);
    background: var(--ui-surface-1);
    border: 1px solid var(--ui-border);
}

.event-participant-card__transport-passengers-menu .event-participant-card__transport-passengers-menu-name {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}

/* Адаптив: «Все» — низкая карточка 2:1; транспорт — ниже квадрата; компактная аватарка */
@media (max-width: 991px) {
    .event-participant-card:not(.event-participant-card--transport) .event-participant-card__media {
        aspect-ratio: 2 / 1;
    }

    .event-participant-card__avatar-wrap {
        top: var(--spacing-sm);
        left: var(--spacing-sm);
    }

    .event-participant-card__avatar {
        width: var(--spacing-2xl);
        height: var(--spacing-2xl);
    }

    .event-participant-card__avatar--fallback {
        font-size: var(--font-size-xl);
    }

}

/* Вкладка «Транспорт»: пулы «ищут / без авто» — 4:3 на десктопе */
@media (min-width: 992px) {
    #participants-transport-content .event-participant-card--transport-pool .event-participant-card__media {
        aspect-ratio: 4 / 3;
    }
}

@media (prefers-reduced-motion: reduce) {
    .event-participant-card__backdrop-img,
    .event-participant-weapon-tag {
        transition: none;
    }

    .event-participant-card:not(.event-participant-card--transport):hover .event-participant-card__backdrop-img {
        transform: scale(1.06);
    }

    .event-participant-card--transport:hover .event-participant-card__backdrop-img {
        transform: none;
    }

    .event-participant-weapon-tag:active {
        transform: none;
    }
}


/* Обертка формы поиска и результатов */
.gc-search-wrapper {
    display: flex;
    flex-direction: column;
}

/* ===== ПЕРЕОПРЕДЕЛЕНИЯ UI KIT (для страницы мероприятия) ===== */
/* Базовые стили gc-list-group и gc-list-item определены в lists.css */

/* Переопределение для дропдаунов - нужен visible overflow */
.split-right .gc-list-group {
    overflow: visible;
}

/* Standalone gc-action-button в split-right получает border как у gc-panel */
.split-right > .gc-action-button {
    border: 1px solid var(--ui-border);
}

@media (max-width: 991.98px) {
    .split-right > .gc-action-button {
        /* border-left: none;
        border-right: none; */
    }
}

/* Заголовок категории класса оружия (badge + название + иконка) */
.sidebar-class-category-header {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Бадж класса оружия определен в lists.css */

/* Название типа оружия */
.sidebar-class-type-name {
    font-size: var(--font-size-mdl); /* 14px */
    font-weight: 500;
    color: var(--font-primary);
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Иконка типа оружия */
.sidebar-class-type-icon {
    height: 16px;
    flex-shrink: 0;
    opacity: 0.7;
    transition: filter var(--transition-base);
}

/* Инверсия SVG иконок в светлой теме */
[data-theme="light"] .sidebar-class-type-icon {
    filter: invert(1);
}

/* В темной теме - оставляем как есть */
[data-theme="dark"] .sidebar-class-type-icon {
    filter: none;
}

/* Название подкласса (Открытый, Серийный и т.д.) */
.gc-weapon-subclass-title {
    font-size: var(--font-size-xs); /* 12px */
    color: var(--font-secondary);
    font-weight: 500;
    margin-bottom: 0;
}

.gc-weapon-subclass-title + .gc-list-group {
    margin-bottom: 0; /* Отступами управляет gap родителя */
}

/* Элемент списка определен в lists.css */

/* ===== ТРАНСПОРТ ===== */

/* Сводка автомобиля на странице лоадаута */
.gc-vehicle-summary {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) 0;
}

.gc-vehicle-summary-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.gc-vehicle-summary-meta {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    flex-wrap: wrap;
    color: var(--font-secondary);
    font-size: var(--font-size-sm);
}

.gc-vehicle-card {
    min-height: auto !important;
    cursor: pointer;
    padding: var(--spacing-md) !important;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-md);
}

.gc-vehicle-card:hover {
    background-color: var(--bg-hover);
}

.gc-vehicle-icon {
    width: 40px;
    height: 40px;
    background-color: var(--bg-content-secondary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.gc-vehicle-icon i {
    font-size: var(--font-size-lg); /* 18px */
    color: var(--font-primary);
}

.gc-plate-badge {
    background-color: var(--bg-content-secondary);
    border: 1px solid var(--ui-border);
    padding: var(--spacing-4xs) var(--spacing-xs);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: bold;
    color: var(--font-primary);
    letter-spacing: 0.7px;
}

/* Название автомобиля - более жирное, чем обычный .gc-list-title */
.gc-vehicle-title {
    font-weight: 500;
    color: var(--font-primary);
    font-size: var(--font-size-sm);
    /* Базовый кегль страницы — typography.css / --font-size-base */
}

/* Адреса и роли используют .gc-list-meta из lists.css */

/* Индикатор статуса (зеленая точка) */
/* Индикатор статуса перенесен в indicators.css (UI Kit) */

/* Имена пассажиров и водителей используют .gc-list-title из lists.css */

/* Аватар 30px */
.gc-avatar-30 {
    width: 30px;
    height: 30px;
    object-fit: cover;
    flex-shrink: 0;
    border-radius: 50%;
}

.gc-avatar-30-fallback {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--bg-content-secondary);
    border: 1px solid var(--ui-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--font-secondary);
}

/* Контейнер всех секций транспорта */
.gc-transport-content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md); /* Управляет отступами между секциями */
}

.gc-transport-section-title {
    font-size: var(--font-size-sm); /* 12px, было 13px - округлено до ближайшего токена */
    color: var(--font-secondary);
    font-weight: normal;
    margin: 0; /* Отступами управляет gap родителя */
}

.gc-transport-section-wrapper {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0; /* Отступами управляет gc-transport-content через gap */
}

.gc-transport-items {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ===== HOVER ЭФФЕКТЫ ===== */

.exercise-item-hover {
    cursor: pointer;
}

.exercise-item-hover:hover {
    background-color: var(--bg-content-secondary) !important;
    transition: background-color 0.2s ease;
}

/* Универсальная кнопка меню "..." (для упражнений, транспорта, участников) */
.exercise-menu-btn,
.participant-menu-btn {
    border-radius: var(--radius-md);
    transition: background-color var(--transition-base);
}

.exercise-menu-btn:hover,
.participant-menu-btn:hover {
    background-color: var(--bg-hover) !important;
}

/* Hover для редактируемой секции описания */
.description-section-editable:hover {
    background-color: var(--bg-content-secondary) !important;
    transition: background-color 0.2s ease;
}

.description-section-editable:hover .gc-panel-header {
    background-color: var(--bg-content-secondary) !important;
    transition: background-color 0.2s ease;
}

.list-group-item.profile-trigger {
    border: none !important;
    border-radius: 0.5rem;
    /* margin-bottom убран - отступами управляет gap родителя */
}

/* ===== ОПИСАНИЕ МЕРОПРИЯТИЯ ===== */

.event-description-text {
    word-wrap: break-word;
    line-height: 1.6;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
    color: var(--font-secondary) !important;
    font-weight: 400;
    font-size: var(--font-size-md); /* 16px */
}

.event-description-text p {
    margin-bottom: 1em;
    color: var(--font-primary);
}

.event-description-text p:last-child {
    margin-bottom: 0;
}

.event-description-text strong,
.event-description-text b {
    font-weight: 700;
}

.event-description-text em,
.event-description-text i {
    font-style: italic;
}

.event-description-text a {
    color: var(--accent-link);
    text-decoration: none;
}

.event-description-text a:hover {
    color: var(--accent-link-hover);
    text-decoration: underline;
}

/* TipTap mention/widgets styles migrated to `public/css/tiptap-content.css` */

/* ===== ПЛАНШЕТЫ И МОБИЛЬНЫЕ ===== */

/* Планшеты */
@media (max-width: 991px) {
    .split-layout {
        grid-template-columns: 1fr;
        gap: 0;
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }
    
    /* Скрываем сайдбар на мобильных */
    .split-left {
        display: none;
    }
    
    .split-right {
        grid-column: 1;
        overflow-y: visible;
        overflow-x: hidden;
        width: 100%;
        gap: var(--spacing-sm); /* 8px на мобильных */
    }
    
    /* Фикс для dropdown в списке участников и в блоке добавления */
    :is(.gc-panel:has(#participants-tabs), .gc-panel:has(#participant-actions-tabs)) {
        overflow: visible !important;
    }
    
    :is(.gc-panel:has(#participants-tabs), .gc-panel:has(#participant-actions-tabs)) .gc-panel-content {
        overflow: visible !important;
    }
    
    :is(.gc-panel:has(#participants-tabs), .gc-panel:has(#participant-actions-tabs)) .tab-content {
        overflow: visible !important;
    }
    
    #participants-order-content,
    #participants-transport-content {
        overflow: visible !important;
    }
    
    #participants-order-content .gc-list-group,
    #participants-order-content .event-participants-grid,
    #participants-transport-content .gc-list-group,
    #participants-transport-content .event-participants-grid {
        overflow: visible !important;
    }
}

/* Мобильные устройства */
@media (max-width: 767px) {
    .split-layout {
        gap: 0;
        overflow-x: hidden;
    }
    
    .split-right {
        gap: var(--spacing-sm); /* 8px на мобильных */
    }
    
    .content-section {
        border-radius: 12px;
    }
    
    /* Фикс для dropdown в списке участников и в блоке добавления */
    :is(.gc-panel:has(#participants-tabs), .gc-panel:has(#participant-actions-tabs)) {
        overflow: visible !important;
    }
    
    :is(.gc-panel:has(#participants-tabs), .gc-panel:has(#participant-actions-tabs)) .gc-panel-content {
        overflow: visible !important;
    }
    
    :is(.gc-panel:has(#participants-tabs), .gc-panel:has(#participant-actions-tabs)) .tab-content {
        overflow: visible !important;
    }
    
    #participants-order-content,
    #participants-transport-content {
        overflow: visible !important;
    }
    
    #participants-order-content .gc-list-group,
    #participants-order-content .event-participants-grid,
    #participants-transport-content .gc-list-group,
    #participants-transport-content .event-participants-grid {
        overflow: visible !important;
    }
    
}

/* Очень маленькие экраны */
@media (max-width: 480px) {
    .split-layout {
        max-width: 100vw;
        overflow-x: hidden;
    }
    
    .gc-panel {
        border-radius: 12px;
        max-width: 100%;
    }
    
    /* Фикс для dropdown в списке участников и в блоке добавления */
    :is(.gc-panel:has(#participants-tabs), .gc-panel:has(#participant-actions-tabs)) {
        overflow: visible !important;
    }
    
    :is(.gc-panel:has(#participants-tabs), .gc-panel:has(#participant-actions-tabs)) .gc-panel-content {
        overflow: visible !important;
    }
    
    :is(.gc-panel:has(#participants-tabs), .gc-panel:has(#participant-actions-tabs)) .tab-content {
        overflow: visible !important;
    }
    
    #participants-order-content,
    #participants-transport-content {
        overflow: visible !important;
    }
    
    #participants-order-content .gc-list-group,
    #participants-order-content .event-participants-grid,
    #participants-transport-content .gc-list-group,
    #participants-transport-content .event-participants-grid {
        overflow: visible !important;
    }
    
}

/* ===== ДВУХУРОВНЕВЫЕ ТАБЫ С DROPDOWN ===== */

/* Wrapper для скролла табов */
.tabs-scroll-wrapper {
    width: 100%; /* Занимаем всю ширину родителя */
    overflow: visible; /* Wrapper не скроллит, dropdown не обрезается */
}

/* На мобилке табы занимают 100% ширины и скроллят свои элементы */
@media (max-width: 767px) {
    .tabs-scroll-wrapper .gc-tabs.gc-tabs-auto {
        width: 100% !important; /* Занимаем всю ширину wrapper */
        overflow-x: auto; /* Скроллим таб-итемы внутри */
        overflow-y: visible; /* Dropdown не обрезается */
        -webkit-overflow-scrolling: touch; /* Плавный скролл на iOS */
    }
}

/* На мобильных */
@media (max-width: 767px) {
    /* Убираем двойной border у последнего участника в мобильной таблице */
    .d-md-none > div:last-child {
        border-bottom: none !important;
    }
}

.gc-tab-item {
    position: relative;
}

.gc-tab-item.gc-tab-dropdown {
    position: relative;
}

/* На десктопе dropdown табы имеют специфичный padding */
@media (min-width: 768px) {
    .gc-tab-item.gc-tab-dropdown .gc-tab-link {
        padding: var(--spacing-xs) var(--spacing-sm);
    }
}

.gc-tab-item.gc-tab-dropdown .gc-tab-link {
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
    gap: 8px;
}

.tab-type-name {
    white-space: nowrap;
    font-size: var(--font-size-sm);
    font-weight: 500;
}

.tab-class-badge-wrapper {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}

/* Бадж в табах - используется UI-kit стиль */

.gc-tab-item.gc-tab-dropdown .gc-tab-link i {
    font-size: var(--font-size-micro);
    flex-shrink: 0;
    opacity: 0.6;
}

.gc-tab-item.gc-tab-dropdown .gc-tab-link.active i {
    opacity: 0.85;
}

/* На мобильных скрываем dropdown в табах (используется модал) */
@media (max-width: 767px) {
    .gc-tab-item .gc-dropdown-menu {
        display: none !important;
    }
}

/* Dropdown в табах */
.gc-tab-item .gc-dropdown-menu {
    min-width: 200px;
}

/* ===== DROPDOWN ДЛЯ ВЫБОРА КЛАССА (МОБИЛЬНЫЕ) ===== */
/* На мобилке используется отдельный dropdown вместо inline */

/* Overlay для dropdown */
.gc-dropdown-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1999;
}

/* На десктопе скрываем */
@media (min-width: 768px) {
    #classSelectModal {
        display: none !important;
    }
}

/* Тень для dropdown выбора класса */
#classSelectModal {
    box-shadow: var(--shadow-lg);
}

/* На мобилке позиционируем как bottom sheet */
@media (max-width: 767px) {
    #classSelectModal {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        top: auto;
        max-height: 70vh;
        border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Секции результатов: рекорды, персональная
   ═══════════════════════════════════════════════════════════════ */

/* ── Сетка карточек рекордов внутри панели рейтинга ─────────── */

.gc-results-records-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-mdl);
}

/* ── Карточка рекорда ────────────────────────────────────────── */

.gc-record-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-3sm);
    border: 1px solid var(--ui-border);
    border-radius: var(--radius-md-lg);
    background: var(--bg-content-main);
    min-width: 0;
}

.gc-record-card.profile-trigger,
.gc-record-card.gc-record-card--multi {
    cursor: pointer;
    transition: background-color var(--transition-base);
}

.gc-record-card.profile-trigger:hover,
.gc-record-card.gc-record-card--multi:hover {
    background-color: var(--bg-hover);
}

/* Floating попап для ачивок (не модал) */
.gc-achievement-popover .gc-panel {
    box-shadow: var(--shadow-xl);
}

/* Аватарки в попапе компактнее */
.gc-achievement-popover .gc-list-avatar,
.gc-achievement-popover .gc-list-media-icon.gc-list-avatar-fallback {
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
    max-width: 32px;
    max-height: 32px;
    font-size: var(--font-size-xs);
}

/* Левая колонка: аватарки */
.gc-record-card__visual {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.gc-record-card__visual .gc-avatar-stack-static {
    padding-left: 0;
    flex-wrap: nowrap;
}

/* Счётчик "+N" в стеке аватарок */
.gc-record-card__avatar-more {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--ui-surface-1);
    border: 1px solid var(--ui-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-xs);
    font-weight: 500;
    color: var(--font-secondary);
    flex-shrink: 0;
    margin-left: calc(var(--spacing-sm) * -1);
    padding: 0;
}

.gc-avatar-stack-static:hover .gc-avatar-stack-static {
    border: 1px solid transparent;
}

/* Когда фон карточки становится серым на hover,
   рамка у аватарок тоже подстраивается под новый фон */
.gc-record-card.profile-trigger:hover .gc-avatar-stack-static > *,
.gc-record-card.gc-record-card--multi:hover .gc-avatar-stack-static > * {
    border: 1px solid var(--ui-border);
}

/* Правая колонка: текст */
.gc-record-card__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

/* Верхняя строка: имя слева, значение справа */
.gc-record-card__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--spacing-xs);
    min-width: 0;
}

.gc-record-card__name {
    font-size: var(--font-size-mdl);
    font-weight: 500;
    color: var(--font-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
    margin: 0;
}

.gc-record-card__value {
    font-size: var(--font-size-mdl);
    font-weight: 500;
    color: var(--font-primary);
    white-space: nowrap;
    flex-shrink: 0;
    margin: 0;
}

.gc-record-card__label {
    font-size: var(--font-size-xs);
    color: var(--font-secondary);
    margin: 0;
}

/* ── Личная статистика: 2×2 сетка ───────────────────────────── */

.gc-personal-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-sm);
}

@media (min-width: 768px) {
    .gc-personal-stats-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* ═══════════════════════════════════════════════════════════════
   Тепловая карта упражнений
   Строки = упражнения (sticky), колонки = стрелки (скролл)
   ═══════════════════════════════════════════════════════════════ */

/* ── Враппер ─────────────────────────────────────────────────── */

/*
   ВАЖНО: position: sticky работает только если ни один предок
   не имеет overflow: hidden/auto. Поэтому враппер использует
   overflow-x: auto только по горизонтали — vertical остаётся visible.
*/
.gc-heatmap-wrapper {
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

.gc-heatmap-table {
    border-collapse: separate; /* нужно для sticky + border-radius на ячейках */
    border-spacing: 0;
}

.gc-heatmap-table th,
.gc-heatmap-table td {
    font-size: var(--font-size-xs);
    white-space: nowrap;
}

/* Ячейка с тепловым цветом — цвет задаётся через CSS-переменную --cell-hue */
.gc-heatmap-cell {
    text-align: center;
    font-variant-numeric: tabular-nums;
    background: hsl(var(--cell-hue, 0) 55% 45% / 0.25);
    font-weight: 500;
    min-width: 2.75rem;
    transition: background 0.2s ease;
}

.gc-heatmap-cell:hover {
    background: hsl(var(--cell-hue, 0) 55% 45% / 0.45);
}

/* «Нет данных» */
.gc-heatmap-cell--empty {
    color: var(--font-secondary);
    text-align: center;
}

/* ── Sticky колонки: имя фиксировано слева, итог — справа ───── */

/* Фон sticky ячеек совпадает с панелью, чтобы перекрывать скролл */
.gc-heatmap-table thead th:first-child,
.gc-heatmap-table tbody td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--bg-content-main);
    /* Нижний бордер строки — через row, но нужен явный для sticky */
    border-right: 1px solid var(--ui-border);
}

.gc-heatmap-table thead th:last-child,
.gc-heatmap-table tbody td:last-child {
    position: sticky;
    right: 0;
    z-index: 2;
    background: var(--bg-content-main);
    border-left: 1px solid var(--ui-border);
}

/* Тень-разделитель после первой колонки */
.gc-heatmap-table thead th:first-child::after,
.gc-heatmap-table tbody td:first-child::after {
    content: '';
    position: absolute;
    top: 0;
    right: -12px;
    bottom: 0;
    width: 12px;
    background: linear-gradient(to right, var(--bg-content-main), transparent);
    pointer-events: none;
}

/* Тень-разделитель перед последней колонкой */
.gc-heatmap-table thead th:last-child::before,
.gc-heatmap-table tbody td:last-child::before {
    content: '';
    position: absolute;
    top: 0;
    left: -12px;
    bottom: 0;
    width: 12px;
    background: linear-gradient(to left, var(--bg-content-main), transparent);
    pointer-events: none;
}

/* ── Адаптив: мобильные ──────────────────────────────────────── */

@media (max-width: 767px) {
    .gc-heatmap-cell {
        min-width: 2.25rem;
        padding: 4px;
        font-size: var(--font-size-micro);
    }

    /* Имя стрелка — только аватар + номер, без полного текста */
    .gc-heatmap-table .gc-table-shooter__name {
        display: none;
    }

    .gc-heatmap-table .gc-table-shooter {
        gap: 4px;
    }
}

/* ── Колонки стрелков: шапка с аватаркой и местом ───────────── */

.gc-heatmap-shooter-col {
    min-width: 48px;
    max-width: 56px;
    padding: var(--spacing-xs) 4px;
    text-align: center;
    vertical-align: middle;
}

.gc-heatmap-shooter-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: var(--spacing-xs) 0;
}

.gc-heatmap-rank {
    font-size: var(--font-size-micro);
    font-weight: 500;
    color: var(--font-secondary);
    line-height: 1;
}


/* ── Строки упражнений: sticky первая колонка ───────────────── */

.gc-heatmap-ex-col {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--bg-content-main);
    min-width: 140px;
    max-width: 200px;
    border-right: 1px solid var(--ui-border) !important;
}

/* Угловая ячейка шапки поверх всех sticky */
.gc-heatmap-table thead .gc-heatmap-ex-col {
    z-index: 3;
}

.gc-heatmap-ex-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-xs) var(--spacing-sm);
}

.gc-heatmap-ex-name {
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 140px;
    font-weight: 500;
}

/* ── Итоговая колонка справа ─────────────────────────────────── */

.gc-heatmap-total-col {
    min-width: 52px;
    text-align: center;
    padding: var(--spacing-xs) var(--spacing-sm);
    border-left: 1px solid var(--ui-border) !important;
    color: var(--font-secondary);
}

/* Счётчик в шапке панели */
.gc-heatmap-meta {
    font-size: var(--font-size-xs);
}

/* ── Адаптив ─────────────────────────────────────────────────── */

@media (max-width: 767px) {
    .gc-heatmap-ex-col {
        min-width: 100px;
        max-width: 130px;
    }

    .gc-heatmap-ex-name {
        max-width: 90px;
        font-size: var(--font-size-micro);
    }

    .gc-heatmap-cell {
        min-width: 2rem;
        font-size: var(--font-size-micro);
        padding: 4px 2px;
    }
}

/* ═══ Модалки «Скводы» (events/squads) — x-modal.shell + список как у участников на мероприятии ═══ */

.event-squad-modal.modal.gc-modal .modal-content {
    min-height: 0;
}

.event-squad-modal.modal.gc-modal .event-squad-modal__form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

.event-squad-modal.modal.gc-modal .gc-modal-content .event-squad-modal__form--fill {
    flex: 1 1 auto;
    min-height: 0;
}

.event-squad-modal.modal.gc-modal .event-squad-modal__body--scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    align-self: stretch;
}

.event-squad-modal.modal.gc-modal .gc-modal-content--list .gc-stack-sm {
    width: 100%;
    min-width: 0;
}

/* Строка выбора: те же отступы, что у .gc-interactive-row на странице мероприятия */
.event-squad-modal .event-participant-card.event-participant-card--modal-pick.gc-radio-wrapper,
.event-squad-modal .event-participant-card.event-participant-card--modal-pick.gc-checkbox-wrapper {
    width: 100%;
    margin: 0;
    box-sizing: border-box;
    padding: var(--spacing-sm);
}

.event-squad-modal .event-participant-card.event-participant-card--modal-pick.gc-checkbox-wrapper:has(.gc-list-meta) {
    align-items: flex-start;
}

.event-squad-modal .event-participant-card.event-participant-card--modal-pick.gc-checkbox-wrapper:has(.gc-list-meta) .gc-checkbox-container {
    align-self: flex-start;
    margin-top: var(--spacing-4xs);
}

.event-squad-modal .event-participant-card--modal-pick:has(.gc-radio-native:checked),
.event-squad-modal .event-participant-card--modal-pick:has(.gc-checkbox-native:checked) {
    /* Selected state should not paint the row; only hover may change bg */
    background: var(--bg-content-main);
}

.event-squad-modal .event-participant-card--modal-pick:has(.gc-radio-native:checked):hover,
.event-squad-modal .event-participant-card--modal-pick:has(.gc-checkbox-native:checked):hover {
    background: var(--bg-hover);
}

/* Модалка «Участники дуэли»: одна «подушка» — у строки (.gc-interactive-row), не у article + row (иначе двойной padding) */
.event-squad-modal .event-participant-card.duel-participants-modal__card {
    width: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    overflow: hidden;
}

/* Редактор описания мероприятия (TipTap в модале): типографика через .event-description-text на корне #tiptapEditor */
.gc-event-description-tiptap-root {
    min-height: 500px;
    max-width: 100%;
}

/*
 * Развёрнутый модал описания: высота колонки редактора по контенту (не на всё окно при малом тексте).
 * padding-bottom — компактно у последней строки; margin-bottom входит в scrollHeight → при длинном тексте остаётся зазор над футером.
 * Перебиваем min-height: 500px (.gc-event-description-tiptap-root), min-height:100% и flex:1 цепочку из шаблона / tiptap-editor.css.
 */
#descriptionEditorModal:not(.gc-event-description-modal--collapsed) #tiptapEditor.gc-event-description-tiptap-root.tiptap-editor {
    min-height: 0;
    flex: 0 1 auto;
}

#descriptionEditorModal:not(.gc-event-description-modal--collapsed) #tiptapEditor.tiptap-editor {
    padding-bottom: var(--spacing-md);
    margin-bottom: calc(var(--spacing-xl) + var(--spacing-md));
}

@media (max-width: 767.98px) {
    #descriptionEditorModal:not(.gc-event-description-modal--collapsed) #tiptapEditor.tiptap-editor {
        padding-bottom: var(--spacing-sm);
        margin-bottom: calc(var(--spacing-lg) + var(--spacing-md));
    }
}

#descriptionEditorModal:not(.gc-event-description-modal--collapsed) #tiptapEditor .gc-event-description-editor-mount {
    flex: 0 1 auto;
    min-height: 25rem;
}

#descriptionEditorModal:not(.gc-event-description-modal--collapsed)
    #tiptapEditor.tiptap-editor > .gc-event-description-editor-mount:only-child {
    min-height: 25rem;
}

/*
 * Футер / шапка — те же отступы, что у всех gc-modal (.modal.css):
 * шапка padding var(--spacing-md); футер padding var(--spacing-md) + safe-area снизу.
 * Верхняя граница футера на .gc-event-description-modal-footer-outer (без второго бордера у .modal-footer).
 * Десктоп — статус слева, кнопки справа; адаптив — статус строкой сверху по центру, две кнопки на всю ширину поровну.
 */
.gc-rich-editor-modal .gc-event-description-modal-footer-outer {
    flex-shrink: 0;
    border-top: 1px solid var(--ui-border);
    background: var(--bg-content-main);
}

#descriptionEditorModal .gc-event-description-modal-footer-actions.modal-footer {
    border-top: none;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: var(--spacing-md);
    padding-top: var(--spacing-md);
}

.gc-rich-editor-modal .gc-event-description-autosave-label {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--font-size-caption);
    font-weight: 400;
    color: var(--font-secondary);
    text-align: left;
    line-height: 1.4;
}

.gc-rich-editor-modal .gc-event-description-autosave-label--saved {
    color: var(--success-color);
}

/*
 * Модал заметки к оружию: футер — колонка (статус черновика + блок формы); первичные кнопки — те же классы, что у описания.
 */
#weaponNoteEditorModal .gc-event-description-modal-footer-actions.modal-footer.weapon-note-modal-footer {
    border-top: none;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--spacing-md);
    padding-top: var(--spacing-md);
}

#weaponNoteEditorModal .weapon-note-modal-footer__compose {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    width: 100%;
    min-width: 0;
}

#descriptionEditorModal .gc-event-description-modal-footer-buttons {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--spacing-sm);
    flex-shrink: 0;
    margin-left: auto;
}

@media (max-width: 767.98px) {
    #descriptionEditorModal .gc-event-description-modal-footer-actions.modal-footer {
        flex-direction: column;
        align-items: stretch;
        gap: var(--spacing-sm);
        justify-content: flex-start;
    }

    #descriptionEditorModal .gc-event-description-autosave-label:not([hidden]) {
        flex: none;
        margin-right: 0;
        text-align: center;
        order: -1;
    }

    #descriptionEditorModal .gc-event-description-modal-footer-buttons {
        margin-left: 0;
        justify-content: stretch;
        width: 100%;
    }

    /* Две кнопки на всю ширину пополам (с учётом gap между ними) */
    #descriptionEditorModal .gc-event-description-modal-footer-buttons .gc-btn {
        flex: 1 1 0;
        min-width: 0;
    }

    #weaponNoteEditorModal .weapon-note-modal-footer__toolbar-end.gc-event-description-modal-footer-buttons {
        justify-content: stretch;
        width: 100%;
        margin-left: 0;
    }

    #weaponNoteEditorModal .weapon-note-modal-footer__toolbar-end.gc-event-description-modal-footer-buttons .gc-btn {
        flex: 1 1 0;
        min-width: 0;
    }

    #weaponNoteEditorModal .gc-event-description-modal-footer-actions.modal-footer.weapon-note-modal-footer .gc-event-description-autosave-label:not([hidden]) {
        flex: none;
        text-align: center;
        order: -1;
    }
}

/* Бейдж черновика у панели «Описание» (рядом с заголовком, см. gc-panel-header-text--title-badge-row) */
.gc-event-description-panel-draft-badge {
    flex-shrink: 0;
}

/* Legacy: шапки без toolbar (если останутся) — выравнивание действий в grid gc-modal */
.gc-modal .modal-header.gc-event-description-modal-header .gc-event-description-modal-header-actions {
    justify-self: end;
}

/*
 * Шапка модалок описания мероприятия и заметки к оружию: одна flex-полоса (toolbar).
 * Закрыть не вкладывается в кнопку сворачивания — разные действия; вложенные interactive элементы запрещены.
 */
.gc-rich-editor-modal .modal-header.gc-event-description-modal-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    min-width: 0;
}

.gc-rich-editor-modal .gc-event-description-modal-header-toolbar {
    display: flex;
    flex-direction: row;
    align-items: center;
    min-width: 0;
    flex: 1 1 auto;
    gap: var(--spacing-xs);
}

.gc-rich-editor-modal .gc-event-description-modal-header-toolbar .gc-event-description-modal-collapse-hit {
    flex: 1 1 auto;
    min-width: 0;
}

.gc-rich-editor-modal .gc-event-description-modal-header-toolbar .gc-event-description-modal-header-actions {
    flex-shrink: 0;
}

/* Сброс grid у .modal-title из modal.css — заголовок внутри кнопки */
.gc-rich-editor-modal .gc-event-description-modal-collapse-hit .modal-title {
    grid-column: unset;
    grid-row: unset;
}

.gc-event-description-modal-collapse-hit {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    min-width: 0;
    margin: calc(var(--spacing-md) * -1);
    margin-inline-end: 0;
    padding: var(--spacing-md);
    border: none;
    border-radius: var(--radius-sm);
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.gc-event-description-modal-collapse-hit:hover,
.gc-event-description-modal-collapse-hit:active {
    background: transparent;
}

.gc-event-description-modal-collapse-hit:focus-visible {
    outline: 2px solid var(--accent-primary);
    outline-offset: 2px;
}

.gc-event-description-modal-collapse-chevron {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    color: var(--font-secondary);
}

.gc-event-description-modal-collapse-chevron i {
    font-size: var(--font-size-md);
    line-height: 1;
}

.gc-event-description-modal-title-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    min-width: 0;
    flex: 1 1 auto;
}

/* Заголовок не растягивается на всю строку — бейдж «Есть черновик» сразу после текста, не у края у закрыть */
.gc-event-description-modal-collapse-hit .gc-event-description-modal-title-row {
    gap: var(--spacing-xs);
}

.gc-event-description-modal-collapse-hit .gc-event-description-modal-title-row .modal-title {
    flex: 0 1 auto;
    min-width: 0;
    margin: 0;
    font-size: var(--font-size-mdl);
    font-weight: 500;
    line-height: 1.35;
    font-family: var(--font-family-heading);
}

.gc-event-description-modal-header-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    flex-shrink: 0;
}

/*
 * Редактор описания — развёрнутый на десктопе: убираем только scale(0.95) gc-modal (ощущение «сужения» при открытии).
 * Без :not(.gc-modal-is-hiding): при hide остаётся gc-modal-is-open, а .show уже снят — диалог остаётся opacity:1,
 * а ::before затемнение уходит с .show → оверлей гаснет раньше модала.
 */
@media (min-width: 768px) {
    .gc-rich-editor-modal.gc-modal-is-open:not(.gc-event-description-modal--collapsed):not(.gc-modal-is-hiding)
        .modal-dialog.modal-fullscreen,
    .gc-rich-editor-modal.show:not(.gc-event-description-modal--collapsed):not(.gc-modal-is-hiding)
        .modal-dialog.modal-fullscreen {
        transform: none;
        opacity: 1;
        transition: opacity var(--transition-base) ease-out;
    }
}

#descriptionEditorModal:not(.gc-event-description-modal--collapsed) .description-editor-body.modal-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    /* Скролл у .description-editor-container — иначе scrollbar-gutter: stable у .gc-modal .modal-body даёт лишний зазор справа */
    scrollbar-gutter: auto;
    overflow: hidden;
}

#descriptionEditorModal:not(.gc-event-description-modal--collapsed) .description-editor-container {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/*
 * Ширина свёрнутой полоски = замер .modal-dialog в развёрнутом виде (description-editor.js → --gc-event-description-docked-width).
 * Клик по оверлею (target === #descriptionEditorModal) сворачивает, если диалог не на весь экран и видна область вокруг.
 */
/* Свёрнутый редактор: без затемнения, клики проходят мимо шелла; только полоска интерактивна */
.gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open {
    pointer-events: none;
}

.gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open::before {
    opacity: 0 !important;
    pointer-events: none !important;
    transition: none;
}

.gc-rich-editor-modal.gc-event-description-modal--collapsed .modal-dialog {
    pointer-events: auto;
}

/* Rich-editor модалы: компактная полоса снизу с превью текста и градиентом */
.gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open .modal-dialog.modal-fullscreen {
    flex: 0 0 auto;
    align-self: flex-end !important;
    margin-top: auto !important;
    margin-bottom: 0 !important;
    height: auto;
    min-height: 0;
    max-height: none;
    padding: 0;
    margin-inline: auto;
    box-sizing: border-box;
    width: var(--gc-event-description-docked-width, 100%);
    max-width: 100%;
    transform: none !important;
    opacity: 1 !important;
}

/* Десктоп: ширина как у колонки контента мероприятия (max 1280px), без «на весь экран» при fallback 100% */
@media (min-width: 768px) {
    .gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open .modal-dialog.modal-fullscreen {
        width: min(var(--gc-event-description-docked-width, 100vw), min(1280px, 100%));
        max-width: min(1280px, 100%);
    }
}

@media (max-width: 767.98px) {
    .gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open .modal-dialog.modal-fullscreen {
        width: 100%;
        max-width: 100%;
        margin-inline: 0;
        transform: translateY(0) !important;
    }
}

/* Скрываем всю зону футера (обёртка + строка действий) в свёрнутом доке */
.gc-rich-editor-modal.gc-event-description-modal--collapsed .gc-event-description-modal-footer-outer {
    display: none !important;
}

.gc-rich-editor-modal.gc-event-description-modal--collapsed .modal-content {
    height: auto;
    max-height: min(45vh, calc(var(--spacing-3xl) * 3));
    margin: 0;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    padding-bottom: env(safe-area-inset-bottom, 0);
}

#descriptionEditorModal.gc-event-description-modal--collapsed .description-editor-body.modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

#descriptionEditorModal.gc-event-description-modal--collapsed .description-editor-container {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: calc(var(--font-size-md) * 1.6 * 5);
    overflow: hidden !important;
    position: relative;
}

#descriptionEditorModal.gc-event-description-modal--collapsed #tiptapEditor.tiptap-editor {
    flex: 1 1 auto;
    min-height: 0;
}

#descriptionEditorModal.gc-event-description-modal--collapsed .description-editor-container::after {
    content: '';
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: var(--spacing-xl);
    pointer-events: none;
    background: linear-gradient(to bottom, transparent, var(--bg-content-main));
}

#descriptionEditorModal.gc-event-description-modal--collapsed .gc-event-description-tiptap-root {
    min-height: 0;
}

/* Скелетон до TipTap: задаём высоту полоски превью (пустой ProseMirror с min-height 0 даёт «дыру») */
#descriptionEditorModal.gc-event-description-modal--collapsed .gc-event-description-editor-skeleton {
    width: 100%;
    box-sizing: border-box;
    min-height: calc(var(--font-size-md) * 1.6 * 4);
    flex-shrink: 0;
}

#descriptionEditorModal.gc-event-description-modal--collapsed .tiptap-editor .ProseMirror {
    min-height: 0 !important;
}

#weaponNoteEditorModal:not(.gc-event-description-modal--collapsed) .weapon-note-modal-body.description-editor-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    scrollbar-gutter: auto;
    overflow: hidden;
}

#weaponNoteEditorModal:not(.gc-event-description-modal--collapsed) .weapon-note-modal-editor-scroll.description-editor-container {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#weaponNoteEditorModal:not(.gc-event-description-modal--collapsed)
    #weapon-note-modal-editor-new.weapon-note-modal-tiptap-root.tiptap-editor {
    flex: 1 1 auto;
}

#weaponNoteEditorModal:not(.gc-event-description-modal--collapsed) #weapon-note-modal-editor-new .ProseMirror {
    flex: 1 1 auto;
    min-height: 25rem;
}

#weaponNoteEditorModal.gc-event-description-modal--collapsed .weapon-note-modal-body.description-editor-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

#weaponNoteEditorModal.gc-event-description-modal--collapsed .weapon-note-modal-editor-scroll.description-editor-container {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: calc(var(--font-size-md) * 1.6 * 5);
    overflow: hidden !important;
    position: relative;
}

#weaponNoteEditorModal.gc-event-description-modal--collapsed
    #weapon-note-modal-editor-new.weapon-note-modal-tiptap-root.tiptap-editor {
    flex: 1 1 auto;
    min-height: 0;
}

#weaponNoteEditorModal.gc-event-description-modal--collapsed .weapon-note-modal-editor-scroll.description-editor-container::after {
    content: '';
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: var(--spacing-xl);
    pointer-events: none;
    background: linear-gradient(to bottom, transparent, var(--bg-content-main));
}

#weaponNoteEditorModal.gc-event-description-modal--collapsed .weapon-note-modal-tiptap-root {
    min-height: 0;
}

#weaponNoteEditorModal.gc-event-description-modal--collapsed .weapon-note-modal-body-inner {
    padding-bottom: 0;
}

#weaponNoteEditorModal.gc-event-description-modal--collapsed #weapon-note-modal-editor-new .ProseMirror {
    min-height: 0 !important;
}


