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

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

.event-split-layout {
    display: grid;
    grid-template-columns: var(--layout-event-loadout-sidebar-width) 1fr;
    max-width: 1280px;
    margin: 0 auto;
    padding: var(--space-4) var(--space-6);
    gap: var(--space-4);
    align-items: start;
}

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

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


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

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

/* Профиль в сайдбаре */
.event-sidebar-profile {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-4);
    background: var(--surface-panel);
    border: none;
    border-radius: var(--radius-12);
}

/* На адаптиве — виджеты сайдбара у края экрана без боковых линий */
@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(--surface-control);
    color: var(--text-secondary);
    font-size: var(--font-size-18);
}

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

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

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

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

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

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.event-sidebar-card:hover {
    background: color-mix(in srgb, var(--fill-primary) 6%, transparent);
}
}

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

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

.event-sidebar-add:hover {
    background: color-mix(in srgb, var(--fill-primary) 6%, transparent);
}

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

.event-sidebar-caret {
    font-size: var(--font-size-13);
    color: var(--text-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(--space-1);
}

.event-sidebar-class-badge {
    font-size: var(--font-size-13);
    font-weight: 700;
    background: var(--surface-control);
    color: var(--text-secondary);
    padding: 1px 5px;
    border-radius: var(--radius-8);
    flex-shrink: 0;
    letter-spacing: 0.5px;
}

.event-sidebar-class-type-name {
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-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-13);
    color: var(--text-secondary);
    padding-left: calc(var(--space-1) + 20px);
}

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

.event-sidebar-weapon-name {
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-primary);
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

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

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

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

.event-sidebar-vehicle-addr {
    font-size: var(--font-size-13);
    color: var(--text-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(--space-2);
}

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

.event-content-section {
    background: var(--surface-panel);
    border: none;
    border-radius: var(--radius-12);
    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(--border-subtle);
    }
}

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

.event-content-section--editable:hover {
    background: color-mix(in srgb, var(--fill-primary) 6%, transparent);
}

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

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

.event-content-section-body {
    padding: var(--space-2) var(--space-4) var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.event-content-section-footer {
    padding: 0 var(--space-4) var(--space-4);
}

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

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

/* Упражнения: форма добавления */
.event-exercise-add-wrap {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    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-8);
    color: var(--text-secondary);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
    padding: 0;
    flex-shrink: 0;
}

.event-menu-btn:hover {
    background: color-mix(in srgb, var(--fill-primary) 6%, transparent);
    color: var(--text-primary);
}

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

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

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

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

.event-class-badge {
    font-size: var(--font-size-13);
    font-weight: 700;
    background: var(--surface-control);
    color: var(--text-secondary);
    padding: 2px 6px;
    border-radius: var(--radius-8);
    flex-shrink: 0;
    letter-spacing: 0.5px;
}

.event-class-type-name {
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-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-13);
    color: var(--text-secondary);
    margin: 0 0 var(--space-1);
}

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

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

@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(--space-4);
}

.event-show-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-4);
}

.event-show-meta-item {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--font-size-14);
    color: var(--text-secondary);
}

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

.event-show-organizer {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2);
    background: var(--surface-control);
    border-radius: var(--radius-8);
}

.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(--surface-control);
    border: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    font-size: var(--font-size-14);
    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-13);
    color: var(--text-secondary);
}

.event-show-organizer-name {
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-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-14);
    color: var(--text-secondary);
    line-height: 1.6;
    padding-top: var(--space-1);
    border-top: 1px solid var(--border-subtle);
}

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

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

/* Нет in-grid rail — одна колонка. Иначе пустой area sidebar + column-gap. */
.split-layout:not(:has(> .split-left)) {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "main";
    gap: 0;
}

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

/*
 * Legacy alias: страницы вкладок мероприятия → .event-section-main
 * (event-show-constructor.css). Не расширять — мигрировать разметку.
 */
.event-content {
    width: 100%;
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    box-sizing: border-box;
    min-width: 0;
}

@media (max-width: 991.98px) {
    .event-content {
        padding-inline: var(--layout-content-inset-x);
        gap: var(--layout-section-gap);
    }
}

/*
 * Адаптивные боковые поля у края viewport — только без app rail
 * (с rail inset уже на .gc-app-main / main-inset-x).
 * <992: inset даёт .gc-app-main (subheader) или .page-container-flush —
 * не дублировать space/4 на .split-layout (specificity > голого .split-layout).
 */
@media (max-width: 1312px) { /* 1280px + 32px запас */
    body:not(:has(.gc-app-rail)) .split-layout {
        padding: 0 var(--space-4);
    }
}

@media (max-width: 991.98px) {
    body:not(:has(.gc-app-rail)) .split-layout {
        padding: 0;
    }
}


/* ===== КОЛОНКА ЛОАДАУТА (справа) ===== */

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

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

/* Десктоп (≥1280): sticky split-left — layout-utilities.css (.sidebar-content внутри aside) */
@media (min-width: 1280px) {
    .split-left {
        display: flex;
        overflow: visible;
    }

    .split-left:not(:has(> .sidebar-content)) {
        display: block;
    }
}

/* Медиа в строках лоадаута/инфо: не сжимать 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;
}

/* Classic in-grid сайдбар: полоса эпика flush к карточке. Inertia context rail — inset в constructor. */
@media (min-width: 992px) {
    .split-left .sidebar-event-info-cell .gc-event-card-epic-row {
        padding-left: 0;
        padding-right: 0;
    }
}

/* ===== КОЛОНКА КОНТЕНТА (слева) ===== */

.split-right {
    grid-area: main;
    grid-row: 1;
    background: transparent;
    padding: 0;
    /* visible — auto клипировал box-shadow секций; скролл страницы, не колонки */
    overflow-y: visible;
    overflow-x: visible;
    scrollbar-width: none;
    -ms-overflow-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--layout-section-gap);
}

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

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

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

/* .gc-dropdown-order-buttons — канон в dropdown.css (UI Kit) */

/* 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(--text-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(--text-primary);
}

.gc-input-text-button i {
    font-size: var(--font-size-base); /* 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(--space-4);
}

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

/* Стековая заглушка (профильный паттерн): внешний 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;
}

/* Блок добавления участников — ритм в event-show-constructor.css (внутри framed shell ростера) */
.event-roster-panel .event-participants-add-section,
.event-show-zone--panel-roster .event-participants-add-section {
    min-width: 0;
    width: 100%;
}

.event-participants-add-section .gc-tabs-with-input-wrapper {
    min-width: 0;
    width: 100%;
    overflow: visible;
}

/* Inline-результаты под полем — без elevated stacking у gc-search-container */
.event-participants-add-section .gc-search-container {
    position: static;
    z-index: auto;
}

/* Результаты поиска — flush-строки на ширину shell, как карточки ростера над полем. */
.event-participants-search-pane {
    display: flex;
    flex-direction: column;
    gap: var(--gc-list-section-shell-gap);
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

.event-participants-search-results-section {
    --gc-list-row-radius: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 0;
}

.event-participants-search-results-section[hidden] {
    display: none !important;
}

.event-participants-search-results,
.event-participants-search-group {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

.event-participants-search-results .gc-empty-state {
    padding-inline: var(--gc-open-list-section-inset, var(--space-3));
}

.event-participants-search-results .gc-list-stack-item--roster.event-participant-card,
.event-participants-search-group .gc-list-stack-item--roster.event-participant-card {
    background: transparent;
    border-radius: 0;
    overflow: visible;
}

.event-participants-search-results .gc-list-stack-item--roster.event-participant-card > .gc-interactive-row,
.event-participants-search-group .gc-list-stack-item--roster.event-participant-card > .gc-interactive-row {
    border-radius: 0;
}

.event-participants-search-results .gc-list-stack-item--roster > .gc-interactive-row,
.event-participants-search-group .gc-list-stack-item--roster > .gc-interactive-row {
    padding: var(--gc-open-list-section-row-padding-y, var(--space-3)) var(--gc-open-list-section-inset, var(--space-3));
}

/* Заголовок группы сидит на списке: не второй inset поверх padding строки. */
.event-participants-search-group > .gc-list-group-header + .event-participant-card.gc-list-stack-item--roster > .gc-interactive-row {
    padding-top: var(--space-1);
}

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

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

/* Weapon-теги в новом контексте (на bg-content-secondary карточке):
   убираем backdrop-blur, теги — bg-content-main с рамкой (chip на карточке) */
.gc-panel.gc-panel--roster .event-participant-weapon-tag {
    background: var(--surface-panel);
    border-color: var(--border-subtle);
    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-default);
}

.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(--space-1);
    width: 100%;
    min-width: 0;
}

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

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

/* Квадрат превью брифинга / иконка — открытие #stageViewModal (не вся строка). См. .gc-list-media-hit в lists.css */

.event-show-zone--panel-program .gc-interactive-row--attempt {
    opacity: 0.92;
}

.event-program-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0 var(--space-2);
    font-size: var(--gc-list-meta-font-size);
    line-height: var(--gc-list-meta-line-height);
    color: var(--text-secondary);
    text-align: right;
}

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

.event-program-poll-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding-top: 0;
}

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

/* Левая группа: radio + label/% (Figma gap 8px между radio и title) */
.event-program-poll-option__choice {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
    flex: 1 1 auto;
}

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

.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 .event-program-poll-option__choice {
    pointer-events: none;
}

.event-program-poll-form--choices-locked[data-has-recorded-vote="1"] .event-program-poll-option__tail {
    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(--space-product-2);
}

.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-18);
    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(--space-4);
    border-radius: var(--radius-12);
    background: var(--surface-control);
    font-size: var(--font-size-14);
    color: var(--text-secondary);
}

.event-program-poll-voter-empty--error {
    color: var(--text-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(--border-default);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-secondary);
    transition:
        border-color var(--transition-fast),
        box-shadow var(--transition-fast),
        background-color var(--transition-fast);
}

/* Figma Radio hover (643:10041): accent border + 2px ring — только на радио, без фона строки */
.event-program-poll-form:not(.event-program-poll-form--readonly):not(.event-program-poll-form--choices-locked) .event-program-poll-option:hover:not(.event-program-poll-option--readonly) .event-program-poll-radio {
    border-color: var(--accent-link);
    background: transparent;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-link) 20%, transparent);
}

.event-program-poll-form:not(.event-program-poll-form--readonly):not(.event-program-poll-form--choices-locked) .event-program-poll-option:has(.event-program-poll-native:checked):hover .event-program-poll-radio {
    box-shadow: none;
}

.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: center;
    gap: calc(var(--space-1) + var(--space-product-2));
    min-width: 0;
    flex: 1 1 auto;
}

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

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

.event-program-poll-option__pct {
    font-weight: 400;
    font-size: var(--font-size-15);
    color: var(--text-secondary);
}

.event-program-poll-option__tail {
    display: flex;
    align-items: center;
    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: calc(var(--space-1) + var(--space-product-2));
    flex-shrink: 0;
}

.event-program-poll-votes-meta {
    font-size: var(--font-size-14);
    color: var(--text-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(--surface-sunken);
    margin-inline-start: calc(-1 * var(--space-1));
    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: var(--gc-focus-outline);
    outline-offset: 2px;
}

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

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

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

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

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

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

/* Транспорт: list-row rhythm — avatar/icon ↔ content как program / weapons (space/3) */
.event-participants-transport-pane .event-participant-card > .gc-interactive-row,
.event-participants-transport-pane .event-transport-crew .gc-list-item-trigger {
    gap: var(--space-3);
}

@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-12);
    cursor: pointer;
    transition: background var(--transition-fast);
}

/* Ховер вне boxed shell — в shell см. lists.css (.gc-list-section-shell .event-participant-card); адаптив — lists.css */
@media (min-width: 992px) {
    @media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
    .event-participant-card:not(.gc-open-list-tree-block):hover {
        background: var(--gc-interactive-hover-bg);
    }
    }
}

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

/* Ростер: мини-сетка оружия — loadout-weapon-grid + gc-weapon-preview-interactive */
/* Figma list-item/weapon (1463:20648): grid px/pb space/2 — вровень с padding строки (avatar) */
.event-roster-weapon-cards .loadout-weapon-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3);
    padding: 0 var(--gc-list-row-padding) var(--gc-list-row-padding);
    box-sizing: border-box;
}

/* Figma card/weapon: 8px между превью и title — как .loadout-weapon-card, не list-title line-height */
.event-roster-weapon-cards .loadout-weapon-card {
    gap: var(--space-2);
}

/* В ростере карточки всегда в сетке 3 col, без full-width :only-child из лоадаута */
.event-roster-weapon-cards .loadout-weapon-card:only-child {
    grid-column: auto;
}

.event-roster-weapon-cards .loadout-weapon-info {
    text-align: left;
}

/* Вкладка «Оружие» участников — gc-list-shell-weapon (Figma 1528:12565); page + sidepanel */
.event-participants-weapons-pane .gc-list-shell-weapon {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    align-items: stretch;
}

.event-participants-weapons-pane .gc-list-shell-weapon > .gc-list-item.event-participants-weapons-owner {
    --gc-list-item-padding-x: var(--gc-list-open-row-padding);
    --gc-list-item-padding-y: var(--gc-list-open-row-padding);
    --gc-list-item-min-height: auto;
    --gc-list-item-hover-bg: transparent;
    cursor: default;
    pointer-events: none;
}

.event-participants-weapons-pane .gc-list-shell-weapon > .gc-list-item.event-participants-weapons-owner .gc-list-item-trigger {
    gap: var(--space-3);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.event-participants-weapons-pane .gc-list-shell-weapon > .gc-list-item.event-participants-weapons-owner:hover {
    background: transparent;
}
}

.event-participants-weapons-pane .gc-list-shell-extra-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    width: 100%;
    padding: 0;
    background: transparent;
}

.event-participants-weapons-pane .gc-list-shell-extra-list > .gc-list-item {
    --gc-list-item-min-height: auto;
    --gc-list-divider-color: transparent;
    --gc-list-item-padding-y: var(--gc-list-open-row-padding);
    --gc-list-item-padding-x: var(--gc-list-open-row-padding);
    align-items: stretch;
    padding: var(--gc-list-open-row-padding);
    border-top: none;
    border-radius: var(--gc-list-row-radius, var(--radius-12));
    background: var(--surface-secondary);
    transition: background var(--transition-fast);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.event-participants-weapons-pane .gc-list-shell-extra-list > .gc-list-item:hover {
    background: var(--gc-interactive-hover-bg);
}
}

/* Figma list-item / programm (1528:12729): photo + content слева, tag справа */
.event-participants-weapons-pane .gc-list-shell-extra-list > .gc-list-item .gc-list-item-trigger {
    gap: var(--space-3);
    min-width: 0;
    align-items: center;
}

.event-participants-weapons-pane .gc-list-shell-extra-list > .gc-list-item .gc-list-item-trigger > .gc-list-content {
    flex: 1 1 auto;
    min-width: 0;
}

.event-participants-weapons-pane .gc-list-shell-extra-list > .gc-list-item .loadout-weapon-photo-container,
.gc-list-item.gc-checkbox-wrapper .loadout-weapon-photo-container {
    /* Figma card/weapon (1581:22308): 100×56, aspect 284/159, radius/10 */
    flex: 0 0 6.25rem;
    width: 6.25rem;
    aspect-ratio: 284 / 159;
    border-radius: var(--radius-10);
}

/* В узком превью списка одна высота глифа: процент ширины карточки сжимает длинные стволы */
.event-participants-weapons-pane .gc-list-shell-extra-list > .gc-list-item .loadout-weapon-photo-main.is-icon-placeholder,
.event-participants-weapons-pane .gc-list-shell-extra-list > .gc-list-item .loadout-weapon-photo-main.is-icon-placeholder.icon-pistol,
.gc-list-item.gc-checkbox-wrapper .loadout-weapon-photo-main.is-icon-placeholder,
.gc-list-item.gc-checkbox-wrapper .loadout-weapon-photo-main.is-icon-placeholder.icon-pistol {
    width: auto;
    height: 1.125rem;
    max-width: calc(100% - var(--space-2));
    max-height: none;
}

.event-participants-weapons-pane .gc-list-shell-extra-list > .gc-list-item .gc-list-actions {
    flex-shrink: 0;
}

.event-participants-weapons-pane .gc-list-shell-extra-list > .gc-list-item .loadout-weapon-class-pill {
    flex-shrink: 0;
}

/* Список заявок и лента льгот канала: теги внутри 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: center;
    gap: var(--space-1);
    min-width: 0;
}

.event-participant-card--request .event-request-benefit-badges > .gc-benefit-badge,
.subscriptions-benefit-feed-item.event-participant-card .event-request-benefit-badges > .gc-benefit-badge {
    font-weight: 400;
}

/* Ценник в паре с gc-benefit-badge: тот же кегль и высота чипа (бордер съедает 1px padding) */
.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: baseline;
    padding: calc(var(--space-1) - 1px) var(--space-2);
    border-radius: 4px var(--radius-12) var(--radius-12) var(--radius-12);
    background: var(--surface-secondary);
    border: 1px solid var(--border-subtle);
    font-size: var(--font-size-14);
    font-weight: 400;
    color: var(--text-primary);
    line-height: var(--type-ui-caption-line-height);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.event-participant-card--request .event-request-benefit-price .event-price-inline,
.subscriptions-benefit-feed-item.event-participant-card .event-request-benefit-price .event-price-inline {
    align-items: baseline;
    font-variant-numeric: tabular-nums;
}

.event-participant-card--request .event-request-benefit-price .event-price-old,
.event-participant-card--request .event-request-benefit-price .event-price-voucher-pricelist,
.subscriptions-benefit-feed-item.event-participant-card .event-request-benefit-price .event-price-old,
.subscriptions-benefit-feed-item.event-participant-card .event-request-benefit-price .event-price-voucher-pricelist {
    font-size: var(--font-size-14);
    font-weight: 400;
    line-height: var(--type-ui-caption-line-height);
    color: var(--text-secondary);
}

.event-participant-card--request .event-request-benefit-price .event-price-new,
.event-participant-card--request .event-request-benefit-price .event-price-voucher-debit,
.subscriptions-benefit-feed-item.event-participant-card .event-request-benefit-price .event-price-new,
.subscriptions-benefit-feed-item.event-participant-card .event-request-benefit-price .event-price-voucher-debit {
    font-size: var(--font-size-14);
    font-weight: 400;
    line-height: var(--type-ui-caption-line-height);
    color: var(--text-primary);
}

.event-participant-card--request .event-request-benefit-price--contextual,
.subscriptions-benefit-feed-item.event-participant-card .event-request-benefit-price--contextual {
    font-weight: 400;
    color: inherit;
}

/* 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(--space-2);
    border-radius: 4px var(--radius-12) var(--radius-12) var(--radius-12);
    background: var(--surface-secondary);
    border: 1px solid var(--border-subtle);
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-secondary);
    line-height: var(--type-ui-caption-line-height);
}

/* Дерево экипажа в transport-card — lists.css (composite transport + gc-list-tree hover) */

/* 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(--space-2);
}

/* Номер в колонке действий карточки авто — выравнивается по высоте с кнопками (не 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-12);
}

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

.event-participant-card__profile {
    position: absolute;
    inset: 0;
    min-height: 0;
    border-radius: var(--radius-12);
    overflow: hidden;
    background: var(--surface-control);
}

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

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

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

.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;
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

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

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

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

.event-participant-card__avatar {
    display: block;
    width: var(--space-16);
    height: var(--space-16);
    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-20);
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--surface-control);
    border: 1px solid var(--border-subtle);
}

.event-participant-card__gradient {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
        to top,
        color-mix(in srgb, var(--fill-emphasis) 72%, transparent) 0%,
        color-mix(in srgb, var(--fill-emphasis) 45%, transparent) 42%,
        color-mix(in srgb, var(--fill-emphasis) 12%, transparent) 72%,
        transparent 100%
    );
}

.event-participant-card__profile-bottom {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: 0 var(--space-4) var(--space-4);
    width: 100%;
    min-width: 0;
    color: var(--text-on-solid);
    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-14);
    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(--space-1) var(--space-2);
    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(--space-1);
    max-width: 100%;
    min-width: 0;
    padding: var(--space-2);
    border-radius: var(--radius-12);
    cursor: pointer;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    background: color-mix(in srgb, var(--text-on-solid) 20%, transparent);
    border: 1px solid var(--border-subtle);
    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, без смены заливки */
@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
.event-participant-card:not(.event-participant-card--placeholder):hover .event-participant-weapon-tag {
    border-color: var(--border-default);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

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

.event-participant-weapon-tag:focus-visible {
    outline: var(--gc-focus-outline);
    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-14);
    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-14);
    font-weight: 400;
    color: var(--text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

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

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

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.event-participant-card--placeholder .event-participant-weapon-tag:hover {
    background: var(--surface-row-hover);
    border-color: var(--border-default);
}
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

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

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

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

/* Светлый чип: белая иконка (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(--text-primary);
    background: var(--surface-control);
    border-color: var(--border-subtle);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.event-participant-card--placeholder .event-participant-card__actions .gc-dropdown-toggle-icon:hover {
    background: var(--surface-row-hover);
    color: var(--text-primary);
    border-color: var(--border-default);
}
}

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

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

.event-participant-card__pool-seeking-label {
    margin: 0;
    font-size: var(--font-size-13);
    font-weight: 500;
    color: color-mix(in srgb, var(--text-on-solid) 92%, transparent);
}

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

.event-participant-card__pool-meta {
    margin: 0;
    font-size: var(--font-size-13);
    font-weight: 400;
    color: color-mix(in srgb, var(--text-on-solid) 78%, transparent);
    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(--text-secondary);
}

.event-participant-card__actions {
    position: absolute;
    top: var(--space-2);
    right: var(--space-2);
    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: var(--text-on-solid);
    background: color-mix(in srgb, var(--fill-emphasis) 35%, transparent);
    border-color: var(--border-overlay);
    transition:
        background var(--transition-fast),
        border-color var(--transition-fast),
        color var(--transition-fast);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.event-participant-card__actions .gc-dropdown-toggle-icon:hover {
    background: color-mix(in srgb, var(--fill-emphasis) 50%, transparent);
    color: var(--text-on-scrim);
    border-color: var(--border-default);
}
}

.event-participant-card__actions .gc-dropdown-toggle-icon:focus-visible {
    outline: var(--gc-focus-outline);
    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-12);
    border: none;
    background: var(--surface-control);
    box-sizing: border-box;
    isolation: isolate;
    box-shadow: inset 0 0 0 1px var(--border-subtle);
    transition: box-shadow var(--transition-fast);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

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

.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(--space-8) * 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;
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.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,
        transparent 0%,
        color-mix(in srgb, var(--fill-emphasis) 8%, transparent) 24%,
        color-mix(in srgb, var(--fill-emphasis) 28%, transparent) 42%,
        color-mix(in srgb, var(--fill-emphasis) 55%, transparent) 58%,
        var(--gray-900) 74%,
        var(--gray-900) 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-base);
    font-weight: 500;
    color: var(--text-on-solid);
}

.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(--space-2);
    width: 100%;
    min-width: 0;
    min-height: 0;
    flex: 1 1 auto;
    margin-top: 0;
    padding: var(--space-2);
    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: var(--text-on-solid);
    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(--space-2);
    left: var(--space-2);
    z-index: 3;
    pointer-events: none;
}

.event-participant-card__transport-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
    max-width: min(100%, 11rem);
    min-height: calc(var(--space-6) + var(--space-product-2));
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-8);
    background: var(--surface-control);
    border: 1px solid var(--border-subtle);
    pointer-events: none;
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-badge {
    background: transparent;
    border-color: color-mix(in srgb, var(--text-on-solid) 28%, transparent);
}

.event-participant-card__transport-badge-label {
    margin: 0;
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-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: var(--text-on-solid);
}

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

.event-participant-card--placeholder .event-participant-card__transport-badge-label {
    color: var(--text-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(--space-2);
    width: 100%;
    min-width: 0;
}

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

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-car-icon {
    color: color-mix(in srgb, var(--text-on-solid) 92%, transparent);
    /* Figma transport-v2 / Item type: 40×40, blur 6px, fill color-mix(in srgb, var(--text-on-solid) 20%, transparent) */
    background: color-mix(in srgb, var(--text-on-solid) 20%, transparent);
    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(--space-product-40);
    --gc-list-media-icon-padding: var(--space-2);
    --gc-list-media-glyph-size: var(--font-size-20);
    --gc-list-media-mask-inset: var(--space-2);
    border: none !important;
}

.event-participant-card__transport-text-stack {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    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: var(--text-on-solid);
    font-size: var(--font-size-14);
    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: color-mix(in srgb, var(--text-on-solid) 72%, transparent);
    font-size: var(--font-size-13);
    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(--text-primary);
    width: 100%;
    padding-top: var(--space-4);
}

.event-participant-card--placeholder .event-participant-card__transport-model {
    color: var(--text-primary);
    font-size: var(--font-size-base);
    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(--text-secondary);
    font-size: var(--font-size-13);
    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(--text-secondary);
    background: var(--surface-control);
    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-base);
    font-weight: 500;
    color: var(--text-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-14);
    font-weight: 500;
    line-height: 1.25;
    color: var(--text-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: var(--text-on-solid);
    font-size: var(--font-size-15);
    font-weight: 500;
}

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

.event-participant-card__transport-passengers-toggle.gc-dropdown-toggle:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

.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(--space-2);
    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(--space-2);
}

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

.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(--surface-control);
}

.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-14);
    font-weight: 500;
    line-height: 1;
    color: var(--text-secondary);
    background: var(--surface-control);
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-passengers-avatar-fallback:not([class*="gc-avatar-tint-"]) {
    color: color-mix(in srgb, var(--text-on-solid) 88%, transparent);
    background: color-mix(in srgb, var(--fill-emphasis) 35%, transparent);
}

.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(--space-2);
    font-size: var(--font-size-13);
    font-weight: 500;
    line-height: 1;
    color: var(--text-secondary);
    background: var(--surface-control);
}

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-passengers-avatar-slot--more .event-participant-card__transport-passengers-more {
    color: color-mix(in srgb, var(--text-on-solid) 92%, transparent);
    background: color-mix(in srgb, var(--fill-emphasis) 40%, transparent);
}

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

.event-participant-card--transport:not(.event-participant-card--placeholder) .event-participant-card__transport-passengers-count {
    font-size: var(--font-size-15);
    font-weight: 400;
    color: color-mix(in srgb, var(--text-on-solid) 72%, transparent);
}

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

.event-participant-card__transport-passengers-menu {
    min-width: min(92vw, calc(var(--space-8) * 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(--space-2);
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: var(--space-2) var(--space-4);
    border: none;
    border-radius: var(--radius-8);
    background: transparent;
    color: var(--text-primary);
    font-family: inherit;
    font-size: var(--font-size-14);
    font-weight: 500;
    line-height: 1;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    min-height: var(--space-product-40);
    appearance: none;
    -webkit-appearance: none;
    transition: background var(--transition-fast), color var(--transition-fast);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.event-participant-card__transport-passengers-menu .event-participant-card__transport-passengers-menu-item:hover {
    background: color-mix(in srgb, var(--fill-primary) 6%, transparent);
    color: var(--text-primary);
}
}

.event-participant-card__transport-passengers-menu .event-participant-card__transport-passengers-menu-item:focus-visible {
    background: color-mix(in srgb, var(--fill-primary) 6%, transparent);
    color: var(--text-primary);
    outline: var(--gc-focus-outline);
    outline-offset: 2px;
}

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

.event-participant-card__transport-passengers-menu-avatar--fallback:not([class*="gc-avatar-tint-"]) {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    font-size: var(--font-size-13);
    font-weight: 500;
    line-height: 1;
    color: var(--text-secondary);
    background: var(--surface-control);
    border: 1px solid var(--border-subtle);
}

.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(--space-2);
        left: var(--space-2);
    }

    .event-participant-card__avatar {
        width: var(--space-12);
        height: var(--space-12);
    }

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

}

/* Вкладка «Транспорт»: пулы «ищут / без авто» — 4:3 на десктопе */
@media (min-width: 992px) {
    .event-participants-transport-pane .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;
    }

    @media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

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

    @media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

    .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 — без chrome-рамки (как gc-panel) */
.split-right > .gc-action-button {
    border: none;
}

@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-15); /* 14px */
    font-weight: 500;
    color: var(--text-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-13); /* 12px */
    color: var(--text-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(--space-2);
    padding: var(--space-2) 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(--space-1);
    flex-wrap: wrap;
    color: var(--text-secondary);
    font-size: var(--font-size-14);
}

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

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.gc-vehicle-card:hover {
    background-color: color-mix(in srgb, var(--fill-primary) 6%, transparent);
}
}

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

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

.gc-plate-badge {
    background-color: var(--surface-control);
    border: 1px solid var(--border-subtle);
    padding: var(--space-product-2) var(--space-1);
    border-radius: var(--radius-8);
    font-size: var(--font-size-13);
    font-weight: bold;
    color: var(--text-primary);
    letter-spacing: 0.7px;
}

/* Название автомобиля - более жирное, чем обычный .gc-list-title */
.gc-vehicle-title {
    font-weight: 500;
    color: var(--text-primary);
    font-size: var(--font-size-14);
    /* Базовый кегль страницы — 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.gc-list-avatar-fallback {
    width: 30px;
    height: 30px;
    font-size: var(--font-size-13);
    font-weight: 500;
    border: none;
}

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

.gc-transport-section-title {
    font-size: var(--font-size-14); /* 12px, было 13px - округлено до ближайшего токена */
    color: var(--text-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(--surface-control) !important;
    transition: background-color 0.2s ease;
}

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

.exercise-menu-btn:hover,
.participant-menu-btn:hover {
    background-color: color-mix(in srgb, var(--fill-primary) 6%, transparent) !important;
}

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

.description-section-editable:hover .gc-panel-header {
    background-color: var(--surface-control) !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: var(--line-height-prose);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
    color: var(--text-secondary) !important;
    font-weight: 400;
    font-size: var(--font-size-base); /* 16px */
}

.event-description-text p {
    margin-bottom: 1em;
    color: var(--text-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` */

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

/* Планшет (<1280) и мобильные: одна колонка, лоадаут-rail скрыт */
@media (max-width: 1279px) {
    .split-layout {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: "main";
        gap: 0;
        width: 100%;
        max-width: 100%;
        /* clip, не hidden: иначе overflow-y:visible на .split-right → auto и junk nested scroll в GcScrollArea */
        overflow-x: clip;
    }

    .split-left {
        display: none;
    }

    .split-right {
        grid-area: main;
        overflow-y: visible;
        overflow-x: clip;
        width: 100%;
        gap: var(--layout-section-gap);
    }
}

@media (max-width: 991px) {
    .split-right {
        gap: var(--layout-section-gap);
    }
}

/* Мобильные устройства */
@media (max-width: 767px) {
    .split-layout {
        gap: 0;
        overflow-x: clip;
    }
    
    .split-right {
        gap: var(--layout-section-gap);
    }
    
    .content-section {
        border-radius: 12px;
    }
    
}

/* Очень маленькие экраны */
@media (max-width: 480px) {
    .split-layout {
        max-width: 100vw;
        overflow-x: clip;
    }
    
    .gc-panel {
        border-radius: 12px;
        max-width: 100%;
    }
    
}

/* ===== ДВУХУРОВНЕВЫЕ ТАБЫ С 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(--space-1) var(--space-2);
    }
}

.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-14);
    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-11);
    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: color-mix(in srgb, var(--fill-emphasis) 50%, transparent);
    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-16) var(--radius-16) 0 0;
    }
}

/* Event results — подиум вне секции + упражнения */
.event-results-podium {
    position: relative;
    z-index: 1;
    width: 100%;
}

/*
 * Ambient под сабхедером (не под контентом): pull на высоту chrome,
 * terra + inverse — без золота. Melt как page-cover.
 */
.event-show-page-layout:has(.event-section-main--results) {
    --event-results-ambient-pull: var(--layout-three-col-subheader-height);
    position: relative;
    isolation: isolate;
    overflow: visible;
}

@media (max-width: 991.98px) {
    .event-show-page-layout:has(.event-section-main--results) {
        --event-results-ambient-pull: var(--gc-page-cover-backdrop-pull-up-compact);
    }
}

.event-show-page-layout:has(.event-section-main--results)::before {
    content: "";
    position: absolute;
    z-index: 0;
    pointer-events: none;
    left: 0;
    right: 0;
    top: calc(-1 * var(--event-results-ambient-pull));
    height: calc(var(--event-results-ambient-pull) + min(28vh, 14rem));
    background:
        radial-gradient(
            ellipse 90% 80% at 50% 0%,
            color-mix(in srgb, var(--tint-earth-terra) 14%, transparent),
            transparent 70%
        ),
        radial-gradient(
            ellipse 70% 70% at 50% 12%,
            color-mix(in srgb, var(--fill-emphasis-inverse) 8%, transparent),
            transparent 72%
        );
    mask-image: radial-gradient(
        ellipse 140% 122% at 50% 0%,
        rgb(0 0 0 / 1) 0%,
        rgb(0 0 0 / 0.7) 30%,
        rgb(0 0 0 / 0.28) 52%,
        rgb(0 0 0 / 0.06) 70%,
        rgb(0 0 0 / 0) 85%
    );
    -webkit-mask-image: radial-gradient(
        ellipse 140% 122% at 50% 0%,
        rgb(0 0 0 / 1) 0%,
        rgb(0 0 0 / 0.7) 30%,
        rgb(0 0 0 / 0.28) 52%,
        rgb(0 0 0 / 0.06) 70%,
        rgb(0 0 0 / 0) 85%
    );
}

.event-show-page-layout:has(.event-section-main--results) > .event-show-columns {
    position: relative;
    z-index: 1;
}

/* Личная строка — тихая, в ритме секции */
.event-results-you {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-12);
    background: color-mix(in srgb, var(--accent-link) 8%, transparent);
    border: none;
}

.event-results-you__line {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-1) var(--space-2);
    font-size: var(--font-size-14);
    line-height: 1.4;
    color: var(--text-secondary);
}

.event-results-you__rank {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
    font-size: var(--font-size-16);
}

.event-results-you__label {
    color: var(--text-primary);
    font-weight: 500;
}

.event-results-you__meta,
.event-results-you__gap,
.event-results-you__sep {
    color: var(--text-secondary);
}

.gc-list-section-shell > .event-results-you {
    margin-inline: var(--gc-list-row-padding, var(--space-2));
}

.event-results-rank-kicker {
    margin: 0;
    padding-inline: var(--gc-list-row-padding, var(--space-2));
    padding-block: var(--space-4) var(--gc-list-section-header-gap);
}

.gc-list-section-shell > .event-results-rank-kicker:first-child {
    padding-top: var(--gc-list-row-padding, var(--space-2));
}

/*
 * Упражнения — одна зона под подиумом/рейтингом.
 * Intra (таблица↔таблица) space/4; inter к подиуму/списку — gap main space/6.
 */
.event-results-exercises {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
}

.event-results-exercise {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    width: 100%;
}

.event-results-exercise > .event-results-rank-kicker {
    padding-inline: 0;
    padding-bottom: 0;
    padding-top: 0;
}

.event-results-exercise-place {
    flex: 0 0 var(--space-6);
    width: var(--space-6);
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.event-results-exercise-place--1,
.event-results-exercise-place--2,
.event-results-exercise-place--3 {
    color: var(--text-primary);
    font-weight: 600;
}

.event-results-exercise-content__inner > .gc-list-section-shell {
    overflow: hidden;
}

.event-results-exercise-content {
    display: grid;
    grid-template-rows: 1fr;
    opacity: 1;
    transition: grid-template-rows 240ms ease, opacity 180ms ease;
}

.event-results-exercise-content[data-expanded="false"] {
    grid-template-rows: 0fr;
    opacity: 0;
}

.event-results-exercise-content__inner {
    min-height: 0;
    overflow: hidden;
}

.event-results-exercise-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--space-2);
    width: 100%;
    min-height: 32px;
    border: 0;
    background: transparent;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    border-radius: var(--space-1);
    transition: color 160ms ease, background-color 160ms ease;
}

.event-results-exercise-toggle:hover {
    color: var(--text-primary);
    background-color: var(--surface-row-hover);
}

.event-results-exercise-toggle:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
    border-radius: var(--space-1);
}

.event-results-exercise-toggle__chevron {
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    margin-inline: 0;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform 240ms ease;
}

.event-results-exercise-toggle[aria-expanded="false"] .event-results-exercise-toggle__chevron {
    transform: rotate(-45deg);
}

@media (prefers-reduced-motion: reduce) {
    .event-results-exercise-content,
    .event-results-exercise-toggle,
    .event-results-exercise-toggle__chevron {
        transition: none;
    }
}

.event-results-exercise-table {
    min-width: 0;
    width: 100%;
    overflow-x: hidden;
}

.gc-table-wrapper.event-results-exercise-table {
    overflow-x: hidden;
}

.event-results-exercise-table .gc-table {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
    font-variant-numeric: tabular-nums;
}

.event-results-exercise-table .gc-table thead th {
    height: auto;
    min-height: var(--space-12);
    padding: var(--space-3);
    font-size: var(--font-size-12);
    box-sizing: border-box;
}

.event-results-exercise-table .gc-table tbody td {
    padding: var(--space-3);
}

.event-results-exercise-table .gc-table thead th:first-child,
.event-results-exercise-table .gc-table tbody td:first-child {
    min-width: 0;
    width: 36%;
    overflow: hidden;
}

.event-results-exercise-table .gc-table thead th:not(:first-child),
.event-results-exercise-table .gc-table tbody td:not(:first-child) {
    width: auto;
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
}

.event-results-exercise-table .gc-table thead th.event-results-exercise-table__zone,
.event-results-exercise-table .gc-table tbody td.event-results-exercise-table__zone,
.event-results-exercise-table .gc-table thead th.event-results-exercise-table__hf,
.event-results-exercise-table .gc-table tbody td.event-results-exercise-table__hf {
    text-align: center;
}

.event-results-exercise-table .gc-table thead th.event-results-exercise-table__time,
.event-results-exercise-table .gc-table tbody td.event-results-exercise-table__time,
.event-results-exercise-table .gc-table thead th.event-results-exercise-table__stat,
.event-results-exercise-table .gc-table tbody td.event-results-exercise-table__stat {
    text-align: right;
}

.event-results-exercise-table thead .event-results-hf__icon {
    display: block;
    margin-inline: auto;
    width: var(--space-4);
    height: var(--space-4);
    background-color: var(--fill-primary);
    vertical-align: unset;
}

.event-results-person-title {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    min-width: 0;
}

.event-results-person-title .gc-list-title {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-results-person-title .gc-badge,
.event-results-exercise-table .gc-table-shooter .gc-badge {
    flex-shrink: 0;
}

.event-results-exercise-table .gc-table-shooter {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.event-results-exercise-table .gc-table-shooter__name {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.event-results-exercise-table .gc-table tbody tr.gc-table-row--mine td,
.event-results-exercise-table .gc-table tbody tr.gc-table-row--mine:hover td,
.event-results-exercise-table .gc-table tbody tr.profile-trigger:hover td {
    background-color: transparent;
}

.event-results-exercise-table .gc-table tbody tr.gc-table-row--mine {
    background-color: color-mix(in srgb, var(--accent-link) 8%, transparent);
}

.event-results-exercise-table .gc-table tbody tr.profile-trigger:hover {
    background-color: var(--surface-row-hover);
}

.event-results-exercise-table .gc-table tbody tr.gc-table-row--mine:is(:hover, :focus-visible) {
    background-color: color-mix(in srgb, var(--accent-link) 12%, transparent);
}

.event-results-exercise-table__label {
    display: none;
}

@media (max-width: 991px) {
    .gc-table-wrapper.event-results-exercise-table {
        overflow-x: hidden;
    }

    .event-results-exercise-table .gc-table,
    .event-results-exercise-table .gc-table tbody {
        display: block;
        width: 100%;
        min-width: 0;
    }

    .event-results-exercise-table .gc-table thead {
        display: none;
    }

    .event-results-exercise-table .gc-table tbody tr {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        column-gap: var(--space-2);
        row-gap: var(--space-2);
        box-sizing: border-box;
        width: 100%;
        padding: var(--gc-list-row-padding);
        border-bottom: none;
    }

    .event-results-exercise-table .gc-table tbody tr + tr {
        border-top: 1px solid var(--border-subtle);
    }

    .event-results-exercise-table .gc-table tbody td {
        width: auto;
        min-width: 0;
        max-width: none;
        padding: 0;
        white-space: nowrap;
        text-align: left;
        vertical-align: top;
    }

    .event-results-exercise-table .gc-table tbody td:first-child {
        grid-column: 1 / -1;
        width: 100%;
        max-width: none;
        overflow: hidden;
        white-space: nowrap;
    }

    .event-results-exercise-table .gc-table tbody td:not(:first-child) {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-1);
        text-align: left;
    }

    .event-results-exercise-table .gc-table tbody td.event-results-exercise-table__wide {
        grid-column: span 2;
    }

    .event-results-exercise-table .event-results-exercise-place {
        display: none;
    }

    .event-results-exercise-table__label {
        display: flex;
        align-items: center;
        color: var(--text-secondary);
        font-size: var(--font-size-12);
        font-weight: 500;
        line-height: 1;
    }

    .event-results-exercise-table tbody .event-results-exercise-table__label .event-results-hf__icon {
        display: block;
        width: var(--space-4);
        height: var(--space-4);
        background-color: var(--fill-primary);
        vertical-align: unset;
    }
}

.event-results-exercises__tabs {
    min-width: 0;
    width: fit-content;
    /* Стек упражнений — space/4. Пилл сидит на ритме кикера над списком (space/2). */
    margin-bottom: calc(var(--gc-list-section-header-gap) - var(--space-4));
}

.event-results-zone-pills {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
    overflow: hidden;
}

.event-results-zone-pills__item {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    min-width: 0;
}

.event-results-zone-pills .profile-hit-zone-pill {
    padding: var(--space-1) var(--space-2);
    font-size: var(--type-ui-micro-size);
    font-weight: 500;
    line-height: var(--type-ui-micro-line-height);
    color: var(--text-on-solid);
}

.event-results-exercise-table thead .profile-hit-zone-pill,
.event-results-exercise-table tbody .event-results-exercise-table__label .profile-hit-zone-pill {
    box-sizing: border-box;
    width: var(--space-6);
    min-width: var(--space-6);
    height: var(--space-4);
    padding: 0;
    font-size: var(--font-size-11);
    font-weight: 500;
    line-height: 1;
    color: var(--text-on-solid);
}

.event-results-zone-pills__value {
    font-size: var(--gc-list-meta-font-size);
    line-height: var(--gc-list-meta-line-height);
    font-weight: 600;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.event-results-zone-pills__label,
.event-results-zone-pills__extra {
    font-size: var(--type-ui-meta-size);
    line-height: var(--gc-list-meta-line-height);
    font-weight: 400;
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
}

.event-results-exercise-score {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--space-2);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.event-results-exercise-score__time {
    font-size: var(--gc-list-meta-font-size);
    font-weight: 500;
    line-height: var(--gc-list-meta-line-height);
    color: var(--text-primary);
}

.event-results-hf {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--gc-list-meta-font-size);
    font-weight: 500;
    line-height: var(--gc-list-meta-line-height);
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
}

.event-results-hf--leader {
    color: var(--text-primary);
    font-weight: 600;
}

.event-results-hf__icon {
    display: inline-block;
    flex-shrink: 0;
    width: var(--font-size-11);
    height: var(--font-size-11);
    background-color: currentColor;
    -webkit-mask: url('../images/hf.svg') center / contain no-repeat;
    mask: url('../images/hf.svg') center / contain no-repeat;
    vertical-align: middle;
}

@media (max-width: 767.98px) {
    .event-results-exercises .event-results-zone-pills {
        flex-wrap: wrap;
    }
}

.gc-interactive-row.event-results-exercise-row--mine,
button.gc-interactive-row.event-results-exercise-row--mine {
    background-color: color-mix(in srgb, var(--accent-link) 8%, transparent);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.gc-interactive-row.event-results-exercise-row--mine:is(:hover, :focus-visible),

button.gc-interactive-row.event-results-exercise-row--mine:is(:hover, :focus-visible) {
    --gc-interactive-hover-bg: color-mix(in srgb, var(--accent-link) 12%, transparent);
}
}

.gc-interactive-row.event-results-exercise-row--mine:is( :focus-visible),

button.gc-interactive-row.event-results-exercise-row--mine:is( :focus-visible) {
    --gc-interactive-hover-bg: color-mix(in srgb, var(--accent-link) 12%, transparent);
}

.event-results-compare {
    --event-results-compare-theirs: var(--info-color);
    --event-results-compare-mine: var(--accent-link);
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    overflow: visible;
}

.event-results-compare__match {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
    overflow: visible;
    padding-bottom: var(--space-3);
}

.event-results-compare__block {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    box-sizing: border-box;
    width: calc(100% + (2 * var(--gc-inset-row-padding, var(--gc-list-row-padding))));
    max-width: none;
    min-width: 0;
    margin-inline: calc(-1 * var(--gc-inset-row-padding, var(--gc-list-row-padding)));
    padding: var(--gc-inset-row-padding, var(--gc-list-row-padding));
}

.event-results-compare .gc-list-zone-divider {
    margin: 0;
}

.event-results-compare__legend {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2);
    margin: 0;
}

.event-results-compare__legend-item {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-1-5);
    min-width: 0;
    font-size: var(--font-size-12);
    line-height: 1.3;
    color: var(--text-secondary);
}

.event-results-compare__legend-item--mine {
    justify-content: flex-end;
    text-align: right;
}

.event-results-compare__legend-cap {
    color: var(--text-tertiary);
}

.event-results-compare__swatch {
    width: var(--space-1-5);
    height: var(--space-1-5);
    border-radius: var(--radius-full);
    flex-shrink: 0;
    align-self: center;
}

.event-results-compare__swatch--theirs {
    background: var(--event-results-compare-theirs);
}

.event-results-compare__swatch--mine {
    background: var(--event-results-compare-mine);
}

.event-results-compare__title {
    margin: 0;
    font-size: var(--font-size-13);
    font-weight: 500;
    line-height: 1.3;
    color: var(--text-primary);
}

.event-results-compare__title--drill {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}

.event-results-compare__title-caret {
    flex-shrink: 0;
    color: var(--text-tertiary);
    font-size: var(--font-size-16);
}

.event-results-compare__block--drill {
    cursor: pointer;
    border-radius: var(--radius-12);
}

.event-results-compare__block--drill:hover,
.event-results-compare__block--drill:focus-visible {
    background: var(--gc-interactive-hover-bg);
}

.event-results-compare--detail .event-results-compare__block {
    gap: var(--space-3);
    width: 100%;
    margin-inline: 0;
    padding-block: 0;
    padding-inline: 0;
}

.event-results-compare--detail .event-results-compare__rows {
    gap: var(--space-3);
}

.event-results-compare--detail .event-results-compare__row {
    gap: var(--space-1);
}

.event-results-compare__score {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.event-results-compare--detail .event-results-compare__row--score .event-results-compare__n {
    font-size: var(--font-size-16);
    font-weight: 500;
    line-height: 1.3;
}

.event-results-compare--detail .event-results-compare__row--score .event-results-compare__row-label {
    font-size: var(--font-size-13);
}

.event-results-compare--detail .event-results-compare__row--score .event-results-hf__icon {
    width: var(--space-4);
    height: var(--space-4);
}

.event-results-compare__chart-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
    overflow: visible;
}

.event-results-compare__chart {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
    aspect-ratio: 100 / 36;
}

.event-results-compare__grid line {
    stroke: color-mix(in srgb, var(--border-subtle) 55%, transparent);
    stroke-width: 1px;
    vector-effect: non-scaling-stroke;
}

.event-results-compare__area--theirs {
    fill: url(#event-results-compare-fill-theirs);
}

.event-results-compare__line {
    fill: none;
    stroke-linejoin: round;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
}

.event-results-compare__line--theirs {
    stroke: var(--event-results-compare-theirs);
    stroke-width: 1.75px;
}

.event-results-compare__line--mine {
    stroke: var(--event-results-compare-mine);
    stroke-width: 2px;
}

.event-results-compare__dot--theirs {
    fill: var(--event-results-compare-theirs);
}

.event-results-compare__dot--mine {
    fill: var(--event-results-compare-mine);
}

.event-results-compare__ticks {
    position: relative;
    height: var(--font-size-12);
}

.event-results-compare__ticks > span {
    position: absolute;
    top: 0;
    left: var(--tick-x);
    transform: translateX(-50%);
    font-size: var(--font-size-12);
    line-height: 1;
    color: var(--text-tertiary);
    font-variant-numeric: tabular-nums;
}

.event-results-compare__ticks > span:first-child {
    transform: none;
}

.event-results-compare__ticks > span:last-child:not(:first-child) {
    transform: translateX(-100%);
}

.event-results-compare__rows {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.event-results-compare__row {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.event-results-compare__row-nums {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: var(--space-2);
}

.event-results-compare__row-label {
    font-size: var(--font-size-12);
    line-height: 1.3;
    color: var(--text-secondary);
    text-align: center;
}

.event-results-compare__row-label--hf {
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

.event-results-compare__row-label--hf .event-results-hf__icon {
    width: var(--space-4);
    height: var(--space-4);
    background-color: var(--fill-primary);
}

.event-results-compare__n {
    min-width: 0;
    font-size: var(--font-size-13);
    font-weight: 400;
    line-height: 1.3;
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
}

.event-results-compare__row-nums > .event-results-compare__n:first-child {
    text-align: left;
}

.event-results-compare__row-nums > .event-results-compare__n:last-child {
    text-align: right;
}

.event-results-compare__row-nums--solo {
    grid-template-columns: minmax(0, 1fr) auto;
}

.event-results-compare__row-nums--solo .event-results-compare__row-label {
    text-align: left;
}

.event-results-compare__row-nums--solo .event-results-compare__row-label--hf {
    justify-content: flex-start;
}

.event-results-compare__row-nums--solo .event-results-compare__n {
    text-align: right;
}

.event-results-compare__n--lead {
    font-weight: 500;
    color: var(--text-primary);
}

.event-results-compare__foot {
    display: flex;
    justify-content: space-between;
    gap: var(--space-2);
    margin: 0;
    font-size: var(--font-size-12);
    line-height: 1.3;
    color: var(--text-tertiary);
    font-variant-numeric: tabular-nums;
}

.event-results-compare__tug {
    display: flex;
    align-items: stretch;
    gap: var(--space-1);
    height: var(--space-1);
    min-width: 0;
    overflow: hidden;
    border-radius: var(--radius-full);
    background: var(--surface-subtle);
}

.event-results-compare__tug-bar {
    min-width: 0;
    flex: var(--share, 0) 0 0;
    border-radius: var(--radius-full);
}

.event-results-compare__tug-bar--theirs {
    background: var(--event-results-compare-theirs);
}

.event-results-compare__tug-bar--mine {
    background: var(--event-results-compare-mine);
}

.event-results-compare__ledger {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
    padding-block: var(--space-3);
}

.event-results-compare__ledger-body {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
}

.event-results-compare__ledger-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.event-results-compare__ledger-toggle {
    width: 100%;
    margin: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: inherit;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

.event-results-compare__ledger-toggle .gc-caret {
    color: var(--text-tertiary);
    font-size: var(--font-size-12);
}

.event-results-compare__guide {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    min-width: 0;
    padding-top: var(--space-2);
}

.event-results-compare__guide-step {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.event-results-compare__guide-title {
    margin: 0;
    font-size: var(--font-size-13);
    font-weight: 500;
    line-height: 1.3;
    color: var(--text-primary);
}

.event-results-compare__guide-desc {
    margin: 0;
    font-size: var(--font-size-13);
    font-weight: 400;
    line-height: 1.3;
    color: var(--text-secondary);
}

.event-results-compare__guide .gc-code-block {
    margin: 0;
    padding: var(--space-3);
    background: var(--surface-secondary);
    border-color: var(--border-subtle);
}

.event-results-compare__guide .gc-code-block code {
    font-size: var(--font-size-13);
    line-height: 1.4;
}

.event-results-compare__ledger .gc-stat-value {
    font-size: var(--font-size-14);
    font-weight: 500;
    line-height: 1.3;
    color: var(--text-primary);
}

.event-results-compare__ledger-note {
    margin: 0;
}

/* ── Сетка карточек рекордов (legacy / если вернём) ─────────── */

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

.gc-record-card {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2);
    border: none;
    border-radius: var(--radius-12);
    background: var(--surface-panel);
    min-width: 0;
}

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

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.gc-record-card.profile-trigger:hover,

.gc-record-card.gc-record-card--multi:hover {
    background-color: color-mix(in srgb, var(--fill-primary) 6%, transparent);
}
}

/* 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-13);
}

/* Левая колонка: аватарки */
.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-avatar-stack-more,
.gc-record-card__avatar-more {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border-radius: var(--radius-full);
    background: var(--surface-sunken);
    border: 1px solid var(--border-default);
    font-size: var(--font-size-base);
    font-weight: 500;
    color: var(--text-secondary);
    flex-shrink: 0;
    padding: 0;
}

/* Legacy alias — размер задаётся через .gc-avatar-40 на том же узле */
.gc-record-card__avatar-more {
    width: 40px;
    height: 40px;
    margin-left: calc(var(--space-2) * -1);
}

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

/* Когда фон карточки становится серым на hover,
   рамка у аватарок тоже подстраивается под новый фон */
@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
.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(--border-subtle);
}
}

/* Правая колонка: текст */
.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(--space-1);
    min-width: 0;
}

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

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

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

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

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

@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-13);
    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(--text-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(--surface-panel);
    /* Нижний бордер строки — через row, но нужен явный для sticky */
    border-right: 1px solid var(--border-subtle);
}

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

/* Тень-разделитель после первой колонки */
.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(--surface-panel), 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(--surface-panel), transparent);
    pointer-events: none;
}

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

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

    /* Имя стрелка — только аватар + номер, без полного текста */
    .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(--space-1) 4px;
    text-align: center;
    vertical-align: middle;
}

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

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


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

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

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

.gc-heatmap-ex-label {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-2);
}

.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(--space-1) var(--space-2);
    border-left: 1px solid var(--border-subtle) !important;
    color: var(--text-secondary);
}

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

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

@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-11);
    }

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

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

.event-squad-time-fields {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    min-width: 0;
}

.event-squad-time-fields > .gc-form-group {
    flex: 1 1 0;
    min-width: 0;
    margin: 0;
}

.event-squad-time-fields .gc-input {
    min-width: 0;
    width: 100%;
}

.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(--space-2);
}

.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(--space-product-2);
}

.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(--surface-panel);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.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: color-mix(in srgb, var(--fill-primary) 6%, transparent);
}
}

/* Модалка «Участники дуэли»: одна «подушка» — у строки (.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(--space-4);
    margin-bottom: calc(var(--space-8) + var(--space-4));
}

@media (max-width: 767.98px) {
    #descriptionEditorModal:not(.gc-event-description-modal--collapsed) #tiptapEditor.tiptap-editor {
        padding-bottom: var(--space-2);
        margin-bottom: calc(var(--space-6) + var(--space-4));
    }
}

#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;
}

/* Inertia: карточка gc-modal в развёрнутом виде — короче колонка редактора, без fullscreen-зазора над футером */
#descriptionEditorModal.gc-rich-editor-modal--contained:not(.gc-event-description-modal--collapsed)
    #tiptapEditor .gc-event-description-editor-mount,
#descriptionEditorModal.gc-rich-editor-modal--contained:not(.gc-event-description-modal--collapsed)
    #tiptapEditor.tiptap-editor > .gc-event-description-editor-mount:only-child,
.gc-rich-editor-modal:is(.channel-feed-compose-sheet, .weapon-note-compose-sheet).gc-rich-editor-modal--contained:not(.gc-event-description-modal--collapsed)
    .gc-event-description-editor-mount,
.gc-rich-editor-modal:is(.channel-feed-compose-sheet, .weapon-note-compose-sheet).gc-rich-editor-modal--contained:not(.gc-event-description-modal--collapsed)
    .tiptap-editor > .gc-event-description-editor-mount:only-child {
    min-height: 12rem;
}

#descriptionEditorModal.gc-rich-editor-modal--contained:not(.gc-event-description-modal--collapsed)
    #tiptapEditor.tiptap-editor,
.gc-rich-editor-modal:is(.channel-feed-compose-sheet, .weapon-note-compose-sheet).gc-rich-editor-modal--contained:not(.gc-event-description-modal--collapsed)
    .tiptap-editor {
    margin-bottom: 0;
    padding-bottom: var(--space-4);
}

/*
 * Футер / шапка — те же отступы, что у всех gc-modal (.modal.css):
 * шапка padding var(--space-4); футер padding var(--space-4) + safe-area снизу.
 * Десктоп — статус слева, кнопки справа; адаптив — статус строкой сверху по центру, две кнопки на всю ширину поровну.
 */
.gc-rich-editor-modal .gc-event-description-modal-footer-outer {
    flex-shrink: 0;
    background: var(--surface-panel);
    overflow: hidden;
    opacity: 1;
    transform: none;
    transition:
        opacity var(--transition-slow) var(--ease-out),
        transform var(--transition-slow) var(--ease-out);
}

#descriptionEditorModal .gc-event-description-modal-footer-actions.modal-footer,
.gc-rich-editor-modal.weapon-note-compose-sheet .gc-event-description-modal-footer-actions.modal-footer {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: var(--space-4);
    padding-top: var(--space-4);
}

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

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

.gc-rich-editor-modal .gc-event-description-autosave-label--pending {
    color: var(--text-secondary);
}

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

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

#weaponNoteEditorModal .weapon-note-modal-footer__errors:not(:has(.gc-form-error)),
#weaponOpinionEditorModal .weapon-note-modal-footer__errors:not(:has(.gc-form-error)) {
    display: none;
}

@media (min-width: 768px) {
    #weaponNoteEditorModal .gc-event-description-modal-footer-actions.modal-footer.weapon-note-modal-footer,
    #weaponOpinionEditorModal .gc-event-description-modal-footer-actions.modal-footer.weapon-note-modal-footer {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-end;
        justify-content: space-between;
    }

    #weaponNoteEditorModal .weapon-note-modal-footer__compose,
    #weaponOpinionEditorModal .weapon-note-modal-footer__compose {
        flex: 1 1 auto;
        min-width: min(100%, 36rem);
    }

    #weaponNoteEditorModal .gc-event-description-modal-footer-actions.modal-footer.weapon-note-modal-footer .gc-event-description-autosave-label:not([hidden]),
    #weaponOpinionEditorModal .gc-event-description-modal-footer-actions.modal-footer.weapon-note-modal-footer .gc-event-description-autosave-label:not([hidden]) {
        flex: 0 1 auto;
        order: 0;
        margin-right: var(--space-4);
    }
}

#descriptionEditorModal .gc-event-description-modal-footer-buttons,
.gc-rich-editor-modal.weapon-note-compose-sheet .gc-event-description-modal-footer-buttons {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
    margin-left: auto;
}

@media (max-width: 767.98px) {
    #descriptionEditorModal .gc-event-description-modal-footer-actions.modal-footer,
    .gc-rich-editor-modal.weapon-note-compose-sheet .gc-event-description-modal-footer-actions.modal-footer {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-2);
        justify-content: flex-start;
    }

    #descriptionEditorModal .gc-event-description-autosave-label:not([hidden]),
    .gc-rich-editor-modal.weapon-note-compose-sheet .gc-event-description-autosave-label:not([hidden]) {
        flex: none;
        margin-right: 0;
        text-align: center;
        order: -1;
    }

    #descriptionEditorModal .gc-event-description-modal-footer-buttons,
    .gc-rich-editor-modal.weapon-note-compose-sheet .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;
    }

    .gc-rich-editor-modal.weapon-note-compose-sheet .gc-event-description-modal-footer-buttons > .gc-btn:not(.gc-btn-icon):not(.gc-btn-icon-sm):not(.gc-btn-icon-xs) {
        flex: 1 1 0;
        min-width: 0;
    }

    .gc-rich-editor-modal.weapon-note-compose-sheet .gc-event-description-modal-footer-buttons > .gc-panel-actions {
        flex: 0 0 auto;
    }

    #weaponNoteEditorModal .weapon-note-modal-footer__toolbar-end.gc-event-description-modal-footer-buttons,
    #weaponOpinionEditorModal .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,
    #weaponOpinionEditorModal .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]),
    #weaponOpinionEditorModal .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;
    }
}

/* Бейдж черновика — компактная метка в одну линию с заголовком (panel / list / modal) */
.gc-event-description-panel-draft-badge {
    flex-shrink: 0;
    padding: var(--space-1) var(--space-1-5);
    font-size: var(--font-size-11);
    font-weight: 500;
    line-height: 1;
    border-radius: var(--radius-full);
    vertical-align: middle;
}

/* 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(--space-1);
}

.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-title-row {
    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(--space-2);
    min-width: 0;
    margin: calc(var(--space-4) * -1);
    margin-inline-end: 0;
    padding: var(--space-4);
    border: none;
    border-radius: var(--radius-8);
    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: var(--gc-focus-outline);
    outline-offset: 2px;
}

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

/* Поворот самой иконки задаёт общий caret-контракт в styles.css через aria-expanded.
 * Не вращать обёртку: иначе два поворота оставляют шеврон в одном направлении. */
.gc-event-description-modal-collapse-chevron i {
    font-size: var(--font-size-base);
    line-height: 1;
}

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

.gc-rich-editor-modal .gc-event-description-modal-header-toolbar > .gc-event-description-modal-title-row .modal-title {
    flex: 0 1 auto;
    min-width: 0;
    margin: 0;
    font-size: var(--font-size-15);
    font-weight: 500;
    line-height: 1.35;
    font-family: var(--font-family-heading);
}

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

.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-15);
    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;
}

/* Закрыть: bordered icon-sm (32×32). gc-btn-secondary + gc-btn-icon-xs конфликтовали (md min-height 40px). */
.gc-rich-editor-modal .gc-event-description-modal-header-actions > .gc-btn.gc-btn-icon-sm i {
    font-size: var(--font-size-base);
    line-height: 1;
}

/*
 * Редактор описания — развёрнутый на десктопе: убираем только 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):not(.gc-rich-editor-modal--contained)
        .modal-dialog.modal-fullscreen {
        transform: none;
        transition: opacity var(--transition-base) ease-out;
    }

    .gc-rich-editor-modal.show:not(.gc-event-description-modal--collapsed):not(.gc-modal-is-hiding):not(.gc-rich-editor-modal--contained)
        .modal-dialog.modal-fullscreen {
        transform: none;
        opacity: 1;
        transition: opacity var(--transition-base) ease-out;
    }
}

/*
 * Contained-карточка прижата к колонке (left), не к центру viewport.
 * scale(0.95) gc-modal на hide/show выглядит как горизонтальный сдвиг.
 */
@media (min-width: 768px) {
    .modal.gc-modal.gc-rich-editor-modal--contained.gc-modal-is-open .modal-dialog {
        transform: none;
        transition: opacity var(--transition-base) ease-out;
    }

    .modal.gc-modal.gc-rich-editor-modal--contained.show .modal-dialog {
        opacity: 1;
        transform: none;
    }

    .modal.gc-modal.gc-rich-editor-modal--contained.gc-modal-is-hiding .modal-dialog {
        opacity: 0;
        transform: none;
    }
}

#descriptionEditorModal:not(.gc-event-description-modal--collapsed) .description-editor-body.modal-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    padding: 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;
    overflow-y: auto;
}

/*
 * Ширина карточки и дока на Inertia — `.event-show-main`
 * (--gc-event-description-docked-width/left из description-editor.js).
 * Сворачивание не меняет ширину, только высоту и вертикаль.
 */
@media (min-width: 768px) {
    body.inertia-shell #descriptionEditorModal.gc-rich-editor-modal--contained.gc-modal-is-open:not(.gc-event-description-modal--collapsed),
    body.inertia-shell .gc-rich-editor-modal:is(.channel-feed-compose-sheet, .weapon-note-compose-sheet).gc-rich-editor-modal--contained.gc-modal-is-open {
        justify-content: flex-start !important;
        align-items: center !important;
    }

    body.inertia-shell #descriptionEditorModal.gc-rich-editor-modal--contained.gc-modal-is-open:not(.gc-event-description-modal--collapsed) .modal-dialog,
    body.inertia-shell .gc-rich-editor-modal:is(.channel-feed-compose-sheet, .weapon-note-compose-sheet).gc-rich-editor-modal--contained.gc-modal-is-open .modal-dialog {
        margin-top: 2rem;
        margin-bottom: 2rem;
        margin-inline: 0;
        margin-left: var(--gc-event-description-docked-left, var(--layout-app-rail-width));
        width: var(--gc-event-description-docked-width, auto);
        max-width: none;
    }
}

/* Свёрнутый редактор: без затемнения, клики проходят мимо шелла; только полоска интерактивна */
.gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open {
    pointer-events: none;
    align-items: flex-end !important;
}

/* Inertia: не центрировать в viewport — иначе margin-left колонки плюс center, док уезжает */
body.inertia-shell .gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open,
body.inertia-shell .gc-rich-editor-modal.gc-event-description-modal--docking.gc-modal-is-open {
    justify-content: flex-start !important;
    align-items: flex-end !important;
}

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

/* Морф: оверлей гаснет вместе с карточкой, клики сквозь шелл */
#descriptionEditorModal.gc-event-description-modal--docking {
    pointer-events: none;
}

#descriptionEditorModal.gc-event-description-modal--docking .modal-dialog {
    pointer-events: auto;
}

#descriptionEditorModal.gc-event-description-modal--docking::before {
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--transition-slow) var(--ease-out);
}

/* Морф карточка ↔ док: JS задаёт left/top/width/height; контент клипается в окне */
#descriptionEditorModal.gc-event-description-modal--flipping .modal-dialog {
    position: fixed !important;
    margin: 0 !important;
    transform: none !important;
    max-width: none !important;
    max-height: none !important;
    align-self: auto !important;
    flex: none !important;
    z-index: 1;
    overflow: hidden;
    box-sizing: border-box;
}

#descriptionEditorModal.gc-event-description-modal--flipping::before {
    transition: opacity var(--transition-slow) var(--ease-out);
}

#descriptionEditorModal.gc-event-description-modal--flipping .modal-content {
    height: auto;
    max-height: none;
    transition: border-radius var(--transition-slow) var(--ease-out);
}

#descriptionEditorModal.gc-event-description-modal--flipping .modal-content,
#descriptionEditorModal.gc-event-description-modal--flipping .description-editor-container,
#descriptionEditorModal.gc-event-description-modal--flipping .description-editor-body {
    overflow: hidden;
}

/* Rich-editor модалы: компактная полоса снизу с превью текста и градиентом */
.gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open .modal-dialog.modal-fullscreen,
.gc-rich-editor-modal--contained.gc-event-description-modal--collapsed.gc-modal-is-open .modal-dialog {
    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%;
}

.gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open:not(.gc-event-description-modal--exiting):not(.gc-event-description-modal--enter):not(.gc-modal-is-hiding) .modal-dialog.modal-fullscreen,
.gc-rich-editor-modal--contained.gc-event-description-modal--collapsed.gc-modal-is-open:not(.gc-event-description-modal--exiting):not(.gc-event-description-modal--enter):not(.gc-modal-is-hiding) .modal-dialog {
    transform: none !important;
    opacity: 1;
    transition:
        transform var(--transition-slow) var(--ease-out),
        opacity var(--transition-slow) var(--ease-out);
}

.gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-event-description-modal--enter.gc-modal-is-open .modal-dialog.modal-fullscreen,
.gc-rich-editor-modal--contained.gc-event-description-modal--collapsed.gc-event-description-modal--enter.gc-modal-is-open .modal-dialog {
    transform: translateY(100%) !important;
    opacity: 0;
    transition: none;
}

/* Десктоп: ширина как у колонки контента мероприятия (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,
    .gc-rich-editor-modal--contained.gc-event-description-modal--collapsed.gc-modal-is-open .modal-dialog {
        width: min(var(--gc-event-description-docked-width, 100vw), min(1280px, 100%));
        max-width: min(1280px, 100%);
    }

    /* Inertia: та же колонка, что у карточек Show. Не auto-margin — горизонталь только left. */
    body.inertia-shell .gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open .modal-dialog.modal-fullscreen,
    body.inertia-shell .gc-rich-editor-modal--contained.gc-event-description-modal--collapsed.gc-modal-is-open .modal-dialog {
        margin-top: auto !important;
        margin-right: 0 !important;
        margin-bottom: var(--space-4) !important;
        margin-left: var(--gc-event-description-docked-left, var(--layout-app-rail-width)) !important;
        align-self: flex-end;
        width: var(--gc-event-description-docked-width, var(--layout-event-main-max-width));
        max-width: none;
    }
}

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

    .gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-modal-is-open:not(.gc-event-description-modal--exiting):not(.gc-event-description-modal--enter):not(.gc-modal-is-hiding) .modal-dialog.modal-fullscreen,
    .gc-rich-editor-modal--contained.gc-event-description-modal--collapsed.gc-modal-is-open:not(.gc-event-description-modal--exiting):not(.gc-event-description-modal--enter):not(.gc-modal-is-hiding) .modal-dialog {
        transform: translateY(0) !important;
    }

    .gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-event-description-modal--enter.gc-modal-is-open .modal-dialog.modal-fullscreen,
    .gc-rich-editor-modal--contained.gc-event-description-modal--collapsed.gc-event-description-modal--enter.gc-modal-is-open .modal-dialog {
        transform: translateY(100%) !important;
        opacity: 0;
        transition: none;
    }

    /* Морф только по вертикали: не пережимать шторку шириной колонки Show */
    #descriptionEditorModal.gc-event-description-modal--flipping .modal-dialog,
    #descriptionEditorModal.gc-event-description-modal--docking .modal-dialog {
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-inline: 0 !important;
    }
}

/* Уход с мероприятия: док/карточка уезжает вниз за экран, затем hide */
body.inertia-shell .gc-rich-editor-modal.gc-event-description-modal--exiting.gc-modal-is-open::before,
.gc-rich-editor-modal.gc-event-description-modal--exiting.gc-modal-is-open::before {
    opacity: 0 !important;
    pointer-events: none !important;
}

.gc-rich-editor-modal.gc-event-description-modal--exiting .modal-dialog,
.gc-rich-editor-modal.gc-event-description-modal--exiting.gc-modal-is-open .modal-dialog,
.gc-rich-editor-modal--contained.gc-event-description-modal--collapsed.gc-event-description-modal--exiting.gc-modal-is-open .modal-dialog,
body.inertia-shell .gc-rich-editor-modal--contained.gc-event-description-modal--collapsed.gc-event-description-modal--exiting.gc-modal-is-open .modal-dialog,
body.inertia-shell .gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-event-description-modal--exiting.gc-modal-is-open .modal-dialog {
    transform: translateY(100vh) !important;
    opacity: 1;
    transition: transform var(--transition-slow) var(--ease-in);
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .gc-rich-editor-modal.gc-event-description-modal--exiting .modal-dialog,
    .gc-rich-editor-modal.gc-event-description-modal--exiting.gc-modal-is-open .modal-dialog,
    .gc-rich-editor-modal.gc-event-description-modal--collapsed.gc-event-description-modal--enter.gc-modal-is-open .modal-dialog {
        transition: none;
        transform: none !important;
        opacity: 1;
    }

    #descriptionEditorModal.gc-event-description-modal--footer-enter .gc-event-description-modal-footer-outer {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Футер в доке скрыт. Во время морфа слот остаётся (высота в last), opacity 0 —
   после раскрытия --footer-enter снимается и кнопки плавно доезжают. */
.gc-rich-editor-modal.gc-event-description-modal--collapsed .gc-event-description-modal-footer-outer {
    opacity: 0;
    visibility: hidden;
    height: 0;
    pointer-events: none;
    transform: none;
    transition: none;
}

#descriptionEditorModal.gc-event-description-modal--flipping .gc-event-description-modal-footer-outer,
#descriptionEditorModal.gc-event-description-modal--docking .gc-event-description-modal-footer-outer,
#descriptionEditorModal.gc-event-description-modal--footer-enter .gc-event-description-modal-footer-outer {
    opacity: 0;
    transform: translateY(var(--space-2));
    pointer-events: none;
    transition: none;
}

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

.gc-rich-editor-modal.gc-event-description-modal--collapsed .modal-dialog,
body.inertia-shell .gc-rich-editor-modal.gc-event-description-modal--docking .modal-dialog,
body.inertia-shell #descriptionEditorModal.gc-event-description-modal--flipping .modal-dialog {
    box-shadow: var(--shadow-lg);
}

/* Док в колонке контента, не sheet на край viewport — только ≥768 */
@media (min-width: 768px) {
    body.inertia-shell .gc-rich-editor-modal.gc-event-description-modal--collapsed .modal-content,
    body.inertia-shell .gc-rich-editor-modal.gc-event-description-modal--docking .modal-content,
    body.inertia-shell #descriptionEditorModal.gc-event-description-modal--flipping .modal-content {
        border-radius: var(--radius-16);
        padding-bottom: 0;
    }
}

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

#descriptionEditorModal.gc-event-description-modal--collapsed .description-editor-container {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: calc(var(--font-size-base) * 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(--space-8);
    pointer-events: none;
    background: linear-gradient(to bottom, transparent, var(--surface-panel));
}

#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-base) * 1.6 * 4);
    flex-shrink: 0;
}

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

/*
 * Морф карточка ↔ док: клип окна, не reflow текста.
 * --collapsed даёт ProseMirror min-height:0 — без заморозки буквы схлопываются на кадр.
 * Заморозка только на --editor-frozen, не на --flipping: иначе в конце морфа
 * окно ещё 12rem, а CSS-док — 5 строк, и полоска допозиционируется.
 */
#descriptionEditorModal.gc-event-description-modal--editor-frozen .tiptap-editor .ProseMirror {
    min-height: unset !important;
    caret-color: transparent;
}

#descriptionEditorModal.gc-event-description-modal--editor-frozen #tiptapEditor .gc-event-description-editor-mount,
#descriptionEditorModal.gc-event-description-modal--editor-frozen
    #tiptapEditor.tiptap-editor > .gc-event-description-editor-mount:only-child {
    min-height: 25rem;
}

#descriptionEditorModal.gc-rich-editor-modal--contained.gc-event-description-modal--editor-frozen
    #tiptapEditor .gc-event-description-editor-mount,
#descriptionEditorModal.gc-rich-editor-modal--contained.gc-event-description-modal--editor-frozen
    #tiptapEditor.tiptap-editor > .gc-event-description-editor-mount:only-child {
    min-height: 12rem;
}

#descriptionEditorModal.gc-event-description-modal--editor-frozen .description-editor-container::after {
    content: none;
}

#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;
    overflow-y: auto;
}

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

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

#weaponNoteEditorModal:not(.gc-event-description-modal--collapsed)
    #weapon-note-modal-editor-new.weapon-note-modal-tiptap-root.tiptap-editor > .gc-event-description-editor-mount:only-child {
    min-height: 25rem;
}

#weaponNoteEditorModal:not(.gc-event-description-modal--collapsed) #weapon-note-modal-editor-new .ProseMirror,
#weaponNoteEditorModal:not(.gc-event-description-modal--collapsed) #weaponNoteEditorMount .stage-tiptap-editor {
    min-height: 0;
}

#weaponNoteEditorModal:not(.gc-event-description-modal--collapsed) #weaponNoteEditorMount .stage-tiptap-editor {
    box-sizing: border-box;
    max-height: none;
    overflow-y: visible;
    padding: var(--space-6);
    padding-bottom: var(--space-4);
    margin-bottom: calc(var(--space-8) + var(--space-4));
    font-size: var(--font-size-15);
    line-height: 1.5;
}

@media (max-width: 767.98px) {
    #weaponNoteEditorModal:not(.gc-event-description-modal--collapsed) #weaponNoteEditorMount .stage-tiptap-editor {
        padding: var(--space-4);
        padding-bottom: var(--space-2);
        margin-bottom: calc(var(--space-6) + var(--space-4));
    }
}

#weaponNoteEditorModal.gc-event-description-modal--collapsed .weapon-note-modal-photos-strip,
#weaponNoteEditorModal.gc-event-description-modal--collapsed .weapon-note-compose-progress {
    display: none !important;
}

#weaponNoteEditorModal.gc-event-description-modal--collapsed .weapon-note-modal-editor-skeleton {
    width: 100%;
    box-sizing: border-box;
    min-height: calc(var(--font-size-base) * 1.6 * 4);
    flex-shrink: 0;
}

#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-base) * 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(--space-8);
    pointer-events: none;
    background: linear-gradient(to bottom, transparent, var(--surface-panel));
}

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

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

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

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

#weaponOpinionEditorModal:not(.gc-event-description-modal--collapsed)
    #weapon-opinion-modal-editor.weapon-opinion-modal-tiptap-root.tiptap-editor {
    min-height: 0;
    flex: 0 1 auto;
}

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

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

#weaponOpinionEditorModal:not(.gc-event-description-modal--collapsed) #weapon-opinion-modal-editor .ProseMirror,
#weaponOpinionEditorModal:not(.gc-event-description-modal--collapsed) #weaponOpinionEditorMount .stage-tiptap-editor {
    min-height: 0;
}

#weaponOpinionEditorModal:not(.gc-event-description-modal--collapsed) #weaponOpinionEditorMount .stage-tiptap-editor {
    box-sizing: border-box;
    max-height: none;
    overflow-y: visible;
    padding: var(--space-6);
    padding-bottom: var(--space-4);
    margin-bottom: calc(var(--space-8) + var(--space-4));
    font-size: var(--font-size-15);
    line-height: 1.5;
}

@media (max-width: 767.98px) {
    #weaponOpinionEditorModal:not(.gc-event-description-modal--collapsed) #weaponOpinionEditorMount .stage-tiptap-editor {
        padding: var(--space-4);
        padding-bottom: var(--space-2);
        margin-bottom: calc(var(--space-6) + var(--space-4));
    }
}

#weaponOpinionEditorModal.gc-event-description-modal--collapsed .weapon-opinion-modal-photos-strip,
#weaponOpinionEditorModal.gc-event-description-modal--collapsed .weapon-note-compose-progress {
    display: none !important;
}

#weaponOpinionEditorModal.gc-event-description-modal--collapsed .weapon-note-modal-editor-skeleton {
    width: 100%;
    box-sizing: border-box;
    min-height: calc(var(--font-size-base) * 1.6 * 4);
    flex-shrink: 0;
}

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

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

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

#weaponOpinionEditorModal.gc-event-description-modal--collapsed .weapon-opinion-modal-editor-scroll.description-editor-container::after {
    content: '';
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: var(--space-8);
    pointer-events: none;
    background: linear-gradient(to bottom, transparent, var(--surface-panel));
}

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

#weaponOpinionEditorModal.gc-event-description-modal--collapsed #weapon-opinion-modal-editor .ProseMirror,
#weaponOpinionEditorModal.gc-event-description-modal--collapsed #weaponOpinionEditorMount .stage-tiptap-editor {
    min-height: 0 !important;
}

/* Event show: стопка заявок — profile-upcoming-stack + event-index glow shell */
.event-requests-stack-section {
    width: 100%;
    min-width: 0;
}

.event-requests-stack-section.profile-program-section {
    gap: var(--space-2);
}

.event-requests-stack-section .profile-upcoming-preview {
    align-items: stretch;
    gap: 0;
}

.event-requests-stack-section .profile-program-section__body,
.event-requests-stack-section .profile-upcoming-preview,
.event-request-organizer-stack.profile-upcoming-stack {
    overflow: visible;
}

.event-requests-stack-section .profile-upcoming-preview:has(.profile-upcoming-stack__layers) {
    padding-bottom: var(--space-3);
}

.event-request-organizer-stack.profile-upcoming-stack {
    align-self: stretch;
}

.event-request-organizer-stack .profile-upcoming-stack__card > .event-request-organizer-stack__motion {
    width: 100%;
    min-width: 0;
}

.event-request-organizer-stack__card.gc-event-index-card--v2-1 {
    position: relative;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    cursor: default;
}

.event-request-organizer-stack__surface.gc-event-index-card-v2-1__surface {
    height: auto;
    min-height: 0;
    /* Requests size to their content, not the event cover proportions. */
    aspect-ratio: auto;
    justify-content: center;
    padding: var(--space-3) var(--space-4);
}

.event-request-organizer-stack__row {
    display: flex;
    align-items: center;
    align-content: flex-start;
    flex-wrap: wrap;
    gap: var(--space-3);
    width: 100%;
    min-width: 0;
    pointer-events: none;
}

.event-request-organizer-stack__profile {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex: 1 1 auto;
    min-width: 0;
}

.event-request-organizer-stack__profile .gc-list-content {
    min-width: 0;
}

.event-request-organizer-stack__card .gc-list-actions {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    pointer-events: auto;
}

.event-request-organizer-stack__card .gc-list-actions .gc-btn {
    pointer-events: auto;
}

.event-request-detail-benefit {
    width: 100%;
    min-width: 0;
}

.event-request-detail-benefit .subscriptions-profile-benefit-tile-cell,
.event-request-detail-benefit .gc-card-glow-shell--benefit-ticket {
    width: 100%;
    min-width: 0;
}

.gc-context-sidepage__section-body .event-request-detail-benefit {
    margin: 0;
}

/* Sidepage: бенефиты в readonly-карточке оплаты */
.gc-context-sidepage__stack .event-request-benefit-stack {
    margin-top: var(--space-2);
}

.gc-context-sidepage__stack .event-request-benefit-stack .event-participant-card__tags {
    padding: 0;
}

.event-request-organizer-stack__hit {
    position: absolute;
    inset: 0;
    z-index: 1;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: inherit;
    background: transparent;
    cursor: pointer;
    appearance: none;
}

.event-request-organizer-stack__hit:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

@media (max-width: 991.98px) {
    .event-request-organizer-stack .event-request-organizer-stack__card
        .event-request-organizer-stack__surface.gc-event-index-card-v2-1__surface.gc-event-index-card-v2-1__surface--placeholder {
        height: auto;
        min-height: 0;
        justify-content: center;
    }
}

@media (max-width: 575.98px) {
    .event-request-organizer-stack__card .gc-list-actions {
        flex: 1 1 100%;
        width: 100%;
        margin-left: 0;
        justify-content: stretch;
        gap: var(--space-2);
    }

    .event-request-organizer-stack__card .gc-list-actions .gc-btn {
        flex: 1 1 0;
        min-width: 0;
        justify-content: center;
    }
}

.event-request-organizer-stack__motion {
    width: 100%;
    transform-origin: center top;
    will-change: transform, opacity;
}

.event-request-organizer-stack__motion--exit-approve {
    animation: event-request-stack-exit-right 280ms var(--ease-out) forwards;
}

.event-request-organizer-stack__motion--exit-reject {
    animation: event-request-stack-exit-left 280ms var(--ease-out) forwards;
}

@keyframes event-request-stack-exit-left {
    from {
        transform: translate3d(0, 0, 0) rotate(0deg);
        opacity: 1;
    }

    to {
        transform: translate3d(-68%, 0, 0) rotate(-8deg);
        opacity: 0;
    }
}

@keyframes event-request-stack-exit-right {
    from {
        transform: translate3d(0, 0, 0) rotate(0deg);
        opacity: 1;
    }

    to {
        transform: translate3d(68%, 0, 0) rotate(8deg);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .event-request-organizer-stack__motion--exit-approve,
    .event-request-organizer-stack__motion--exit-reject {
        animation: none;
    }
}
