/* Реестр платежей и ДДС. */
/* Счета: один ряд карточек, каждая в своей рамке; не помещаются — ряд прокручивается. */
.mn-accounts { margin-bottom: 14px; }
.mn-acc-list { display: flex; gap: 8px; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; }
.mn-acc { flex: 1 1 0; min-width: 118px; background: var(--surface); border: 1px solid var(--muted);
  border-radius: var(--radius); padding: 8px 10px; text-align: left; cursor: pointer; color: var(--text); }
.mn-acc small { line-height: 1.25; }
.mn-acc b { white-space: nowrap; }
.mn-acc:hover { border-color: var(--accent); }
.mn-acc[aria-pressed="true"] { border-color: var(--accent); background: var(--accent-soft); }
.mn-acc small { display: block; color: var(--muted); font-size: 12px; }
.panel + .panel { margin-top: 16px; }
.mn-acc b { font-size: 16px; }
.mn-acc.off { opacity: .55; }
.mn-acc.neg b { color: var(--bad); }
.mn-filters { margin-bottom: 12px; flex-wrap: wrap; }
.mn-filters select, .mn-filters input[type="search"] { border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px; background: var(--surface); color: var(--text); }
/* Текст — слева, суммы — справа (общее правило .grid ставит всё вправо). */
.mn-grid thead th, .mn-grid td { text-align: left; }
.mn-grid thead th.num, .mn-grid td.num { text-align: right; white-space: nowrap; }
.mn-grid td.row-actions { text-align: right; }
.mn-grid th.mark, .mn-grid td.mark { text-align: center; width: 1%; white-space: nowrap; }
.mn-grid td.stage { white-space: nowrap; }
.mn-grid td.stage input { vertical-align: -2px; margin: 0 6px 0 0; accent-color: var(--good); cursor: pointer; }
.mn-grid td.stage .muted { white-space: normal; font-size: 12px; }
.mn-grid td.mark input { width: 16px; height: 16px; accent-color: var(--good); cursor: pointer; }
.mn-grid td { vertical-align: middle; }
.mn-grid .in { color: var(--good); }
.mn-grid .out { color: var(--bad); }
.mn-grid tr.plan td { color: var(--muted); font-style: italic; }
.mn-grid tr.plan td.num.out, .mn-grid tr.plan td.num.in { opacity: .75; }
.mn-grid tr.late td:first-child { color: var(--bad); font-weight: 600; }
.mn-grid .row-actions { white-space: nowrap; text-align: right; }
.mn-grid .row-actions button { border: 0; background: none; cursor: pointer; color: var(--muted); padding: 2px 6px; }
.mn-grid .row-actions button:hover { color: var(--accent); }
.mn-grid tr { cursor: default; }
.mn-tag { display: inline-block; font-size: 12px; padding: 1px 8px; border-radius: 10px; background: var(--surface-2); border: 1px solid var(--line); }
.mn-tag.income { color: var(--good); }
.mn-tag.expense { color: var(--bad); }

/* minmax(0, 1fr): длинное название счёта в списке не растягивает колонку шире окна. */
.mn-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
.mn-form .field { min-width: 0; }
.mn-form .field input, .mn-form .field select { width: 100%; min-width: 0; box-sizing: border-box; }
.mn-form .wide, .mn-form .mn-check { grid-column: 1 / -1; }
.mn-form select, .mn-art-add select, .mn-art-add input { border: 1px solid var(--line); border-radius: 8px; padding: 9px 10px; background: var(--surface); color: var(--text); }
.mn-check { display: flex; gap: 8px; align-items: center; margin: 4px 0 12px; }
.mn-seg { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; margin-bottom: 14px; }
.mn-seg button { border: 0; background: var(--surface); padding: 7px 16px; cursor: pointer; color: var(--muted); }
.mn-seg button + button { border-left: 1px solid var(--line); }
.mn-seg button[aria-pressed="true"] { background: var(--accent); color: #fff; }
.mn-art-add { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.mn-art-add input { flex: 1 1 200px; }
.mn-art-list { max-height: 50vh; overflow: auto; border: 1px solid var(--line); border-radius: 8px; }
.mn-art { display: grid; grid-template-columns: 1fr 190px 190px auto; gap: 8px; align-items: center; padding: 6px 10px; border-bottom: 1px solid var(--line); }
.mn-art.off { opacity: .5; }
.mn-art h3 { grid-column: 1 / -1; margin: 6px 0 0; font-size: 13px; color: var(--muted); }
.mn-art select { border: 1px solid var(--line); border-radius: 6px; padding: 4px 6px; background: var(--surface); color: var(--text); }

/* ДДС */
.op-grid tr.sec td { font-weight: 700; background: var(--surface-2); }
.op-grid tr.sec td:first-child { background: var(--surface-2); }
.op-grid tr.grp td:first-child { padding-left: 18px; font-weight: 600; }
.op-grid tr.art td:first-child { padding-left: 34px; color: var(--muted); }
/* ДДС-дерево: стрелка раскрытия стоит в отступе строки. */
.dds-tree tr.det td:first-child { padding-left: 50px; color: var(--muted); }
.dds-tree tr.det td { font-size: 12px; }
.dds-tree tr.sec td:first-child, .dds-tree tr.bal td:first-child, .dds-tree tr.tot td:first-child { padding-left: 26px; }
.dds-tree .tree-toggle { width: 18px; margin: 0 4px 0 -22px; padding: 0; border: 0; background: none;
  color: var(--muted); cursor: pointer; font: inherit; line-height: 1; }
.dds-tree .tree-toggle:hover { color: var(--text); }
.op-grid tr.bal td { font-weight: 700; }
.op-grid tr.fc td { color: var(--muted); font-style: italic; }
.op-grid .p { display: block; font-size: 11px; color: var(--muted); font-style: italic; }
@media (max-width: 700px) {
  .mn-form { grid-template-columns: 1fr; }
  .mn-art { grid-template-columns: 1fr; }
}
.op-grid tr.accrow td:first-child { padding-left: 50px; color: var(--muted); font-size: 12px; }
.op-grid tr.accrow td { font-size: 12px; color: var(--muted); }
.temp-password { display: flex; gap: 10px; align-items: center; }
.temp-password code { font-size: 18px; padding: 6px 10px; background: var(--surface-2); border-radius: 8px; letter-spacing: .05em; }
.key-line { display: flex; gap: 8px; }
.key-line input { flex: 1; min-width: 0; }
.adm-badge.as-link { cursor: pointer; border: none; font: inherit; font-size: 12px; font-weight: 600; }
.subtitle.warn { color: var(--bad); }

/* «Ввод платежей»: блоки регулярных платежей — свёрнуты, в заголовке итог за месяц. */
.pay-block { border: 1px solid var(--line); border-radius: 10px; margin-top: 10px; }
.pay-block > summary { display: flex; align-items: center; gap: 12px; padding: 10px 14px;
  cursor: pointer; list-style: none; }
.pay-block > summary::-webkit-details-marker { display: none; }
.pay-block > summary::before { content: "▸"; color: var(--muted); }
.pay-block[open] > summary::before { content: "▾"; }
.pay-block > summary [data-add] { margin-left: auto; }
.pay-block[open] > summary { border-bottom: 1px solid var(--line); }
.pay-block > .pay-note { margin: 8px 14px; }
.pay-block > summary .pay-sum { margin-left: auto; font-weight: 600; font-variant-numeric: tabular-nums; }
.pay-block .in { color: var(--good); }
.pay-block > .mn-grid { margin: 0; }
.mn-grid tr.focus td { background: var(--accent-soft); }   /* заказ, открытый по ссылке (cargo.js) */

/* Грузы: маркировка открывает карточку груза (cargo-card.js). */
.cg-code { border: 0; background: none; padding: 0; font: inherit; color: var(--accent); cursor: pointer; }
.cg-code:hover { text-decoration: underline; }
tr.plan .cg-code { color: var(--muted); }
.mn-dialog h3 { margin: 18px 0 8px; font-size: 15px; }
.cg-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cg-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px 18px; margin-bottom: 10px; }
.cg-fact { display: flex; flex-direction: column; gap: 1px; font-variant-numeric: tabular-nums; }
.cg-fact .muted { font-size: 12px; }
.cg-summary { margin: 10px 0 0; font-variant-numeric: tabular-nums; }
.cg-edit { border: 1px solid var(--line); border-radius: 10px; margin-top: 14px; padding: 10px 14px; }
.cg-edit legend { padding: 0 6px; color: var(--muted); font-size: 13px; }
.inv-edit input, .inv-edit select { width: 100%; min-width: 70px; }
.inv-edit td:first-child { min-width: 180px; }
/* Сверка с прайсом: дороже — красным, дешевле — зелёным, нет в прайсе — серым. */
.st-above { color: var(--bad); }
.st-below { color: var(--good); }
.st-no_price { color: var(--muted); }

/* Таблица грузов: раскрывающаяся строка этапов, оплата с галочкой реестра. */
.cg-toggle { border: 0; background: none; color: var(--muted); cursor: pointer; padding: 0 4px; font-size: 13px; }
.cg-goods { max-width: 260px; }
.cg-pay { white-space: nowrap; }
.cg-check { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px;
  margin-left: 8px; border: 1px solid var(--line); border-radius: 3px; font-size: 12px; line-height: 1;
  color: #fff; text-decoration: none; vertical-align: -2px; }
.cg-check.on { background: var(--good); border-color: var(--good); }
.cg-check:hover { outline: 2px solid var(--accent); outline-offset: 1px; }
tr.cg-more td { background: var(--surface-2, rgba(127, 127, 127, .06)); }
.cg-stages { display: flex; flex-wrap: wrap; gap: 10px 26px; padding: 4px 6px; }
.cg-stage { display: flex; flex-direction: column; gap: 3px; min-width: 120px; }
.cg-stage input { margin-right: 6px; accent-color: var(--good); }
.cg-stage .btn { align-self: flex-start; }
.cg-docs { margin: 0 0 8px; padding-left: 18px; }
.cg-docs li { margin: 4px 0; }
.cg-docs .btn { margin-left: 8px; }

/* Баланс: активы и пассивы рядом, группы жирнее строк. */
.bl-sides { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 16px; }
.bl-grid td.num { white-space: nowrap; }
.bl-grid tr.bl-lvl0 td { font-weight: 650; border-top: 1px solid var(--line); }
.bl-grid td .muted { font-weight: 400; font-size: 12px; }
.bl-grid tr.bl-lvl1 td:first-child { padding-left: 22px; }
.bl-grid tr.bl-lvl2 td:first-child { padding-left: 44px; color: var(--muted); }
.bl-grid tr.bl-lvl2 td.num { color: var(--muted); }
