/* Стили реестра решений (WP38, r3 R3.3): страница «Решения» с карточкой сбоку, строка решения, пары «Спорных», цепочки
   «По темам», статус реестра у решения в «Итогах» и блок «Решения: 3 ждут подтверждения», список решений проекта.
   Цвета только из theme.css. «Предложено» светлее и подписано «не подтверждено»: реестр честен, пока решения не разобраны. */

/* Страница. */
.w-home.dc-page { max-width: none; margin-left: 0; }
.dc-bar { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.dc-views { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 4px 12px; }
.dc-tabs { flex: 0 0 auto; }
.dc-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.dc-switch, .dc-chip { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px; border-radius: 9px; font-size: 13px; color: var(--body); text-decoration: none; transition: background-color .12s; }
.dc-switch:hover, .dc-chip:hover { background: var(--secondary); }
.dc-switch[aria-checked="true"], .dc-chip[aria-checked="true"] { background: var(--accent-soft); color: var(--accent-ink); }
.dc-switch .w-i, .dc-chip .w-i { width: 14px; height: 14px; }
.dc-filter { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 8px 0 10px; border-radius: 9px; font-size: 13px; color: var(--body); transition: background-color .12s; }
.dc-filter:hover, .dc-filter[aria-expanded="true"] { background: var(--secondary); }
.dc-filter .w-i { width: 14px; height: 14px; color: var(--muted-foreground); }
.dc-search { flex: 1 1 200px; max-width: 320px; }
.dc-search .w-input { height: 32px; }
.dc-period { display: flex; flex-direction: column; gap: 8px; padding: 8px 10px; }
.dc-label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--muted-foreground); }

.dc-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 8px; }
.dc-layout.has-card { grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); }
.dc-body { min-width: 0; }
.dc-mine { margin: 8px 0 4px; }
.dc-more { margin-top: 12px; }

/* Группы по проектам, пары, темы. */
.dc-group, .dc-topic-line, .dc-project-part { margin-top: 20px; }
.dc-group-h { margin: 0 0 4px; font-size: 14px; line-height: 22px; font-weight: 560; letter-spacing: -.008em; color: var(--foreground); }
.dc-pair { margin-top: 12px; padding: 4px 12px 8px; border: 1px solid var(--border); border-radius: 14px; }
.dc-pair .dc-row { width: 100%; margin-inline: 0; }
.dc-pair-h { margin: 6px 0 2px; font-size: 12px; line-height: 18px; color: var(--muted-foreground); }
.dc-chain-line { margin: 0; font-size: 15px; line-height: 24px; color: var(--foreground); overflow-wrap: anywhere; }
.dc-chain-link { color: var(--foreground); text-decoration: none; border-radius: 6px; }
.dc-chain-link:hover, .dc-chain-link.is-focused { color: var(--accent-ink); }
.dc-chain-link.is-replaced, .dc-chain-link.is-cancelled { color: var(--muted-foreground); }
.dc-chain-link.is-proposed { color: var(--body); }
.dc-arrow, .dc-dot, .dc-when { color: var(--muted-foreground); }

/* Строка решения. */
.dc-list-rows { display: flex; flex-direction: column; }
.dc-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 12px; align-items: start; width: calc(100% + 16px); margin-inline: -8px; padding: 10px 8px; border-radius: 12px; transition: background-color .12s; }
.dc-row:hover, .dc-row.is-focused, .dc-row.is-open { background: var(--hover); }
.dc-row.is-focused { box-shadow: inset 0 0 0 1.5px var(--ring); }
.dc-tick, .dc-tick-gap { width: 18px; height: 18px; margin-top: 3px; }
.dc-copy { grid-column: 2; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.dc-row > .dc-copy:first-child { grid-column: 1 / 3; }
.dc-text { font-size: 15px; line-height: 23px; font-weight: 450; color: var(--foreground); text-decoration: none; overflow-wrap: anywhere; }
.dc-text:hover { color: var(--accent-ink); }
.dc-row.is-proposed .dc-text { color: var(--body); font-weight: 400; }
.dc-row.is-replaced .dc-text, .dc-row.is-cancelled .dc-text { color: var(--muted-foreground); }
.dc-line { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; font-size: 13px; line-height: 20px; color: var(--muted-foreground); }
/* Каждая часть несёт свою «·» слева в полосе шириной --dc-sep; ряд частей сдвинут влево на эту полосу, а .dc-facts её
   обрезает — так перенесённая строка не кончается и не начинается точкой (как .tk-src в tasks.css). */
.dc-facts { --dc-sep: 1.25em; display: block; flex: 1 1 auto; min-width: 0; overflow: hidden; }
.dc-facts-parts { display: flex; flex-wrap: wrap; min-width: 0; margin-inline-start: calc(-1 * var(--dc-sep)); }
.dc-meta-part { display: flex; min-width: 0; overflow-wrap: anywhere; }
.dc-meta-part > .dc-dot { flex: none; inline-size: var(--dc-sep); text-align: center; }
.dc-side { display: flex; align-items: flex-start; margin-top: -2px; }

/* Статус: «Действует» — тихий акцент, «Предложено» светлее с подписью, прошлое — серое. */
.dc-status { display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 7px; font-size: 12px; font-weight: 500; white-space: nowrap; font-variant-numeric: tabular-nums; background: var(--w-chip); color: var(--body); }
.dc-status.is-active { background: var(--accent-soft); color: var(--accent-ink); }
.dc-status.is-proposed { background: transparent; border: 1px dashed var(--border-strong); color: var(--muted-foreground); }
.dc-status.is-replaced, .dc-status.is-cancelled { color: var(--muted-foreground); }
.dc-unconfirmed { font-size: 12px; color: var(--muted-foreground); }

/* Карточка сбоку; на телефоне — вместо списка. */
.dc-card { position: sticky; top: 16px; align-self: start; display: flex; flex-direction: column; gap: 10px; max-height: calc(100vh - 32px); overflow-y: auto; padding: 16px; border: 1px solid var(--border); border-radius: 16px; background: var(--card); }
.dc-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.dc-card-head .w-h3 { margin: 0; }
.dc-card-text { margin: 0; font-size: 16px; line-height: 24px; font-weight: 500; color: var(--foreground); overflow-wrap: anywhere; }
.dc-quote { display: block; padding-left: 10px; border-left: 2px solid var(--border-strong); font-size: 13px; line-height: 20px; color: var(--body); overflow-wrap: anywhere; quotes: "«" "»"; }
.dc-note, .dc-fact { margin: 0; font-size: 13px; line-height: 20px; color: var(--muted-foreground); overflow-wrap: anywhere; }
.dc-fact a, .dc-list a, .dc-marks a { color: var(--foreground); }
.dc-facts-list { display: flex; flex-direction: column; gap: 2px; }
.dc-marks { margin: 0; padding-left: 18px; font-size: 13px; line-height: 20px; color: var(--body); overflow-wrap: anywhere; }
.dc-proposal { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border-radius: 12px; background: var(--soon-bg); color: var(--foreground); }
.dc-proposal p { margin: 0; font-size: 13px; line-height: 20px; overflow-wrap: anywhere; }
.dc-actions { flex-wrap: wrap; }
.dc-part { display: flex; flex-direction: column; gap: 4px; }
.dc-h { margin: 6px 0 0; font-size: 13px; line-height: 20px; font-weight: 560; color: var(--foreground); }
.dc-list { margin: 0; padding-left: 18px; font-size: 13px; line-height: 20px; color: var(--body); overflow-wrap: anywhere; }
.dc-chain li.is-self { font-weight: 560; }
.dc-ref-status { color: var(--muted-foreground); }
.dc-form { display: flex; flex-direction: column; gap: 8px; }
.dc-reason { min-height: 72px; resize: vertical; }

/* У решения в «Итогах»: статус реестра вместо статуса пункта и строка предложения. */
.dc-item-status { text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.dc-item-again { font-size: 12px; color: var(--muted-foreground); }
.dc-item-proposal { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 2px 8px; border-radius: 9px; background: var(--soon-bg); font-size: 12px; line-height: 18px; color: var(--foreground); overflow-wrap: anywhere; }
.dc-meeting { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-top: 16px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 14px; }
.dc-meeting-h { margin: 0; font-size: 14px; line-height: 22px; color: var(--muted-foreground); }
.dc-meeting-h b { color: var(--foreground); font-weight: 560; }

/* Решения проекта. */
.dc-project-all { margin: 12px 0 0; font-size: 13px; }

@media (max-width: 760px) {
  .dc-layout.has-card { grid-template-columns: minmax(0, 1fr); }
  .dc-layout.has-card .dc-body { display: none; }
  .dc-card { position: static; max-height: none; }
  .dc-search { max-width: none; }
  /* Фильтры остаются в 32 px, но берут палец: цель — 44 px за их краями, как у кнопок (app.css). */
  .dc-switch, .dc-chip, .dc-filter { position: relative; }
  .dc-switch::before, .dc-chip::before, .dc-filter::before { content: ""; position: absolute; inset: -6px 0; }
}
