/*
 * aggrid-scroll-helpers.css — стили для горизонтальных ◀▶ стрелок + минимапы AG Grid.
 *
 * Извлечено из src/analytics/styles.css + src/pricing/styles.css (были идентичны).
 * Подключается на всех AG Grid-страницах с горизонтальным скроллом:
 * /analytics/, /pricing/, /returns/, /advertising/.
 *
 * Требования раскладки: родительский wrapper (#ma-grid-wrap / аналог) должен иметь
 * position:relative — чтобы .scroll-arrow позиционировались внутри него.
 *
 * Цвета: только var(--*) из theme.css, 0 hardcoded.
 */

/* ── Стрелки ◀/▶ ────────────────────────────────────────────────────────── */
.scroll-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 15;
  width: 28px;
  height: 48px;
  border: none;
  border-radius: var(--radius-md, 6px);
  /* Полупрозрачный тёмный фон — читается и на светлой, и на тёмной теме */
  background: rgba(0, 0, 0, 0.25);
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  /* По умолчанию скрыты; JS добавляет .visible когда есть скролл в нужную сторону */
  opacity: 0;
  transition: opacity 0.2s;
  pointer-events: none;
}
.scroll-arrow.visible        { opacity: 0.6; pointer-events: auto; }
.scroll-arrow:hover          { opacity: 1; }
.scroll-arrow-left           { left: 4px; }
.scroll-arrow-right          { right: 4px; }

/* ── Минимапа-полоска ────────────────────────────────────────────────────── */
.scroll-minimap {
  height: 6px;
  background: var(--surface2);
  border-top: 1px solid var(--border);
  position: relative;
  cursor: pointer;
  flex-shrink: 0;
  /* По умолчанию скрыта; JS добавляет .visible когда maxScroll > 0 */
  display: none;
  transition: height 0.15s;
}
.scroll-minimap:hover        { height: 10px; }
.scroll-minimap.visible      { display: block; }

/* ── Ползунок минимапы ───────────────────────────────────────────────────── */
.minimap-thumb {
  position: absolute;
  top: 0;
  height: 100%;
  background: var(--accent);
  border-radius: 3px;
  opacity: 0.5;
  min-width: 20px;
  cursor: grab;
}
.minimap-thumb:hover         { opacity: 0.8; }

/* ============================================================
   Канон скролла 2026-06-08 — единый горизонтальный скролл
   ============================================================ */

/* ── Спейсер-фикс: убирает пустой левый трек на Windows ──────────────────────
   AG Grid рисует left/right спейсеры под вертикальный скроллбар. На Windows
   слева остаётся «пустой» горизонтальный трек. overflow-x:hidden глушит его,
   не трогая угловой элемент (.ag-scroller-corner). */
.ag-horizontal-left-spacer:not(.ag-scroller-corner),
.ag-horizontal-right-spacer:not(.ag-scroller-corner) {
  overflow-x: hidden !important;
}

/* ── Отключение кастомной минимапы + стрелок ◀▶ (безопасно-реверсивно) ───────
   Канон: одна нативная полоса скролла. Кастомные минимапа и ◀▶-стрелки глушим
   ТОЛЬКО визуально (display:none). JS НЕ удалён — поведение обратимо снятием
   этого правила. */
.scroll-minimap,
.scroll-arrow {
  display: none !important;
}

/* ── Drag-to-pan «схватить и тянуть» (2026-06-22) ────────────────────────────
   Замена edge-scroll: класс навешивается на ОБЁРТКУ грида (#ma-grid-wrap / аналог)
   через aggrid-scroll-helpers.js. Цветов нет — только cursor / user-select
   (конфликт-фри с enableCellTextSelection: над .ag-cell оставляем нативный курсор
   текста, grab-подсказку показываем лишь над «пустыми» зонами таблицы). */

/* Idle-подсказка «можно схватить» — только над не-ячейками (полоса/спейсеры/
   пустые зоны строк). Над .ag-cell курсор НЕ трогаем (там выделение текста). */
.ma-pan-grab .ag-body-horizontal-scroll-viewport,
.ma-pan-grab .ag-horizontal-left-spacer,
.ma-pan-grab .ag-horizontal-right-spacer {
  cursor: grab;
}
/* На время активного пана: курсор-кулак ВЕЗДЕ внутри обёртки + запрет выделения
   текста — ТОЛЬКО пока тянем (класс снимается на mouseup). */
.ma-pan-active,
.ma-pan-active * {
  cursor: grabbing !important;
  user-select: none !important;
}
