/* UI-r8 — mobile container flatten / shell density guard
   Scope: mobile route containers and nested visual shells only.
   Goal: reduce "block inside block" effect: fewer duplicated backgrounds,
   borders, shadows and paddings on phones. No JS/API/business logic changes. */

@media (max-width: 640px){
  :root{
    --ui-mobile-page-x: 10px;
    --ui-mobile-route-gap: 10px;
    --ui-mobile-card-pad: 12px;
    --ui-mobile-card-gap: 8px;
    --ui-mobile-tools-pad: 10px;
  }

  html,
  body,
  #app,
  .page,
  .spa-page,
  .masters-page-shell,
  .parts-page-shell,
  .messages-page-shell,
  .myorders-page-shell,
  .admin-page-shell,
  .news-page{
    max-width: 100%;
    overflow-x: hidden;
  }

  /* Page containers: один внешний горизонтальный отступ, без накопления 12+14+16px. */
  .container,
  .page-container,
  .spa-page-hero .container,
  .spa-content > .container,
  .masters-content > .container,
  .container.msng-page-content,
  .parts-page .container,
  .myorders-page .container,
  .admin-page .container,
  .news-page .container,
  .cabinet-page .container,
  .legal-page .container{
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-left: var(--ui-mobile-page-x) !important;
    padding-right: var(--ui-mobile-page-x) !important;
    box-sizing: border-box !important;
  }

  .spa-content > .container,
  .masters-content > .container,
  .container.msng-page-content,
  .parts-page .container,
  .myorders-page .container,
  .admin-page .container,
  .news-page .container,
  .cabinet-page .container,
  .legal-page .container{
    gap: var(--ui-mobile-route-gap) !important;
  }

  /* Structural wrappers: только раскладка. Никакой второй/третьей подложки. */
  .spa-page-hero--with-tools .spa-hero-layout,
  .spa-page-hero--with-tools .spa-hero-tools,
  .spa-page-hero--with-tools .spa-hero-tools-body,
  .spa-page-hero--with-tools .catalog-tools,
  .spa-page-hero--with-tools .catalog-tools__inner,
  .spa-page-hero--with-tools .catalog-tools__filters,
  .spa-page-hero--with-tools .catalog-tools__search,
  .spa-page-hero--with-tools .catalog-tools__search-wrap,
  .spa-page-hero--with-tools .mo-search-action{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
    backdrop-filter: none !important;
    transform: none !important;
  }

  /* Единственный визуальный слой tools на телефоне. */
  .spa-page-hero--with-tools{
    padding-block: 10px !important;
  }

  .spa-page-hero--with-tools .spa-hero-tools-card{
    padding: var(--ui-mobile-tools-pad) !important;
    border-radius: var(--ui-radius-card, 18px) !important;
    overflow: visible !important;
  }

  .spa-page-hero--with-tools .catalog-tools[data-catalog-render="unified-v2"]{
    gap: var(--ui-mobile-card-gap) !important;
  }

  /* List/card density: карточка остаётся карточкой, но без раздутой внутренней пустоты. */
  .mo-card.card,
  .master-card,
  .master-contact-row.reveal.in,
  .parts-category-card,
  .parts-card,
  .part-card,
  .msng-item.msng-item--v2,
  .news-card,
  .admin-card,
  .schedule-card,
  .cmodal-card,
  .modal-panel-v2,
  .modal-dialog-v2,
  .mo-tools-sheet-card,
  .news-modal-box,
  .cab-pane-modal-card{
    padding: var(--ui-mobile-card-pad) !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Nested card/surface inside another visual card: убрать вторую обложку.
     Контент остаётся, но фон/бордер/тень/большой padding не удваиваются. */
  .ui-card > .ui-card,
  .ui-card > .card,
  .card > .card,
  .card > .surface-card,
  .surface-card > .surface-card,
  .mo-card.card > .card,
  .mo-card.card > .surface-card,
  .master-card > .card,
  .master-card > .surface-card,
  .msng-item.msng-item--v2 > .card,
  .msng-item.msng-item--v2 > .surface-card,
  .cmodal-card > .card,
  .cmodal-card > .surface-card,
  .modal-panel-v2 > .card,
  .modal-dialog-v2 > .card{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: inherit !important;
  }

  /* Внутренние rows/head/body/actions — структурные, не дополнительные карточки. */
  .mo-card-head,
  .mo-card-body,
  .mo-card-actions,
  .mo-timeline,
  .msng-item-main,
  .msng-item-body,
  .master-card__body,
  .master-card__footer,
  .parts-category-card__body,
  .parts-card__actions,
  .nc-body,
  .nc-footer,
  .admin-card__body,
  .admin-card__actions,
  .cmodal-body,
  .cmodal-actions{
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .mo-card-actions,
  .ui-card__actions,
  .master-card__footer,
  .parts-card__actions,
  .nc-footer,
  .admin-card__actions,
  .cmodal-actions{
    gap: 6px !important;
    padding-top: 8px !important;
    margin-top: 8px !important;
  }

  /* Старые декоративные нижние линии в карточках дают ощущение ещё одной подложки. */
  .msng-item.msng-item--v2::after,
  .master-card::after,
  .mo-card.card::after,
  .parts-category-card::after,
  .hcat-card::after,
  .legal-info-card::after,
  .legal-rich-stat::after,
  .cab-tab::after,
  .mprof-tab::after{
    display: none !important;
  }

  /* Sticky/route tools old shells: если старый блок ещё встречается — компактный слой, не карточка в карточке. */
  .page-sticky-tools,
  .masters-sticky-tools,
  .msng-sticky-tools,
  .myorders-sticky-tools,
  .parts-sticky-tools{
    padding: 6px !important;
    margin: 6px 0 10px !important;
    box-shadow: 0 6px 18px rgba(15,23,42,.06) !important;
  }

  /* Безопасность текста/кнопок: длинный текст не растягивает контейнер. */
  .mo-card *,
  .master-card *,
  .parts-category-card *,
  .msng-item *,
  .news-card *,
  .admin-card *,
  .cmodal-card *{
    min-width: 0;
  }
}
