/* КРИТИЧЕСКИЕ ИСПРАВЛЕНИЯ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ */

/* Исправление viewport высоты */
:root {
    --vh: 1vh;
}

/* Исправление основного контейнера */
body {
    position: relative;
    width: 100%;
    height: auto !important;
    min-height: 100vh;
    min-height: calc(var(--vh, 1vh) * 100);
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}

/* Исправления для iOS Safari */
@supports (-webkit-touch-callout: none) {
    body {
        min-height: -webkit-fill-available;
    }
    
    html {
        height: -webkit-fill-available;
    }
}

/* Исправления для Chrome на Android */
@supports (display: -webkit-box) {
    body {
        min-height: 100vh;
        min-height: 100dvh;
    }
}

/* Исправление для Telegram WebApp */
.telegram-webapp {
    touch-action: manipulation;
    -webkit-user-select: none;
    user-select: none;
}

.telegram-webapp body {
    background: var(--tg-theme-bg-color, #0A0A12) !important;
    color: var(--tg-theme-text-color, #FFFFFF) !important;
}

/* Исправления для навигации на мобильных */
.nav-tabs {
    position: sticky;
    top: 0px;  /* Прилипает к верху экрана, а не к header */
    z-index: 50;
    transform: translateZ(0);
}

.main-content {
    position: relative;
    z-index: 1;
    transform: translateZ(0);
}

/* Предотвращение bounce эффекта на iOS */
.main-content,
.section {
    overscroll-behavior-y: contain;
}

/* Touch оптимизация для кнопок */
.btn,
.nav-tab,
.action-btn {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    min-height: 44px;
    min-width: 44px;
}

/* JavaScript viewport fix */
.js-viewport-fix {
    height: calc(var(--vh, 1vh) * 100);
}

/* CSS Grid и Flexbox исправления для старых WebView */
@supports not (gap: 1rem) {
    .dashboard-grid {
        margin: -1rem;
    }

    .dashboard-grid > * {
        margin: 1rem;
    }

    .action-buttons {
        margin: -0.75rem;
    }

    .action-buttons > * {
        margin: 0.75rem;
    }
}

/* Дополнительные исправления для WebView без CSS Grid */
@supports not (display: grid) {
    .dashboard-grid {
        display: flex !important;
        flex-wrap: wrap;
    }

    .action-buttons {
        display: flex !important;
        flex-wrap: wrap;
    }
}

/* ===== ФИКС CLS: Резервирование пространства для медиа ===== */

/* Контейнер медиа-превью с фиксированным aspect-ratio */
#preview-media,
.upload-preview .preview-container {
    min-height: 300px; /* Минимальная высота для резервирования места */
    aspect-ratio: 16 / 9; /* Стандартное соотношение сторон */
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.02);
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}

/* Skeleton loader для медиа */
.media-skeleton {
    width: 100%;
    height: 100%;
    min-height: 300px;
    aspect-ratio: 16 / 9;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.02) 0%,
        rgba(255, 255, 255, 0.05) 50%,
        rgba(255, 255, 255, 0.02) 100%
    );
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: 12px;
}

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

/* Медиа элементы внутри контейнера */
#preview-media img,
#preview-media video,
.upload-preview img,
.upload-preview video {
    width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: 12px;
}

/* Фикс для мобильных: предотвращаем скачки высоты */
@media (max-width: 768px) {
    #preview-media,
    .upload-preview .preview-container {
        min-height: 200px;
    }

    .media-skeleton {
        min-height: 200px;
    }
}