/*
 * DC Tools — стили инструментов сравнения.
 * Палитра под тему elecgreen: фирменный зелёный #56b533, опасный #e44343.
 * Всё под классом-неймспейсом .dc-text-diff / .dctd-*, чтобы не конфликтовать с темой.
 */

.dc-text-diff {
	--dc-green: #56b533;
	--dc-green-dark: #479a29;
	--dc-red: #e44343;
	--dc-ink: #23292e;
	--dc-muted: #7d888f;
	--dc-line: #e3e8ea;
	--dc-panel: #ffffff;
	--dc-panel-head: #f6f8f6;
	--dc-mono: ui-monospace, "Cascadia Mono", Consolas, Menlo, "Courier New", monospace;

	--dc-ins-bg: #e9f7e0;
	--dc-ins-mark: #b8e39e;
	--dc-del-bg: #fdecea;
	--dc-del-mark: #f5bdb5;
	--dc-gap-bg: #f4f6f7;

	margin: 10px 0 30px;
	font-size: 15px;
	line-height: 1.45;
	color: var(--dc-ink);
}

.dc-text-diff *, .dc-text-diff *::before, .dc-text-diff *::after { box-sizing: border-box; }

/* атрибут hidden должен работать независимо от display у классов */
.dc-text-diff [hidden] { display: none !important; }

/* ---------- панели ввода ---------- */

.dctd-panels {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.dctd-panel {
	position: relative;
	background: var(--dc-panel);
	border: 1px solid var(--dc-line);
	border-radius: 12px;
	overflow: hidden;
	transition: border-color .18s ease, box-shadow .18s ease;
}

.dctd-panel:focus-within {
	border-color: var(--dc-green);
	box-shadow: 0 0 0 3px rgba(86, 181, 51, .14);
}

.dctd-panel.is-dragover {
	border-color: var(--dc-green);
	border-style: dashed;
	box-shadow: 0 0 0 4px rgba(86, 181, 51, .18);
}

.dctd-panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 9px 12px;
	background: var(--dc-panel-head);
	border-bottom: 1px solid var(--dc-line);
}

.dctd-panel-title {
	font-weight: 600;
	font-size: 13px;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.dctd-panel-title em {
	font-style: normal;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: var(--dc-muted);
}

.dctd-panel-tools { display: flex; gap: 6px; }

.dctd-mini {
	font: inherit;
	font-size: 12px;
	padding: 4px 10px;
	border: 1px solid var(--dc-line);
	border-radius: 7px;
	background: #fff;
	color: var(--dc-ink);
	cursor: pointer;
	transition: border-color .15s ease, color .15s ease;
}

.dctd-mini:hover { border-color: var(--dc-green); color: var(--dc-green-dark); }

.dctd-editor {
	display: flex;
	align-items: stretch;
	min-height: 200px;
}

.dctd-gutter {
	flex: 0 0 2.6em;
	padding: 10px 6px 10px 0;
	font-family: var(--dc-mono);
	font-size: 12.5px;
	line-height: 1.55;
	text-align: right;
	color: #a3adb3;
	background: #fbfcfb;
	border-right: 1px solid var(--dc-line);
	overflow: hidden;
	white-space: pre;
	user-select: none;
}

.dctd-input {
	flex: 1;
	width: 100%;
	min-height: 200px;
	padding: 10px 12px;
	border: 0;
	outline: none;
	resize: none;
	font-family: var(--dc-mono);
	font-size: 13.5px;
	line-height: 1.55;
	tab-size: 4;
	white-space: pre;
	overflow: auto;
	background: transparent;
	color: var(--dc-ink);
}

/* ---------- управление ---------- */

.dctd-controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
	margin: 14px 0 4px;
	padding: 12px 14px;
	background: rgba(255, 255, 255, .94);
	border: 1px solid var(--dc-line);
	border-radius: 12px;
}

.dctd-buttons { display: flex; flex-wrap: wrap; gap: 8px; }

.dctd-btn {
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .03em;
	padding: 9px 18px;
	border: 1px solid var(--dc-line);
	border-radius: 8px;
	background: #fff;
	color: var(--dc-ink);
	cursor: pointer;
	transition: transform .12s ease, box-shadow .12s ease, border-color .15s ease, background .15s ease;
}

.dctd-btn:hover { transform: translateY(-1px); box-shadow: 0 3px 10px rgba(35, 41, 46, .08); border-color: var(--dc-green); }
.dctd-btn:active { transform: translateY(0); box-shadow: none; }

.dctd-btn-primary {
	background: var(--dc-green);
	border-color: var(--dc-green);
	color: #fff;
	text-transform: uppercase;
	font-size: 12.5px;
	letter-spacing: .09em;
}

.dctd-btn-primary:hover { background: var(--dc-green-dark); border-color: var(--dc-green-dark); }

.dctd-options {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	font-size: 13px;
	color: var(--dc-ink);
}

.dctd-opt {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	user-select: none;
}

.dctd-opt.is-disabled { opacity: .45; pointer-events: none; }

.dctd-opt select {
	font: inherit;
	font-size: 13px;
	padding: 5px 8px;
	border: 1px solid var(--dc-line);
	border-radius: 7px;
	background: #fff;
	cursor: pointer;
}

.dctd-opt input[type="checkbox"] { accent-color: var(--dc-green); width: 15px; height: 15px; cursor: pointer; }

/* ---------- статус ---------- */

.dctd-status {
	display: none;
	margin: 10px 0 0;
	padding: 9px 14px;
	border-radius: 8px;
	font-size: 13px;
	background: #eef7e8;
	border: 1px solid #cfe6bd;
	color: #39660f;
}

.dctd-status.is-visible { display: block; }

.dctd-status.is-error {
	background: #fdecea;
	border-color: #f5c6c0;
	color: #a32c21;
}

/* ---------- результат ---------- */

.dctd-result {
	margin-top: 14px;
	border: 1px solid var(--dc-line);
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
}

.dctd-result-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 10px 12px;
	background: var(--dc-panel-head);
	border-bottom: 1px solid var(--dc-line);
}

.dctd-stats { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }

.dctd-chip {
	display: inline-flex;
	align-items: baseline;
	gap: 4px;
	font-size: 12px;
	padding: 3px 10px;
	border-radius: 20px;
	border: 1px solid transparent;
}

.dctd-chip b { font-family: var(--dc-mono); font-size: 12.5px; }

.dctd-chip-ins { background: var(--dc-ins-bg); border-color: #cde9b8; color: #2f6516; }
.dctd-chip-del { background: var(--dc-del-bg); border-color: #f3cdc7; color: #a32c21; }
.dctd-chip-chg { background: #fff5d6; border-color: #f0dfa5; color: #8a6d00; }
.dctd-chip-eq  { background: #f2f4f5; border-color: #e3e8ea; color: var(--dc-muted); }

.dctd-same { font-size: 13px; font-weight: 600; color: var(--dc-green-dark); margin-left: 6px; }

.dctd-result-body { min-height: 40px; }

.dctd-split { display: grid; grid-template-columns: 1fr 1fr; }

.dctd-col {
	overflow: auto;
	max-height: 560px;
}

.dctd-col:first-child { border-right: 1px solid var(--dc-line); }

.dctd-unified { overflow: auto; max-height: 560px; }

.dctd-row {
	display: flex;
	font-family: var(--dc-mono);
	font-size: 13px;
	line-height: 1.55;
	min-height: 1.55em;
}

.dctd-num {
	flex: 0 0 3em;
	padding: 0 8px 0 0;
	text-align: right;
	color: #a3adb3;
	background: rgba(0, 0, 0, .02);
	user-select: none;
}

.dctd-sign { flex: 0 0 1.4em; text-align: center; color: var(--dc-muted); user-select: none; }

.dctd-txt {
	flex: 1;
	padding: 0 10px;
	white-space: pre;
}

.dctd-row-ins { background: var(--dc-ins-bg); }
.dctd-row-del { background: var(--dc-del-bg); }
.dctd-row-gap { background: var(--dc-gap-bg); }

.wins { background: var(--dc-ins-mark); border-radius: 3px; padding: 0 1px; }
.wdel { background: var(--dc-del-mark); border-radius: 3px; padding: 0 1px; }

.dctd-collapsed {
	padding: 8px 12px;
	font-size: 12.5px;
	color: var(--dc-muted);
	border-top: 1px dashed var(--dc-line);
}

/* слова/символы */

.dctd-tokens {
	padding: 14px 16px;
	font-family: var(--dc-mono);
	font-size: 13.5px;
	line-height: 1.7;
	white-space: pre-wrap;
	word-break: break-word;
	max-height: 560px;
	overflow: auto;
}

.tok-ins { background: var(--dc-ins-mark); border-radius: 3px; padding: 0 1px; }
.tok-del { background: var(--dc-del-mark); border-radius: 3px; padding: 0 1px; text-decoration: line-through; text-decoration-color: rgba(163, 44, 33, .55); }

.dctd-hint { padding: 8px 12px; font-size: 12.5px; color: var(--dc-muted); border-top: 1px dashed var(--dc-line); }

/* без учёта порядка */

.dctd-orderless .dctd-oblock { border-top: 1px solid var(--dc-line); }
.dctd-orderless .dctd-oblock:first-of-type { border-top: 0; }

.dctd-oblock-title {
	padding: 8px 12px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--dc-muted);
	background: var(--dc-panel-head);
}

.dctd-oempty { padding: 8px 12px; color: var(--dc-muted); font-size: 13px; }

/* подсказка под инструментом */

.dctd-note {
	display: inline-block;
	margin: 10px 2px 0;
	padding: 6px 12px;
	font-size: 12.5px;
	color: var(--dc-muted);
	background: rgba(255, 255, 255, .9);
	border-radius: 8px;
}

/* ---------- мобильные ---------- */

@media (max-width: 860px) {
	.dctd-panels { grid-template-columns: 1fr; }
	.dctd-split { grid-template-columns: 1fr; }
	.dctd-col:first-child { border-right: 0; border-bottom: 1px solid var(--dc-line); }
	.dctd-col { max-height: 340px; }
	.dctd-controls { gap: 10px; }
	.dctd-btn { padding: 8px 14px; }
}

/* ---------- зоны загрузки файлов ---------- */

.dctd-drop {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 200px;
	padding: 24px 16px;
	cursor: pointer;
	background:
		repeating-linear-gradient(135deg, transparent, transparent 11px, rgba(86, 181, 51, .035) 11px, rgba(86, 181, 51, .035) 22px);
	transition: background .2s ease;
}

.dctd-drop:hover .dctd-drop-inner, .dctd-drop:focus .dctd-drop-inner { border-color: var(--dc-green); transform: translateY(-1px); }

.dctd-drop-inner {
	text-align: center;
	padding: 22px 26px;
	border: 2px dashed #cfd8dc;
	border-radius: 12px;
	background: rgba(255, 255, 255, .82);
	transition: border-color .18s ease, transform .18s ease;
}

.dctd-drop-title { font-size: 14.5px; font-weight: 600; }

.dctd-drop-sub { margin-top: 4px; font-size: 12.5px; color: var(--dc-muted); word-break: break-word; max-width: 320px; }

.dctd-drop.is-loading .dctd-drop-inner { border-color: var(--dc-green); }
.dctd-drop.is-loading .dctd-drop-title::after {
	content: ' …';
	animation: dctd-blink 1s steps(2, start) infinite;
}

@keyframes dctd-blink { to { visibility: hidden; } }

.dctd-fileinfo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	padding: 18px 14px;
	background: #f2f9ee;
	border-top: 1px solid #dcedcf;
}

.dctd-filename { font-weight: 600; font-size: 14px; word-break: break-all; }
.dctd-filemeta { font-size: 12.5px; color: var(--dc-muted); flex: 1; min-width: 120px; }


/* ---------- Excel: сводка и таблица ячеек ---------- */

.dcx-summary, .dcx-cells {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
}

.dcx-summary th, .dcx-cells th {
	text-align: left;
	font-size: 11.5px;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--dc-muted);
	background: var(--dc-panel-head);
	border-bottom: 1px solid var(--dc-line);
	padding: 8px 12px;
}

.dcx-summary td, .dcx-cells td { padding: 7px 12px; border-bottom: 1px solid #eef1f2; vertical-align: top; }

.dcx-summary-row { cursor: pointer; transition: background .12s ease; }
.dcx-summary-row:hover { background: #f7faf5; }
.dcx-summary-row.is-active { background: #eef7e8; }

.dcx-badge { font-size: 12px; font-weight: 600; }
.dcx-badge.ins { color: #2f6516; }
.dcx-badge.del { color: #a32c21; }
.dcx-badge.chg { color: #8a6d00; }
.dcx-badge.eq { color: var(--dc-muted); font-weight: 400; }

.dcx-tabs { display: flex; gap: 6px; padding: 10px 12px; border-top: 1px solid var(--dc-line); border-bottom: 1px solid var(--dc-line); background: #fcfdfc; }

.dcx-tab {
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	padding: 6px 14px;
	border: 1px solid var(--dc-line);
	border-radius: 20px;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s ease, color .15s ease;
}

.dcx-tab:hover { border-color: var(--dc-green); }
.dcx-tab.is-active { background: var(--dc-green); border-color: var(--dc-green); color: #fff; }

.dcx-cells { font-family: var(--dc-mono); font-size: 12.5px; }
.dcx-cells .dcx-addr { color: var(--dc-muted); white-space: nowrap; }
.dcx-cells .dcx-old { background: var(--dc-del-bg); color: #7d2018; word-break: break-word; }
.dcx-cells .dcx-new { background: var(--dc-ins-bg); color: #2f6516; word-break: break-word; }

/* ---------- инструмент сравнения кода ---------- */

.dc-code-diff .dcc-code {
	font-family: var(--dc-mono);
	font-size: 13px;
}

.dc-code-diff .dctd-input {
	tab-size: 4;
}

.dcc-filename {
	font-size: 12.5px;
	color: var(--dc-muted);
	margin-right: 6px;
	word-break: break-all;
}

.dcc-row { align-items: stretch; }
.dcc-col { scrollbar-width: thin; }

/* изменённый фрагмент внутри строки — поверх подсветки синтаксиса */
.dctd-row-del .dcc-chg { background: var(--dc-del-mark); border-radius: 3px; box-shadow: 0 0 0 1px rgba(163, 44, 33, .18); }
.dctd-row-ins .dcc-chg { background: var(--dc-ins-mark); border-radius: 3px; box-shadow: 0 0 0 1px rgba(47, 101, 22, .18); }
.dcc-uni .dctd-row-del .dcc-chg { background: var(--dc-del-mark); }
.dcc-uni .dctd-row-ins .dcc-chg { background: var(--dc-ins-mark); }

/* тема подсветки: спокойная, под светлый интерфейс, а не дефолтный Prism */
.dc-code-diff .token.comment,
.dc-code-diff .token.prolog,
.dc-code-diff .token.cdata { color: #8a948c; font-style: italic; }

.dc-code-diff .token.punctuation,
.dc-code-diff .token.operator { color: #67727a; }

.dc-code-diff .token.keyword,
.dc-code-diff .token.atrule { color: #a1277a; font-weight: 600; }

.dc-code-diff .token.string,
.dc-code-diff .token.char,
.dc-code-diff .token.url { color: #1a6f3a; }

.dc-code-diff .token.number,
.dc-code-diff .token.boolean { color: #b35c00; }

.dc-code-diff .token.function,
.dc-code-diff .token.class-name { color: #2b5fa8; }

.dc-code-diff .token.tag,
.dc-code-diff .token.selector,
.dc-code-diff .token.regex,
.dc-code-diff .token.important { color: #b03050; }

.dc-code-diff .token.attr-name,
.dc-code-diff .token.property { color: #2b5fa8; }

.dc-code-diff .token.attr-value { color: #1a6f3a; }

.dc-code-diff .token.variable { color: #7a4a00; }

.dc-code-diff .token.constant,
.dc-code-diff .token.symbol { color: #6a3aa8; }

.dc-code-diff .token.deleted { color: #a32c21; }
.dc-code-diff .token.inserted { color: #2f6516; }

/* ---------- сетка инструментов (перелинковка) ---------- */

.dc-grid {
	margin: 34px 0 6px;
}

.dc-grid-title {
	font-size: 19px;
	font-weight: 700;
	margin: 0 0 14px;
	padding-left: 12px;
	border-left: 3px solid var(--dc-green);
}

.dc-grid-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(212px, 1fr));
	gap: 12px;
}

.dc-card {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 14px 16px;
	border: 1px solid var(--dc-line);
	border-radius: 11px;
	background: #fff;
	text-decoration: none !important;
	color: var(--dc-ink) !important;
	transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.dc-card:hover {
	border-color: var(--dc-green);
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(35, 41, 46, .09);
}

.dc-card-title { font-size: 15px; font-weight: 700; }
.dc-card-desc { font-size: 12.5px; color: var(--dc-muted); line-height: 1.4; }

.dc-card.is-current {
	border-color: var(--dc-green);
	background: #f2f9ee;
	cursor: default;
}

.dc-card.is-current::after {
	content: 'вы здесь';
	font-size: 11px;
	color: var(--dc-green-dark);
	letter-spacing: .04em;
	text-transform: uppercase;
}

.dc-related { margin-top: 40px; }

/* ---------- конвертор Markdown ---------- */

.dc-md .dc-md-preview {
	padding: 16px 18px;
	min-height: 200px;
	max-height: 460px;
	overflow: auto;
	font-size: 15px;
	line-height: 1.6;
}

.dc-md-hint { color: var(--dc-muted); font-style: italic; }

.dc-md-preview h1, .dc-md-preview h2, .dc-md-preview h3 { margin: 18px 0 8px; line-height: 1.25; }
.dc-md-preview h1 { font-size: 26px; }
.dc-md-preview h2 { font-size: 21px; }
.dc-md-preview h3 { font-size: 17px; }
.dc-md-preview > *:first-child { margin-top: 0; }
.dc-md-preview p { margin: 0 0 10px; }
.dc-md-preview ul, .dc-md-preview ol { margin: 0 0 12px; padding-left: 24px; }
.dc-md-preview li { margin: 0 0 4px; }
.dc-md-preview blockquote {
	margin: 12px 0;
	padding: 6px 14px;
	border-left: 3px solid var(--dc-green);
	background: #f6f8f6;
	color: #4a555b;
}
.dc-md-preview code {
	font-family: var(--dc-mono);
	font-size: 13px;
	background: #f2f4f5;
	padding: 1px 5px;
	border-radius: 4px;
}
.dc-md-preview pre {
	background: #f7f8f9;
	border: 1px solid var(--dc-line);
	border-radius: 8px;
	padding: 12px 14px;
	overflow: auto;
}
.dc-md-preview pre code { background: none; padding: 0; }
.dc-md-preview table { border-collapse: collapse; margin: 12px 0; width: 100%; }
.dc-md-preview th, .dc-md-preview td { border: 1px solid var(--dc-line); padding: 7px 10px; text-align: left; }
.dc-md-preview th { background: #f6f8f6; font-weight: 700; }
.dc-md-preview img { max-width: 100%; height: auto; }
.dc-md-preview a { color: var(--dc-green-dark); text-decoration: underline; }
.dc-md-preview hr { border: 0; border-top: 1px solid var(--dc-line); margin: 16px 0; }

.dc-md-code-label {
	display: block;
	margin: 14px 0 6px;
	font-size: 12px;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--dc-muted);
}

.dc-md-code {
	width: 100%;
	font-family: var(--dc-mono);
	font-size: 12.5px;
	line-height: 1.5;
	padding: 12px 14px;
	border: 1px solid var(--dc-line);
	border-radius: 10px;
	background: #fbfcfb;
	color: #46525a;
	resize: vertical;
	white-space: pre;
	overflow: auto;
}

/* ---------- просмотрщик git diff ---------- */

.dc-dv .dctd-panel { margin-bottom: 0; }

.dc-dv-stats {
	margin-top: 14px;
	border: 1px solid var(--dc-line);
	border-bottom: 0;
	border-radius: 12px 12px 0 0;
	background: var(--dc-panel-head);
}

.dc-dv-result {
	border: 1px solid var(--dc-line);
	border-radius: 0 0 12px 12px;
	background: #fff;
	overflow: auto;
	max-height: 620px;
	font-family: var(--dc-mono);
	font-size: 13px;
}

.dc-dv-result.is-wrap .dcdv-txt { white-space: pre-wrap; word-break: break-word; }

.dcdv-file { border-top: 1px solid var(--dc-line); }
.dcdv-file:first-child { border-top: 0; }

.dcdv-filename {
	padding: 9px 14px;
	background: #eef2ee;
	color: #2f4a22;
	font-weight: 700;
	font-size: 13px;
	position: sticky;
	left: 0;
}

.dcdv-hunk {
	padding: 5px 14px;
	background: #f0f5fa;
	color: #2b5fa8;
	font-size: 12.5px;
}

.dcdv-line { display: flex; align-items: flex-start; }
.dcdv-line-ins { background: var(--dc-ins-bg); }
.dcdv-line-del { background: var(--dc-del-bg); }
.dcdv-line-meta { color: var(--dc-muted); font-style: italic; }

.dcdv-no {
	flex: 0 0 4.2em;
	padding: 1px 8px 1px 0;
	text-align: right;
	color: #a3adb3;
	background: rgba(0, 0, 0, .025);
	user-select: none;
}

.dcdv-sign { flex: 0 0 1.4em; text-align: center; color: var(--dc-muted); user-select: none; }
.dcdv-txt { flex: 1; padding: 1px 10px; white-space: pre; }

.dcdv-w.wins { background: var(--dc-ins-mark); border-radius: 3px; }
.dcdv-w.wdel { background: var(--dc-del-mark); border-radius: 3px; }

.dcdv-empty { padding: 16px; color: var(--dc-muted); font-size: 13.5px; font-family: inherit; }

/* ---------- доводка главного меню (dc-menu.js) ---------- */

ul#primary-menu .dropdown-menu.dc-wide {
	min-width: 430px;
	columns: 2;
	column-gap: 0;
	padding: 6px 0;
}

ul#primary-menu .dropdown-menu.dc-wide > li {
	break-inside: avoid;
	display: block;
}

ul#primary-menu .dropdown-menu.dc-wide > li > a {
	display: block;
	padding: 7px 20px;
	white-space: normal;
	line-height: 1.35;
}

ul#primary-menu .dropdown-menu.dc-align-right {
	left: auto;
	right: 0;
}

ul#primary-menu .dropdown-menu .dc-hub-link {
	font-weight: 700;
	color: #479a29;
	border-bottom: 1px solid #edf0ee;
	margin-bottom: 4px;
}

/* хлебные крошки в схеме невидимы, поэтому видимая иерархия — хабы и связанные блоки */
@media (max-width: 991px) {
	ul#primary-menu .dropdown-menu.dc-wide { columns: 1; min-width: 0; }
}

/* ---------- сравнение списков ---------- */

.dcl-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 0;
}

.dcl-block { border-top: 1px solid var(--dc-line); min-width: 0; }
.dcl-block + .dcl-block { border-left: 1px solid var(--dc-line); }
@media (max-width: 760px) { .dcl-block + .dcl-block { border-left: 0; } }

.dcl-block-title, .dct-section-title {
	padding: 9px 12px;
	background: var(--dc-panel-head);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--dc-muted);
	position: sticky;
	top: 0;
}

.dcl-none { padding: 10px 12px; color: var(--dc-muted); font-size: 13px; }

.dct-filename {
	font-size: 12.5px;
	color: var(--dc-muted);
	margin-right: 6px;
	word-break: break-all;
}

/* ---------- сверка таблиц по ключу ---------- */

.dct-section { border-top: 1px solid var(--dc-line); }
.dct-section:first-child { border-top: 0; }

.dct-changed { width: 100%; border-collapse: collapse; font-size: 13px; }
.dct-changed th {
	text-align: left; font-size: 11.5px; letter-spacing: .05em; text-transform: uppercase;
	color: var(--dc-muted); background: var(--dc-panel-head);
	border-bottom: 1px solid var(--dc-line); padding: 8px 12px;
}
.dct-changed td { padding: 8px 12px; border-bottom: 1px solid #eef1f2; vertical-align: top; }
.dct-changed .dcx-addr { font-family: var(--dc-mono); color: var(--dc-ink); font-weight: 600; white-space: nowrap; }

.dct-diff { margin: 0 0 4px; }
.dct-diff:last-child { margin-bottom: 0; }
.dct-col { color: var(--dc-muted); font-size: 12.5px; }
.dct-diff .dcx-old { background: var(--dc-del-bg); color: #7d2018; padding: 1px 5px; border-radius: 3px; }
.dct-diff .dcx-new { background: var(--dc-ins-bg); color: #2f6516; padding: 1px 5px; border-radius: 3px; }

.dct-ones { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); border-top: 1px solid var(--dc-line); }
.dct-block { min-width: 0; border-top: 0; }
.dct-block + .dct-block { border-left: 1px solid var(--dc-line); }
@media (max-width: 760px) { .dct-block + .dct-block { border-left: 0; } }
.dct-block .dctd-txt { word-break: break-word; white-space: pre-wrap; }

/* ---------- верхняя панель: пункты «О проекте / Условия / Контакты» ---------- */

/* виджет рисует подпись как h3.title: в тёмной панели он был #080808 (невидим),
   а унаследованный #666 давал контраст 2.6:1 — ставим читаемый серый */
.goal-header .item-inner-features .title {
	margin: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;
	color: #c9ccd0;
}

.goal-header .item-inner-features a {
	color: #c9ccd0;
	text-decoration: none;
}

.goal-header .item-inner-features a:hover .title,
.goal-header .item-inner-features a:hover .features-box-image { color: #56b533; }

/* разделитель в строке копирайта */
.dc-foot-sep { opacity: .5; margin: 0 4px; }
