/* Только каталог /assistenty/: общие цвета и шрифты заданы в style.css. */
.page > .catalog { grid-column: wide; }
.catalog { margin: 4px 0 32px; min-width: 0; }
.catalog [hidden] { display: none !important; }
.catalog-filters { display: grid; grid-template-columns: 1fr 1fr 1.2fr auto; gap: 12px; align-items: end; padding: 18px; margin: 0 0 12px; border: 1px solid var(--tag-edge); border-radius: 6px; background: var(--tag); }
.catalog-filters label { display: flex; flex-direction: column; min-width: 0; gap: 6px; color: var(--ink-2); font-size: 14px; line-height: 1.4; }
.catalog-filters select, .catalog-filters input, .catalog-filters button { min-height: 46px; min-width: 0; width: 100%; margin: 0; padding: 10px 12px; border: 1px solid var(--tag-edge); border-radius: 3px; background: var(--paper); color: var(--ink); font: 400 16px/1.35 var(--f-body); }
.catalog-filters select { padding-right: 26px; }
.catalog-filters input::placeholder { color: var(--ink-3); opacity: 1; }
.catalog-filters button { width: auto; cursor: pointer; background: var(--chip); }
.catalog-filters :is(select, input, button):focus-visible, .catalog-sources summary:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; }
.catalog-count { margin: 0 0 12px; color: var(--ink-2); font-size: 14px; }
.catalog-empty { padding: 18px; margin: 0; border: 1px dashed var(--tag-edge); border-radius: 6px; }
.catalog-table { min-width: 0; }
.catalog-table table { table-layout: fixed; width: 100%; font-size: 15px; line-height: 1.5; }
.catalog-table caption { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.catalog-table th, .catalog-table td { overflow-wrap: anywhere; vertical-align: top; }
.catalog-table th:nth-child(1) { width: 18%; }
.catalog-table th:nth-child(2) { width: 21%; }
.catalog-table th:nth-child(3) { width: 23%; }
.catalog-table th:nth-child(4) { width: 18%; }
.catalog-table th:nth-child(5) { width: 20%; }
.catalog-table td { padding-block: 18px; }
.catalog-table td p { margin: 0 0 10px; font: inherit; }
.catalog-table td p:last-child { margin-bottom: 0; }
.catalog-name { font: 800 26px/1.1 var(--f-head); }
.catalog-table td .catalog-tasks { margin-top: 8px; color: var(--ink-2); font-size: 13px; line-height: 1.5; }
.catalog-table td .catalog-notes { color: var(--ink-2); font-size: 13px; font-weight: 400; }
.catalog-table td .catalog-payment { padding-top: 10px; border-top: 1px dashed var(--rule); color: var(--ink-2); }
.catalog-table .status { margin: 0 0 10px; }
.catalog-table .catalog-unknown { background: var(--chip); color: var(--ink-2); }
.catalog-sources { margin-top: 12px; color: var(--ink-2); font: 400 12px/1.55 var(--f-body); }
.catalog-sources summary { min-height: 44px; padding: 10px 0; cursor: pointer; }
.catalog-sources dl { margin: 0; }
.catalog-sources dl > div { padding: 8px 0; border-top: 1px dashed var(--rule); }
.catalog-sources dt { margin-bottom: 3px; font-weight: 600; }
.catalog-sources time { display: block; font: 400 10px/1.6 var(--f-mono); color: var(--ink-3); }
.catalog-sources dd { margin: 0; }
.catalog-sources a { display: inline; }
@media (width <= 900px) {
  .catalog-filters { grid-template-columns: 1fr 1fr; }
  .catalog-filters button { justify-self: start; }
}
@media (width <= 760px) {
  .catalog-table table, .catalog-table tbody, .catalog-table tr, .catalog-table td { display: block; }
  .catalog-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .catalog-table tr { padding: 18px; margin-bottom: 16px; border: 1px solid var(--tag-edge); border-radius: 6px; background: var(--tag); color: var(--tag-ink); }
  .catalog-table td { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 12px; padding: 12px 0; border: 0; border-top: 1px dashed var(--rule); }
  .catalog-table td::before { content: attr(data-label); color: var(--ink-3); font: 400 11px/1.5 var(--f-mono); }
  .catalog-table td:first-child { display: block; padding: 0 0 14px; border: 0; }
  .catalog-table td:first-child::before { content: none; }
  .catalog-sources { margin-top: 4px; }
  .catalog-sources summary { padding: 11px 0; }
  .catalog-sources dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; }
}
@media (width <= 460px) {
  .catalog-filters { grid-template-columns: 1fr; gap: 12px 10px; padding: 14px; }
  .catalog-filters label:last-of-type { grid-column: 1 / -1; }
  .catalog-filters button { grid-column: 1 / -1; width: 100%; }
  .catalog-table tr { padding: 16px 14px; }
  .catalog-table td { grid-template-columns: 92px minmax(0, 1fr); gap: 10px; }
}
