/* ============================================
   GLOBAL ADAPTIVE LAYOUT SYSTEM v3.0
   Правильная архитектура БЕЗ костылей

   Принципы:
   - ОДИН скролл (app-view)
   - НЕТ вложенных контейнеров с overflow
   - Глобальные max-width применяются автоматически
   - Mobile: во всю ширину, Desktop: узкий контейнер
   ============================================ */

:root {
    /* ============================================
       LAYOUT VARIABLES - CLEAN VERSION
       ============================================ */

    /* Container Widths */
    --app-container-max: 800px;
    --content-max-width: 480px;

    /* Paddings */
    --content-padding-mobile: 16px;
    --content-padding-desktop: 24px;

    /* Component Heights */
    --header-height: 64px;
    --bottom-nav-height: 50px;
    --bottom-nav-gap: 12px;
}

/* ============================================
   BASE LAYOUT
   ============================================ */

html {
    width: 100%;
    height: 100%;
}

body {
    width: 100%;
    /* ✅ Используем динамическую высоту от Telegram WebApp */
    height: 100vh;
    height: var(--tg-viewport-height, 100vh);
    margin: 0;
    padding: 0;
    background: var(--color-background);

    /* Scrollbar на body (весь viewport!) */
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-gutter: stable;
}

/* ============================================
   APP CONTAINER (Centered on Desktop)
   ============================================ */

.app-container {
    position: relative;
    width: 100%;
    max-width: var(--app-container-max);
    height: 100%;
    margin: 0 auto;
    background: var(--color-background);
}

/* ============================================
   APP VIEW (ЕДИНСТВЕННЫЙ скролл)
   ============================================ */

.app-view {
    position: relative;
    width: 100%;
    min-height: 100%;
    z-index: 100;
    box-sizing: border-box;
    overflow: visible;
}

/* DESKTOP: Плотная компоновка без gap */
@media (min-width: 641px) {
    .app-view {
        padding-top: 64px;  /* header 64px, плотно без gap */
        padding-bottom: 70px;
        padding-left: 24px;
        padding-right: 24px;
    }
}

/* MOBILE: Учитываем ОБЕ fixed шапки */
@media (max-width: 640px) {
    .app-view {
        /* Нативная (0-90px) + Наша (90-154px) + Отступ (20px) = 174px */
        padding-top: 174px;
        padding-bottom: 82px;
        padding-left: 16px;
        padding-right: 16px;
    }
}

.app-view.hidden {
    display: none !important;
}

/* ============================================
   GLOBAL CONTENT MAX-WIDTH
   Все основные блоки контента автоматически центрируются на desktop
   ============================================ */

/* Mobile: без ограничений (все элементы на 100% ширины) */
@media (max-width: 640px) {
    .header,
    .gallery,
    .tools-section,
    .divider-section,
    .loading,
    .error,
    .empty-state,
    .generations-list,
    .profiles-selector,
    .textarea-container,
    .original-image-container,
    .custom-prompt-btn {
        max-width: none;
    }
}

/* Desktop: узкий контейнер */
@media (min-width: 641px) {
    .header,
    .gallery,
    .tools-section,
    .divider-section,
    .loading,
    .error,
    .empty-state,
    .generations-list,
    .profiles-selector,
    .textarea-container,
    .original-image-container,
    .custom-prompt-btn {
        max-width: var(--content-max-width);
        margin-left: auto;
        margin-right: auto;
    }
}

/* ============================================
   APP HEADER - ПОЛНЫЙ РЕФАКТОРИНГ
   ============================================ */

.app-header {
    position: fixed;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    max-width: var(--app-container-max);
    z-index: 5000;
    box-sizing: border-box;

    display: flex;
    align-items: center;
    justify-content: space-between;

    /* ✅ Прозрачный фон - без фона */
    background: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: none;
}

/* DESKTOP: Простая шапка сверху */
@media (min-width: 641px) {
    .app-header {
        top: 0;
        height: var(--header-height);
        padding: 0 var(--content-padding-desktop);
    }
}

/* MOBILE: КРИТИЧНО - обе шапки FIXED, нужен БОЛЬШОЙ отступ */
@media (max-width: 640px) {
    .app-header {
        /* ✅ Нативная Telegram шапка ТОЖЕ fixed! Сдвигаем НАШУ еще ниже */
        top: 90px;  /* УВЕЛИЧЕН с 80px до 90px */
        height: 64px;
        padding: 0 16px;
        z-index: 4999;  /* Ниже чем у Telegram */
    }
}

.bottom-nav-bar {
    position: fixed;
    bottom: var(--bottom-nav-gap);
    left: 0;
    right: 0;
    margin: 0 auto;
    width: fit-content;
    max-width: calc(var(--app-container-max) - 32px);
    z-index: 500;
}

.btn-action-primary {
    position: fixed;
    bottom: var(--bottom-nav-gap);
    left: 0;
    right: 0;
    margin: 0 auto;
    max-width: calc(var(--app-container-max) - 32px);
    z-index: 1000;
}

.buttons-container {
    position: fixed;
    bottom: var(--bottom-nav-gap);
    left: 0;
    right: 0;
    margin: 0 auto;
    max-width: calc(var(--app-container-max) - 32px);
    z-index: 200;
}

.generation-start-badge {
    position: fixed;
    top: 70px;
    left: 50%;
    transform: translateX(-50%);
    max-width: calc(var(--app-container-max) - 40px);
    z-index: 500;
}

/* ============================================
   LOADER (Auto-centered, NO jitter)
   ============================================ */

.loader {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    max-width: var(--app-container-max);
    height: 100vh;
    height: var(--tg-viewport-height, 100vh);
    z-index: 9999;
}

.overlay-loader {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    max-width: var(--app-container-max);
    height: 100vh;
    height: var(--tg-viewport-height, 100vh);
    z-index: 50001;
}

/* ============================================
   MODALS & OVERLAYS (С фоном как у app!)
   ============================================ */

.generation-launcher-view {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2000;

    /* Фон как у приложения */
    background: var(--color-background);

    /* Скролл работает внутри лаунчера */
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: auto;
    scrollbar-gutter: stable;
}

/* Внутренний контейнер launcher (центрирован) */
.launcher-content {
    width: 100%;
    max-width: var(--app-container-max);
    margin: 0 auto;
    box-sizing: border-box;
}

/* DESKTOP: launcher padding */
@media (min-width: 641px) {
    .launcher-content {
        padding-top: 64px;   /* header 64px, плотно без gap */
        padding-bottom: 70px;
        padding-left: 24px;
        padding-right: 24px;
    }
}

/* MOBILE: launcher padding с учетом ОБЕ fixed шапок */
@media (max-width: 640px) {
    .launcher-content {
        padding-top: 174px;  /* 90px (Telegram) + 64px (наша) + 20px */
        padding-bottom: 82px;
        padding-left: 16px;
        padding-right: 16px;
    }
}

.generation-launcher-view.hidden {
    display: none !important;
}

/* Убрано - launcher-preview и launcher-header центрируются через .launcher-content */

/* ============================================
   BOTTOM SHEETS (Auto-centered)
   ============================================ */

.bottom-sheet {
    position: fixed;
    left: 0;
    right: 0;
    margin: 0 auto;
    bottom: 0;
    width: 100%;
    max-width: var(--app-container-max);
    z-index: 3000;
    transform: translateY(100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.bottom-sheet.active {
    transform: translateY(0);
}

/* Desktop: контент внутри sheet ограничен */
@media (min-width: 641px) {
    .bottom-sheet-content {
        max-width: var(--content-max-width);
        margin: 0 auto;
    }
}

/* ✅ Удален дублирующий mobile override - всё перенесено в .app-view выше */
