/* Используется .page-container-flush из layout-utilities.css для layout без боковых отступов */
/* Стили обложки берутся из profile-card.css (используем те же классы) */

/* ===================================
   Community Profile Card - Дополнительные стили
   =================================== */

/* Карточка профиля сообщества - используем общий класс gc-profile-card */
/* Карточка профиля сообщества/эпика */
/* Отступы управляются родителем .page-layout через gap */

/* Аватар сообщества (расширение базовых стилей) */
.gc-community-avatar-placeholder {
    width: 128px; /* 150px */
    height: 128px;
    border-radius: var(--radius-full);
    background: var(--surface-control);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-36);
    font-weight: 600;
    color: var(--text-secondary);
    border: 6px solid var(--surface-panel); /* 6px */
    box-sizing: border-box;
}

/* Алиасы классов для совместимости */
.gc-community-avatar-col {
    display: flex;
    justify-content: center;
    margin-top: -88px; 
}

.gc-community-avatar-col img {
    width: 128px; /* 150px */
    height: 128px;
    object-fit: cover;
    border-radius: var(--radius-full);
    flex-shrink: 0;
    cursor: pointer;
    border: 6px solid var(--surface-panel); /* 6px */
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.gc-community-avatar-col img:hover {
    transform: scale(1.05);
    box-shadow: var(--shadow-lg);
}

/* Адаптив для аватара сообщества */
@media (max-width: 768px) {
    .gc-community-avatar-col {
        margin-top: -4.6875rem; /* -75px */
    }
    
    .gc-community-avatar-col img,
    .gc-community-avatar-placeholder {
        width: 7.5rem; /* 120px */
        height: 7.5rem;
        border-width: 0.25rem; /* 4px */
    }
}

@media (max-width: 576px) {
    .gc-community-avatar-col {
        margin-top: -3.75rem; /* -60px */
    }
    
    .gc-community-avatar-col img,
    .gc-community-avatar-placeholder {
        width: 6.25rem; /* 100px */
        height: 6.25rem;
    }
}

/* Slug сообщества (интерактивный элемент) */
.gc-community-slug {
    display: inline-flex;
    align-items: center;
    padding: 0;
    border: none;
    background: transparent;
    font: inherit;
    color: var(--accent-link) !important;
    cursor: pointer;
    transition: opacity var(--transition-fast);
}

.gc-community-slug:hover {
    opacity: 0.8; /* TODO: добавить --opacity-hover в variables.css */
}

.gc-channel-actions {
    gap: var(--space-2);
    flex-wrap: wrap;
}

.gc-channel-actions form,
.gc-channel-actions .gc-dropdown {
    display: flex;
}

.gc-channel-actions--stack,
.gc-channel-actions--feed-mobile-rail {
    align-items: flex-start;
}

.gc-channel-actions--stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.gc-btn.gc-channel-action,
.gc-dropdown > .gc-btn.gc-btn-bordered.gc-channel-action.gc-dropdown-toggle:not(.gc-btn-icon):not(.gc-btn-icon-sm):not(.gc-btn-icon-xs) {
    width: auto;
    max-width: 100%;
    border-radius: var(--radius-full);
    padding-inline: var(--space-4);
}

.gc-channel-actions .gc-dropdown {
    width: auto;
    max-width: 100%;
}

.gc-channel-actions .gc-skeleton.gc-skeleton-event-subheader-actions-btn {
    width: 7.5rem;
    height: var(--gc-btn-sm-min-height);
    border-radius: var(--radius-full);
}

/* Separator в метаданных сообщества */
.gc-community-meta-separator {
    color: var(--text-secondary);
}

/* ===================================
   Community Toast Notifications
   =================================== */

.community-toast {
    position: fixed;
    bottom: var(--space-6);
    left: 50%;
    transform: translateX(-50%);
    color: var(--text-primary);
    padding: var(--space-4) var(--space-6);
    border-radius: var(--radius-16);
    font-size: var(--font-size-14);
    font-weight: 500;
    z-index: var(--z-notification);
    backdrop-filter: blur(20px) saturate(1.15);
    -webkit-backdrop-filter: blur(20px) saturate(1.15);
    border: 1px solid var(--border-overlay);
    box-shadow: var(--shadow-dropdown-sheet), 0 0 0 1px var(--border-overlay);
}

.community-toast.success {
    background: linear-gradient(
        135deg,
        rgba(var(--success-color-rgb), 0.88),
        color-mix(in srgb, var(--surface-canvas) 45%, transparent)
    );
    border-color: rgba(var(--success-color-rgb), 0.45);
}

.community-toast.error {
    background: linear-gradient(
        135deg,
        rgba(var(--danger-color-rgb), 0.88),
        color-mix(in srgb, var(--surface-canvas) 48%, transparent)
    );
    border-color: rgba(var(--danger-color-rgb), 0.48);
}

.community-toast.slide-up {
    animation: communityToastSlideUp var(--transition-slow) var(--ease-out);
}

.community-toast.slide-down {
    animation: communityToastSlideDown var(--transition-slow) var(--ease-in);
}

@keyframes communityToastSlideUp {
    from { 
        transform: translateX(-50%) translateY(var(--space-6)); 
        opacity: 0; 
    }
    to { 
        transform: translateX(-50%) translateY(0); 
        opacity: 1; 
    }
}

@keyframes communityToastSlideDown {
    from { 
        transform: translateX(-50%) translateY(0); 
        opacity: 1; 
    }
    to { 
        transform: translateX(-50%) translateY(var(--space-6)); 
        opacity: 0; 
    }
}

/* ===================================
   Community Sidebar - Разделение секций
   =================================== */

.channel-sidebar-card {
    --channel-sidebar-avatar-size: 64px;
    background: var(--surface-panel);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-16);
    overflow: hidden;
}

.channel-sidebar-back {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    width: 100%;
    padding: var(--space-2) var(--space-4);
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    text-decoration: none;
    font-size: var(--font-size-14);
    font-weight: 500;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.channel-sidebar-back:hover {
    background: var(--surface-control);
    color: var(--text-primary);
}

.channel-sidebar-card-cover {
    height: 88px;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-color: var(--surface-control);
    background-image: linear-gradient(to top, var(--surface-primary), var(--surface-control));
}

/* Нет обложки — не резервируем слот и не тянем аватар вверх под overlap */
.channel-sidebar-card--no-cover .channel-sidebar-card-cover {
    display: none;
}

.channel-sidebar-card--no-cover .channel-sidebar-card-body {
    padding-top: var(--space-4);
}

.channel-sidebar-card--no-cover .channel-sidebar-card-topline,
.channel-sidebar-card--no-cover .channel-sidebar-card-avatar {
    margin-top: 0;
}

button.channel-sidebar-card-cover {
    display: block;
    width: 100%;
    padding: 0;
    border: none;
    font: inherit;
    text-align: inherit;
    color: inherit;
    cursor: zoom-in;
}

.channel-sidebar-card-cover .gc-briefing-img-container {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    border-radius: 0;
}

/*
 * Реальное фото обложки: chromatic outline 10% (better-ui image outlines).
 * Пустой градиент-placeholder — без outline.
 */
.channel-sidebar-card-cover:has(.gc-briefing-img, .gc-img-slot__media, img) {
    outline: 1px solid color-mix(in srgb, var(--fill-emphasis) 10%, transparent);
}

.channel-sidebar-card-cover--clickable .gc-briefing-img-overlay {
    background-color: transparent;
}

.channel-sidebar-card-cover--clickable .gc-briefing-img {
    filter: blur(0) brightness(1);
    transition-property: filter, transform;
    transition-duration: var(--transition-base);
    transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}

/* better-ui press: named props + scale(0.96), как .gc-hero-cover-hit */
.channel-sidebar-card-cover--clickable {
    transition-property: transform;
    transition-duration: var(--transition-fast);
    transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}

.channel-sidebar-card-cover--clickable:active {
    transform: scale(0.96);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
    .channel-sidebar-card-cover--clickable:hover .gc-briefing-img {
        transform: scale(1.02);
        filter: brightness(1.06);
    }

    .channel-sidebar-card-cover--clickable:hover .gc-briefing-img-overlay {
        background-color: color-mix(in srgb, var(--fill-emphasis) 24%, transparent);
    }
}

.channel-sidebar-card-cover--clickable:active .gc-briefing-img {
    filter: none;
    transform: none;
}

.channel-sidebar-card-cover--clickable:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: -2px;
}

.channel-sidebar-card-cover__img,
.channel-sidebar-card-cover__media,
.channel-sidebar-card-cover .gc-img-slot {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    background: transparent;
}

.channel-sidebar-card-body {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: 0 var(--space-4) var(--space-4);
}

.channel-sidebar-card-topline {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-3);
    margin-top: calc(var(--channel-sidebar-avatar-size) * -0.375);
    position: relative;
    z-index: 1;
}

.channel-sidebar-card-topline .channel-sidebar-card-actions-wrap {
    flex-shrink: 0;
}

.channel-sidebar-card-avatar {
    margin-top: calc(var(--channel-sidebar-avatar-size) * -0.375);
    width: var(--channel-sidebar-avatar-size);
    height: var(--channel-sidebar-avatar-size);
    position: relative;
    z-index: 1;
    flex-shrink: 0;
}

.channel-sidebar-card-topline .channel-sidebar-card-avatar {
    margin-top: 0;
}

.channel-sidebar-card-avatar img,
.channel-sidebar-card-avatar-placeholder,
.channel-sidebar-card-avatar .gc-img-slot {
    width: 100%;
    height: 100%;
    border-radius: var(--radius-full);
    border: 3px solid var(--surface-panel);
    object-fit: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-control);
    box-sizing: border-box;
    /* better-ui: chromatic edge на фото, не inset border-subtle */
    outline: 1px solid color-mix(in srgb, var(--fill-emphasis) 10%, transparent);
    color: var(--text-secondary);
    font-size: var(--font-size-24);
    font-weight: 600;
}

.channel-sidebar-card-avatar .gc-img-slot,
.channel-sidebar-card-avatar .gc-img-slot__media {
    width: 100%;
    height: 100%;
}

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

.channel-sidebar-card-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-1);
}

.channel-sidebar-card-name {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--font-size-18);
    font-weight: 600;
    line-height: 1.25;
    word-break: break-word;
}

.channel-sidebar-card-description-wrap {
    position: relative;
    min-width: 0;
    overflow: visible;
}

.channel-sidebar-card-description {
    margin: 0;
    font-size: var(--font-size-14);
    line-height: 1.55;
    color: var(--text-secondary);
}

.channel-sidebar-card-description--probe {
    position: absolute;
    inset: 0 auto auto 0;
    visibility: hidden;
    pointer-events: none;
    z-index: -1;
    height: auto;
    max-height: none;
    overflow: visible;
    white-space: normal;
}

/* Инлайн-кнопка «Ещё»: ссылочный акцент + soft fill, в потоке строки */
.channel-sidebar-card-description-more {
    display: inline;
    margin: 0;
    padding: 0 var(--space-1);
    border: none;
    border-radius: var(--radius-8);
    background: var(--ui-accent-soft);
    color: var(--accent-link);
    font: inherit;
    font-size: var(--font-size-13);
    font-weight: 500;
    line-height: inherit;
    white-space: nowrap;
    cursor: pointer;
    text-decoration: none;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    transition-property: background-color, color;
    transition-duration: var(--transition-fast);
    transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}

@media (hover: hover) and (pointer: fine) {
    @media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
    .channel-sidebar-card-description-more:hover {
        background: var(--ui-accent-soft-strong);
        color: var(--accent-link-hover);
        text-decoration: none;
    }
    }
}

.channel-sidebar-card-description-more:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

.channel-sidebar-card-slug {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    /* Визуал как текст; хит ≥40px (desktop aim) — pad + negative margin, как profile meta copy */
    padding: var(--space-2) var(--space-1-5);
    margin: calc(-1 * var(--space-2)) calc(-1 * var(--space-1-5));
    min-height: calc(var(--space-8) + var(--space-2));
    border: none;
    border-radius: var(--radius-8);
    background: transparent;
    color: var(--text-secondary);
    font: inherit;
    font-size: var(--font-size-13);
    line-height: inherit;
    cursor: pointer;
    text-align: inherit;
    transition-property: color, opacity;
    transition-duration: var(--transition-fast);
    transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
    .channel-sidebar-card-slug:hover {
        color: var(--accent-link);
        opacity: 1;
    }
}

.channel-sidebar-card-slug:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

/* Сайдбар с разделенными секциями (как в профиле) */
.catalog-layout:not(.catalog-layout--page) .catalog-sidebar {
    background: transparent !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    gap: var(--space-4); /* Отступы между секциями */
}

/* Сайдбар каталога: .catalog-nav — как .gc-tabs (tabs.css). */

@media (max-width: 1279px) {
    .catalog-layout:not(.catalog-layout--page) .catalog-sidebar {
        display: none !important;
    }
}

@media (min-width: 1280px) {
    .catalog-layout:not(.catalog-layout--page) .catalog-sidebar {
        display: flex !important;
    }
}

/* Базовый sticky .catalog-sidebar — layout-utilities.css (не дублировать overflow/position здесь). */
@media (min-width: 992px) {
    .channel-layout--compact .catalog-main {
        align-self: start;
    }
}

/* Компактный канал: между панелями и заголовками групп — тот же шаг, что у базового .catalog-main (не --space-2 из .catalog-main--content) */
.channel-layout--compact .catalog-main.catalog-main--content {
    gap: var(--space-4);
}

/* ===================================
   Старые стили (Legacy)
   =================================== */

/* Контейнер */
.community-container {
    max-width: 1140px; /* TODO: добавить --container-max-width в variables.css */
    margin: 0 auto;
    padding: var(--space-4) 0;
}

@media (min-width: 768px) {
    .community-container {
        padding: var(--space-4) var(--space-6);
    }
}

@media (min-width: 1400px) {
    .community-container {
        max-width: 1320px;
    }
}

/* Шапка сообщества */
.gc-community-header {
    background: var(--surface-panel);
    margin-bottom: var(--space-4);
    border-radius: var(--radius-16);
    overflow: hidden;
}

/* Обложка */
.gc-community-cover {
    width: 100%;
    height: 15rem; /* 240px */
    background-size: cover;
    background-position: center;
    background-color: var(--surface-control);
    position: relative;
}

.gc-community-cover-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--accent-link) 0%, var(--tint-blue) 100%);
    opacity: 0.3; /* TODO: добавить --opacity-subtle в variables.css */
}

/* Контент под обложкой */
.gc-community-header-content {
    padding: 0 var(--space-6) var(--space-6);
    position: relative;
}

.gc-community-header-inner {
    display: flex;
    align-items: flex-end; /* Выравниваем все по нижнему краю */
    gap: var(--space-6);
}

/* Аватар - поднимается поверх обложки */
.gc-community-avatar {
    width: 10rem; /* 160px */
    height: 10rem;
    border-radius: var(--radius-full);
    border: 0.25rem solid var(--surface-panel); /* 4px */
    overflow: hidden;
    flex-shrink: 0;
    background: var(--surface-panel);
    box-shadow: var(--shadow-md);
    margin-top: -5rem; /* -80px */
}

.gc-community-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* .gc-community-avatar-placeholder - удален дубликат, используется определение выше */

/* Информация */
.gc-community-info {
    flex-grow: 1;
    min-width: 0; /* Позволяет сжиматься внутри flex */
    padding-top: var(--space-4);
    padding-bottom: var(--space-1);
}

.gc-community-name {
    margin: 0 0 var(--space-1) 0;
}

.gc-community-slug {
    font-size: var(--font-size-14);
    color: var(--text-secondary);
}

.gc-community-stats {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-14);
    color: var(--text-secondary);
}

.gc-community-stat-item {
    color: var(--text-primary);
}

.gc-community-stat-divider {
    opacity: 0.5;
}

/* Действия */
.gc-community-actions {
    flex-shrink: 0;
    padding-bottom: 0;
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

/* Десктопная версия кнопок - показываем на больших экранах */
.gc-community-actions-desktop {
    display: flex;
}

/* Мобильная версия кнопок - скрываем на больших экранах */
.gc-community-actions-mobile {
    display: none;
}


/* Унифицируем размеры всех кнопок в шапке */
.gc-community-actions .gc-btn {
    min-height: 2.5rem; /* 40px */
    padding: var(--space-2) var(--space-4);
    font-size: var(--font-size-14);
    white-space: nowrap;
}

.gc-community-actions .d-flex.gap-2 .gc-btn {
    flex: 1;
    min-width: 0;
}

/* Навигация в сайдбаре */
.sidebar-nav {
    display: flex;
    flex-direction: column;
}

.sidebar-nav-item {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: 0.875rem var(--space-6); /* 14px вертикально */
    color: var(--text-secondary);
    text-decoration: none;
    transition: all var(--transition-base) var(--ease-out);
    font-size: var(--font-size-15);
    font-weight: 500;
    position: relative;
}

/* Полоска слева для активного элемента */
.sidebar-nav-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: var(--space-1);
    height: 0;
    background: var(--accent-link);
    border-radius: 0 var(--space-product-2) var(--space-product-2) 0;
    transition: height var(--transition-base) var(--ease-out);
}

.sidebar-nav-item.active::before {
    height: var(--space-8);
}

.sidebar-nav-item:hover {
    background: var(--surface-control);
    color: var(--text-primary);
}

.sidebar-nav-item.active {
    background: var(--surface-control);
    color: var(--text-primary);
    font-weight: 500;
}

.sidebar-nav-item i {
    width: var(--space-6);
    font-size: var(--font-size-14);
    text-align: center;
    flex-shrink: 0;
}

.sidebar-nav-item span:not(.badge) {
    flex: 1;
}

.sidebar-nav-item-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.sidebar-nav-item-disabled:hover {
    background: transparent;
    color: var(--text-secondary);
}

/* Дополнительные стили для текста в навигации */
.sidebar-nav-item:hover .text-secondary {
    color: var(--text-secondary) !important;
}

.sidebar-nav-item.active .text-secondary {
    color: var(--text-secondary) !important;
}

/* Layout: Контент + Сайдбар */
.community-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--layout-secondary-sidebar-width);
    gap: var(--space-4);
    margin-bottom: var(--space-6);
}

@media (min-width: 1400px) {
    .community-layout {
        grid-template-columns: minmax(0, 1fr) var(--layout-secondary-sidebar-width-wide);
    }
}

.community-main {
    min-width: 0; /* Важно для корректного переноса текста в grid */
}

.community-sidebar {
    height: fit-content;
    position: sticky;
    top: 5rem; /* 80px */
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.sidebar-section-nav {
    background: var(--surface-panel);
    border-radius: var(--radius-16);
    overflow: hidden;
}

.sidebar-section {
    background: var(--surface-panel);
    border-radius: var(--radius-16);
    padding: var(--space-6);
}

.sidebar-section-title {
    font-size: var(--font-size-base);
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: var(--space-4);
    font-family: var(--font-family-heading);
}

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

.stat-item {
    text-align: center;
    padding: var(--space-4);
    background: var(--surface-control);
    border-radius: var(--radius-16);
}

.stat-value {
    font-size: var(--font-size-24);
    font-weight: 700;
    color: var(--text-primary);
    display: block;
}

.stat-label {
    font-size: var(--font-size-13);
    color: var(--text-secondary);
    margin-top: var(--space-1);
}

/* Контент секции */
/* Специфичные свойства для сообществ (базовый класс в styles.css) */
/* Убираем overflow: hidden, чтобы не ломать карточки событий */

/* Старые стили content-section удалены - используйте gc-panel */

/* Скрываем время окончания события при нехватке места */
.upcoming-event-card .event-end-time {
    display: inline;
}

/* Скрываем время окончания, когда контейнер узкий */
.upcoming-event-card .event-time-container {
    container-type: inline-size;
}

@container (max-width: 280px) {
    .upcoming-event-card .event-end-time {
        display: none !important;
    }
}

/* Скрываем время окончания на узких экранах */
@media (max-width: 576px) {
    .upcoming-event-card .event-end-time {
        display: none !important;
    }
}

/* Адаптивность */
@media (max-width: 1279px) {
    .community-layout {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 992px) and (max-width: 1279px) {
    .community-sidebar {
        display: none;
    }
}

@media (max-width: 991px) {
    .community-sidebar {
        display: flex;
        position: static;
        order: -1; /* Показываем сайдбар сверху на мобилках */
    }
}

@media (max-width: 768px) {
    /* Секции сохраняют скругления, просто контейнер без padding */
    
    .gc-community-header-content {
        padding: 0 var(--space-4) var(--space-4);
    }
    
    .gc-community-cover {
        height: 11.25rem; /* 180px */
    }
    
    .gc-community-header-inner {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-4);
    }
    
    .gc-community-avatar {
        width: 7.5rem; /* 120px */
        height: 7.5rem;
        margin-top: -3.75rem; /* -60px */
    }
    
    .gc-community-avatar-placeholder,
    .gc-community-avatar-placeholder i {
        font-size: 4.5rem; /* 72px - увеличено для мобильных */
    }
    
    .gc-community-info {
        padding-top: 0;
    }
    
    /* Скрываем десктопную версию кнопок */
    .gc-community-actions-desktop {
        display: none;
    }
    
    /* Показываем мобильную версию кнопок */
    .gc-community-actions-mobile {
        display: flex;
        padding-top: 0;
        padding-bottom: 0;
        width: 100%;
        flex-direction: row; /* Кнопки в ряд */
        align-items: stretch;
    }
    
    .gc-community-actions-mobile .gc-btn,
    .gc-community-actions-mobile .gc-dropdown {
        justify-content: center;
        flex: 1; /* Делим пространство поровну */
        min-height: 2.5rem; /* 40px */
    }
    
    .gc-community-actions-mobile .gc-dropdown .gc-btn {
        width: 100%;
    }
    
    .gc-community-actions-mobile .d-flex.gap-2 {
        width: 100%;
        flex-direction: row;
    }
    
    .gc-community-actions-mobile .d-flex.gap-2 .gc-btn {
        flex: 1;
    }
}

/* Стили для рейтинга сезона в сайдбаре (компактная версия) */
.season-rankings-list-compact {
    display: flex;
    flex-direction: column;
    gap: 0.375rem; /* 6px */
}

.season-ranking-item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2);
    border-radius: var(--radius-8);
    transition: background-color var(--transition-fast) var(--ease-out);
    cursor: default;
}

.season-ranking-item:hover {
    background: var(--surface-control);
}

.season-ranking-item.non-member {
    opacity: 0.6; /* TODO: добавить --opacity-disabled в variables.css */
}

.ranking-position {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem; /* 28px */
    gap: var(--space-product-2);
    flex-shrink: 0;
}

.ranking-position i {
    font-size: var(--font-size-18);
}

.ranking-number {
    font-size: var(--font-size-14);
    font-weight: 600;
    color: var(--text-secondary);
    text-align: center;
    min-width: var(--space-6);
}

.ranking-change {
    font-size: var(--font-size-13);
    font-weight: 700;
    line-height: 1;
    display: inline-block;
}

.ranking-change.up {
    color: var(--success-color);
}

.ranking-change.down {
    color: var(--danger-color);
}

.ranking-avatar {
    flex-shrink: 0;
    width: var(--space-8);
    height: var(--space-8);
    border-radius: var(--radius-full);
    overflow: hidden;
    background: var(--surface-control);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--transition-fast) var(--ease-out);
}

.ranking-avatar.profile-trigger {
    cursor: pointer;
}

.ranking-avatar.profile-trigger:hover {
    transform: scale(1.08); /* TODO: добавить --scale-hover в variables.css */
}

.ranking-avatar .avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ranking-avatar .avatar-placeholder {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--surface-control);
    box-shadow: inset 0 0 0 1px var(--border-subtle);
    color: var(--text-secondary);
    font-size: var(--font-size-14);
    font-weight: 600;
    line-height: 1;
}

.ranking-info {
    flex-grow: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-product-2);
}

.ranking-name-row {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.ranking-name {
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: color var(--transition-fast) var(--ease-out);
}

.ranking-name.profile-trigger {
    cursor: pointer;
}

.ranking-name.profile-trigger:hover {
    color: var(--accent-link);
}

.non-member-icon {
    font-size: var(--font-size-13);
    color: var(--text-secondary);
    opacity: 0.5; /* TODO: добавить --opacity-muted в variables.css */
    flex-shrink: 0;
}

.ranking-stats {
    display: flex;
    align-items: center;
    gap: 0.375rem; /* 6px */
    font-size: var(--font-size-13);
    color: var(--text-secondary);
    flex-wrap: wrap;
}

.ranking-points {
    font-weight: 500;
    color: var(--text-primary);
}

.ranking-events {
    color: var(--text-secondary);
}

/* Убеждаемся, что рейтинг виден */
.sidebar-section .season-rankings-list-compact {
    margin-top: 0;
}

/* Скрытие карточки профиля на мобильных (для компактной навигации) */
@media (max-width: 991.98px) {
    .gc-hide-mobile {
        display: none !important;
    }
}

/* ===================================
   Channel Avatar Upload — форма создания/редактирования
   =================================== */

.gc-channel-avatar-upload-wrapper {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.gc-channel-avatar-preview-container {
    width: 80px;
    height: 80px;
    border-radius: var(--radius-full);
    overflow: hidden;
    background: var(--surface-control);
    border: 2px solid var(--border-subtle);
    flex-shrink: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gc-channel-avatar-preview-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gc-channel-avatar-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background: var(--surface-control);
    color: var(--text-secondary);
    font-size: var(--font-size-20);
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
}

.gc-channel-avatar-upload-actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

/* Lazy load: триггер IntersectionObserver под списком мероприятий канала */
.channel-linked-event {
    position: relative;
}

.channel-linked-event__menu {
    position: absolute;
    top: var(--space-4);
    right: var(--space-4);
    z-index: 2;
}

.channel-attachable-events-modal-list {
    margin-top: var(--space-2);
}

/* ===================================
   Эпик — карточка (Figma: hero + сайдбар в одной сетке)
   =================================== */

/* Десктопный сабхедер: без отдельной линии — карточка уже с бордером; паттерн split-form (.gc-subheader--in-panel) без второго контура */
.gc-card.gc-community-profile-card > .gc-subheader.gc-subheader--in-panel:first-child {
    border-radius: var(--radius-16) var(--radius-16) 0 0;
}

/* Один вертикальный зазор между hero и блоком контента: нижний padding у .gc-stage-show-hero, без дубля сверху у .gc-profile-content (как .gc-stage-content-description--main после hero) */
.gc-card.gc-community-profile-card--epic > .gc-stage-show-hero + .gc-profile-content {
    padding-top: 0;
}

.gc-card.gc-community-profile-card > .gc-subheader.gc-subheader--in-panel .gc-subheader-title {
    font-size: var(--font-size-15);
    font-weight: 500;
    line-height: var(--line-height-list-title);
    margin: 0;
}

.epic-profile-summary {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    width: 100%;
}

@media (min-width: 992px) {
    .epic-profile-summary {
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
        gap: var(--space-4);
    }
}

.epic-profile-summary-price {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-1);
    flex-shrink: 0;
}

@media (min-width: 992px) {
    .epic-profile-summary-price {
        align-items: flex-end;
        text-align: right;
    }
}

.epic-profile-price-value {
    font-size: var(--font-size-15);
    font-weight: 500;
    line-height: var(--line-height-list-title);
    color: var(--text-primary);
}

.epic-profile-price-caption {
    font-size: var(--font-size-14);
    font-weight: 400;
    line-height: var(--gc-list-meta-line-height);
    color: var(--text-secondary);
}

.epic-profile-description {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.epic-profile-description.epic-description-editable {
    cursor: pointer;
    border-radius: var(--radius-8);
}

.epic-profile-description.epic-description-editable:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: 2px;
}

/*
 * Эпик: .gc-profile-main--epic — та же сетка классов, что у профиля, но без предка .gc-profile-layout;
 * мобильные центрирующие правила в profile-card.css завязаны на .gc-profile-layout и сюда не попадают.
 */

/* Заголовок эпика: один h1 на страницу, визуально как имя в карточке канала/профиля (h5 в типографике) */
.gc-community-profile-card .gc-profile-header-group > h1.gc-profile-name {
    font-size: var(--font-size-base);
    font-weight: 500;
}

/* Вторая строка под названием — Figma secondary / токен sm */
.epic-profile-subline {
    margin: 0;
    font-size: var(--font-size-14);
    font-weight: 400;
    line-height: var(--line-height-list-description);
    color: var(--text-secondary);
}

/* ─── Эпик show — split-layout (как /events/{id}) ─────────────────────────── */

@media (min-width: 1280px) {
    .split-left.epic-show-sidebar > .sidebar-content {
        display: flex;
        flex-direction: column;
        gap: var(--space-4);
        min-width: 0;
    }
}

.event-show-main.catalog-main--epic-show {
    --gc-list-section-header-padding: 0;
}

/* ─── Эпик — лента (Figma 775:23156): gap между панелями; стыки секций content → content → list ─ */

.gc-epic-events-feed {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

/* Страница эпика: на адаптиве секции на всю ширину колонки — без боковых границ карточек/панелей */
@media (max-width: 991.98px) {
    /* Боковые границы убираем (полная ширина колонки), скругления — как у gc-card / gc-panel из UI Kit */
    .event-show-main.catalog-main--epic-show > .gc-card,
    .event-show-main.catalog-main--epic-show > .gc-panel,
    .event-show-main.catalog-main--epic-show > .gc-stack > .gc-card,
    .event-show-main.catalog-main--epic-show > .gc-stack > .gc-panel,
    .event-show-main.catalog-main--epic-show .gc-epic-events-feed > .gc-card {
        /* border-left: none;
        border-right: none; */
    }
}

/*
 * Карточка мероприятия в эпике — Figma 777:23451 (gc-card).
 * Корень: gap 4px. content-section: gap 8px между лидом, списком упражнений, облаком.
 * gc-card-footer-12: py 12 + «Подробнее».
 */
.gc-card.gc-epic-event-card {
    gap: var(--space-1);
}

.gc-epic-event-card__subheader {
    padding: var(--space-4);
    border-radius: var(--radius-16) var(--radius-16) 0 0;
}

.gc-epic-event-card__title-section {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-1);
}

/* Колонка дата/чипы + строка названия: без лишнего вертикального gap (типографика даёт ритм) */
.gc-epic-event-heading-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-product-2);
}

.gc-epic-event-meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-1);
}

/* Дата в мета-строке — одна точка стиля (без gc-list-title + gc-list-title-sm + gc-font-semibold) */
.gc-epic-event-card__date {
    margin: 0;
    font-size: var(--font-size-15);
    font-weight: 600;
    line-height: var(--line-height-list-title);
    color: var(--text-primary);
}

/* Заголовок строки упражнения в списке программы карточки */
.gc-epic-event-card__program-item-title {
    margin: 0;
    font-size: var(--font-size-15);
    font-weight: 500;
    line-height: var(--line-height-list-title);
    color: var(--text-primary);
}

/* Название под датой: вторичная строка; в интерфейсе — sm (14px), читаемее чем caption 13px из макета */
.gc-epic-event-card__event-title {
    margin: 0;
    padding: 0;
    font-family: inherit;
    font-size: var(--font-size-14);
    font-weight: 500;
    line-height: var(--line-height-list-description);
    letter-spacing: normal;
}

.gc-epic-event-title-link {
    display: inline-block;
    max-width: 100%;
    color: var(--text-secondary);
    text-decoration: none;
    transition: color var(--transition-fast) var(--ease-in-out);
}

.gc-epic-event-title-link:hover {
    color: var(--text-primary);
}

/* content-section: gap 8px между лидом, программой и облаком */
.gc-epic-event-card__main {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

/*
 * Лид карточки мероприятия: только сетка (.gc-epic-event-card__lead).
 * Типографика и TipTap — как у описания эпика в шапке: .gc-text-content (tiptap-content.css)
 * + .event-description-text (event-layout.css), без дублирования здесь.
 */
.gc-epic-event-card__lead {
    padding: 0 var(--space-4);
}

/* Список упражнений / брифингов в карточке мероприятия эпика */
.gc-epic-event-card__program {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.gc-epic-event-card__program-list.gc-panel-content--list {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/*
 * Облако участников: gc-panel-content (инсет mdl, как обычный контент панели), не gc-panel-content--list.
 * Если блок не первый в __main — убираем padding-top, чтобы не суммировать с gap между секциями.
 */
.gc-epic-event-card__people-list.gc-panel-content {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    /* Нижний инсет панели не нужен — до футера карточки ритм задаёт gap корня / padding футера */
    padding-bottom: 0;
    padding-top: 0;
}

.gc-epic-event-card__main > * + .gc-epic-event-card__people .gc-epic-event-card__people-list.gc-panel-content {
    padding-top: 0;
}

/* Облако участников: gap 10px между айтемами (макет 787:23831); карточка мероприятия эпика и hero эпика */
.gc-epic-event-card .gc-user-cloud,
.gc-community-profile-card--epic .gc-user-cloud--epic-hero {
    gap: var(--space-2);
    row-gap: var(--space-2);
}

/* gc-card-footer-12: py 12; внутренний блок с px 12 у кнопки */
.gc-epic-event-card__card-footer {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    padding: var(--space-4) 0;
    box-sizing: border-box;
}

.gc-epic-event-card__card-footer-inner {
    padding: 0 var(--space-4);
    width: 100%;
    box-sizing: border-box;
}

/* Футер карточки: два gc-btn в ряд (gap 10), как 777:23451 */
.gc-epic-event-card__card-footer-inner.gc-epic-event-card__card-footer-actions {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: var(--space-2);
}

.gc-epic-event-card__card-footer-inner.gc-epic-event-card__card-footer-actions > .gc-btn {
    flex: 1 1 0;
    min-width: 0;
}

.gc-epic-event-card__card-footer-inner.gc-epic-event-card__card-footer-actions > .gc-btn.gc-btn-outline,
.gc-epic-event-card__card-footer-inner.gc-epic-event-card__card-footer-actions > .gc-btn.gc-btn-black {
    border-radius: var(--radius-8);
    font-weight: 500;
    font-size: var(--font-size-14);
    line-height: var(--line-height-list-description);
    justify-content: center;
}

.gc-epic-event-card__card-footer-inner.gc-epic-event-card__card-footer-actions > .gc-event-feed-action-segmented .gc-event-feed-action-main {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.gc-epic-event-card__card-footer-inner.gc-epic-event-card__card-footer-actions > .gc-event-feed-action-segmented .gc-event-feed-action-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* «Участвую» / «Заявка подана» — как в gc-event-feed-card */
.gc-epic-event-card .gc-event-feed-action--request-sent.gc-btn-black:disabled,
.gc-epic-event-card .gc-event-feed-action--request-sent.gc-btn-black[disabled] {
    opacity: 1;
    cursor: default;
}

/* Между строками программы — 2px как в макете (list-group gap) */
.gc-epic-program-list-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-product-2);
}

/* Облако людей: базовый gap 2px; в карточке мероприятия эпика — 10px (.gc-epic-event-card .gc-user-cloud) */
.gc-user-cloud {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: var(--space-product-2);
    row-gap: var(--space-product-2);
    width: 100%;
    margin: 0;
    box-sizing: border-box;
}

/* Figma 765:9069 «user-cloud / item»: только обводка и инсеты (без заливки фона в покое), pl 4 / pr 8 / py 4, gap 6, радиус 8, p/500 14/24 */
.gc-user-cloud__item {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    max-width: 220px;
    padding: var(--space-1) var(--space-2) var(--space-1) var(--space-1);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-8);
    background: var(--surface-control);
    text-decoration: none;
    color: var(--text-primary);
    font-size: var(--font-size-14);
    font-weight: 500;
    line-height: var(--line-height-list-title);
    box-sizing: border-box;
    cursor: pointer;
    transition:
        background var(--transition-fast) var(--ease-in-out),
        border-color var(--transition-fast) var(--ease-in-out),
        color var(--transition-fast) var(--ease-in-out);
}

.gc-user-cloud__item:hover {
    background: var(--surface-panel);
    border-color: var(--border-default);
    color: var(--text-primary);
}

.gc-user-cloud__item:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: 2px;
}

.gc-user-cloud__item:active {
    background: color-mix(in srgb, var(--fill-primary) 6%, transparent);
    border-color: var(--border-default);
}

.gc-user-cloud__media {
    flex-shrink: 0;
    width: var(--space-6);
    height: var(--space-6);
    border-radius: var(--radius-8);
    overflow: hidden;
}

.gc-user-cloud__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gc-user-cloud__media-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    border-radius: var(--radius-8);
    background: var(--surface-control);
    color: var(--text-secondary);
    font-size: var(--font-size-14);
}

.gc-user-cloud__name {
    overflow: hidden;
    min-width: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gc-user-cloud__item--more {
    max-width: none;
    cursor: default;
    background: transparent;
    color: var(--text-secondary);
    font-size: var(--font-size-13);
    font-weight: 500;
    border: 1px dashed var(--border-subtle);
}

a.gc-user-cloud__item--more {
    cursor: pointer;
}

.gc-user-cloud__item--more:hover {
    background: var(--surface-control);
    border-style: solid;
    border-color: var(--border-subtle);
    color: var(--accent-link);
}

.gc-user-cloud__item--more:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: 2px;
}

/* Hero эпика: только ширина колонки — отступы между блоками задаёт .gc-profile-main (gap), без margin у облака */
.gc-community-profile-card--epic .gc-user-cloud--epic-hero {
    max-width: 100%;
}

/* CTA под лентой событий эпика — отступы на обёртке, на кнопке только gc-btn */
.gc-epic-events-feed-cta {
    margin-top: 0;
}

.gc-epic-events-feed-cta .gc-btn {
    white-space: normal;
    flex-shrink: 1;
}

/* ─── Участники канала: панель приглашений (stack + details, якорь #channel-invites) ─── */
.channel-members-page-stack.gc-stack {
    gap: var(--space-2);
}

.catalog-main.channel-members-main {
    width: 100%;
    max-width: none;
}

.channel-members-invite-sidepage__stack {
    gap: var(--space-4);
}

.channel-members-invite-sidepage__pending .gc-context-sidepage__section-title {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.channel-members-invite-sidepage__pending .gc-context-sidepage__section-title i {
    font-size: var(--font-size-14);
}

.channel-members-invite-details.gc-open-list-section--framed {
    overflow: hidden;
}

/*
 * Закрытый <details>: UA обычно скрывает всё кроме <summary>, но .gc-panel-content
 * задаёт display:flex из UI Kit и в ряде браузеров перебивает это — форма остаётся видимой.
 */
.channel-members-invite-details.gc-open-list-section--framed:not([open]) > :not(summary) {
    display: none !important;
}

summary.channel-members-invite-details__summary {
    list-style: none;
    cursor: pointer;
}

summary.channel-members-invite-details__summary::-webkit-details-marker {
    display: none;
}

summary.channel-members-invite-details__summary.gc-open-list-section-chrome {
    display: flex;
    flex-direction: column;
}

summary.channel-members-invite-details__summary .gc-panel-header--list-open {
    justify-content: flex-start;
    gap: var(--space-2);
}

.channel-members-invite-details__chev {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--text-secondary);
}

.channel-members-invite-details__chev i {
    font-size: var(--font-size-base);
}

/* Раскрытие: styles.css — caret expand contract ([open]) */

.channel-members-invite-details__summary-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    flex: 1;
    min-width: 0;
}

.channel-members-invite-details__submit {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-2);
    width: 100%;
    margin-top: var(--space-1);
}

.channel-members-invite-details__submit .gc-btn {
    width: 100%;
    min-width: 0;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
}

/* ─── Материалы канала (как участники на /events/{id}: gc-interactive-row в gc-panel-content--list) ─── */
.channel-materials-page {
    display: flex;
    flex-direction: column;
    gap: var(--gc-list-section-header-gap);
    min-width: 0;
}

.channel-materials-flash {
    margin-bottom: var(--space-4);
}

.channel-materials-row--inactive .gc-list-media-icon {
    color: var(--text-secondary);
}

.channel-materials-row--inactive .gc-list-title {
    color: var(--text-secondary);
}

/*
 * Сегментированный медиаблок (общая рамка, без зазора между сегментами): материалы канала — папка + аватар.
 */
.channel-materials-row__media-segmented {
    display: inline-flex;
    align-items: stretch;
    flex-shrink: 0;
    box-sizing: border-box;
    border: 1px solid var(--border-subtle);
    border-radius: calc(var(--gc-list-media-size, var(--gc-list-media-size-base)) * var(--radius-12) / var(--gc-list-media-size-base));
    overflow: hidden;
    background: var(--gc-list-media-frame-bg, var(--surface-secondary));
}

/*
 * Сегменты — одна общая рамка. lists.css задаёт каждому .gc-list-media-icon
 * свой radius / фон / glow (специфичность выше короткого селектора).
 */
.gc-interactive-row.channel-materials-row > .gc-list-item-trigger > .channel-materials-row__media-segmented > .gc-list-media-icon {
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
}

.gc-interactive-row.channel-materials-row > .gc-list-item-trigger > .channel-materials-row__media-segmented > .gc-list-media-icon + .gc-list-media-icon {
    border-left: 1px solid var(--border-subtle);
}

/*
 * Сегмент под фото: у .gc-list-media-icon padding задаётся через --gc-list-media-icon-padding (lists.css),
 * простого padding: 0 недостаточно, если lists грузится позже — обнуляем переменную и паддинг явно.
 */
.channel-materials-row__media-segmented > .gc-list-media-icon.channel-materials-row__viewer-avatar {
    --gc-list-media-icon-padding: 0;
    padding: 0;
    overflow: hidden;
}

.channel-materials-row__viewer-avatar-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Инициалы в сегменте сетки: полный размер ячейки, без круга (как обложка img).
   Без своего бордера — разделитель только border-left между сегментами (иначе двойная линия). */
.channel-materials-row__viewer-fallback-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    box-sizing: border-box;
    border: none;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
    font-size: var(--font-size-15);
    font-weight: 600;
}

/* Лента льгот — слева только аватар */
.subscriptions-benefit-feed-item__media-chain {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.channel-sidebar-card-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    column-gap: var(--space-2);
    color: var(--text-secondary);
}
.channel-sidebar-card-meta .channel-sidebar-card-slug {
    width: auto;
}
.channel-sidebar-members {
    white-space: nowrap;
    font-size: var(--font-size-13);
    color: var(--text-secondary);
}

.gc-context-sidepage__body.channel-members-body {
    padding: 0;
}

.channel-members-body .gc-inset-list.gc-inset-list--rail {
    --gc-inset-row-padding: var(--space-2);
    --gc-inset-hover-edge: var(--space-1);
    --gc-inset-padding: calc(var(--gc-inset-hover-edge) + var(--gc-inset-row-padding));
}

/* Рейтинг канала: индекс, квартал, месяц */
.season-current { margin-bottom: var(--space-8); }
.season-current-card > .gc-panel-footer:only-child { border-top: 0; }
.season-current-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    flex-wrap: wrap;
}
.season-current-heading {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-1);
    min-width: 0;
}
.season-current-kicker { margin: 0; color: var(--text-secondary); }
.season-event-card.gc-card {
    border: 1px solid var(--border-subtle);
    color: inherit;
    transition:
        background-color var(--transition-fast) var(--ease-in-out),
        border-color var(--transition-fast) var(--ease-in-out);
}
a.season-event-card-link,
a.gc-card.season-event-card,
a.season-event-card-link:hover,
a.gc-card.season-event-card:hover {
    text-decoration: none;
    color: inherit;
}
a.season-event-card-link:focus-visible,
a.gc-card.season-event-card:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}
@media (hover: hover) and (pointer: fine) {
    @media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
        a.gc-card.season-event-card:hover:not(.gc-card-activity-event) {
            background: var(--surface-panel);
            border-color: var(--border-default);
        }
    }
}
.gc-dropdown-item.season-recalculate-action { padding-block: var(--space-3); }
.season-recalculate-copy { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.season-recalculate-copy .gc-list-meta { white-space: normal; max-width: 26ch; color: inherit; opacity: .8; font-weight: 400; }
.season-overview-title {
    margin: 0;
    font-size: var(--type-heading-h2-size);
    font-weight: 600;
    line-height: var(--type-heading-h2-line-height);
    color: var(--text-primary);
}
.season-current-card, .season-archive-list {
    background: var(--surface-panel);
    border: 1px solid var(--border-subtle);
    border-radius: var(--gc-list-section-shell-radius);
}
.season-current-podium { margin-bottom: var(--space-4); }
.season-current-podium > .gc-list-zone-inset { padding-inline: 0; }
.season-avatar-stack.gc-avatar-stack-static > * { box-shadow: 0 0 0 2px var(--surface-panel); }
.season-archive-year { margin-top: var(--space-4); }
.season-archive-year > h3 {
    margin: 0 0 var(--space-2);
    font-size: var(--type-heading-h4-size);
    font-weight: 500;
    line-height: var(--type-heading-h4-line-height);
    color: var(--text-secondary);
}
.season-archive-item + .season-archive-item { border-top: 1px solid var(--border-subtle); }
.season-archive-item .gc-list-content > span { display: block; }
.season-archive-ranking { border-top: 1px solid var(--border-subtle); }
.season-archive-ranking-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4) var(--space-1);
}
@media (max-width: 600px) {
    .season-current-header { gap: var(--space-2); }
    .season-overview-title { font-size: var(--type-heading-h3-size); line-height: var(--type-heading-h3-line-height); }
}

/* Season empty states have no action card or borrowed post divider. */
.season-ranking-empty {
    margin: var(--space-3) 0 0;
    color: var(--text-secondary);
    font-size: var(--type-body-size, 1rem);
    line-height: 1.5;
}
.season-details-footer { padding: 0; }
.gc-inset-list + .season-details-footer { border-top: 1px solid var(--border-subtle); }
.season-details-footer .gc-post-discussion-link { margin: 0; border-top: 0; border-radius: 0 0 var(--gc-list-section-shell-radius) var(--gc-list-section-shell-radius); }
.season-events { display: flex; flex-direction: column; gap: var(--space-4); }
.season-event-list > .season-event-notice {
    margin: var(--space-1) 0;
    padding: var(--space-3);
}
.season-event-notice .gc-callout-desc { margin-top: var(--space-1); }
.season-event-list .gc-list-title { white-space: normal; }
