/* Экраны р0.2, поток R3 — клиент, деньги, партнёры. Только var(--…) токенов пакета, классы rd-r3-*. */




/* ==== A клиент (org.rs): слот потока, правит только его строитель ==== */

/* Карточка клиента: Client.dc.html (1440) и M_Client.dc.html (390). */
.rd-r3-cl { display: flex; flex-direction: column; gap: var(--gap); margin: 12px; min-width: 0; font-family: var(--font); color: var(--text-body); }
.rd-r3-err { color: var(--state-late-text); }

/* Шапка: строка записи, четыре показателя, вкладки — одна карточка. */
.rd-r3-top { display: flex; flex-direction: column; gap: 0; }
.rd-r3-top .rd-head { position: relative; align-items: flex-start; }
.rd-r3-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.rd-r3-title .rd-head__title { margin: 2px 0 6px; }
.rd-r3-where { display: none; }
.rd-r3-acts { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.rd-r3-desk { display: inline-flex; }
.rd-r3-more { position: relative; }
.rd-r3-more__b { width: var(--btn-h); padding: 0; }
.rd-r3-veil { position: fixed; inset: 0; z-index: 40; }
.rd-r3-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 41; min-width: 220px; display: flex; flex-direction: column; padding: 6px; background: var(--bg-surface); border-radius: 12px; box-shadow: var(--shadow-pop); }
.rd-r3-menu__i { display: flex; align-items: center; min-height: 40px; height: auto; padding: 0 12px; border: none; border-radius: 8px; background: transparent; color: var(--text-primary); font: inherit; font-size: var(--fs-body); font-weight: 400; text-align: left; text-decoration: none; cursor: pointer; }
.rd-r3-menu__i:hover { background: var(--bg-hover); text-decoration: none; }

.rd-r3-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.rd-r3-kpi { min-width: 0; padding: 0 20px; }
.rd-r3-kpi:first-child { padding-left: 0; }
.rd-r3-kpi + .rd-r3-kpi { border-left: 1px solid var(--line); }
.rd-r3-kpi__l { font-size: var(--fs-meta); color: var(--text-muted); }
.rd-r3-kpi__n { margin-top: 2px; font-size: 22px; font-weight: 700; color: var(--text-primary); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.rd-r3-kpi__s { margin-top: 2px; font-size: var(--fs-meta); color: var(--text-muted); }

.rd-r3-tabs { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 18px 0 -22px; }
.rd-r3-tab { display: inline-flex; align-items: center; height: auto; padding: 8px 0 12px; border: none; border-bottom: 2px solid transparent; border-radius: 0; background: none; color: var(--text-secondary); font: inherit; font-size: 15px; font-weight: 400; text-decoration: none; cursor: pointer; white-space: nowrap; }
.rd-r3-tab:hover { color: var(--text-primary); text-decoration: none; }
.rd-r3-tab[aria-current="page"] { color: var(--text-primary); font-weight: 600; border-bottom-color: var(--brand-blue); }
.rd-r3-tab--off, .rd-r3-tab--off:hover { color: var(--text-disabled); cursor: not-allowed; }

/* Тело: основная колонка и правая 340. */
.rd-r3-cols { display: grid; grid-template-columns: minmax(0, 1fr) var(--aside-w); gap: var(--gap); align-items: start; }
.rd-r3-main, .rd-r3-aside { display: flex; flex-direction: column; gap: var(--gap); min-width: 0; }
.rd-r3-phone { display: none; }

/* Строки внутри карточек. */
.rd-r3-link { color: var(--text-primary); text-decoration: none; overflow-wrap: anywhere; }
.rd-r3-link:hover { color: var(--brand-blue-text); text-decoration: underline; }
.rd-r3-name { color: var(--text-primary); overflow-wrap: anywhere; }
.rd-r3-sub { margin-top: 2px; font-size: var(--fs-meta); color: var(--text-muted); overflow-wrap: anywhere; }
.rd-r3-chan { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.rd-r3-deeds { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0 0 -12px; }
.rd-r3-trail { display: inline-flex; align-items: center; gap: 24px; }
.rd-r3-num { color: var(--text-primary); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rd-r3-who { min-width: 96px; text-align: right; color: var(--text-secondary); }
.rd-r3-a-tag { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: var(--r-chip); background: var(--bg-page); color: var(--text-secondary); font-size: var(--fs-label); white-space: nowrap; }
.rd-r3-none { margin: 0; padding: 8px 0; font-size: var(--fs-body); color: var(--text-secondary); }
.rd-r3-more-n { margin: 0; padding-top: 8px; border-top: 1px solid var(--line); font-size: var(--fs-meta); color: var(--text-muted); }
.rd-r3-ico { width: var(--btn-h); padding: 0; }
.rd-r3-linkbtn { height: auto; padding: 0; border: none; background: none; color: var(--brand-blue-text); font: inherit; font-size: inherit; font-weight: 400; cursor: pointer; }
.rd-r3-linkbtn:hover { text-decoration: underline; }
.rd-r3-fact { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.rd-r3-hold { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.rd-r3-segrow { margin-bottom: 14px; max-width: 100%; overflow-x: auto; }
.rd-r3-h4 { margin: 18px 0 4px; font-size: var(--fs-body); font-weight: 600; color: var(--text-primary); }

.rd-r3-cl :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.rd-shell-act .rd-r3-act-pri { flex: 1; }
.rd-shell-act .rd-r3-act-pri .rd-btn { width: 100%; }

@media (max-width: 1279px) {
  .rd-r3-cols { grid-template-columns: minmax(0, 1fr) 300px; }
}
@media (max-width: 1023px) {
  .rd-r3-cols { grid-template-columns: minmax(0, 1fr); }
}

/* Телефон: шапка, 4 цифры 2×2, контакты, сделка, обращения, карта клиента. */
@media (max-width: 767px) {
  .rd-r3-cl { gap: 12px; margin: -4px -4px 0; }
  .rd-r3-top.rd-card { padding: 0; background: transparent; }
  .rd-r3-top .rd-head { flex-wrap: nowrap; padding: 16px; border-radius: 14px; background: var(--bg-surface); }
  .rd-r3-top .rd-head__body { padding-right: 44px; }
  .rd-r3-tail, .rd-r3-desk, .rd-r3-tabs { display: none; }
  .rd-r3-where { display: block; margin-top: 8px; font-size: var(--fs-meta); color: var(--text-secondary); }
  .rd-r3-acts { position: absolute; top: 12px; right: 12px; }
  .rd-r3-more__b { width: 40px; height: 40px; }
  .rd-r3-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; padding-top: 0; border-top: none; }
  .rd-r3-kpi, .rd-r3-kpi:first-child { padding: 14px 16px; border-radius: 14px; background: var(--bg-surface); }
  .rd-r3-kpi + .rd-r3-kpi { border-left: none; }
  .rd-r3-kpi__n { font-size: 16px; }
  .rd-r3-kpi__s { font-size: var(--fs-label); }
  .rd-r3-cols { display: flex; flex-direction: column; gap: 12px; }
  .rd-r3-main, .rd-r3-aside { display: contents; }
  .rd-r3-phone { display: block; }
  .rd-r3-o1 { order: 1; } .rd-r3-o2 { order: 2; } .rd-r3-o3 { order: 3; } .rd-r3-o4 { order: 4; }
  .rd-r3-o5 { order: 5; } .rd-r3-o6 { order: 6; } .rd-r3-o7 { order: 7; } .rd-r3-o8 { order: 8; }
  .rd-r3-o9 { order: 9; }
  .rd-r3-cl .rd-row { flex-wrap: wrap; }
  .rd-r3-cl .rd-row__main { flex: 1 1 150px; min-width: 0; }
  .rd-r3-cl .rd-row__trail { margin-left: 0; }
  .rd-r3-trail { flex-wrap: wrap; gap: 4px 16px; }
  .rd-r3-who { min-width: 0; text-align: left; }
  .rd-r3-ico { width: 48px; }
}


.app a.rd-btn--pri { color: var(--bg-surface); }
.app a.rd-btn--pri:hover { color: var(--bg-surface); text-decoration: none; }

/* ==== B контакт, партнёр, наряд (facet): слот потока, правит только его строитель ==== */

/* Страница записи: шапка, фокус, две колонки (§2: 18 между карточками,
   правая 340). Рама даёт 20 по краю, пакет — 32: добор здесь. */
.app > .rd-r3-rec { flex: 1; }
.rd-r3-rec { display: flex; flex-direction: column; gap: var(--gap); padding: 0 12px 12px; min-width: 0; }
.rd-r3-cols { display: grid; grid-template-columns: minmax(0, 1fr) var(--aside-w); gap: var(--gap); align-items: start; }
.rd-r3-col { display: flex; flex-direction: column; gap: var(--gap); min-width: 0; }

/* Кнопки шапки рядом, а не столбиком: колонка справа у шапки — для числа. */
.rd-r3-hacts { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; font-size: var(--fs-body); font-weight: 500; }

/* Кнопка-ссылка: ядро красит `.app a` сильнее пакета — цвет возвращаем. */
.app a.rd-r3-a { text-decoration: none; }
.app a.rd-r3-a.rd-btn--pri, .app a.rd-r3-a.rd-btn--pri:hover { color: var(--bg-surface); }
.app a.rd-r3-a.rd-btn--soft, .app a.rd-r3-a.rd-btn--soft:hover { color: var(--text-primary); }
.app a.rd-r3-a.rd-btn--ghost, .app a.rd-r3-a.rd-btn--ghost:hover { color: var(--text-body); }
.app .rd-r3-rec a:focus-visible, .app .rd-r3-rec button:focus-visible,
.app .rd-r3-rec select:focus-visible, .app .rd-r3-rec input:focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; }

/* Ссылка-действие в заголовке карточки. */
.app a.rd-r3-cardlink { color: var(--brand-blue-text); font-size: var(--fs-meta); }

/* Строки внутри карточки: название над метой, справа состояние и дела. */
.rd-r3-rows { display: flex; flex-direction: column; }
.rd-r3-rows > .rd-row + .rd-row { border-top: 1px solid var(--line); }
.rd-r3-row__t { color: var(--text-primary); overflow-wrap: anywhere; }
.rd-r3-row__m { margin-top: 2px; font-size: var(--fs-meta); color: var(--text-muted); overflow-wrap: anywhere; }
.rd-r3-row__trail { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.rd-r3-row--gone .rd-r3-row__t, .rd-r3-row--gone .rd-r3-row__t a { color: var(--text-secondary); }
.rd-r3-ico { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--r-chip); background: var(--bg-page); color: var(--text-secondary); }
.rd-r3-note { margin: 8px 0 0; font-size: var(--fs-meta); color: var(--text-secondary); }
.rd-r3-rows > .rd-r3-note { padding-top: 10px; border-top: 1px solid var(--line); }
.rd-table tr.rd-r3-gone td { color: var(--text-secondary); }
.rd-r3-when { white-space: nowrap; }

/* Способ связи: подпись слева, адрес, мета и дела строки справа. */
.rd-r3-way { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; padding: 8px 0; font-size: var(--fs-body); }
.rd-r3-way + .rd-r3-way { border-top: 1px solid var(--line); }
.rd-r3-way__k { color: var(--text-muted); }
.rd-r3-acts { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; margin-top: 8px; }
.rd-r3-more { margin-top: 4px; }
.rd-r3-more > summary { display: inline-flex; align-items: center; min-height: 28px; cursor: pointer; font-size: var(--fs-meta); color: var(--brand-blue-text); }

/* Дело, которое спрашивает выбором: подпись над выбором. */
.rd-r3-ask { display: inline-flex; flex-direction: column; gap: 2px; font-size: var(--fs-label); color: var(--text-muted); }
.rd-r3-ask select { height: 32px; max-width: 100%; padding: 0 8px; border: 1px solid var(--line-strong); border-radius: var(--r-chip); background: var(--bg-surface); color: var(--text-primary); font: inherit; font-size: var(--fs-meta); }

/* Поиск над каналами: кому перевесить номер. */
.rd-r3-find { display: flex; gap: 8px; margin-bottom: 8px; }
.rd-r3-find__in { flex: 1; min-width: 0; height: var(--btn-h); padding: 0 12px; border: 0; border-radius: var(--r-button); background: var(--bg-page); color: var(--text-primary); font: inherit; font-size: var(--fs-body); }

/* Шапка записи со второй строкой: полоса часов или лестница уровней. */
.rd-r3-head { display: flex; flex-direction: column; gap: 18px; }
.rd-r3-head .rd-head__meta a, .rd-r3-head .rd-head__ctx a { color: var(--brand-blue-text); }
.rd-r3-num { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.rd-r3-num__v { line-height: 1.1; }
.rd-r3-num__m { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-meta); font-weight: 400; color: var(--text-muted); }
.rd-r3-headbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.rd-r3-headbar__bar { flex: 1 1 280px; min-width: 0; }
/* Причина недоступного на чёрном фокусе — цветом пояснения фокуса. */
.rd-r3-rec .rd-fx .rd-btn__why { color: var(--fx-sub); }
.rd-r3-headbar__m { font-size: var(--fs-meta); color: var(--text-muted); white-space: nowrap; }
.rd-r3-back { display: none; }

@media (max-width: 1279px) {
  .rd-r3-cols { grid-template-columns: minmax(0, 1fr) 300px; }
}
@media (max-width: 1023px) {
  .rd-r3-cols { grid-template-columns: minmax(0, 1fr); }
  .rd-r3-headbar { flex-wrap: wrap; }
  .rd-r3-headbar__bar { flex-basis: 100%; }
}
/* Телефон: одна колонка, 12 между карточками; кнопки шапки уходят в
   закреплённую панель (`ShellAction`), в шапке их нет. */
@media (max-width: 767px) {
  .rd-r3-rec { gap: 12px; padding: 0 0 12px; }
  .rd-r3-cols, .rd-r3-col { gap: 12px; }
  .rd-r3-hacts, .rd-r3-rec .rd-fx__acts { display: none; }
  .rd-r3-head { gap: 12px; }
  .rd-r3-num { align-items: flex-start; }
  .rd-r3-headbar__m { white-space: normal; }
  .rd-r3-way { grid-template-columns: 1fr; gap: 2px; }
  .rd-r3-find__in { height: 48px; font-size: 16px; }
  .rd-r3-ask select { height: 48px; font-size: 16px; }
  .rd-r3-rows > .rd-row { min-height: 48px; }
  /* Наряд открывается разделом, а не записью рамы: «‹ Наряды» своё,
     нижней панели разделов у записи нет, панель действия видна. */
  .rd-r3-back { display: inline-flex; align-items: center; min-height: 40px; font-size: 16px; }
  .app .rd-r3-head a.rd-r3-back { color: var(--brand-blue-text); }
  .app .rd-shell:has(.rd-r3-rec--order) .rd-shell-tab { display: none; }
  .app .rd-shell:has(.rd-r3-rec--order) .rd-shell-col { padding-bottom: 96px; }
  .app .rd-shell:has(.rd-r3-rec--order) .rd-shell-act:not(:empty) { display: flex; position: fixed; left: 0; right: 0;
    bottom: 0; z-index: 30; gap: 8px; padding: 12px 16px;
    padding-bottom: calc(12px + env(safe-area-inset-bottom)); background: var(--bg-surface);
    box-shadow: 0 -1px 0 var(--line), var(--shadow-sheet); }
  .app .rd-shell:has(.rd-r3-rec--order) .rd-shell-act > * { min-height: 48px; }
  /* Портал кладёт детей в свою обёртку — она и есть ряд кнопок. */
  .app .rd-shell:has(.rd-r3-rec) .rd-shell-act > div { display: flex; flex: 1; gap: 8px; min-width: 0; }
  .app .rd-shell:has(.rd-r3-rec--order) .rd-shell-top { display: none; }
  .app .rd-shell:has(.rd-r3-rec) .rd-shell-act .rd-btn--pri,
  .app .rd-shell:has(.rd-r3-rec) .rd-shell-act .rd-btn-wrap:has(.rd-btn--pri) { flex: 1; }
}


/* ==== C КП и счёт (document, receivables): слот потока, правит только его строитель ==== */

/* Бумага денег (КП, счёт, договор) и дебиторка. Раскладка записи — §2: шапка,
   фокус-блок, основное и правая колонка 340; на телефоне одна колонка. */
/* Поля страницы даёт рама (`ui/shell.css`, 29.09: 24/32/32 по пакету); экран
   своих полей не добавляет, иначе они складываются с рамными. */
.rd-r3-paper, .rd-r3-debt { display: flex; flex-direction: column; gap: var(--gap);
  padding: 0 0 8px; font-family: var(--font); color: var(--text-body);
  min-width: 0; box-sizing: border-box; }
.rd-r3-paper a, .rd-r3-debt a { color: var(--brand-blue-text); text-decoration: none; }
.rd-r3-paper a:hover, .rd-r3-debt a:hover { text-decoration: underline; }
.rd-r3-paper :focus-visible, .rd-r3-debt :focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; }

.rd-r3-paper__top h1, .rd-r3-debt__top h1 { margin: 0; font-size: var(--fs-page-title);
  font-weight: var(--fw-page-title); letter-spacing: var(--ls-page-title); color: var(--text-primary); }
.rd-r3-paper__lead, .rd-r3-debt__lead { margin: 4px 0 0; font-size: var(--fs-body); color: var(--text-secondary); }
.rd-r3-paper__find { display: flex; gap: 8px; align-items: center; margin-bottom: 14px; }
.rd-r3-paper__find .rd-r3-input { flex: 1; min-width: 0; max-width: 440px; }
.rd-r3-paper__seg { margin-bottom: 12px; max-width: 100%; }

.rd-r3-input { height: var(--btn-h); border: none; border-radius: var(--r-button); background: var(--bg-page);
  padding: 0 12px; font: inherit; font-size: var(--fs-body); color: var(--text-primary); box-sizing: border-box; min-width: 0; }
.rd-r3-input--num { text-align: right; font-variant-numeric: tabular-nums; }
.rd-r3-note { margin: 0; font-size: var(--fs-meta); color: var(--text-muted); }
.rd-r3-card .rd-r3-note + .rd-r3-note { margin-top: 4px; }
.rd-r3-fail { margin: 0; padding: 12px 16px; border-radius: var(--r-button); background: var(--bg-surface);
  box-shadow: inset 3px 0 0 var(--state-late); font-size: var(--fs-body); color: var(--state-late-text); }
.rd-r3-link { appearance: none; padding: 0; border: 0; background: none; font: inherit; font-weight: 500;
  color: var(--brand-blue-text); cursor: pointer; text-align: left; }
.rd-r3-link:hover { text-decoration: underline; }
.rd-r3-tag { display: inline-block; margin-left: 8px; padding: 3px 8px; border-radius: var(--r-chip);
  background: var(--bg-page); font-size: var(--fs-label); color: var(--text-secondary); white-space: nowrap; vertical-align: 1px; }

/* Шапка: справа сумма над состоянием и кнопки рядом, как в макете. */
.rd-r3-paper__who { font-weight: 500; }
.rd-r3-paper__who a { color: var(--text-primary); }
.rd-r3-paper__aside { display: flex; align-items: flex-start; gap: 18px; }
.rd-r3-paper__sum { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.rd-r3-paper__big { font-size: 28px; font-weight: 700; letter-spacing: -0.02em; color: var(--text-primary);
  font-variant-numeric: tabular-nums; white-space: nowrap; }
.rd-r3-paper__acts { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.rd-r3-paper__due { display: inline-flex; align-items: center; gap: 8px; font-size: var(--fs-meta); color: var(--fx-sub); }
.rd-r3-paper__due .rd-r3-input { background: var(--fx-btn); color: var(--bg-surface); color-scheme: dark; }

.rd-r3-paper__cols { display: flex; gap: var(--gap); align-items: flex-start; }
.rd-r3-paper__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--gap); }
.rd-r3-paper__side { width: var(--aside-w); flex-shrink: 0; display: flex; flex-direction: column; gap: var(--gap); }

/* Позиции: строка итога над чертой, мета строки — только телефону. */
.rd-r3-paper__name { color: var(--text-primary); }
.rd-r3-paper__lmeta { display: none; }
.rd-r3-paper__foot td { border-top: none; padding-top: 4px; padding-bottom: 4px; font-size: var(--fs-meta); color: var(--text-secondary); }
.rd-r3-paper__foot:first-of-type td, tr:not(.rd-r3-paper__foot) + .rd-r3-paper__foot td { border-top: 1px solid var(--line-strong); padding-top: 11px; }
.rd-r3-paper__foot--total td { font-size: var(--fs-body); font-weight: 600; color: var(--text-primary); }

/* Оплата: три числа и полоса. */
.rd-r3-paper__kpi { display: flex; gap: 24px; margin-bottom: 14px; }
.rd-r3-paper__kpi > div { flex: 1; min-width: 0; }
.rd-r3-paper__lbl { font-size: var(--fs-label); color: var(--text-muted); }
.rd-r3-paper__v { margin-top: 2px; font-size: 20px; font-weight: 600; color: var(--text-primary);
  font-variant-numeric: tabular-nums; white-space: nowrap; }
.rd-r3-paper .rd-bar + .rd-r3-note { margin-top: 8px; }
.rd-r3-paper__pay { display: flex; align-items: baseline; gap: 12px; }
.rd-r3-paper__pay .rd-r3-note { margin-left: auto; }
.rd-r3-paper__post { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px;
  padding-top: 14px; border-top: 1px solid var(--line); }
.rd-r3-paper__post > .rd-r3-note { flex: 1 1 200px; }
.rd-r3-paper__post .rd-r3-input { width: 150px; }

/* Дебиторка: итог, корзины старения, таблица долгов и очередь звонков. */
.rd-r3-debt__top { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 18px; }
.rd-r3-debt__top > div:first-child { flex: 1 1 320px; min-width: 0; }
.rd-r3-debt__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rd-r3-debt__figs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px 24px; }
.rd-r3-debt__fig b { display: block; font-size: 20px; font-weight: 600; color: var(--text-primary);
  font-variant-numeric: tabular-nums; white-space: nowrap; }
.rd-r3-debt__fig span { display: block; margin-top: 2px; font-size: var(--fs-meta); color: var(--text-muted); }
.rd-r3-debt__fig--hot b { color: var(--state-late-text); }
.rd-r3-debt__aging { margin-top: 18px; display: grid; gap: 10px; }
.rd-r3-debt__bucket { display: grid; grid-template-columns: 120px minmax(0, 1fr) 150px; align-items: center; gap: 12px;
  font-size: var(--fs-meta); color: var(--text-secondary); }
.rd-r3-debt__bucket b { text-align: right; font-weight: 500; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.rd-r3-debt__meta { margin-top: 2px; font-size: var(--fs-meta); color: var(--text-muted); }
.rd-r3-debt__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 14px;
  padding-top: 12px; border-top: 1px solid var(--line); font-size: var(--fs-meta); color: var(--text-secondary); }
.rd-r3-debt__foot .rd-btn { margin-left: auto; }
.rd-r3-debt__call + .rd-r3-debt__call { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.rd-r3-debt__call-t { display: flex; align-items: baseline; gap: 8px; font-size: var(--fs-body); font-weight: 500; color: var(--text-primary); }
.rd-r3-debt__call-t .rd-state { margin-left: auto; flex-shrink: 0; }
.rd-r3-debt__call-why { margin: 4px 0 8px; font-size: var(--fs-meta); color: var(--text-secondary); }
.rd-r3-debt__call-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rd-r3-debt__form { display: grid; gap: 8px; width: 100%; }

/* Планшет: правая колонка уходит под основную (§4). */
@media (max-width: 1279px) {
  .rd-r3-paper, .rd-r3-debt { padding-left: 4px; padding-right: 4px; }
  .rd-r3-paper__side { width: 300px; }
}
@media (max-width: 1023px) {
  .rd-r3-paper__cols { flex-direction: column; align-items: stretch; }
  .rd-r3-paper__side { width: auto; }
  .rd-r3-debt__figs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Телефон: одна колонка, поля 16, промежутки 12; кнопки шага — в нижней
   панели (ShellAction), таблицы строками. */
@media (max-width: 767px) {
  .rd-r3-paper, .rd-r3-debt { gap: 12px; margin: -12px -4px 0; padding: 0; }
  .rd-r3-paper__cols, .rd-r3-paper__main, .rd-r3-paper__side { gap: 12px; }
  .rd-r3-paper__aside { flex-wrap: wrap; width: 100%; justify-content: space-between; }
  .rd-r3-paper__sum { align-items: flex-start; }
  .rd-r3-paper__big { font-size: 24px; }
  .rd-r3-paper__acts .rd-btn--pri, .rd-r3-paper__acts .rd-btn-wrap:has(.rd-btn--pri) { display: none; }
  .rd-r3-paper .rd-fx__acts > .rd-btn, .rd-r3-paper .rd-fx__acts > .rd-btn-wrap { display: none; }
  .rd-r3-paper__due { width: 100%; }
  .rd-r3-paper__due .rd-r3-input { flex: 1; }
  .rd-r3-input { height: 48px; font-size: 16px; }
  .rd-r3-paper__find { flex-wrap: wrap; }
  .rd-r3-paper__find .rd-r3-input { flex-basis: 100%; max-width: none; }
  .rd-r3-paper .rd-table td.rd-r3-paper__wide { display: none; }
  .rd-r3-paper__lmeta { display: block; margin-top: 2px; font-size: var(--fs-meta); color: var(--text-muted); }
  .rd-r3-paper .rd-table tr.rd-r3-paper__foot { min-height: 0; padding: 4px 0; border-top: none; }
  .rd-r3-paper .rd-table tr.rd-r3-paper__foot td { padding: 0; border: none; }
  .rd-r3-paper__kpi { flex-direction: column; gap: 10px; }
  .rd-r3-paper__post .rd-r3-input { width: auto; flex: 1 1 140px; }
  .rd-r3-paper__post .rd-btn { flex: 1 1 100%; }
  .rd-r3-paper__pay { flex-direction: column; gap: 2px; }
  .rd-r3-paper__pay .rd-r3-note { margin-left: 0; }
  /* Портал кладёт панель в свою обёртку, и «вся ширина» считается от окна. */
  .rd-r3-paper-act { display: flex; gap: 8px; width: calc(100vw - 32px); }
  .rd-r3-paper-act > .rd-btn, .rd-r3-paper-act > .rd-btn-wrap { flex: 1; min-width: 0; }
  .rd-r3-paper-act > .rd-btn-wrap .rd-btn { flex: 1; }
  .rd-r3-paper-act { flex-wrap: wrap; }
  .rd-r3-paper-act > .rd-btn-wrap { gap: 4px; }
  .rd-r3-paper-act .rd-btn__why { flex-basis: 100%; }

  .rd-r3-debt__figs { gap: 12px; }
  .rd-r3-debt__bucket { grid-template-columns: 90px minmax(0, 1fr) auto; }
  .rd-r3-debt .rd-table td { order: 3; font-size: var(--fs-meta); color: var(--text-secondary); }
  .rd-r3-debt .rd-table td:first-child { order: 0; font-size: var(--fs-body); }
  .rd-r3-debt .rd-table td.rd-r3-debt__sum { order: 1; font-size: var(--fs-body); font-weight: 600; color: var(--text-primary); }
  .rd-r3-debt .rd-table td.rd-r3-debt__state { order: 2; flex-basis: 100%; }
  .rd-r3-debt .rd-table td.rd-r3-debt__wide { display: none; }
}


/* ==== D номенклатура, заказ партнёра, инженер (wares, partner_order, engineer): слот потока, правит только его строитель ==== */

/* Общая раскладка трёх экранов D: столбец карточек, запись «главное + 340». */
.rd-r3-d { display: flex; flex-direction: column; gap: var(--gap); min-width: 0; font-family: var(--font); color: var(--text-body); }
.rd-r3-d[hidden] { display: none; }
.rd-r3-d-top__t { margin: 0; font-size: var(--fs-page-title); font-weight: var(--fw-page-title); letter-spacing: var(--ls-page-title); color: var(--text-primary); }
.rd-r3-d-top__s { margin: 4px 0 0; font-size: var(--fs-body); color: var(--text-secondary); }
.rd-r3-d-err { margin: 0; padding: 12px 16px; border-radius: 12px; background: var(--bg-surface); font-size: var(--fs-body); color: var(--state-late-text); }
.rd-r3-d-note { margin: 0; font-size: var(--fs-body); color: var(--text-secondary); }
.rd-r3-d-meta { font-size: var(--fs-meta); color: var(--text-secondary); }
.rd-r3-d-count { color: var(--text-muted); }
/* Длинная мета карточки уходит под заголовок, а не сжимает его в столбик. */
.rd-r3-d .rd-card__head { flex-wrap: wrap; row-gap: 4px; }
.rd-r3-d .rd-card__title { white-space: nowrap; }
.rd-r3-d-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--gap); align-items: start; }
.rd-r3-d-col { display: flex; flex-direction: column; gap: var(--gap); min-width: 0; }
.rd-r3-d-aside-sub { font-size: var(--fs-meta); font-weight: 400; color: var(--text-muted); }
.rd-r3-d-back, .rd-r3-d-link { appearance: none; height: auto; padding: 0; border: 0; background: none; font: inherit; font-size: var(--fs-body); font-weight: 400; color: var(--brand-blue-text); text-align: left; cursor: pointer; }
.rd-r3-d-back { align-self: flex-start; }
.rd-r3-d-back:hover, .rd-r3-d-link:hover { text-decoration: underline; }
.rd-r3-d :focus-visible { outline: 2px solid var(--brand-blue); outline-offset: 2px; }

/* Номенклатура: поиск, отбор, разметка в строке. */
.rd-r3-d-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 14px; }
.rd-r3-d-find { flex: 0 1 320px; min-width: 0; height: var(--btn-h); padding: 0 14px; border: 0; border-radius: var(--r-button); background: var(--bg-page); font: inherit; font-size: var(--fs-body); color: var(--text-primary); }
.rd-r3-d-find::placeholder { color: var(--text-muted); }
.rd-r3-d-bar .rd-seg { max-width: 100%; overflow-x: auto; }
.rd-r3-d-marks { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.rd-r3-d-chip { appearance: none; height: auto; padding: 2px 8px; border: 0; border-radius: var(--r-chip); background: var(--bg-page); font: inherit; font-size: var(--fs-label); font-weight: 400; color: var(--text-secondary); cursor: pointer; }
.rd-r3-d-chip:hover { background: var(--bg-hover); color: var(--text-primary); }
.rd-r3-d-chip:disabled { color: var(--text-disabled); cursor: not-allowed; }
.rd-r3-d-flags { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.rd-r3-d-flag { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-meta); color: var(--text-secondary); white-space: nowrap; cursor: pointer; }
.rd-r3-d-flag input { margin: 0; accent-color: var(--brand-blue); }

/* Поля ввода, подпись под строкой, отступ абзаца. */
.rd-r3-d-inp { min-width: 0; height: var(--btn-h); padding: 0 12px; border: 0; border-radius: var(--r-button); background: var(--bg-page); font: inherit; font-size: var(--fs-body); color: var(--text-primary); }
.rd-r3-d-inp::placeholder { color: var(--text-muted); }
select.rd-r3-d-inp { flex: 0 1 360px; }
.rd-r3-d-form { display: flex; flex-direction: column; align-items: stretch; gap: 8px; }
.rd-r3-d-form > .rd-r3-d-inp { flex: none; }
.rd-r3-d-form > .rd-btn, .rd-r3-d-form > .rd-btn-wrap { align-self: flex-start; }
.rd-r3-d-pick { min-width: 0; }
.rd-r3-d-sub { display: block; margin-top: 2px; font-size: var(--fs-meta); font-weight: 400; color: var(--text-muted); }
.rd-r3-d-gap { margin-top: 14px; }
.rd-r3-d-link[aria-current="true"] { font-weight: 600; }

/* Шапка записи со степпером — вариант шапки: две карточки пакета встык,
   как одна (Head не принимает детей, а степпер у заказа — часть шапки). */
.rd-r3-d-joined { display: flex; flex-direction: column; }
.rd-r3-d-joined > .rd-card:first-child { border-radius: var(--r-card) var(--r-card) 0 0; padding-bottom: 10px; }
.rd-r3-d-joined > .rd-card + .rd-card { border-radius: 0 0 var(--r-card) var(--r-card); padding-top: 8px; }

/* Мои работы: строка чисел шапки, строка очереди «текст слева, срок справа». */
.rd-r3-d-stats { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; font-size: var(--fs-body); color: var(--text-secondary); }
.rd-r3-d-stats b { color: var(--text-primary); font-variant-numeric: tabular-nums; }
.rd-r3-d-row { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rd-r3-d-row__m { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.rd-r3-d-row__t { display: block; font-size: var(--fs-body); color: var(--text-primary); overflow-wrap: anywhere; }
.rd-r3-d-row__r { flex: 0 1 300px; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 12px; font-size: var(--fs-meta); color: var(--text-secondary); text-align: right; }
.rd-r3-d-row__r b { color: var(--text-primary); }
.rd-r3-d-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

@media (max-width: 1279px) {
  .rd-r3-d-grid { grid-template-columns: minmax(0, 1fr) 300px; }
}
@media (max-width: 1023px) {
  .rd-r3-d-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .rd-r3-d { gap: 12px; }
  .rd-r3-d-grid, .rd-r3-d-col { gap: 12px; }
  .rd-r3-d-find, .rd-r3-d-inp, select.rd-r3-d-inp { flex: 1 1 100%; height: 48px; font-size: 16px; }
  .rd-r3-d-form > .rd-btn, .rd-r3-d-form > .rd-btn-wrap { align-self: stretch; }
  .rd-r3-d-form > .rd-btn-wrap > .rd-btn { flex: 1; }
  .rd-r3-d-joined > .rd-card:first-child { border-radius: 14px 14px 0 0; }
  .rd-r3-d-joined > .rd-card + .rd-card { border-radius: 0 0 14px 14px; }
  .rd-r3-d-back { min-height: 48px; font-size: 16px; }
  .rd-r3-d-chip { min-height: 32px; }
  .rd-r3-d .rd-head__aside { flex-wrap: wrap; gap: 4px 12px; }
  .rd-r3-d .rd-head__aside > span:first-child { white-space: nowrap; }
  .rd-r3-d-row { flex-wrap: wrap; }
  .rd-r3-d-row__r { flex: 1 1 100%; justify-content: flex-start; text-align: left; }
  .rd-r3-d-flag { min-height: 32px; }
}





