/* Раздел «Отчеты» (reports.js): журнал массовых изменений, «ABC-анализ», «Мертвые деньги». Компоненты - ui.css; классы - ro-*
   (общие), ab-* (ABC), dd-* («Мертвые деньги»). */

.ro-page { max-width: 1400px; }
.ro-tools { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--s-4) var(--s-6); margin: 0 0 var(--s-6); }
.ro-f { min-width: 150px; }
.ro-f .ui-select, .ro-f .ui-input { min-height: 44px; }
.ro-clear { align-self: flex-end; min-height: 44px; }
.ro-count { margin: 0 0 var(--s-6); font-size: var(--fs-sm); color: var(--text-2); }
.ro-ops .lead b { font-weight: 600; }
.ro-when { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ro-act { display: inline-flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--s-3); }
.ro-more { display: flex; justify-content: center; margin: var(--s-8) 0; }
.ro-dlg { display: grid; gap: var(--s-6); }
.ro-dlg p { margin: 0; }
.ro-lines { max-height: 60dvh; overflow: auto; }
.ro-hide { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (hover: none) { .ro-tools .ui-input, .ro-tools .ui-select { font-size: 16px; } }
@media (max-width: 760px) {
  .ro-when { white-space: normal; }
  .ro-f { flex: 1 1 140px; }
}
@media print {
  .ro-tools, .ro-act, .ro-more, .ro-page .ui-page-head .ui-btn { display: none !important; }
}

/* ABC-анализ (этап 3.1): отчет и настройки - классы ab-* */
.ab-sum { margin: 0 0 var(--s-6); }
.ab-stat .ui-stat-v { font-size: var(--fs-3xl); }
.ab-tab .lead b { font-weight: 600; }
.ab-tab td.num { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ab-set .ui-form { max-width: 560px; }
.ab-rules { margin-top: var(--s-8); }
.ab-rules h2 { margin: 0 0 var(--s-4); font-size: var(--fs-lg); }
.ab-rules ul { margin: 0; padding-left: 1.2em; display: grid; gap: var(--s-3); }
@media (hover: none) { .ab-set .ui-input { font-size: 16px; } }      /* телефон не увеличивает страницу при вводе */
@media print { .ab-page .ro-act { display: none !important; } }

/* «Мертвые деньги» (этап 3.2): отчет - классы dd-* */
.dd-sum { margin: 0 0 var(--s-6); }
.ui-grid.dd-sum { grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); }      /* 4 корзины - на всю строку */
.ui-grid.wide.dd-sum { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.dd-stat .ui-stat-v { font-size: var(--fs-3xl); }
.dd-tabs { display: grid; gap: var(--s-6); grid-template-columns: minmax(0, 340px) minmax(0, 1fr); align-items: start; margin: 0 0 var(--s-6); }
.dd-tabs > :only-child { grid-column: 1 / -1; max-width: 440px; }
.dd-cap { caption-side: top; text-align: left; font-weight: 600; font-size: var(--fs-lg); padding: 0 0 var(--s-3); color: var(--text); }
.dd-tab .lead b { font-weight: 600; }
.dd-tab td.dd-st { min-width: 10em; overflow-wrap: normal; }
.dd-tab td.dd-bin { white-space: nowrap; }
.dd-tab td.num, .dd-by td.num, .dd-cum td.num { white-space: nowrap; font-variant-numeric: tabular-nums; }
.dd-by .ui-btn.dd-go { padding-inline: var(--s-3); font-weight: 600; text-align: left; white-space: normal; }      /* длинное название склада - в две строки */
.dd-print { display: none; margin: var(--s-4) 0 0; font-size: var(--fs-sm); color: var(--text-2); }
.dd-marks { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.dd-none { color: var(--text-3); }
.dd-rules { margin-top: var(--s-8); }
.dd-rules h2 { margin: 0 0 var(--s-4); font-size: var(--fs-lg); }
.dd-rules ul { margin: 0; padding-left: 1.2em; display: grid; gap: var(--s-3); }
@media (max-width: 1000px) { .dd-tabs { grid-template-columns: minmax(0, 1fr); } }
@media print { .dd-page .ro-act { display: none !important; } .dd-print { display: block; } }
