/* core\src\components\report\style\report.css */

/* Отчёт занимает всю доступную ширину (между сайдбаром и краем окна),
   в том числе когда сайдбар свёрнут: main сдвигается через padding-left. */
.report-page {
  max-width: none;
  margin: 0;
}

.report-header {
  margin-bottom: 10px;
}

/* ============================================================
   Filters panel
   ============================================================ */

.report-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  align-items: flex-end;
  background: #f8f9fa;
  padding: 20px;
  border-radius: var(--border-radius-small);
  border: 1px solid #eee;
}

@media (max-width: 1024px) {
  .report-filters {
    flex-direction: column;
    align-items: stretch;
  }
}

.filter-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
  min-width: 200px;
}

.filter-group label {
  font-size: var(--size-small);
  font-weight: 800;
  color: #999;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.filter-group select {
  padding: 10px;
  border-radius: var(--border-radius-small);
  border: 1px solid var(--border-color);
  background: #fff;
  font-size: var(--size);
}

/* ============================================================
   Table
   ============================================================ */

.report-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--size-small);
}

.report-table th {
  background: #fafafa;
  padding: 15px;
  font-size: var(--size-small);
  font-weight: normal;
  color: #888;
  border-bottom: 2px solid #eee;
}

.report-table tr {
  font-size: var(--size-small);
}

.report-table td {
  padding: 5px 10px;
  vertical-align: middle;
}

/* ============================================================
   Колонки — общие
   ============================================================ */

.col-number {
  text-align: center;
  color: var(--color-muted);
}

.col-name {
  font-weight: normal;
}

/* Объединённая ячейка: картинка + название товара/статьи */

.report-item {
  display: flex;
  align-items: center;
  gap: 16px;
}

.report-item img {
  width: auto;
  height: 60px;
  object-fit: cover;
  border-radius: var(--img-border-radius-small);
  flex-shrink: 0;
  border: 1px solid var(--img-border-color);
  display: block;
}

.report-complex {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.report-complex span {
  color: var(--color-muted);
}

.col-cat {
  color: var(--color-muted);
}

.col-sku,
.col-slug {
  font-family: monospace;
}

.col-count {
  text-align: center;
  color: #444;
}

.col-count.empty {
  color: #ccc;
}

.col-date {
  color: var(--color-muted);
  white-space: nowrap;
}

/* ============================================================
   Badges
   ============================================================ */

.badge {
  display: inline-block;
  padding: 2px 7px;
  border-radius: var(--border-radius-small);
  white-space: nowrap;
}

.badge-link-category {
  background: #e3f2fd;
  color: #1565c0;
}

.badge-link-select {
  background: #f3e5f5;
  color: #6a1b9a;
}

.badge-link-product {
  background: #fff3e0;
  color: #e65100;
}

.badge-none {
  background: #f5f5f5;
  color: #bbb;
}

/* ============================================================
   Пустые значения в ячейках
   ============================================================ */

.col-empty {
  color: #ccc;
}

/* ============================================================
   Utility
   ============================================================ */

.hidden {
  display: none !important;
}

/* ============================================================
   Responsive
   ============================================================ */

.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ============================================================
   Широкая таблица с прокруткой (включается классами, по умолчанию отчёты не затронуты)
   .report-page--fit      — отчёт занимает высоту окна: шапка и фильтры сверху,
                            таблица заполняет остаток (горизонтальная полоса всегда видна)
   .table-scroll--sticky  — контейнер прокручивается и по горизонтали, и по вертикали
   .report-table--sticky  — шапка и первая колонка закреплены
   ============================================================ */

.table-scroll--sticky {
  overflow: auto;
  max-height: 75dvh;
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius-small);
}

@media (min-width: 1024px) {
  /* main имеет padding-top 16px: вместе с ним отчёт занимает ровно высоту окна */
  .report-page--fit {
    height: calc(100dvh - 16px);
    display: flex;
    flex-direction: column;
  }

  .report-page--fit > .report-header,
  .report-page--fit > .report-filters {
    flex-shrink: 0;
  }

  .report-page--fit > .table-scroll--sticky {
    flex: 1 1 auto;
    min-height: 300px;
    max-height: none;
    margin-top: 10px;
    margin-bottom: 10px;
  }
}

/* border-collapse: separate — иначе рамки закреплённых ячеек «уезжают» при прокрутке */
.report-table--sticky {
  border-collapse: separate;
  border-spacing: 0;
  margin: 0;
  width: max-content;
  min-width: 100%;
}

.report-table--sticky th,
.report-table--sticky td {
  border: 0;
  border-right: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  background: var(--bg-color);
}

.report-table--sticky tr > :last-child {
  border-right: 0;
}

.report-table--sticky tbody tr:last-child td {
  border-bottom: 0;
}

/* Шапка — закреплена сверху */
.report-table--sticky thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #fafafa;
  border-bottom: 2px solid #eee;
}

/* Первая колонка — закреплена слева */
.report-table--sticky th:first-child,
.report-table--sticky td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  min-width: 220px;
  max-width: 320px;
  white-space: normal;
  box-shadow: 4px 0 6px -4px rgba(0, 0, 0, 0.18);
}

/* Угловая ячейка — поверх всех */
.report-table--sticky thead th:first-child {
  z-index: 3;
}

/* ============================================================
   Обычные отчёты: страница прокручивается целиком,
   шапка таблицы прилипает к верху окна (внешний вид таблицы не меняется)
   .table-scroll--page        — на десктопе контейнер не создаёт область прокрутки,
                                иначе sticky липнет к контейнеру, а не к окну
                                (на мобильном остаётся горизонтальная прокрутка)
   .report-table--sticky-head — закреплена только шапка
   ============================================================ */

@media (min-width: 1024px) {
  .table-scroll--page {
    overflow: visible;
  }
}

/* border-collapse: separate — иначе рамка закреплённой шапки «уезжает» при прокрутке;
   сетка 1px (как у article table) собрана из border-top/left таблицы
   и border-right/bottom ячеек, чтобы линии не удваивались */
.report-table--sticky-head {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid var(--border-color);
  border-left: 1px solid var(--border-color);
}

.report-table--sticky-head th,
.report-table--sticky-head td {
  border: 0;
  border-right: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
}

.report-table--sticky-head th {
  position: sticky;
  top: 0;
  z-index: 2;
  border-bottom: 2px solid #eee;
}
