/* Платёжный календарь на узких экранах: колонка даты уже, «Итог за период» не липнет. */
@media (max-width: 639.98px) {
  table.paycal thead th:first-child { min-width: 150px !important; }
  table.paycal thead th:nth-child(2) { min-width: 88px !important; }
  table.paycal .left-\[260px\] { position: static !important; }
}

/* 04.09.2026: при вертикальной прокрутке закреплены шапка дат и пять итоговых строк
   (остаток на начало, траты, поступления, изменения, остаток на конец). Высоты заданы явно,
   чтобы смещения top совпадали. Цвета — опаковые, иначе строки просвечивают.
   05.09.2026: шапка стала двухстрочной (день недели + дата) — высота 38 px, смещения пересчитаны. */
table.paycal thead th { height: 38px; }
table.paycal tbody tr:nth-child(-n+5) > td {
  position: sticky; height: 26px; z-index: 15;
  background-color: var(--background);
}
table.paycal tbody tr:nth-child(-n+5) > td.bg-muted { background-color: var(--muted); }
table.paycal tbody tr:nth-child(-n+5) > td.left-0,
table.paycal tbody tr:nth-child(-n+5) > td.left-\[260px\] { z-index: 25; }
table.paycal tbody tr:nth-child(1) > td { top: 38px; }
table.paycal tbody tr:nth-child(2) > td { top: 64px; }
table.paycal tbody tr:nth-child(3) > td { top: 90px; }
table.paycal tbody tr:nth-child(4) > td { top: 116px; }
table.paycal tbody tr:nth-child(5) > td { top: 142px; box-shadow: inset 0 -1px 0 rgba(255,255,255,.12); }

/* 04.09.2026: общий отступ main (p-4 md:p-6) снят только на странице календаря — сверху и снизу
   было по 32 px пустоты (24 main + 8 обёртка). Обёртка p-2 оставлена. */
main:has(table.paycal) { padding: 0 !important; }

/* 05.09.2026: у сжатых границ (border-collapse) линия между ячейками не едет вместе со sticky-ячейкой —
   между закреплёнными строками просвечивала таблица. Границы раздельные, зазор 0. */
table.paycal { border-collapse: separate; border-spacing: 0; }
