/**
 * ===================================
 * GunCult UI Kit - Skeleton Loaders
 * ===================================
 * 
 * Скелетоны для отображения загрузки
 */

/* ===================================
   Page-level skeleton loader
   Используется компонентом <x-skeleton.page>

   Высоту задаёт только контент (-c). Скелетон (-s) — absolute overlay
   с --gc-app-content-bg (тот же холст, что main/footer), не участвует в layout → нет прыжка при reveal.
   =================================== */

.gc-page-loader {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
}

.gc-page-loader > [id$="-c"] {
    position: relative;
    z-index: 0;
    min-width: 0;
}

.gc-page-loader > [id$="-s"] {
    position: absolute;
    inset: 0;
    /*
     * Выше обычного контента; sticky chrome (--z-sticky) всё равно может
     * full-bleed’ом выйти за bounds overlay — его гасим классом на <html>
     * (page-skeleton.js → .gc-page-skeleton-pending).
     */
    z-index: calc(var(--z-sticky) + 1);
    /*
     * visible: sticky chrome / cover backdrop не обрезаются.
     */
    overflow: visible;
    min-width: 0;
    background: var(--gc-app-content-bg);
    /* Пока виден — перехватывает клики, чтобы не жать контент под overlay */
    pointer-events: auto;
}

/*
 * Full-bleed sticky chrome выходит за page-loader — прячем, пока pending.
 * Pending снимается в начале fade (page-skeleton.js), не после: иначе
 * скелетон уже прозрачный, а live chrome ещё hidden → люфт сабхедера.
 */
html.gc-page-skeleton-pending .gc-page-loader > [id$="-c"] .gc-three-col-subheader {
    visibility: hidden;
}


/* ===================================
   Base skeleton
   =================================== */

/* Base skeleton.
   bg-accent (zinc-200 / #2A2A2A dark) даёт достаточный контраст против bg-main
   в обеих темах, в отличие от bg-content-secondary, который почти сливается с фоном */
.gc-skeleton {
    background: linear-gradient(
        90deg,
        var(--surface-subtle) 0%,
        var(--surface-control) 50%,
        var(--surface-subtle) 100%
    );
    background-size: 200% 100%;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
    border-radius: var(--radius-8);
    display: inline-block;
    width: 100%;
}

@keyframes skeleton-pulse {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Disable animation if user prefers reduced motion */
@media (prefers-reduced-motion: reduce) {
    .gc-skeleton {
        animation: none;
        background: var(--surface-subtle);
    }
}

/* ===================================
   Text Skeletons
   =================================== */

.gc-skeleton-text {
    height: 1rem;
    margin-bottom: 0.5rem;
}

.gc-skeleton-text:last-child {
    margin-bottom: 0;
}

/* Text sizes */
.gc-skeleton-text-xs {
    height: 0.75rem;
}

.gc-skeleton-text-sm {
    height: 0.875rem;
}

.gc-skeleton-text-md {
    height: 1rem;
}

.gc-skeleton-text-lg {
    height: 1.25rem;
}

.gc-skeleton-text-xl {
    height: 1.5rem;
}

/* Text with random widths */
.gc-skeleton-text-short {
    width: 40%;
}

.gc-skeleton-text-medium {
    width: 60%;
}

.gc-skeleton-text-long {
    width: 80%;
}

.gc-skeleton-text-full {
    width: 100%;
}

/* ===================================
   Heading Skeletons
   =================================== */

.gc-skeleton-heading {
    height: 2rem;
    width: 60%;
    margin-bottom: 1rem;
    border-radius: var(--radius-8);
}

.gc-skeleton-heading-sm {
    height: 1.5rem;
    width: 50%;
}

.gc-skeleton-heading-lg {
    height: 2.5rem;
    width: 70%;
}

/* ===================================
   Avatar Skeletons
   =================================== */

.gc-skeleton-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.gc-skeleton-avatar-sm {
    width: 32px;
    height: 32px;
}

.gc-skeleton-avatar-lg {
    width: 64px;
    height: 64px;
}

.gc-skeleton-avatar-xl {
    width: 96px;
    height: 96px;
}

/* Круглый скелетон (универсальный) */
.gc-skeleton-circle {
    border-radius: 50%;
    flex-shrink: 0;
}

/* gc-avatar-* и gc-skeleton-avatar* подключаются до skeleton.css;
   базовый width:100% у .gc-skeleton их перебивает — восстанавливаем размеры. */
.gc-skeleton.gc-skeleton-avatar {
    width: 48px;
    height: 48px;
}

.gc-skeleton.gc-skeleton-avatar-sm {
    width: 32px;
    height: 32px;
}

.gc-skeleton.gc-skeleton-avatar-lg {
    width: 64px;
    height: 64px;
}

.gc-skeleton.gc-skeleton-avatar-xl {
    width: 96px;
    height: 96px;
}

.gc-skeleton.gc-avatar-24 {
    width: 24px;
    height: 24px;
}

.gc-skeleton.gc-avatar-28 {
    width: 28px;
    height: 28px;
}

.gc-skeleton.gc-avatar-32 {
    width: 32px;
    height: 32px;
}

.gc-skeleton.gc-avatar-36 {
    width: 36px;
    height: 36px;
}

.gc-skeleton.gc-avatar-40 {
    width: 40px;
    height: 40px;
}

.gc-skeleton.gc-avatar-44 {
    width: var(--gc-list-media-size-base);
    height: var(--gc-list-media-size-base);
}

.gc-skeleton.gc-avatar-48 {
    width: 48px;
    height: 48px;
}

.gc-skeleton.gc-avatar-56 {
    width: 56px;
    height: 56px;
}

.gc-skeleton.gc-avatar-64 {
    width: 64px;
    height: 64px;
}

.gc-skeleton.gc-avatar-80 {
    width: 80px;
    height: 80px;
}

/* ===================================
   Image/Thumbnail Skeletons
   =================================== */

.gc-skeleton-image {
    width: 100%;
    padding-top: 56.25%; /* 16:9 aspect ratio */
    /* Плейсхолдеры «картинок» — без скруглений (как нативный прямоугольник медиа) */
    border-radius: 0;
    position: relative;
}

.gc-skeleton-image-square {
    padding-top: 100%; /* 1:1 aspect ratio */
}

.gc-skeleton-image-landscape {
    padding-top: 56.25%; /* 16:9 aspect ratio */
}

.gc-skeleton-image-portrait {
    padding-top: 133.33%; /* 3:4 aspect ratio */
}

/* ===================================
   Button Skeletons
   =================================== */

.gc-skeleton-button {
    height: 44px;
    width: 120px;
    border-radius: var(--gc-btn-radius);
}

.gc-skeleton-button-sm {
    height: var(--gc-btn-sm-min-height);
    width: 100px;
}

/* Open-section canvas header (Figma 1277:18913) — title H4 + bordered CTA 32px */
.gc-skeleton-open-section-title {
    width: 7.5rem;
    height: var(--type-heading-h4-size);
    border-radius: var(--radius-8);
}

.gc-skeleton-open-section-title--wide {
    width: 10rem;
}

.gc-skeleton-open-section-action {
    width: 6.5rem;
    height: var(--gc-btn-sm-min-height);
    border-radius: var(--gc-btn-sm-radius);
}

/* Канал → материалы: плейсхолдер под gc-btn-outline gc-btn-sm «Добавить» */
.gc-skeleton.gc-skeleton-channel-materials-add-btn {
    box-sizing: border-box;
    width: min(7.5rem, 46%);
    height: var(--gc-btn-sm-min-height);
    max-width: 8.75rem;
    border-radius: var(--radius-8);
    flex-shrink: 0;
}

.gc-skeleton-button-lg {
    height: 52px;
    width: 140px;
}

.gc-skeleton-button-full {
    width: 100%;
}

/* ===================================
   Card Skeleton
   =================================== */

.gc-skeleton-card {
    background: var(--surface-panel);
    border: none;
    border-radius: 12px;
    padding: 1.5rem;
}

.gc-skeleton-card-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.gc-skeleton-card-body {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.gc-skeleton-card-footer {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-subtle);
}

/* ===================================
   List Item Skeleton
   =================================== */

.gc-skeleton-list-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: var(--surface-panel);
    border: none;
    border-radius: var(--radius-8);
    margin-bottom: 0.75rem;
}

.gc-skeleton-list-item:last-child {
    margin-bottom: 0;
}

.gc-skeleton-list-item-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* ===================================
   Table Skeleton
   =================================== */

.gc-skeleton-table {
    width: 100%;
}

.gc-skeleton-table-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 1rem;
    padding: 1rem;
    border-bottom: 1px solid var(--border-subtle);
}

.gc-skeleton-table-cell {
    height: 1rem;
}

/* ===================================
   Form Skeleton
   =================================== */

.gc-skeleton-search-field {
    display: block;
    width: 100%;
    height: var(--space-product-40);
    border-radius: var(--radius-12);
}

.gc-skeleton-search-tabs {
    display: flex;
    gap: var(--space-4);
    padding-block: var(--space-3);
}

.gc-skeleton-input {
    height: 48px;
    border-radius: var(--radius-12);
    margin-bottom: 1rem;
}

.gc-skeleton-textarea {
    height: 120px;
    border-radius: var(--radius-12);
    margin-bottom: 1rem;
}

/* ===================================
   Pulse Variant (alternative animation)
   =================================== */

.gc-skeleton-pulse {
    animation: skeleton-fade 1.5s ease-in-out infinite;
}

@keyframes skeleton-fade {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* ===================================
   Wave Variant
   =================================== */

.gc-skeleton-wave {
    position: relative;
    overflow: hidden;
}

.gc-skeleton-wave::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent 0%,
        color-mix(in srgb, var(--text-on-solid) 10%, transparent) 50%,
        transparent 100%
    );
    animation: skeleton-wave 1.5s ease-in-out infinite;
}

@keyframes skeleton-wave {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* ===================================
   Event show (<x-skeleton.event-show />)
   См. resources/views/events/show.blade.php, partials/_loadout_sidebar, _participant_card
   =================================== */

.gc-skeleton-sidebar-info-name {
    width: 6.875rem;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
}

.gc-skeleton-sidebar-info-role {
    width: 5rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
}

/* Плашка «лоадаут» в event-show: без шимера gc-skeleton (градиент анимации), только ровная заливка */
.gc-skeleton.gc-skeleton-sidebar-profile-banner-fill {
    position: absolute;
    inset: 0;
    border-radius: 0;
    animation: none;
    background: var(--surface-subtle);
    background-size: auto;
}

.gc-skeleton.gc-skeleton-sidebar-profile-name {
    width: 70%;
    max-width: 12rem;
    height: var(--font-size-15);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-sidebar-profile-role {
    width: 45%;
    max-width: 6rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-sidebar-profile-chevron {
    width: var(--font-size-18);
    height: var(--font-size-18);
    border-radius: var(--radius-8);
}

/* Icon/square media slot: один shimmer-слой на frame (lists.css грузится после — specificity ≥ 0,3,0) */
:is(.gc-list-media-icon, .gc-list-media-square, .gc-list-media-date).gc-skeleton-media-slot:is(.gc-skeleton, :has(> .gc-skeleton)) {
    padding: 0;
    --gc-list-media-icon-padding: 0;
    --gc-list-media-mask-inset: 0;
    border: none;
}

:is(.gc-list-media-icon, .gc-list-media-square, .gc-list-media-date).gc-skeleton-media-slot:not(.gc-skeleton):has(> .gc-skeleton) {
    background: transparent;
}

:is(.gc-list-media-icon, .gc-list-media-square, .gc-list-media-date).gc-skeleton-media-slot.gc-skeleton {
    display: flex;
    flex-shrink: 0;
    background: linear-gradient(
        90deg,
        var(--surface-subtle) 0%,
        var(--surface-control) 50%,
        var(--surface-subtle) 100%
    );
    background-size: 200% 100%;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
    :is(.gc-list-media-icon, .gc-list-media-square, .gc-list-media-date).gc-skeleton-media-slot.gc-skeleton {
        animation: none;
        background: var(--surface-subtle);
    }
}

/* Legacy nested Bone — скрываем, если shimmer на frame */
:is(.gc-list-media-icon, .gc-list-media-square, .gc-list-media-date).gc-skeleton-media-slot.gc-skeleton > .gc-skeleton {
    display: none;
}

.gc-skeleton.gc-skeleton-event-sidebar-media-icon {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: var(--radius-8);
}

/* Шеврон строки лоадаута — плейсхолдер вместо caret */
.gc-skeleton.gc-skeleton-sidebar-row-chevron {
    width: var(--font-size-14);
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    flex-shrink: 0;
}

/* Заголовок пула «Ищут транспорт» — точка-индикатор без gc-status-indicator */
.gc-skeleton.gc-skeleton-event-pool-header-dot {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

/* Event show — three-col subheader / hero (docs/ui-kit/THREE_COL_LAYOUT.md) */
.gc-skeleton.gc-skeleton-event-subheader-title {
    width: 6rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-subheader-badge {
    width: 2.75rem;
    height: 1.5rem;
    border-radius: var(--radius-10);
    margin: 0;
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-event-subheader-participants-count {
    width: 5.5rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-subheader-icon-btn {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-10);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-subheader-actions-btn {
    width: 6.5rem;
    height: 32px;
    border-radius: var(--radius-10);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-hero-title {
    width: min(72%, 16rem);
    height: var(--type-ui-caption-size);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-hero-date {
    width: min(55%, 10rem);
    height: var(--type-heading-h3-size);
    border-radius: var(--radius-8);
    margin: 0;
}

/* Упрощённые chip-пилюли (hero roster / program stats) — без icon+2 строки */
.gc-skeleton.gc-skeleton-event-stat-chip {
    width: 5.5rem;
    height: 2.5rem;
    border-radius: var(--radius-12);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-program-title {
    width: 70%;
    max-width: 16rem;
}

.gc-skeleton.gc-skeleton-event-program-title--b {
    width: 55%;
    max-width: 12rem;
}

.gc-skeleton.gc-skeleton-event-participant-name {
    width: 8rem;
    max-width: 70%;
}

.gc-skeleton.gc-skeleton-event-roster-tabs {
    display: block;
    width: 100%;
    height: 2.75rem;
    border-radius: var(--radius-full);
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-add-search {
    display: block;
    width: 100%;
    height: 2.5rem;
    border-radius: var(--radius-12);
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-participant-avatar {
    width: var(--gc-list-media-size-base);
    height: var(--gc-list-media-size-base);
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

.gc-skeleton-event-participant-actions {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-event-participant-btn {
    width: var(--gc-dropdown-icon-toggle-size-sm);
    height: var(--gc-dropdown-icon-toggle-size-sm);
    border-radius: var(--gc-btn-icon-radius-sm);
}

.gc-skeleton.gc-skeleton-event-participant-weapon-tag {
    width: 4.5rem;
    height: 1.375rem;
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-event-participant-weapon-tag--b {
    width: 5.75rem;
}

.gc-skeleton.gc-skeleton-event-roster-weapon-mini {
    width: 100%;
    min-width: 0;
    aspect-ratio: 16 / 9;
    border-radius: var(--radius-16);
}

.gc-skeleton.gc-skeleton-event-roster-weapon-title {
    width: 100%;
    margin-inline: 0;
}

.gc-skeleton.gc-skeleton-event-transport-plate {
    min-width: 3.25rem;
    height: 1.5rem;
    border-radius: var(--radius-8);
}

/* Rail about / loadout rows — ширины без inline (partials/event-show-sidebar-stack) */
.gc-skeleton.gc-skeleton-event-rail-row-title {
    width: 5rem;
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-rail-row-title-b {
    width: 6rem;
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-rail-row-meta {
    width: 3.5rem;
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-rail-row-meta-b {
    width: 4rem;
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-loadout-class-chip {
    width: 3.5rem;
    height: 1.5rem;
    border-radius: var(--radius-12);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-event-loadout-class-chip--b {
    width: 4.25rem;
}

.gc-skeleton.gc-skeleton-event-transport-crew-avatar {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

.split-left .sidebar-content[aria-hidden="true"],
.split-left[aria-hidden="true"] .sidebar-content {
    pointer-events: none;
}

/* ===================================
   Profile show (<x-skeleton.profile-show />)
   Верстка синхронизирована с resources/views/profile/show.blade.php
   =================================== */

.catalog-sidebar .catalog-nav[aria-hidden="true"] {
    pointer-events: none;
}

.gc-skeleton-profile-cover-fill {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    display: block;
}

.gc-skeleton.gc-skeleton-profile-avatar-figma {
    width: var(--gc-profile-hero-avatar-size, 88px);
    height: var(--gc-profile-hero-avatar-size, 88px);
    border-radius: var(--radius-full);
    border: none;
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-profile-menu-btn {
    width: var(--gc-dropdown-icon-toggle-size-sm);
    height: var(--gc-dropdown-icon-toggle-size-sm);
    border-radius: var(--gc-btn-icon-radius-sm);
    flex-shrink: 0;
}

.gc-skeleton-profile-header-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.gc-profile-hero .gc-skeleton-profile-header-stack {
    gap: var(--space-product-2);
    padding-top: 0;
}

.gc-skeleton-profile-name-line {
    width: 10rem;
    max-width: 70%;
    height: var(--type-heading-h4-size);
    border-radius: var(--radius-8);
    display: block;
}

.gc-skeleton-profile-meta-line {
    width: 12rem;
    max-width: 85%;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    display: block;
}

.gc-skeleton.gc-skeleton-profile-bio-line {
    width: 100%;
    height: calc(var(--font-size-14) * 2 + var(--space-1));
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-profile-nav-chip {
    width: 7.5rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-profile-stat-chip {
    width: 5.5rem;
    height: calc(var(--font-size-14) * calc(22 / 14) + var(--space-1) * 2);
    border-radius: var(--radius-full);
}

.gc-skeleton.gc-skeleton-profile-stat-value {
    display: inline-block;
    width: 1.5rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    vertical-align: middle;
}

.gc-skeleton.gc-skeleton-profile-stat-label {
    display: inline-block;
    width: 3.75rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    vertical-align: middle;
}

.gc-skeleton.gc-skeleton-profile-weapons-chip-title {
    display: inline-block;
    width: 6.75rem;
    height: var(--type-heading-h4-size);
    border-radius: var(--radius-8);
    vertical-align: middle;
}

.gc-skeleton.gc-skeleton-profile-weapons-chip-meta {
    display: inline-block;
    width: 4.25rem;
    height: var(--type-body-size);
    border-radius: var(--radius-8);
    vertical-align: middle;
}

/* Pill «+N предстоящих» под стопкой — одна кость, без gc-chip и caret */
.gc-skeleton.gc-skeleton-profile-events-stack-chip {
    display: inline-block;
    width: 7.5rem;
    height: calc(var(--space-2) * 2 + var(--type-ui-caption-line-height));
    border-radius: var(--radius-full);
    vertical-align: middle;
}

.gc-skeleton.gc-skeleton-profile-weapons-empty-title {
    display: block;
    width: 7rem;
    max-width: 100%;
    height: var(--font-size-16);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-profile-weapons-empty-desc {
    display: block;
    width: 100%;
    max-width: 18rem;
    height: calc(var(--font-size-14) * 2 + var(--space-1));
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-profile-top3-aside {
    width: 4.75rem;
    height: 1.5rem;
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-stat-top3-inner {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 7.5rem;
    gap: var(--space-4);
}

.gc-skeleton-profile-stat-top3-label {
    width: 3.5rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-stat-top3-value {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.gc-skeleton-profile-stat-top3-icon {
    width: 1.25rem;
    height: 1.25rem;
    border-radius: var(--radius-8);
    flex-shrink: 0;
}

.gc-skeleton-profile-stat-top3-num {
    width: 3rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-hit-zones-title {
    width: 5.5rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-hit-zones-aside {
    width: 4.5rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-hit-zones-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-4);
}

.gc-skeleton-profile-hit-zone-cell {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-2) var(--space-2);
    border-radius: var(--radius-12);
    background: var(--surface-control);
    min-width: 0;
}

.gc-skeleton-profile-hit-zone-chart {
    width: 100%;
    height: 2.25rem;
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-hit-zone-label {
    width: 55%;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-widget-title {
    width: 5rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-widget-title--top3 {
    width: 2.75rem;
}

.gc-skeleton-profile-widget-title--wide {
    width: 6.875rem;
}

.gc-skeleton-profile-widget-title--month {
    width: 4.5rem;
    height: var(--font-size-14);
}

.gc-skeleton-profile-community-promo {
    width: min(100%, 546px);
    height: 95px;
    margin-inline: auto;
    border-radius: var(--radius-16);
}

.gc-skeleton-profile-subpage-rows {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.gc-skeleton-profile-subpage-row {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding-block: var(--space-2);
    border-bottom: 1px solid var(--border-subtle);
}

.gc-skeleton-profile-subpage-row-icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
}

.gc-skeleton-profile-subpage-row-lines {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.gc-skeleton-profile-subpage-row-line {
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-profile-rail-nav-icon {
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    flex-shrink: 0;
}

.profile-rail-person-tile--section .profile-rail-person-tile__glyph .gc-skeleton.gc-skeleton-profile-rail-nav-icon {
    width: var(--space-6);
    height: var(--space-6);
    border-radius: 50%;
}

/* Live avatar = --gc-list-media-size + круг; .gc-skeleton width:100% / radius-8 иначе квадрат. */
.gc-skeleton.catalog-nav-avatar,
.gc-skeleton.gc-list-avatar {
    width: var(--gc-list-media-size);
    height: var(--gc-list-media-size);
    border-radius: 50%;
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-profile-rail-burn-bar {
    display: block;
    width: 100%;
    height: var(--gc-progress-track-height);
    border-radius: var(--radius-full);
    flex: 1 1 auto;
}

.gc-skeleton.gc-skeleton-profile-rail-nav-label {
    width: 6.5rem;
    max-width: 100%;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-profile-rail-nav-meta {
    width: 4.5rem;
    max-width: 100%;
    height: var(--font-size-12);
    border-radius: var(--radius-8);
}

/* App rail — текстовое меню: пилюли как .gc-app-rail-menu-item, не icon+строка */
.gc-skeleton.gc-skeleton-app-rail-section-label {
    display: block;
    width: 5rem;
    max-width: 100%;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-app-rail-menu-pill {
    display: block;
    align-self: flex-start;
    max-width: 100%;
    height: calc(
        var(--gc-app-rail-item-padding, calc(var(--space-2) + var(--space-1))) * 2
        + var(--font-size-15)
        + var(--space-1)
    );
    border-radius: var(--radius-12);
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-app-rail-menu-pill--a { width: 92%; }
.gc-skeleton.gc-skeleton-app-rail-menu-pill--b { width: 78%; }
.gc-skeleton.gc-skeleton-app-rail-menu-pill--c { width: 86%; }
.gc-skeleton.gc-skeleton-app-rail-menu-pill--d { width: 70%; }
.gc-skeleton.gc-skeleton-app-rail-menu-pill--e { width: 84%; }

.gc-skeleton-profile-subpage-row-line--a { width: 60%; }
.gc-skeleton-profile-subpage-row-line--b { width: 50%; }
.gc-skeleton-profile-subpage-row-line--c { width: 70%; }
.gc-skeleton-profile-subpage-row-line--d { width: 45%; }
.gc-skeleton-profile-subpage-row-line--e { width: 65%; }

.gc-skeleton-profile-subpage-row-meta {
    width: 30%;
    height: var(--font-size-12);
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-subpage-row-action {
    width: 50px;
    height: 20px;
    border-radius: var(--radius-8);
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-profile-weapon-caption {
    width: 80%;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-weapon-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.gc-skeleton.gc-skeleton-profile-weapon-type {
    width: 100%;
    height: 2rem;
    border-radius: var(--radius-16) var(--radius-16) 0 0;
}

.gc-skeleton-profile-weapon-media {
    width: 100%;
    aspect-ratio: 284 / 159;
    border-radius: var(--radius-16);
}

.gc-skeleton-profile-bars-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.gc-skeleton-profile-bar-row {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

.gc-skeleton-profile-bar-label {
    width: 5.625rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    flex-shrink: 0;
}

.gc-skeleton-profile-bar-track {
    height: var(--font-size-13);
    border-radius: 999px;
    flex: 0 0 auto;
}

.gc-skeleton-profile-bar-track--a {
    width: 65%;
}

.gc-skeleton-profile-bar-track--b {
    width: 45%;
}

.gc-skeleton-profile-bar-track--c {
    width: 80%;
}

.gc-skeleton-profile-bar-track--d {
    width: 30%;
}

.gc-skeleton-profile-feed-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.gc-skeleton-profile-feed-row {
    display: flex;
    gap: var(--space-2);
    align-items: flex-start;
}

.gc-skeleton-profile-feed-avatar {
    width: var(--gc-list-media-size);
    height: var(--gc-list-media-size);
    flex-shrink: 0;
}

.gc-skeleton-profile-feed-lines {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.gc-skeleton.gc-skeleton-profile-feed-line-primary {
    height: var(--font-size-14);
    width: 70%;
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-profile-feed-line-primary--b {
    width: 55%;
}

.gc-skeleton.gc-skeleton-profile-feed-line-primary--c {
    width: 80%;
}

.gc-skeleton.gc-skeleton-profile-feed-line-primary--d {
    width: 60%;
}

.gc-skeleton.gc-skeleton-profile-feed-line-meta {
    height: var(--font-size-13);
    width: 35%;
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-event-index-card {
    display: flex;
    gap: var(--space-2);
    width: 100%;
    min-height: var(--gc-event-index-card-row-height);
}

.gc-skeleton-profile-event-index-card-date {
    flex: 0 0 var(--gc-event-index-card-date-width);
    height: var(--gc-event-index-card-row-height);
    border-radius: var(--radius-16);
}

.gc-skeleton-profile-event-index-card-main {
    flex: 1 1 auto;
    height: var(--gc-event-index-card-row-height);
    border-radius: var(--radius-16);
}

.gc-skeleton-profile-event-index-card--b .gc-skeleton-profile-event-index-card-main {
    width: 72%;
}

.gc-skeleton-profile-event-index-card--c .gc-skeleton-profile-event-index-card-main {
    width: 58%;
}

/* /profile — pill «N предстоящих событий» под стопкой */
.gc-skeleton-profile-upcoming-pill {
    align-self: flex-start;
    width: 11.5rem;
    height: calc(var(--space-2) * 2 + var(--font-size-13));
    border-radius: var(--radius-full);
}

.gc-skeleton-profile-event-card-v2-1--compact {
    aspect-ratio: var(--gc-event-index-card-cover-aspect);
}

.gc-skeleton-profile-event-card-v2-1--compact:not(.gc-event-index-card) {
    min-height: 0;
    height: auto;
    aspect-ratio: var(--gc-event-index-card-cover-aspect);
}

/* @deprecated — chip сверху; оставлен для weapons/stages skeleton */
.gc-skeleton-profile-upcoming-chip {
    align-self: flex-start;
    width: 10.5rem;
    height: calc(var(--space-2) * 2 + var(--type-ui-caption-line-height));
    border-radius: var(--radius-full);
}

.gc-skeleton-profile-event-card-v2-1 {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    min-height: 0;
    height: auto;
    aspect-ratio: var(--gc-event-index-card-cover-aspect);
    padding: var(--space-4);
    border-radius: var(--radius-16);
    background: var(--gc-event-card-surface);
    border: none;
    box-sizing: border-box;
}

.gc-skeleton-profile-event-card-v2-1-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-2);
    width: 100%;
}

.gc-skeleton-profile-event-card-v2-1-date-block {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.gc-skeleton-profile-event-card-v2-1-date {
    width: 4.5rem;
    height: var(--font-size-15);
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-event-card-v2-1-schedule {
    width: 7.5rem;
    max-width: 100%;
    height: var(--font-size-13);
    border-radius: var(--radius-full);
}

.gc-skeleton-profile-event-card-v2-1-price {
    width: 3.25rem;
    height: var(--font-size-13);
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

.gc-skeleton-profile-event-card-v2-1-bottom {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    width: 100%;
    min-width: 0;
}

.gc-skeleton-profile-event-card-v2-1-context {
    width: min(100%, 11rem);
    height: var(--font-size-13);
    border-radius: var(--radius-full);
}

.gc-skeleton-profile-event-card-v2-1-title {
    width: min(100%, 14rem);
    height: var(--gc-event-card-title-size);
    border-radius: var(--radius-8);
}

/* /events — кости kind-табов в сабхедере (Лента / Мероприятия / Челленджи / Эпики) */
.gc-skeleton.gc-skeleton-events-index-tab-label {
    height: var(--font-size-14);
    border-radius: var(--radius-full);
    margin: 0;
}

.gc-skeleton.gc-skeleton-events-index-tab-label--feed {
    width: 2.75rem;
}

.gc-skeleton.gc-skeleton-events-index-tab-label--events {
    width: 6.5rem;
}

.gc-skeleton.gc-skeleton-events-index-tab-label--challenges {
    width: 5.5rem;
}

.gc-skeleton.gc-skeleton-events-index-tab-label--epics {
    width: 3rem;
}

.gc-skeleton.gc-skeleton-events-index-tab-label--all {
    width: 1.75rem;
}

.gc-skeleton.gc-skeleton-events-index-tab-label--org {
    width: 5.5rem;
}

.gc-skeleton.gc-skeleton-events-index-tab-label--part {
    width: 4.75rem;
}

.gc-skeleton.gc-skeleton-events-index-section-meta {
    width: 4.5rem;
    height: var(--type-body-size);
    border-radius: var(--radius-full);
}

.gc-skeleton.gc-skeleton-events-index-weapon-chip {
    width: 3.5rem;
    height: calc(var(--type-ui-caption-line-height) + var(--space-2));
    border-radius: var(--radius-16);
    flex-shrink: 0;
}

/* /feed context rail — кости GcChip sm; /channels — md (28) */
.gc-skeleton.gc-skeleton-events-index-rail-chip {
    display: inline-flex;
    flex-shrink: 0;
    width: 4.5rem;
    height: var(--space-6);
    border-radius: var(--radius-full);
}

.channels-index-rail-tags .gc-skeleton.gc-skeleton-events-index-rail-chip {
    /* md chip: 28 = space/6 + space/1 */
    height: calc(var(--space-6) + var(--space-1));
}

.gc-skeleton.gc-skeleton-events-index-rail-chip--a { width: 2.75rem; }
.gc-skeleton.gc-skeleton-events-index-rail-chip--b { width: 5.25rem; }
.gc-skeleton.gc-skeleton-events-index-rail-chip--c { width: 4.75rem; }
.gc-skeleton.gc-skeleton-events-index-rail-chip--d { width: 2.75rem; }
.gc-skeleton.gc-skeleton-events-index-rail-chip--e { width: 3.25rem; }
.gc-skeleton.gc-skeleton-events-index-rail-chip--f { width: 3.25rem; }
.gc-skeleton.gc-skeleton-events-index-rail-chip--g { width: 4.75rem; }

/* /events index cards — catalog border на placeholder surface (visit + boot) */
.gc-inertia-visit-skeleton .gc-card-glow-shell--event-index > .gc-event-index-card-v2-1__surface--placeholder,
#gc-inertia-boot .gc-card-glow-shell--event-index > .gc-event-index-card-v2-1__surface--placeholder,
.gc-page-loader > [id$="-s"] .gc-card-glow-shell--event-index > .gc-event-index-card-v2-1__surface--placeholder,
.gc-inertia-visit-skeleton .gc-card-glow-shell--event-index > .gc-event-index-card-v2-1__card,
#gc-inertia-boot .gc-card-glow-shell--event-index > .gc-event-index-card-v2-1__card,
.gc-page-loader > [id$="-s"] .gc-card-glow-shell--event-index > .gc-event-index-card-v2-1__card {
    border: 1px solid var(--gc-card-glow-rest-border);
    border-radius: var(--radius-16);
    box-shadow: var(--gc-card-glow-rest-shadow);
}

.gc-skeleton.gc-skeleton-events-index-empty-image,
.gc-skeleton.gc-skeleton-empty-illustration {
    width: 7.5rem;
    height: 7.5rem;
    max-width: 100%;
    border-radius: var(--radius-16);
    margin: 0 auto;
    flex-shrink: 0;
}

@media (max-width: 576px) {
    .gc-skeleton.gc-skeleton-events-index-empty-image,
    .gc-skeleton.gc-skeleton-empty-illustration {
        width: 6rem;
        height: 6rem;
    }
}

.gc-skeleton.gc-skeleton-events-index-empty-title {
    width: 10rem;
    max-width: 100%;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
    margin-inline: auto;
}

.gc-skeleton.gc-skeleton-events-index-empty-desc {
    width: 16rem;
    max-width: 100%;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    margin-inline: auto;
}

.gc-skeleton.gc-skeleton-events-index-empty-action {
    width: 12rem;
    height: 2.5rem;
    border-radius: var(--radius-12);
    margin-inline: auto;
}

/* Пустой модуль rail: CTA короче, чем в fullpage empty-state */
.gc-context-rail-module .gc-skeleton.gc-skeleton-events-index-empty-action {
    width: 9rem;
    height: 2rem;
}

.profile-nastr-strip .profile-hit-zone-cell--placeholder .profile-hit-zone-skeleton-bar.gc-skeleton {
    background-color: transparent;
}

.gc-skeleton-profile-nav-icon {
    width: 1.125rem;
    height: 1.125rem;
    border-radius: var(--radius-8);
    flex-shrink: 0;
}

.gc-skeleton-profile-nav-label {
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton-profile-nav-label--a {
    width: 4.25rem;
}

.gc-skeleton-profile-nav-label--b {
    width: 5.5rem;
}

.gc-skeleton-profile-nav-label--c {
    width: 6.25rem;
}

.gc-skeleton-profile-nav-label--d {
    width: 4.75rem;
}

.gc-skeleton-profile-nav-label--e {
    width: 7.5rem;
}

.gc-skeleton-profile-nav-label--f {
    width: 8rem;
}

.gc-skeleton-profile-nav-label--g {
    width: 8.75rem;
}

.gc-skeleton-profile-nav-group-title-line {
    width: 5rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-profile-channel-avatar {
    width: var(--gc-list-media-size);
    height: var(--gc-list-media-size);
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-profile-channel-title {
    width: 70%;
    height: var(--font-size-15);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-profile-channel-sub {
    width: 40%;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
}

/* ===================================
   Channel subpage (<x-skeleton.channel-subpage />)
   Синхрон с community-layout + gc-panel--roster + gc-event-feed
   =================================== */

.gc-skeleton-channel-invite-shim {
    pointer-events: none;
}

.gc-skeleton-channel-sidebar-cover {
    height: 88px;
    position: relative;
    overflow: hidden;
}

.gc-skeleton.gc-skeleton-channel-sidebar-cover-fill {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-sidebar-avatar-inner {
    width: 64px;
    height: 64px;
    box-sizing: border-box;
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-channel-sidebar-name {
    width: 62%;
    max-width: 12rem;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-channel-sidebar-pill {
    width: 5.5rem;
    height: var(--font-size-14);
    border-radius: 999px;
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-channel-sidebar-meta {
    width: 6.75rem;
    max-width: 70%;
    margin-bottom: 0;
}

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

.gc-skeleton.gc-skeleton-channel-sidebar-btn {
    width: 100%;
    height: 36px;
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-nav-w-a {
    width: 5.75rem;
}

.gc-skeleton.gc-skeleton-channel-nav-w-b {
    width: 4.875rem;
}

.gc-skeleton.gc-skeleton-channel-nav-w-c {
    width: 5.375rem;
}

.gc-skeleton.gc-skeleton-channel-nav-w-d {
    width: 6.375rem;
}

.gc-skeleton.gc-skeleton-channel-nav-w-e {
    width: 5.5rem;
}

.gc-skeleton.gc-skeleton-channel-nav-w-f {
    width: 5.875rem;
}

.gc-skeleton.gc-skeleton-channel-nav-group-title {
    width: 6rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-channel-panel-title {
    width: 9.25rem;
    max-width: 55%;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
}

.gc-skeleton.gc-skeleton-channel-panel-title--wide {
    width: 14rem;
    max-width: 75%;
}

.gc-skeleton.gc-skeleton-channel-panel-title--quarter {
    width: 11rem;
    max-width: 60%;
}

.gc-skeleton-channel-header-spread {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    width: 100%;
    min-width: 0;
}

.gc-skeleton.gc-skeleton-channel-header-action-btn {
    width: 6.25rem;
    height: 32px;
    border-radius: var(--radius-8);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton-channel-person-text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.gc-skeleton.gc-skeleton-channel-line-title {
    height: var(--font-size-15);
    border-radius: var(--radius-8);
    max-width: 100%;
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-line-title--a {
    width: 62%;
}

.gc-skeleton.gc-skeleton-channel-line-title--b {
    width: 48%;
}

.gc-skeleton.gc-skeleton-channel-line-title--c {
    width: 74%;
}

.gc-skeleton.gc-skeleton-channel-line-title--d {
    width: 56%;
}

.gc-skeleton.gc-skeleton-channel-line-title--e {
    width: 68%;
}

.gc-skeleton.gc-skeleton-channel-line-meta {
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    max-width: 100%;
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-line-meta--a {
    width: 38%;
}

.gc-skeleton.gc-skeleton-channel-line-meta--b {
    width: 44%;
}

.gc-skeleton.gc-skeleton-channel-line-meta--c {
    width: 32%;
}

.gc-skeleton.gc-skeleton-channel-row-action-btn {
    width: 4.75rem;
    height: 32px;
    border-radius: var(--radius-8);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-row-action-btn--narrow {
    width: 4.25rem;
}

.gc-skeleton.gc-skeleton-channel-row-action-btn--wide {
    width: 5.5rem;
}

.gc-skeleton.gc-skeleton-channel-meta-pill {
    width: 3rem;
    height: var(--space-8);
    border-radius: var(--radius-full);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-meta-pill--wide {
    width: 4.25rem;
}

.event-participant-card.gc-skeleton-channel-card-muted,
.gc-interactive-row.gc-skeleton-channel-card-muted {
    cursor: default;
    pointer-events: none;
}

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

.event-participant-card.gc-skeleton-channel-card-muted:hover,

.gc-interactive-row.gc-skeleton-channel-card-muted:hover {
    background: transparent;
}
}

.gc-skeleton.gc-skeleton-channel-invite-chev-fallback {
    width: var(--font-size-16);
    height: var(--font-size-16);
    border-radius: var(--radius-8);
    display: block;
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-invite-title {
    width: 8.5rem;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-invite-badge {
    width: 2rem;
    height: var(--space-6);
    border-radius: var(--radius-full);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-info-heading {
    width: 6.5rem;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
}

.gc-skeleton-channel-prose {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
}

.gc-skeleton.gc-skeleton-channel-prose-line {
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-prose-line--a {
    width: 100%;
}

.gc-skeleton.gc-skeleton-channel-prose-line--b {
    width: 92%;
}

.gc-skeleton.gc-skeleton-channel-prose-line--c {
    width: 88%;
}

.gc-skeleton.gc-skeleton-channel-prose-line--d {
    width: 72%;
}

.gc-skeleton.gc-skeleton-channel-prose-line--e {
    width: 40%;
}

.gc-skeleton.gc-skeleton-channel-month-toggle {
    width: 8.75rem;
    height: var(--font-size-15);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-upcoming-avatar {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-event-date-line {
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-event-sub-line {
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-line-shift--0 {
    width: 72%;
}

.gc-skeleton.gc-skeleton-channel-line-shift--1 {
    width: 58%;
}

.gc-skeleton.gc-skeleton-channel-line-shift--2 {
    width: 65%;
}

.gc-skeleton.gc-skeleton-channel-line-shift--3 {
    width: 88%;
}

.gc-skeleton.gc-skeleton-channel-line-shift--4 {
    width: 76%;
}

.gc-skeleton.gc-skeleton-channel-line-shift--5 {
    width: 70%;
}

.gc-skeleton-channel-seasons-panel-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
}

.gc-skeleton-channel-seasons-header-block {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.gc-skeleton.gc-skeleton-channel-seasons-title {
    width: 11rem;
    max-width: 70%;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-seasons-title--display {
    width: 14rem;
    height: var(--type-heading-h1-line-height);
}

.gc-skeleton.gc-skeleton-channel-seasons-badge {
    width: 6.75rem;
    height: var(--font-size-16);
    border-radius: var(--radius-8);
    margin: 0;
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-channel-seasons-icon-btn {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-8);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton-channel-top3-grid {
    min-height: 0;
}

.gc-skeleton.gc-skeleton-channel-top3-cell {
    width: min(100%, var(--podium-avatar-size));
    aspect-ratio: 1 / 1;
    height: auto;
    min-height: 0;
    border-radius: var(--radius-full);
    margin-inline: auto;
    display: block;
}


.gc-skeleton-channel-ranking-row {
    pointer-events: none;
    cursor: default;
}

.gc-skeleton.gc-skeleton-channel-rank-badge {
    position: absolute;
    bottom: calc(var(--space-1) * -1);
    right: calc(var(--space-1) * -1);
    width: var(--space-6);
    height: var(--space-6);
    border-radius: var(--radius-full);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-rank-badge.gc-skeleton-channel-rank-badge--lead {
    position: static;
    bottom: auto;
    right: auto;
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-channel-footer-btn {
    width: 8.5rem;
    height: 40px;
    border-radius: var(--radius-8);
    margin: 0;
}

/* Pill-чипы табов в .gc-mobile-nav-top — как .gc-tab-link (radius-full, не radius-8 базового .gc-skeleton) */
.gc-skeleton.gc-skeleton-mobile-nav-tab {
    flex: 1 1 0;
    min-width: 0;
    height: var(--gc-mobile-nav-tab-chip-height);
    border-radius: var(--radius-full);
    margin: 0;
}

.gc-skeleton.gc-skeleton-mobile-nav-tab--narrow {
    flex: 0 1 28%;
    max-width: 4.5rem;
}

/* Дата ленты: .gc-skeleton { width: 100% } растягивал капсулу на колонку. */
.gc-channel-feed-day-marker > .gc-skeleton.gc-channel-feed-day-marker__badge {
    width: 6.5rem;
    max-width: 100%;
    height: calc(var(--space-1) * 2 + var(--font-size-13) * 1.2);
    margin: 0;
    flex: 0 0 auto;
    border-radius: var(--radius-full);
}

/* Лента: реакции в .gc-post-chips. Пустой .gc-skeleton-text схлопывается в flex-ряду. */
.gc-skeleton.gc-skeleton-post-comment {
    width: calc(var(--space-8) + var(--space-6));
    height: var(--gc-btn-sm-min-height);
    border-radius: var(--radius-full);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-post-reaction-trigger {
    width: var(--gc-dropdown-icon-toggle-size-sm);
    height: var(--gc-dropdown-icon-toggle-size-sm);
    border-radius: var(--radius-full);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-post-chip {
    width: calc(var(--space-8) + var(--space-3));
    height: calc(var(--space-6) + var(--space-1));
    border-radius: var(--radius-full);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-post-chip--short {
    width: calc(var(--space-8) + var(--space-1));
}

.gc-skeleton.gc-skeleton-channel-footer-discussion-line {
    width: min(42%, 12rem);
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton-channel-past-seasons-label {
    padding: 0;
    margin: 0;
    border: 0;
}

.gc-skeleton.gc-skeleton-channel-past-seasons-line {
    width: 10rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    margin: 0;
}

.season-avatar-stack > .gc-skeleton.gc-skeleton-season-archive-avatar {
    width: 28px;
    height: 28px;
    margin: 0 0 0 calc(var(--space-2) * -1);
    flex-shrink: 0;
    box-shadow: 0 0 0 2px var(--surface-panel);
}

.season-avatar-stack > .gc-skeleton.gc-skeleton-season-archive-avatar:first-child {
    margin-left: 0;
}

.gc-skeleton.gc-skeleton-season-archive-caret {
    width: var(--space-4);
    height: var(--space-4);
    border-radius: var(--radius-4);
    margin: 0;
    flex-shrink: 0;
}

.gc-skeleton.gc-skeleton-channel-subs-pending-title {
    width: 5.5rem;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-subs-types-title {
    width: 10rem;
    max-width: 55%;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-subs-types-title--solo {
    max-width: 100%;
}

.gc-skeleton.gc-skeleton-channel-subs-active-title {
    width: 6.5rem;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton-channel-pricing-bottom {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.gc-skeleton.gc-skeleton-channel-pricing-icon {
    width: var(--font-size-30);
    height: var(--font-size-30);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-pricing-subscribers {
    width: 6rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-count-caret-btn,
.gc-skeleton.gc-skeleton-pending-reject,
.gc-skeleton.gc-skeleton-pending-accept {
    height: var(--gc-btn-sm-min-height);
    border-radius: var(--gc-btn-sm-radius);
    margin: 0;
}

.gc-skeleton.gc-skeleton-count-caret-btn--types {
    width: 11.533rem;
}

.gc-skeleton.gc-skeleton-count-caret-btn--vouchers {
    width: 12.867rem;
}

.gc-skeleton.gc-skeleton-count-caret-btn--discounts {
    width: 14.267rem;
}

.gc-skeleton.gc-skeleton-pending-reject {
    width: 6.667rem;
}

.gc-skeleton.gc-skeleton-pending-accept {
    width: 5.6rem;
}

.gc-skeleton.gc-skeleton-channel-pricing-name {
    width: 70%;
    height: var(--font-size-15);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-pricing-price {
    width: 5rem;
    height: var(--font-size-20);
    border-radius: var(--radius-8);
    margin: 0;
}

/* Герой типа и абонемента: цена 32, короткие пары, язычок, полоса визитов */
.gc-skeleton.channel-sidebar-card-cover__img {
    background: linear-gradient(
        90deg,
        var(--surface-subtle) 0%,
        var(--surface-control) 50%,
        var(--surface-subtle) 100%
    );
    background-size: 200% 100%;
    border-radius: 0;
}

.gc-skeleton.gc-skeleton-channel-identity-name {
    width: 7rem;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-identity-role {
    width: 4.5rem;
    height: var(--font-size-12);
    border-radius: var(--radius-full);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-identity-slug {
    width: 4rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-identity-members {
    width: 5.5rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-tag {
    width: 5.75rem;
    height: var(--font-size-20);
    border-radius: var(--radius-full);
    margin: 0;
}

.gc-skeleton.gc-skeleton-channel-tag--1 { width: 5.5rem; }
.gc-skeleton.gc-skeleton-channel-tag--2 { width: 6rem; }
.gc-skeleton.gc-skeleton-channel-tag--3 { width: 3.75rem; }

.gc-skeleton.gc-skeleton-subscription-hero-price {
    width: 8.2rem;
    height: var(--font-size-32);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-subscription-desc-line {
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-subscription-desc-line--a { width: 92%; }
.gc-skeleton.gc-skeleton-subscription-desc-line--b { width: 5.5rem; }

.gc-skeleton.gc-skeleton-subscription-strip-label {
    width: 6.5rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-subscription-fact-label,
.gc-skeleton.gc-skeleton-subscription-fact-value {
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    margin: 0;
    max-width: 100%;
}

.gc-skeleton.gc-skeleton-subscription-fact-label--0 { width: 5.5rem; }
.gc-skeleton.gc-skeleton-subscription-fact-label--1 { width: 7rem; }
.gc-skeleton.gc-skeleton-subscription-fact-label--2 { width: 4rem; }
.gc-skeleton.gc-skeleton-subscription-fact-label--3 { width: 6rem; }

.gc-skeleton.gc-skeleton-subscription-fact-value--0 { width: 1.5rem; }
.gc-skeleton.gc-skeleton-subscription-fact-value--1 { width: 3.5rem; }
.gc-skeleton.gc-skeleton-subscription-fact-value--2 { width: 8rem; }
.gc-skeleton.gc-skeleton-subscription-fact-value--3 { width: 5.5rem; }

.gc-skeleton.gc-skeleton-subscription-visits-value {
    width: 3rem;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-subscription-visits-bar {
    width: 100%;
    height: 8px;
    border-radius: var(--radius-full);
    margin: 0;
    flex: 1 1 auto;
}

.gc-skeleton.gc-skeleton-channel-pricing-features {
    width: 9rem;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    margin: 0;
}

/* ===================================
   Weapon show hero skeleton — обложка fill-emphasis; заголовок на surface-panel
   =================================== */

/* Cover slot — герой 16:9. Weapon show: тот же 16:9 */
.gc-skeleton-show-hero-cover {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: var(--gc-cover-aspect);
    flex: 0 0 auto;
    border-radius: var(--radius-16);
}

.gc-skeleton-weapon-show-cover,
.stage-show-page-layout .gc-skeleton-show-hero-cover,
.exercise-briefing-rail .gc-skeleton-show-hero-cover {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: var(--gc-media-cover-aspect);
    flex: 0 0 auto;
    border-radius: var(--radius-16);
}

.event-show-hero-cover-media .gc-skeleton-show-hero-cover {
    aspect-ratio: var(--gc-cover-aspect);
}

.stage-show-page-layout .event-show-hero-cover-media .gc-skeleton-show-hero-cover,
.exercise-briefing-rail .event-show-hero-cover-media .gc-skeleton-show-hero-cover {
    aspect-ratio: var(--gc-media-cover-aspect);
}

/* Challenge classic: обложка flush в caption-карточке */
.challenge-show-hero-card--has-cover .gc-skeleton-show-hero-cover {
    border-radius: 0;
}

/*
 * Event show hero:
 * — без обложки: list-frame Border/Subtle;
 * — с обложкой: только better-ui outline (live), без второго border — иначе двойная рамка.
 */
.gc-page-loader > [id$="-s"] .event-show-hero-card,
.gc-inertia-visit-skeleton .event-show-hero-card,
#gc-inertia-boot .event-show-hero-card {
    border-radius: var(--radius-16);
    box-sizing: border-box;
    flex-grow: 0;
    height: auto;
}

.gc-page-loader > [id$="-s"] .event-show-hero-card:not(.event-show-hero-card--has-cover),
.gc-inertia-visit-skeleton .event-show-hero-card:not(.event-show-hero-card--has-cover),
#gc-inertia-boot .event-show-hero-card:not(.event-show-hero-card--has-cover) {
    border: 1px solid var(--border-subtle);
    background: var(--surface-secondary);
    padding: var(--space-4);
}

.gc-page-loader > [id$="-s"] .event-show-hero-card--has-cover,
.gc-inertia-visit-skeleton .event-show-hero-card--has-cover,
#gc-inertia-boot .event-show-hero-card--has-cover {
    background: transparent;
    overflow: hidden;
    padding: 0;
    border: none;
}

.gc-page-loader > [id$="-s"] .challenge-show-hero-card--has-cover {
    border: none;
    border-radius: var(--radius-16);
    overflow: hidden;
    background: var(--surface-secondary);
}

.gc-page-loader > [id$="-s"] .event-show-main > .gc-panel,
.gc-inertia-visit-skeleton .event-show-main > .gc-panel,
#gc-inertia-boot .event-show-main > .gc-panel,
.gc-page-loader > [id$="-s"] .event-show-hero-card,
.gc-inertia-visit-skeleton .event-show-hero-card,
#gc-inertia-boot .event-show-hero-card {
    flex-grow: 0;
    height: auto;
}

.gc-page-loader > [id$="-s"] .event-show-hero-cover-media,
.gc-inertia-visit-skeleton .event-show-hero-cover-media,
#gc-inertia-boot .event-show-hero-cover-media {
    flex: 0 0 auto;
    height: auto;
}

.gc-inertia-visit-skeleton .event-show-hero-card--has-cover .event-show-hero-cover-media .gc-briefing-img-container,
#gc-inertia-boot .event-show-hero-card--has-cover .event-show-hero-cover-media .gc-briefing-img-container,
.gc-page-loader > [id$="-s"] .event-show-hero-card--has-cover .event-show-hero-cover-media .gc-briefing-img-container,
.gc-inertia-visit-skeleton .event-show-about-rail-hero--has-cover .event-show-hero-cover-media .gc-briefing-img-container,
#gc-inertia-boot .event-show-about-rail-hero--has-cover .event-show-hero-cover-media .gc-briefing-img-container,
.gc-page-loader > [id$="-s"] .event-show-about-rail-hero--has-cover .event-show-hero-cover-media .gc-briefing-img-container,
.gc-inertia-visit-skeleton .event-show-hero-card--has-cover .event-show-hero-cover-media .gc-skeleton-show-hero-cover,
#gc-inertia-boot .event-show-hero-card--has-cover .event-show-hero-cover-media .gc-skeleton-show-hero-cover,
.gc-page-loader > [id$="-s"] .event-show-hero-card--has-cover .event-show-hero-cover-media .gc-skeleton-show-hero-cover,
.gc-inertia-visit-skeleton .event-show-about-rail-hero--has-cover .event-show-hero-cover-media .gc-skeleton-show-hero-cover,
#gc-inertia-boot .event-show-about-rail-hero--has-cover .event-show-hero-cover-media .gc-skeleton-show-hero-cover,
.gc-page-loader > [id$="-s"] .event-show-about-rail-hero--has-cover .event-show-hero-cover-media .gc-skeleton-show-hero-cover {
    border-radius: 0;
}

/*
 * Skeleton hero with cover: нужен --cover-caption для padding/ритма как live,
 * но фон — surface-secondary (не fill-emphasis / чёрная полоса в light).
 * Intro (≥1280) и about-rail-hero (<1280). Канон, который выигрывает на Inertia —
 * covers.css (файл грузится после skeleton.css). Здесь — classic overlay + запас.
 */
:is(.gc-inertia-visit-skeleton, #gc-inertia-boot, .gc-page-loader > [id$="-s"])
    :is(
        .event-show-hero-card--has-cover,
        .event-show-about-rail-hero--has-cover,
        .challenge-show-hero-card--has-cover,
        .challenge-show-about-rail-hero--has-cover,
        .weapon-show-hero-card--has-cover,
        .weapon-show-about-rail-hero--has-cover
    ),
:is(.gc-inertia-visit-skeleton, #gc-inertia-boot, .gc-page-loader > [id$="-s"])
    :is(
        .event-show-hero-card--has-cover,
        .event-show-about-rail-hero--has-cover,
        .challenge-show-hero-card--has-cover,
        .challenge-show-about-rail-hero--has-cover
    )
    :is(
        .event-show-hero-card__body--cover-caption,
        .gc-media-caption-bar,
        .gc-briefing-img-container.gc-briefing-img-container--gradient-bottom
    ),
.gc-page-loader > [id$="-s"] .weapon-show-hero-card--has-cover .event-show-hero-card__body,
[data-theme="light"]
    :is(.gc-inertia-visit-skeleton, #gc-inertia-boot, .gc-page-loader > [id$="-s"])
    :is(
        .event-show-hero-card--has-cover,
        .event-show-about-rail-hero--has-cover,
        .challenge-show-hero-card--has-cover,
        .challenge-show-about-rail-hero--has-cover
    )
    :is(
        .event-show-hero-card__body--cover-caption,
        .gc-media-caption-bar,
        .gc-briefing-img-container.gc-briefing-img-container--gradient-bottom
    ),
[data-theme="light"] .gc-page-loader > [id$="-s"] .weapon-show-hero-card--has-cover .event-show-hero-card__body {
    --_caption-bar-bg: var(--surface-secondary);
    --_caption-bar-bg-hover: var(--surface-secondary);
    --_caption-bar-fg: var(--text-primary);
}

:is(.gc-inertia-visit-skeleton, #gc-inertia-boot, .gc-page-loader > [id$="-s"])
    :is(
        .event-show-hero-card--has-cover,
        .event-show-about-rail-hero--has-cover,
        .challenge-show-hero-card--has-cover,
        .challenge-show-about-rail-hero--has-cover
    )
    .event-show-hero-card__body--cover-caption.gc-media-caption-bar,
[data-theme="light"]
    :is(.gc-inertia-visit-skeleton, #gc-inertia-boot, .gc-page-loader > [id$="-s"])
    :is(
        .event-show-hero-card--has-cover,
        .event-show-about-rail-hero--has-cover,
        .challenge-show-hero-card--has-cover,
        .challenge-show-about-rail-hero--has-cover
    )
    .event-show-hero-card__body--cover-caption.gc-media-caption-bar {
    background: var(--surface-secondary);
    color: var(--text-primary);
}

.gc-skeleton-weapon-show-title {
    width: min(72%, 18rem);
    height: var(--font-size-24);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-meta {
    width: 10rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
    margin-bottom: var(--space-2);
}

.gc-skeleton-weapon-show-action {
    width: 6.75rem;
    min-height: var(--gc-btn-sm-min-height);
    flex-shrink: 0;
}

.weapon-show-hero-thumb.gc-skeleton-weapon-show-thumb,
.weapon-show-hero-thumb.gc-skeleton {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: var(--radius-10);
    /* live .weapon-show-hero-thumb { background: transparent } — иначе кости невидимы */
    background: linear-gradient(
        90deg,
        var(--surface-subtle) 0%,
        var(--surface-control) 50%,
        var(--surface-subtle) 100%
    );
    background-size: 200% 100%;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
    .weapon-show-hero-thumb.gc-skeleton-weapon-show-thumb,
    .weapon-show-hero-thumb.gc-skeleton {
        animation: none;
        background: var(--surface-subtle);
    }
}

.gc-skeleton-weapon-show-strip-pill {
    display: block;
    width: 100%;
    min-height: 2.75rem;
    border-radius: var(--radius-16) var(--radius-16) 0 0;
}

.gc-skeleton-weapon-show-month-title {
    width: 7rem;
    height: var(--font-size-18);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-history-date-day {
    width: 4.5rem;
    height: var(--font-size-16);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-history-date-weekday {
    width: 4rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-history-event-embed {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-3);
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: 0;
    padding: var(--space-3);
    border-radius: var(--radius-16);
    background: var(--surface-primary);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-sm);
    box-sizing: border-box;
}

.gc-skeleton-weapon-show-history-event-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-product-2);
    flex: 1 1 auto;
    min-width: 0;
}

.gc-skeleton-weapon-show-history-event-context {
    width: min(100%, 11rem);
    height: var(--font-size-13);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-history-event-title {
    width: min(100%, 14rem);
    height: var(--font-size-15);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-history-shot-line {
    width: 9.5rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-history-shot-line--b {
    width: 7.25rem;
}

/* Заметка в ленте: аватар + колонка (имя/мета + body) (Figma 1829:6740) */
.gc-skeleton-weapon-show-history-note-author {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2-5);
    min-width: 0;
    width: 100%;
}

.gc-skeleton-weapon-show-history-note-main {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    flex: 1 1 auto;
    min-width: 0;
}

.gc-skeleton-weapon-show-history-note-author-copy {
    display: flex;
    flex-direction: column;
    gap: var(--space-product-2);
    min-width: 0;
}

.gc-skeleton-weapon-show-history-note-name {
    width: 5.5rem;
    height: var(--font-size-15);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-history-note-meta {
    width: 11rem;
    height: var(--font-size-14);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-history-note-body {
    width: 100%;
    max-width: 78%;
    height: var(--font-size-15);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-history-note-body--b {
    max-width: 56%;
}

.gc-skeleton-weapon-show-stat-label {
    width: 3rem;
}

.gc-skeleton-weapon-show-stat-value {
    max-width: 100%;
}

.gc-skeleton-weapon-show-stat-value--a { width: 3.5rem; }
.gc-skeleton-weapon-show-stat-value--b { width: 4.5rem; }
.gc-skeleton-weapon-show-stat-value--c { width: 2.5rem; }

.gc-skeleton-weapon-show-list-square {
    display: block;
    flex-shrink: 0;
    width: var(--gc-list-media-size);
    height: var(--gc-list-media-size);
    min-width: var(--gc-list-media-size);
    border-radius: var(--radius-8);
}

.gc-skeleton-weapon-show-list-square--sidebar {
    width: var(--gc-list-media-size-sm);
    height: var(--gc-list-media-size-sm);
    min-width: var(--gc-list-media-size-sm);
}

.gc-skeleton-weapon-show-sidebar-row-title {
    width: 55%;
    max-width: 8rem;
}

.gc-skeleton-weapon-show-shot-chip {
    /* Паритет kit md `.gc-chip` min-height (28), не space/8 = 32 */
    display: inline-block;
    height: 28px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

.gc-skeleton-weapon-show-shot-chip--a { width: 5.5rem; }
.gc-skeleton-weapon-show-shot-chip--b { width: 5rem; }
.gc-skeleton-weapon-show-shot-chip--c { width: 6rem; }
.gc-skeleton-weapon-show-shot-chip--d { width: 4.75rem; }
.gc-skeleton-weapon-show-shot-chip--e { width: 5.25rem; }

/* Stage show rail: soft type pills (= `.gc-stage-sidebar-weapon-type` min-height 28) */
.gc-skeleton-stage-show-weapon-chip {
    display: inline-block;
    height: 28px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

.gc-skeleton-stage-show-weapon-chip--a { width: 4.75rem; }
.gc-skeleton-stage-show-weapon-chip--b { width: 5.25rem; }
.gc-skeleton-stage-show-weapon-chip--c { width: 4rem; }

.gc-skeleton-weapon-show-hit-zones-bar {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: var(--radius-full);
}

.gc-skeleton-weapon-show-hit-zones-swatch {
    width: var(--space-2);
    height: var(--space-2);
    border-radius: var(--radius-full);
    flex-shrink: 0;
}

.gc-skeleton-weapon-show-hit-zones-label {
    display: inline-block;
    height: var(--font-size-13);
}

.gc-skeleton-weapon-show-hit-zones-label--a { width: 2.25rem; }
.gc-skeleton-weapon-show-hit-zones-label--b { width: 2.5rem; }
.gc-skeleton-weapon-show-hit-zones-label--c { width: 2rem; }

/* ===================================
   Inertia first paint (F5) + visit bones
   (до гидрации Vite CSS ещё нет — держим в public)
   =================================== */

html.gc-inertia-booting {
    overflow: hidden;
}

/* Пока boot-скелетон на экране — не вспыхивать пустой #app (PWA / F5). */
html.gc-inertia-booting body.inertia-shell > #app {
    visibility: hidden;
}

.gc-inertia-boot {
    position: fixed;
    inset: 0;
    z-index: 1080;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: var(--gc-app-content-bg, var(--surface-page));
}

/*
 * Brand mark на F5/boot: по центру viewport. Dark — NVG, light — glock.
 * Пока включён .gc-brand-loader--spinner — на экране обычный спиннер, спрайты скрыты.
 * Маска контента — .gc-boot-loader-cover только в main/auth.
 */
.gc-brand-loader {
    position: fixed;
    inset: 0;
    z-index: 1081;
    display: grid;
    place-items: center;
    pointer-events: none;
}

.gc-brand-loader__gif {
    display: block;
    width: calc(var(--space-12) * 2);
    height: auto;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

#gc-inertia-boot > .gc-app-frame,
#gc-inertia-boot > .gc-auth-split-wrapper {
    flex: 1 1 auto;
    min-height: 0;
}

#gc-inertia-boot .gc-app-main,
#gc-inertia-boot .gc-auth-right-inner {
    position: relative;
    overflow: hidden;
}

.gc-boot-loader-cover {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: var(--gc-app-content-bg, var(--surface-page));
}

#gc-inertia-boot .gc-app-main > .gc-app-main__page {
    visibility: hidden;
}

/* Auth split: кости формы видны под brand-loader (нет cover / не прячем slot). */
#gc-inertia-boot > .gc-auth-split-wrapper .gc-auth-slot {
    visibility: visible;
}

.gc-inertia-boot .gc-app-frame,
.gc-inertia-boot .gc-app-shell {
    min-height: 0;
    height: 100%;
}

.gc-three-col-subheader__leading > .gc-skeleton.gc-three-col-subheader__skeleton-back,
.gc-three-col-subheader__actions > .gc-skeleton.gc-three-col-subheader__skeleton-back {
    width: var(--gc-mobile-nav-title-icon-size);
    height: var(--gc-mobile-nav-title-icon-size);
    margin: 0;
    flex-shrink: 0;
}

/*
 * PageSubheaderOverflowActions density:
 * <992 — one glass ⋯; ≥992 — labeled pill (+ optional share).
 */
@media (max-width: 991.98px) {
    .gc-skeleton.gc-three-col-subheader__skeleton-overflow-menu,
    .gc-skeleton.gc-three-col-subheader__skeleton-overflow-share {
        display: none;
    }
}

@media (min-width: 992px) {
    .gc-skeleton.gc-three-col-subheader__skeleton-overflow-compact {
        display: none;
    }
}

.gc-three-col-subheader__title-group .gc-skeleton {
    flex-shrink: 0;
    align-self: center;
    margin: 0;
    max-width: 100%;
}

.gc-inertia-visit-skeleton .gc-skeleton-text,
.weapon-card-strip-pill .gc-skeleton-text,
.gc-three-col-subheader .gc-skeleton-text {
    margin-bottom: 0;
}

.gc-inertia-visit-skeleton .gc-stat-label .gc-skeleton,
.gc-inertia-visit-skeleton .gc-stat-value .gc-skeleton,
.weapon-card-strip-type .gc-skeleton,
.weapon-card-strip-shots .gc-skeleton {
    width: auto;
    max-width: 100%;
    vertical-align: middle;
}

.gc-skeleton.gc-skeleton-weapon-card-strip-label {
    display: block;
    width: 4.75rem;
    max-width: 100%;
    margin: 0;
}

.gc-skeleton.gc-skeleton-weapon-card-strip-shots {
    display: block;
    width: 2.25rem;
    margin: 0;
}

.gc-skeleton.gc-skeleton-weapon-show-opinion {
    display: block;
    width: 72%;
    max-width: 22rem;
    margin: 0;
}

.gc-inertia-visit-skeleton .weapon-show-hero-cover-media .gc-skeleton-weapon-show-cover {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: var(--radius-16);
}

/* Thumbs — тот же grid, что live (.weapon-show-hero-thumbs), не flex 100%-ширины */

.gc-inertia-visit-skeleton .weapon-show-sidebar-info-block--overlap-strip {
    background: var(--surface-secondary);
}

.weapon-card-media .weapon-card-image {
    position: relative;
}

.weapon-card-skeleton-media {
    position: absolute;
    inset: 0;
    width: auto !important;
    height: auto !important;
    border-radius: 0;
    display: block;
}

.gc-skeleton.gc-skeleton-split-form-section-title {
    display: block;
    width: 5rem;
    max-width: 40%;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    margin: 0 0 var(--space-3);
}

.gc-skeleton.gc-skeleton-split-form-field {
    display: block;
    width: 100%;
    height: 2.75rem;
    border-radius: var(--radius-12);
    margin: 0;
}

.gc-skeleton.gc-skeleton-split-form-photo {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: var(--radius-16);
    margin: 0;
}

.gc-skeleton.gc-skeleton-split-form-photo.gc-cover-profile {
    aspect-ratio: 16 / 9;
}

.gc-skeleton.gc-skeleton-split-form-thumb {
    display: block;
    width: 4.5rem;
    height: 4.5rem;
    flex: 0 0 auto;
    border-radius: var(--radius-12);
    margin: 0;
}

.gc-skeleton-split-form-toggle {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    width: 100%;
    min-width: 0;
}

.gc-skeleton-split-form-toggle-copy {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
    flex: 1 1 auto;
}

.gc-skeleton.gc-skeleton-split-form-toggle-knob {
    display: block;
    width: 2.5rem;
    height: 1.5rem;
    border-radius: var(--radius-full);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-split-form-action {
    display: block;
    width: 5.5rem;
    max-width: 100%;
    height: var(--gc-btn-sm-min-height, 2.25rem);
    border-radius: var(--radius-8);
    margin: 0;
    flex-shrink: 0;
}

.gc-inertia-visit-skeleton .split-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
}

/* Weapons edit — live layout + явный shimmer (cover/thumb/placeholder transparent) */

.weapon-edit-photo-section-head .gc-skeleton-split-form-section-title {
    margin: 0;
    max-width: none;
    width: 7.5rem;
}

.gc-skeleton.gc-skeleton-weapon-edit-add-photo {
    display: block;
    width: 8.75rem;
    height: 28px;
    border-radius: var(--gc-btn-xs-radius);
    flex-shrink: 0;
    margin: 0;
}

.gc-skeleton.gc-skeleton-weapon-edit-cover {
    display: block;
    position: absolute;
    inset: 0;
    width: auto;
    height: auto;
    border-radius: inherit;
    margin: 0;
}

.gc-skeleton.gc-skeleton-weapon-edit-thumb {
    display: block;
    position: absolute;
    inset: 0;
    width: auto;
    height: auto;
    border-radius: inherit;
    margin: 0;
}

.gc-skeleton.gc-skeleton-weapon-edit-placeholder-fill {
    display: block;
    position: absolute;
    inset: 0;
    width: auto;
    height: auto;
    border-radius: inherit;
    margin: 0;
}

.gc-skeleton.gc-skeleton-weapon-edit-hint {
    display: block;
    width: 16rem;
    max-width: 100%;
    height: var(--font-size-13);
    border-radius: var(--radius-8);
    margin: 0;
}

.gc-skeleton.gc-skeleton-weapon-edit-hint--wide {
    width: 100%;
    max-width: 22rem;
}

.gc-skeleton.gc-skeleton-weapon-edit-radio-dot {
    display: block;
    width: 20px;
    height: 20px;
    border-radius: var(--radius-full);
    flex-shrink: 0;
    margin: 0;
}

/* Example HTML - Card Skeleton:
<div class="gc-skeleton-card">
    <div class="gc-skeleton-card-header">
        <div class="gc-skeleton gc-skeleton-avatar"></div>
        <div style="flex: 1;">
            <div class="gc-skeleton gc-skeleton-text"></div>
            <div class="gc-skeleton gc-skeleton-text gc-skeleton-text-short"></div>
        </div>
    </div>
    <div class="gc-skeleton-card-body">
        <div class="gc-skeleton gc-skeleton-heading"></div>
        <div class="gc-skeleton gc-skeleton-text"></div>
        <div class="gc-skeleton gc-skeleton-text"></div>
        <div class="gc-skeleton gc-skeleton-text gc-skeleton-text-medium"></div>
    </div>
    <div class="gc-skeleton-card-footer">
        <div class="gc-skeleton gc-skeleton-button"></div>
        <div class="gc-skeleton gc-skeleton-button gc-skeleton-button-sm"></div>
    </div>
</div>

Example - List Item Skeleton:
<div class="gc-skeleton-list-item">
    <div class="gc-skeleton gc-skeleton-avatar"></div>
    <div class="gc-skeleton-list-item-content">
        <div class="gc-skeleton gc-skeleton-text"></div>
        <div class="gc-skeleton gc-skeleton-text gc-skeleton-text-short"></div>
    </div>
</div>
*/

