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

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

:root {
    /* ============================================
       ADAPTIVE LAYOUT VARIABLES
       ============================================ */

    /* Main Container */
    --app-container-max: 640px;          /* Внешний контейнер (серый фон на desktop) */
    --content-max-width: 480px;          /* Внутренний контент (узкий на desktop) */

    /* Responsive Padding */
    --content-padding-mobile: 16px;      /* Mobile боковые отступы */
    --content-padding-desktop: 24px;     /* Desktop боковые отступы */

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

    /* Computed Paddings */
    --view-padding-top: calc(var(--header-height) + 16px);
    --view-padding-bottom: calc(var(--bottom-nav-height) + var(--bottom-nav-gap) + 20px);
}

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

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

body {
    width: 100%;
    min-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);
    min-height: 100vh;
    margin: 0 auto;
    background: var(--color-background);
}

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

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

    /* БЕЗ overflow! Scrollbar на body */
    overflow: visible;

    /* Mobile: padding 16px */
    padding: var(--view-padding-top) var(--content-padding-mobile) var(--view-padding-bottom);
}

/* Desktop: padding 24px */
@media (min-width: 641px) {
    .app-view {
        padding: var(--view-padding-top) var(--content-padding-desktop) var(--view-padding-bottom);
    }
}

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

/* ============================================
   FIXED ELEMENTS (Auto-centered with container)
   ============================================ */

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

    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--content-padding-mobile);
    box-sizing: border-box;

    /* Transparent */
    background: none;
    backdrop-filter: none;
    border: none;
    box-shadow: none;
}

@media (min-width: 641px) {
    .app-header {
        padding: 0 var(--content-padding-desktop);
    }
}

.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;
    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;
    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;
    padding: var(--view-padding-top) var(--content-padding-mobile) var(--view-padding-bottom);
    box-sizing: border-box;
}

@media (min-width: 641px) {
    .launcher-content {
        padding: var(--view-padding-top) var(--content-padding-desktop) var(--view-padding-bottom);
    }
}

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