/* ============================================================
   cab-finance.css — раздел «Финансы» портфеля (js/pages/portfolio-finance.js).
   Читаемый вид «нацпроект → блок → мероприятие»: строка управления, инструменты,
   таблица с двухуровневой прилипающей шапкой, полосы исполнения, уровни строк.
   Только токены дизайн-системы (var(--mpr-*)); полупрозрачные тона — те же
   rgba мха и золота, что в app.css. Помощник Ф, 06.09.2026.
   ============================================================ */

/* ---------- 1. Строка управления: подпись · вид · действия ---------- */
.cab-fin-bar { display: flex; gap: 10px 14px; align-items: center; flex-wrap: wrap; margin: 16px 0 0; }
.cab-fin-bar > .cab-label { margin: 0; }
.cab-fin-bar .np-seg__btn { min-height: 36px; padding: 6px 13px; }
.cab-fin-bar__acts { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }

/* ---------- 2. Подпись под управлением: что за таблица, откуда, что скрыто ---------- */
.cab-fin-note { margin: 12px 0 10px; font-size: 12.5px; line-height: 1.5; color: var(--mpr-muted); }
.cab-fin-note__title { display: block; color: var(--mpr-forest); font-size: 13px; }
.cab-fin-note__text { display: inline; }

/* ---------- 3. Инструменты читаемого вида: поиск · фильтр · вид чисел ---------- */
.cab-fin-tools { display: flex; gap: 8px 10px; align-items: center; flex-wrap: wrap; margin: 0 0 12px; }
.cab-fin-tools .cab-fin-search { flex: 1 1 220px; max-width: 360px; }
.cab-fin-tools .cab-fin-search .mpr-input { height: 38px; font-size: 13px; }
.cab-fin-tools .mpr-filter-chip { min-height: 36px; padding: 6px 13px; font-size: 12.5px; }
.cab-fin-tools .mpr-filter-chip.is-active .mpr-filter-chip__count { color: rgba(247, 242, 231, .75); }
.cab-fin-tools .np-seg__btn { min-height: 36px; padding: 6px 12px; }
.cab-fin-tools__right { margin-left: auto; display: flex; gap: 6px 10px; align-items: center; flex-wrap: wrap; }
.cab-fin-link { background: none; border: none; padding: 4px 2px; font-family: inherit; font-size: 12.5px; color: var(--mpr-moss-deep);
  cursor: pointer; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 3px; }
.cab-fin-link:hover { color: var(--mpr-forest); }

/* ---------- 4. Таблица читаемого вида ---------- */
.cab-fin-wrap { max-height: min(76vh, 1100px); }
.cab-fin { font-size: 13px; }
.cab-fin th { padding: 8px 10px; font-size: 10.5px; white-space: nowrap; }
.cab-fin th.cab-fin-grp { text-align: center; border-bottom: 1px solid var(--mpr-line-soft); }
.cab-fin th.cab-fin-num, .cab-fin td.cab-fin-num { text-align: right; }
.cab-fin th.cab-fin-share { text-align: left; }
.cab-fin td { padding: 7px 10px; vertical-align: middle; border-bottom: 1px solid var(--mpr-line-soft); }
.cab-fin td:first-child, .cab-fin th:first-child { padding-left: 14px; }
.cab-fin td:last-child, .cab-fin th:last-child { padding-right: 14px; }

/* суммы: табличные цифры, единица мелко, ноль тише */
.cab-fin-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.cab-fin-unit { font-size: 11px; color: var(--mpr-muted); margin-left: 3px; }
.cab-fin-num--zero { color: var(--mpr-muted); opacity: .55; }
.cab-fin td.is-bad { background: var(--mpr-work-bg); color: var(--mpr-work-fg); }

/* название и подписи */
.cab-fin-name { min-width: 280px; max-width: 560px; }
.cab-fin-title { display: block; line-height: 1.35; }
.cab-fin-meta { display: block; margin-top: 2px; font-size: 11.5px; line-height: 1.35; color: var(--mpr-muted); }
.cab-fin-meta--warn { color: var(--mpr-work-fg); }
.cab-fin-count { font-size: 11.5px; font-weight: 400; color: var(--mpr-muted); white-space: nowrap; }
.cab-fin-code { display: inline-block; margin-left: 6px; padding: 1px 6px; border-radius: 5px; background: rgba(143, 149, 80, .12);
  font-family: var(--mpr-mono); font-size: 11px; font-weight: 500; color: var(--mpr-moss-deep); vertical-align: 1px; }

/* уровни: нацпроект → блок → мероприятие → поселение */
.cab-fin-np td { background: rgba(143, 149, 80, .12); border-top: 1px solid var(--mpr-line); font-weight: 600; }
.cab-fin-np .cab-fin-title { font-size: 14px; }
.cab-fin-np .cab-fin-tg__text { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.cab-fin-block td { background: rgba(255, 253, 247, .92); font-weight: 500; }
.cab-fin-block .cab-fin-name { padding-left: 30px; }
.cab-fin-block .cab-fin-tg__text { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.cab-fin-ev .cab-fin-name { padding-left: 52px; }
.cab-fin-sub td { font-size: 12.5px; color: var(--mpr-muted); }
.cab-fin-sub .cab-fin-name { padding-left: 72px; }
.cab-fin-total td { background: rgba(143, 149, 80, .18); border-top: 2px solid var(--mpr-line-strong); font-weight: 600; }
.cab-fin-total .cab-fin-title { font-size: 14px; }
.cab-fin-total .cab-fin-meta { font-weight: 400; }
.cab-fin-empty { padding: 26px 14px; text-align: center; color: var(--mpr-muted); }

/* свёртка: кнопка с уголком, как у групп реестра */
.cab-fin-tg { display: inline-flex; align-items: flex-start; gap: 8px; background: none; border: none; padding: 0; margin: 0;
  font: inherit; color: inherit; cursor: pointer; text-align: left; max-width: 100%; }
.cab-fin-tg:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(143, 149, 80, .28); border-radius: 6px; }
.cab-fin-tg__chev { display: inline-flex; flex: 0 0 auto; width: 14px; height: 14px; margin-top: 2px; color: var(--mpr-muted);
  transform: rotate(90deg); transition: transform .18s var(--mpr-bezier); }
.cab-fin-tg__chev svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.cab-fin-tg[aria-expanded="false"] .cab-fin-tg__chev { transform: rotate(0deg); }
.cab-fin-tg__text { min-width: 0; }

/* доля исполнения: полоса и процент */
.cab-fin-share { width: 168px; }
.cab-fin-share__wrap { display: flex; align-items: center; gap: 8px; }
.cab-fin-share__wrap .mpr-progress { flex: 1 1 60px; height: 6px; }
.cab-fin-share__wrap .mpr-progress__bar { transition: none; }
.cab-fin-share__pct { flex: 0 0 auto; min-width: 46px; text-align: right; font-size: 12.5px; font-variant-numeric: tabular-nums; }

/* «Полные числа»: восемь сумм до копейки — цифры плотнее, полоса уступает место проценту,
   чтобы таблица по бюджетам умещалась в ширину страницы (1230 px) */
.cab-fin--full .cab-fin-num { font-size: 12px; padding-left: 6px; padding-right: 6px; }
.cab-fin--full .cab-fin-name { min-width: 220px; max-width: 380px; }
.cab-fin--full.cab-fin--budgets .cab-fin-share { width: 72px; }
.cab-fin--full.cab-fin--budgets .cab-fin-share__wrap .mpr-progress { display: none; }

/* правка щелчком */
.cab-fin td.is-editable { cursor: pointer; }
.cab-fin td.is-editable:hover { background: rgba(179, 154, 85, .16); box-shadow: inset 0 0 0 1px var(--mpr-line-strong); }
.cab-fin .cab-fin-name .cab-hl, .cab-fin .cab-fin-meta .cab-hl { background: rgba(179, 154, 85, .28); }

/* ---------- 5. Телефон ---------- */
@media (max-width: 720px) {
  .cab-fin-bar__acts, .cab-fin-tools__right { margin-left: 0; }
  .cab-fin-tools .cab-fin-search { max-width: none; flex-basis: 100%; }
  .cab-fin-wrap { max-height: none; }
  /* три колонки цифр (всего · всего · доля) должны уместиться в 360 px вместе с названием */
  .cab-fin { font-size: 12.5px; }
  .cab-fin th, .cab-fin td { padding: 6px 5px; }
  .cab-fin td:first-child, .cab-fin th:first-child { padding-left: 10px; }
  .cab-fin td:last-child, .cab-fin th:last-child { padding-right: 10px; }
  .cab-fin th { white-space: normal; font-size: 10px; letter-spacing: .03em; }
  .cab-fin-name { min-width: 120px; max-width: 170px; overflow-wrap: anywhere; }
  .cab-fin-np .cab-fin-title { font-size: 13.5px; }
  .cab-fin-count { white-space: normal; }
  .cab-fin-block .cab-fin-name { padding-left: 16px; }
  .cab-fin-ev .cab-fin-name { padding-left: 24px; }
  .cab-fin-sub .cab-fin-name { padding-left: 32px; }
  .cab-fin-num { font-size: 12px; }
  .cab-fin-unit { font-size: 10px; margin-left: 2px; }
  .cab-fin-share { width: auto; }
  .cab-fin-share__wrap .mpr-progress { display: none; }
  .cab-fin-share__pct { min-width: 38px; font-size: 12px; }
  .cab-fin-code { margin-left: 4px; }
}
