/* ==========================================
   LAYOUT — геометрия и каркас
   (flex, padding, margin, width, height, position, overflow)
   ========================================== */

/* --- Шапка / зелёный баннер --- */
.search-banner,
.hero,
.hero-card,
.header-card,
.search-box-wrapper,
.search-container-header,
.search-control-panel {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 16px 0 !important;
    padding: 16px 14px 14px 14px !important; /* Было раздуто, поджимаем блок под текст */
    box-sizing: border-box !important;
    overflow: visible !important;
}

.search-row,
.search-and-btn-row,
.search-and-action-row {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    flex-wrap: nowrap !important;
    box-sizing: border-box !important;
}

.hero__search-container,
.search-input-wrapper {
    position: relative !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    display: flex !important;
    align-items: center !important;
}

.add-product-btn {
    flex-shrink: 0 !important;
}

/* Подзаголовок поиска — без обрезки и масок */
.search-subtitle {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    color: rgba(255, 255, 255, 0.85) !important;
    padding: 0 10px !important; /* Легкие отступы, чтобы фраза не упиралась в края */
    letter-spacing: normal !important;
    margin: 8px 0 0 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
    position: static !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    /* Сброс обрезки / маски */
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    mask-image: none !important;
    -webkit-mask-image: none !important;
}

.live-dot {
    display: none !important;
}

/* Legacy-алиасы подзаголовка (если встретятся в разметке) */
.banner-text,
.search-caption,
.hero-subtitle {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 6px !important;
    width: 100% !important;
    margin-top: 10px !important;
    margin-bottom: 0 !important;
}

/* --- Белая карточка витрины --- */
.main-card,
.content-wrapper,
.main-feed-card,
.feed-card {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 0 !important; /* Без наложения на margin-bottom .top-info-bar (DESIGN_SYSTEM.md §7 п.2) */
    padding: 0 0 16px 0 !important;
    padding-top: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
}

.main-feed-card .feed-container {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    align-items: stretch !important; /* center на flex-родителе ломает sticky у .feed-signboard */
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
}

/* --- Лента объявлений — часть единого потока страницы, без внутреннего скролла --- */
.products-grid,
.products-list,
.products-wrapper,
.main-content,
#products-feed,
#products-list,
#products-container,
.main-feed-card .products-list,
.main-feed-card #products-feed,
.main-feed-card .products-feed {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important; /* Центрирование карточек по горизонтали */
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding-top: 4px !important; /* Первая карточка вплотную к сортировке */
    padding-bottom: 24px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    /* Высота — только по содержимому, никаких лимитов и внутреннего скролла */
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* --- Карточки товаров --- */
.product-card,
.card,
.product-item,
.feed-card-item {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    width: calc(100% - 24px) !important; /* Одинаковый отступ по 12px слева и справа */
    max-width: 100% !important;
    height: auto !important;
    min-height: max-content !important; /* Safari: расширение под весь контент */
    flex-shrink: 0 !important;          /* Safari: карточка не сжимается во flex-ленте */
    max-height: none !important;
    margin: 0 auto 12px auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
    border-radius: 16px !important;
    background-color: #f1f5f9 !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: hidden !important;
}

.product-card-body,
.card-body,
.product-card-info,
.card-content {
    display: flex !important;
    flex-direction: column !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex: 1 1 auto !important;          /* Safari: занимает всё оставшееся место после картинки */
    flex-shrink: 0 !important;          /* Safari: не сжимается и не выдавливается за пределы карточки */
    height: auto !important;
    min-height: 0 !important;           /* Safari: предотвращает схлопывание */
    background-color: #f1f5f9 !important;
    gap: 6px !important;
    padding: 12px 14px 14px 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.product-card-image,
.product-card-media,
.card-media {
    width: 100% !important;
    height: 220px !important;
    min-height: 220px !important;
    margin: 0 !important;
    border-radius: 12px 12px 0 0 !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
    background-color: transparent !important;
}

.card-header,
.product-header,
.product-card__header,
.product-card-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.product-card-seller,
.seller-info,
.product-author,
.author-info,
.product-card-description,
.product-desc,
.card-desc,
.product-description,
.description-box,
.product-desc-box,
.product-desc-box p {
    margin: 0 !important;
    padding: 0 !important;
}

.product-card-description,
.product-desc,
.card-desc,
.product-description {
    padding-left: 4px !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.card-footer,
.product-actions,
.product-card__actions,
.product-card-footer,
.card-actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-top: 4px !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.product-title,
.card-title,
.product-card__title {
    min-width: 0 !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
}

/* --- Info modals / overlays (О проекте, Помощь) --- */
.modal-overlay,
.modal-backdrop {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    background: rgba(0, 0, 0, 0.5) !important;
    justify-content: center !important;
    align-items: center !important;
    z-index: 1000 !important;
    box-sizing: border-box !important;
}

/* Bottom sheet / contact — прижаты к низу */
.contact-modal,
.action-sheet-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    z-index: 9999 !important;
    justify-content: center !important;
    align-items: flex-end !important;
}

.modal-content,
.modal-card {
    max-height: 85vh !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    border-radius: 16px !important;
    position: relative !important;
    z-index: 1001 !important;
    box-sizing: border-box !important;
}

.bottom-sheet,
.contact-card,
.action-sheet-body {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    z-index: 10000 !important;
    box-sizing: border-box !important;
}

/* --- Экран создания объявления — ширина как у .main-feed-card --- */
#add-modal {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.add-modal,
.create-product-card,
.add-product-container,
.add-modal-card {
    width: calc(100% - 32px) !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

#screen-create .form-card,
#screen-create .create-form-shell,
#screen-create #add-modal,
#screen-create .create-product-screen {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Горизонтальные отступы оверлея формы — без влияния на info-модалки */
#screen-create:not(.hidden) {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
