

/* Закон старшинства. Он должен читаться как объявление, а не как сноска. */
.cp-law { margin:14px 0; padding:12px 16px; border:1px solid var(--line,#d8dde5); border-radius:10px;
          background:color-mix(in srgb, var(--accent,#2f6feb) 4%, transparent); }
.cp-law h3 { margin:0 0 6px; font-size:14px; }
.cp-law__levels { margin:0 0 8px; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:6px 18px; font-size:13px; }
.cp-law__levels li { display:flex; align-items:center; gap:6px; }

.cp-rank { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%;
           font-size: 12px; font-weight:700; color:#fff; background:var(--muted,#7b8794); }

.cp-tabs { display:flex; gap:8px; margin:12px 0 6px; flex-wrap:wrap; }
.cp-tab { border:1px solid var(--line,#d8dde5); background:transparent; border-radius:8px; padding:7px 14px; cursor:pointer; font-size:13px; }
.cp-tab.is-active { border-color:var(--accent,#2f6feb); background:color-mix(in srgb, var(--accent,#2f6feb) 10%, transparent); font-weight:600; }

.cp-picker { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:flex-end; margin:12px 0; }
.cp-picker label { display:flex; flex-direction:column; font-size:12px; gap:4px; }
.cp-picker__wide { min-width:340px; flex:1 1 340px; }

/* Покрытие категориями: правка по категории не достаёт до товара без
   категории, и это число обязано стоять рядом с выбором категории. */
.cp-coverage { margin:8px 0; padding:8px 12px; font-size:13px; border-radius:6px;
               border-left:3px solid var(--warn,#c07a12); background:color-mix(in srgb, var(--warn,#c07a12) 7%, transparent); }
.cp-coverage:empty { display:none; }

.cp-summary { display:flex; flex-wrap:wrap; gap:10px; margin:12px 0; }
.cp-card__label { font-size: 12px; text-transform:uppercase; letter-spacing:.04em; opacity:.7; }
.cp-card span.t-dim { font-size:12px; }

/* Знаменатель стоит НАД таблицей: ровное число строк почти всегда предел
   выдачи, и на экране про деньги молчать об этом нельзя. */
.cp-denominator { margin:10px 0; padding:8px 12px; border-left:3px solid var(--accent,#2f6feb);
                  background:color-mix(in srgb, var(--accent,#2f6feb) 6%, transparent); font-size:13px; border-radius:0 6px 6px 0; }
.cp-table th, .cp-table td { vertical-align:top; }
.cp-num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cp-price--adjusted { font-weight:700; color:#1b6b3a; }
.cp-price--missing { color:var(--danger,#b3261e); }
.cp-missing { font-size:12px; }

.cp-origin { display:inline-block; padding:1px 7px; border-radius:999px; font-size: 12px; white-space:nowrap;
             border:1px solid var(--line,#d8dde5); }
.cp-origin--1 { border-color:#1b6b3a; background:color-mix(in srgb,#1b6b3a 12%,transparent); }
.cp-origin--2 { border-color:#2f6feb; background:color-mix(in srgb,#2f6feb 12%,transparent); }
.cp-origin--3 { border-color:#8a6d1f; background:color-mix(in srgb,#8a6d1f 12%,transparent); }
.cp-origin--4 { border-color:#8a4a1f; background:color-mix(in srgb,#8a4a1f 12%,transparent); }
.cp-origin--base { opacity:.75; }
.cp-origin-text { display:block; font-size: 12px; opacity:.8; margin-top:2px; }
.cp-overridden { font-size: 12px; color:#8a4a1f; }

.cp-age { display:inline-block; padding:1px 7px; border-radius:999px; font-size: 12px; white-space:nowrap; }
.cp-age--fresh { background:color-mix(in srgb,#1b6b3a 16%,transparent); }
.cp-age--ok { background:color-mix(in srgb,#2f6feb 14%,transparent); }
.cp-age--old { background:color-mix(in srgb,#c07a12 18%,transparent); }
.cp-age--ancient { background:color-mix(in srgb,#b3261e 18%,transparent); font-weight:600; }
.cp-age--none { opacity:.6; }

.cp-form { border:1px solid var(--line,#d8dde5); border-radius:10px; padding:14px 16px; margin:12px 0; }
.cp-form h3 { margin:0 0 10px; font-size:14px; }
.cp-form__grid { display:flex; flex-wrap:wrap; gap:10px 14px; }
.cp-form__grid label { display:flex; flex-direction:column; font-size:12px; gap:4px; }
.cp-form__wide { min-width:320px; flex:1 1 320px; }
.cp-form__actions { display:flex; align-items:center; gap:14px; margin-top:12px; flex-wrap:wrap; }
.cp-form__actions output { font-size:12px; }

.cp-pager { display:flex; align-items:center; gap:12px; margin:10px 0; }
.cp-error { color:var(--danger,#b3261e); }

/* Разбор цены. Оформление взято у модалок стола цен (`.pd-dialog`), чтобы две
   модалки одного АРМа не выглядели из разных программ. */
.cp-dialog { max-width:min(920px, 94vw); width:920px; max-height:88vh; overflow:auto;
             border:1px solid var(--line,#d8dde5); border-radius:12px; padding:16px; }
.cp-dialog::backdrop { background:rgba(15,23,42,.45); }
.cp-dialog__head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:10px; }
.cp-dialog__head h3 { margin:0; font-size:15px; }

/* Ячейка «Откуда эта цена» — вход в разбор, и это должно быть видно. */
.cp-origin-open { display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap;
                  background:none; border:0; padding:2px 4px; margin:-2px -4px; border-radius:6px;
                  font:inherit; color:inherit; text-align:left; cursor:pointer; }
.cp-origin-open:hover { background:var(--hover,#eef2f7); }
.cp-origin-open:focus-visible { outline:2px solid var(--accent,#2563eb); outline-offset:1px; }

.cp-explain-base { margin:0 0 4px; font-size:13px; }
.cp-explain-list { list-style:none; margin:12px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.cp-explain-item { display:grid; gap:4px 12px; align-items:baseline; padding:8px 10px;
                   grid-template-columns:28px minmax(0,1fr) auto auto;
                   border:1px solid var(--line,#d8dde5); border-radius:8px; }
.cp-explain-item.is-winner { border-color:var(--accent,#2563eb); background:var(--accent-weak,#eff4ff); }
.cp-explain-rank { font-variant-numeric:tabular-nums; font-weight:600; opacity:.7; }
.cp-explain-rule { min-width:0; overflow-wrap:anywhere; }
.cp-explain-price { font-variant-numeric:tabular-nums; white-space:nowrap; }
.cp-explain-verdict { white-space:nowrap; font-size:12px; opacity:.75; }
.cp-explain-who { grid-column:2; font-size:12px; opacity:.7; }
.cp-explain-reason { grid-column:2 / -1; font-size:12px; opacity:.8; }
.cp-explain-law { margin-top:12px; }

@media (max-width:640px) {
  .cp-explain-item { grid-template-columns:28px minmax(0,1fr); }
  .cp-explain-price, .cp-explain-verdict { grid-column:2; }
}

/* Сетка на прайсе клиента. Смещение липкой колонки товара задаётся здесь:
   у этой таблицы своё начало — номер строки и сразу товар, — и зашивать
   ширины в общий лист значило бы сделать его непригодным для соседней
   таблицы с другим порядком колонок. */
table.grid-table.cp-table .cp-sticky-product { left:44px; max-width:340px; }
table.grid-table.cp-table td { max-width:340px; }
table.grid-table.cp-table .cp-origin-open { white-space:normal; }

/* Screen composition: one scope, one table owner, disclosure before commands. */
.view.client-prices { min-width:0; }
.client-prices #cpExternal { max-width:320px; font-size: 12px; }
.client-prices .cp-law { padding:10px 12px; margin:12px 0; font-size:12px; }
.cp-law summary { cursor:pointer; font-weight:600; }
.cp-law summary span { margin-left:12px; color:var(--muted); font-weight:400; }
.cp-law[open] summary { margin-bottom:12px; }
.cp-law p { margin:8px 0 0; line-height:1.5; }
.client-prices .cp-tabs { gap:3px; border-bottom:1px solid var(--line); margin:12px 0; }
.client-prices .cp-tab { border:0; border-radius:6px 6px 0 0; padding:9px 12px; color:var(--muted); background:transparent; }
.client-prices .cp-tab.is-active { color:var(--accent); background:var(--accent-soft,rgba(13,148,136,.07)); box-shadow:inset 0 -2px var(--accent); }
.client-prices .cp-picker { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--surface,#fff); }
.client-prices .cp-picker label { min-width:0; gap:5px; font-size: 12px; color:var(--muted); }
.client-prices .cp-picker label:first-child,.client-prices .cp-picker__wide { grid-column:span 3; }
.client-prices .cp-picker label[data-cp-book-filter]:nth-last-child(2) { grid-column:span 3; }
.client-prices .cp-picker label:first-child { align-self:end; }
.client-prices input,.client-prices select { min-width:0; width:100%; height:34px; box-sizing:border-box; font:inherit; font-size:12px; color:var(--text); background:var(--surface,#fff); border:1px solid var(--line,#d8dde5); border-radius:6px; padding:6px 9px; box-shadow:none; }
.client-prices .cp-picker__wide { display:grid; grid-template-columns:1fr 1fr; }
.client-prices .cp-picker__wide input { grid-column:1; }
.client-prices .cp-picker__wide select { grid-column:2; }
.client-prices[data-cp-view="rules"] [data-cp-book-filter] { display:none; }
.client-prices .cp-scope { font-size: 12px; line-height:1.5; color:var(--muted); margin:8px 0; }
.client-prices .cp-coverage { font-size: 12px; padding:7px 10px; line-height:1.5; }
.client-prices .cp-summary { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.client-prices .cp-summary:empty { display:none; }
.client-prices .cp-card { min-width:0; padding:10px; border:0; border-right:1px solid var(--line); border-radius:0; gap:5px; }
.client-prices .cp-card:last-child { border-right:0; }
.client-prices .cp-card strong { font-size:15px; overflow-wrap:anywhere; }
.client-prices .cp-card .t-dim { font-size: 12px; line-height:1.4; }
.client-prices .cp-card__label { text-align:left; background:none; border:0; padding:0; font:inherit; font-size: 12px; color:var(--muted); text-transform:none; letter-spacing:0; opacity:1; }
.client-prices button.cp-card__label { cursor:pointer; color:var(--accent); }
.client-prices .cp-denominator { padding:0; background:none; border:0; font-size: 12px; margin:10px 0; }
.client-prices .cp-table-wrap { width:100%; min-width:0; border:1px solid var(--line); border-radius:8px; }
.client-prices .cp-table { margin:0; border:0; width:100%; font-size:12px; }
.client-prices .cp-table th { padding:9px 10px; font-size: 12px; letter-spacing:.03em; white-space:nowrap; }
.client-prices .cp-table td { padding:8px 10px; line-height:1.45; max-width:300px; overflow-wrap:anywhere; }
.client-prices #cpJournalPane .cp-table { table-layout:fixed; min-width:750px; }
.client-prices #cpJournalPane th:nth-child(4) { width:28%; }
.client-prices #cpJournalPane th:nth-child(5) { width:16%; }
.client-prices .cp-link { border:0; padding:0; background:none; color:var(--accent); font:inherit; cursor:pointer; text-align:inherit; }
.client-prices .cp-link:hover { text-decoration:underline; }
.client-prices .cp-section-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:12px 0; font-size:12px; }
.client-prices .cp-journal-search { display:flex; align-items:center; gap:12px; margin:12px 0; color:var(--muted); font-size:12px; }
.client-prices .cp-journal-search input { max-width:360px; }
.client-prices .cp-dialog { width:min(780px,calc(100vw - 32px)); max-width:calc(100vw - 32px); max-height:calc(100dvh - 40px); padding:0; background:var(--surface,#fff); color:var(--text); }
.client-prices .cp-dialog[open] { display:flex; flex-direction:column; }
.client-prices .cp-dialog__head { flex-shrink:0; padding:14px 18px; margin:0; border-bottom:1px solid var(--line); }
.client-prices .cp-dialog__head h3 { font-size:16px; }
.client-prices .cp-dialog__head button { flex-shrink:0; }
.client-prices .cp-dialog__body,.client-prices .cp-form { overflow:auto; min-height:0; padding:18px; font-size:13px; line-height:1.55; }
.client-prices .cp-form { margin:0; border:0; border-radius:0; }
.client-prices .cp-form__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.client-prices .cp-form__grid label { min-width:0; }
.client-prices .cp-form__actions { position:sticky; bottom:-18px; padding:12px 0; background:var(--surface,#fff); }
.cp-event-details { margin:0; }
.cp-event-details>div { display:grid; grid-template-columns:140px minmax(0,1fr); gap:12px; padding:9px 0; border-bottom:1px solid var(--line); }
.cp-event-details dt { color:var(--muted); }
.cp-event-details dd { margin:0; overflow-wrap:anywhere; }
.client-prices :is(button,input,select,summary):focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
@media(max-width:1000px) {
 .client-prices .cp-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .client-prices .cp-picker__wide { display:flex; }
}
@media(max-width:640px) {
 .client-prices .cp-picker { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .client-prices .cp-picker label:first-child,.client-prices .cp-picker__wide,.client-prices .cp-picker label[data-cp-book-filter]:nth-last-child(2) { grid-column:span 2; }
 .client-prices .cp-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .client-prices .cp-form__grid { grid-template-columns:1fr; }
 .cp-law summary span { display:block; margin:5px 0 0; }
 .client-prices .cp-journal-search { flex-direction:column; align-items:stretch; }
 .cp-event-details>div { grid-template-columns:1fr; gap:3px; }
}
.client-prices { --muted:#66736f; }
.client-prices .cp-summary { grid-template-columns:repeat(5,minmax(0,1fr)); }
.client-prices .cp-card:first-child { grid-column:1/-1; display:flex; flex-direction:row; align-items:baseline; flex-wrap:wrap; padding:6px 10px; border-right:0; border-bottom:1px solid var(--line); }
.client-prices .cp-card:first-child strong { font-size:12px; }
.client-prices .cp-cell-clip { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
@media(max-width:1000px) {.client-prices .cp-summary {grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:640px) {.client-prices .cp-summary {grid-template-columns:repeat(2,minmax(0,1fr));}}
.client-prices .cp-hero-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:6px; max-width:440px; }
.client-prices .cp-hero-actions .btn { font-size:12px; min-height:34px; padding:6px 10px; }
.client-prices .cp-hero-actions #cpExternal { flex-basis:100%; width:fit-content; margin-left:auto; text-align:right; }
.client-prices .cp-picker label,.client-prices .cp-scope,.client-prices .cp-coverage,.client-prices .cp-denominator { font-size:12px; }
.client-prices :is(input,select) { height:36px; font-size:13px; }
.client-prices .cp-card__label,.client-prices .cp-card .t-dim { font-size:12px; }
.client-prices .cp-card strong { font-size:17px; }
.client-prices .cp-card:first-child strong { font-size:13px; }
.client-prices .cp-table td,.client-prices .cp-link { font-size:13px; }
.client-prices .cp-table th,.client-prices :is(.cp-origin,.cp-origin-text,.cp-overridden,.cp-age) { font-size:12px; }
.client-prices .cp-tab { font-size:13px; }
.client-prices .cp-dialog :is(p,li,label,output) { font-size:13px; }
@media(max-width:640px) {
 .client-prices .cp-hero-actions { justify-content:flex-start; }
 .client-prices .cp-hero-actions #cpExternal { margin-left:0; text-align:left; }
 .client-prices .cp-hero-actions .btn,.client-prices .cp-tab,.client-prices :is(input,select) { min-height:44px; }
}
.client-prices .cp-summary { display:block; border:0; overflow:visible; }
.client-prices .cp-summary>.cp-card { border:0; padding:0 0 8px; }
.client-prices .cp-overview { border:1px solid var(--line); border-radius:8px; background:var(--surface,#fff); }
.client-prices .cp-overview>summary { cursor:pointer; padding:10px 12px; font-size:13px; }
.client-prices .cp-overview>summary span { float:right; color:var(--accent); font-size:12px; }
.client-prices .cp-metrics-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid var(--line); }
.client-prices .cp-metrics-grid>.cp-card:first-child { display:flex; flex-direction:column; grid-column:auto; border-right:1px solid var(--line); border-bottom:0; padding:10px; }
.client-prices .cp-metrics-grid>.cp-card:first-child strong { font-size:17px; }
.client-prices .cp-origin-open { display:grid; grid-template-columns:auto minmax(0,1fr); width:180px; max-width:100%; align-items:center; }
.client-prices .cp-origin-text { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-width:0; margin:0; }
@media(max-width:1000px) {.client-prices .cp-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:640px) {.client-prices .cp-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.client-prices .cp-overview>summary span{float:none;display:block;margin-top:5px}}
.client-prices .btn-primary { background:var(--accent,#087f6b); color:#fff; border-color:var(--accent,#087f6b); }

/* Последним словом в файле — и поэтому без !important.
   Раньше здесь стоял `display:none !important`, потому что правило
   `.client-prices .cp-picker { display:grid }` имеет ту же специфичность (200)
   и стояло НИЖЕ, то есть выигрывало порядком: панель с выставленным [hidden]
   оставалась раскрытой. Вес тот же, но теперь последнее слово за скрытием. */
.client-prices [hidden] { display:none; }
