/*!
 * 2КАД — Сервис 06. Проверка XML-документов кадастра
 * xmlcheck.css
 *
 * Палитра и типографика — из skp.css (переменные --c-red, --c-ink и т.д.).
 * Здесь только собственная вёрстка сервиса.
 */

/* ---------------- герой ---------------- */

.xc-hero {
	padding: 8px 0 28px;
	text-align: left;
}

.xc-hero__badge {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--c-red);
	background: var(--c-bg-warm);
	border: 1px solid #f3dede;
	border-radius: 999px;
	padding: 6px 14px;
	margin-bottom: 18px;
}

.xc-hero__title {
	font-size: clamp(28px, 4.2vw, 44px);
	line-height: 1.12;
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--c-ink);
	margin: 0 0 16px;
}

.xc-hero__lead {
	font-size: 17px;
	line-height: 1.62;
	color: var(--c-ink-2);
	max-width: 76ch;
	margin: 0 0 20px;
}

.xc-hero__note {
	font-size: 15px;
	line-height: 1.6;
	color: var(--c-muted);
	background: var(--c-bg-soft);
	border-left: 3px solid var(--c-red);
	border-radius: 0 10px 10px 0;
	padding: 14px 18px;
	max-width: 84ch;
}

.xc-hero__note strong { color: var(--c-ink); }

/* ---------------- зона загрузки ---------------- */

.xc-drop {
	position: relative;
	border: 2px dashed var(--c-line);
	border-radius: 18px;
	background: #fff;
	transition: border-color .18s ease, background .18s ease;
	margin-bottom: 18px;
}

.xc-drop.is-over {
	border-color: var(--c-red);
	background: var(--c-bg-warm);
}

.xc-drop input[type="file"] {
	position: absolute;
	width: 1px; height: 1px;
	opacity: 0;
	pointer-events: none;
}

.xc-drop__label {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 44px 24px;
	cursor: pointer;
	text-align: center;
}

.xc-drop__ico {
	width: 46px; height: 46px;
	color: var(--c-red);
}

.xc-drop__t {
	font-size: 17px;
	font-weight: 700;
	color: var(--c-ink);
}

.xc-drop__s {
	font-size: 14px;
	color: var(--c-muted);
}

/* ---------------- выбранные файлы ---------------- */

.xc-picked { margin-bottom: 14px; }

.xc-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.xc-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-size: 14px;
	line-height: 1.5;
	color: var(--c-ink-2);
	background: var(--c-bg-soft);
	border: 1px solid var(--c-line);
	border-radius: 9px;
	padding: 8px 12px;
}

.xc-list li.is-error {
	border-color: #f0c4c4;
	background: #fdf3f3;
}
.xc-list li.is-warn {
	border-color: #f2ddb8;
	background: #fdf8ee;
}
.xc-list li.is-info {
	border-color: #cddcf0;
	background: #f2f6fc;
}
.xc-list li.is-muted { color: var(--c-muted); }

.xc-list__name {
	font-weight: 600;
	color: var(--c-ink);
	word-break: break-all;
	flex: 1 1 auto;
	min-width: 0;
}

.xc-list__meta {
	color: var(--c-muted);
	font-size: 13px;
	white-space: nowrap;
}

.xc-list__x {
	border: 1px solid var(--c-line);
	background: #fff;
	color: var(--c-muted);
	border-radius: 7px;
	width: 26px; height: 26px;
	font-size: 17px;
	line-height: 1;
	cursor: pointer;
	flex: 0 0 auto;
}

.xc-list__x:hover {
	border-color: var(--c-red);
	color: var(--c-red);
}

.xc-list--files li { font-size: 13px; }

/* ---------------- кнопки ---------------- */

.xc-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 18px;
}

.xc-run {
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	color: #fff;
	background: var(--c-red);
	border: none;
	border-radius: 12px;
	padding: 15px 30px;
	cursor: pointer;
	transition: background .16s ease;
}

.xc-run:hover:not(:disabled) { background: var(--c-red-deep); }
.xc-run:disabled {
	background: var(--c-line);
	color: var(--c-muted);
	cursor: not-allowed;
}

.xc-clear {
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	color: var(--c-muted);
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 12px;
	padding: 15px 22px;
	cursor: pointer;
}

.xc-clear:hover { color: var(--c-red); border-color: var(--c-red); }

/* ---------------- прогресс ---------------- */

.xc-progress { margin-bottom: 22px; }

.xc-progress__bar {
	height: 4px;
	background: var(--c-line);
	border-radius: 999px;
	overflow: hidden;
}

.xc-progress__fill {
	height: 100%;
	width: 0;
	background: var(--c-red);
	border-radius: 999px;
	transition: width .2s ease;
}

.xc-progress__status {
	font-size: 13px;
	color: var(--c-muted);
	margin-top: 8px;
	min-height: 18px;
}

/* ---------------- сводка ---------------- */

.xc-results:empty { display: none; }

.xc-summary {
	background: var(--c-bg-soft);
	border: 1px solid var(--c-line);
	border-radius: 16px;
	padding: 22px;
	margin-bottom: 30px;
}

.xc-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 12px;
}

.xc-tile {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 12px;
	padding: 14px 16px;
}

.xc-tile__v {
	font-size: 26px;
	font-weight: 800;
	color: var(--c-ink);
	line-height: 1.15;
	letter-spacing: -.01em;
}

.xc-tile__l {
	font-size: 13px;
	color: var(--c-muted);
	margin-top: 3px;
}

.xc-tile.is-ok { border-color: #c9e2c9; background: #f6fbf6; }
.xc-tile.is-ok .xc-tile__v { color: #2f7a35; }
.xc-tile.is-warn { border-color: #f2ddb8; background: #fdf9f0; }
.xc-tile.is-warn .xc-tile__v { color: #9a6b16; }
.xc-tile.is-error { border-color: #f0c4c4; background: #fdf4f4; }
.xc-tile.is-error .xc-tile__v { color: var(--c-red); }

.xc-patterns {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 12px;
	margin-top: 16px;
}

.xc-pattern {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 10px;
	padding: 12px 14px;
}

.xc-pattern.is-warn { border-color: #f2ddb8; background: #fdf9f0; }

.xc-pattern__l {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--c-muted);
	margin-bottom: 5px;
}

.xc-pattern__v {
	font-size: 14px;
	line-height: 1.5;
	color: var(--c-ink-2);
	word-break: break-word;
}

/* ---------------- карточки документов ---------------- */

.xc-h3 {
	font-size: 21px;
	font-weight: 800;
	color: var(--c-ink);
	margin: 32px 0 14px;
	letter-spacing: -.01em;
}

.xc-card {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 16px;
	padding: 22px;
	margin-bottom: 18px;
}

.xc-card__head { margin-bottom: 14px; }

.xc-card__type {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--c-red);
	margin-bottom: 5px;
}

.xc-card__name {
	font-size: 17px;
	font-weight: 700;
	color: var(--c-ink);
	word-break: break-all;
	line-height: 1.35;
}

.xc-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 10px;
}

.xc-badge {
	font-size: 12px;
	font-weight: 600;
	color: var(--c-muted);
	background: var(--c-bg-soft);
	border: 1px solid var(--c-line);
	border-radius: 999px;
	padding: 3px 10px;
}

.xc-badge.is-ok { color: #2f7a35; background: #f2faf2; border-color: #c9e2c9; }
.xc-badge.is-warn { color: #9a6b16; background: #fdf8ec; border-color: #f2ddb8; }

.xc-counts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
}

.xc-count {
	font-size: 13px;
	color: var(--c-ink-2);
	background: var(--c-bg-soft);
	border-radius: 7px;
	padding: 4px 10px;
}

/* ---------------- блоки и пары ключ/значение ---------------- */

.xc-block {
	border-top: 1px solid var(--c-line);
	padding-top: 16px;
	margin-top: 16px;
}

/* Первая строка блока без лишнего отступа — он уже отделён линией. */
.xc-block:first-child { border-top: none; }

.xc-block__h {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--c-muted);
	margin-bottom: 10px;
}

/* Одна пара — одна строка, колонка значений выровнена по левому краю.
   Сетка из трёх колонок «плавала»: строки разной высоты разъезжались,
   и подпись не совпадала со своим значением. */
.xc-grid {
	display: block;
	max-width: 100%;
}

.xc-grid--tight { margin-top: 4px; }

.xc-kv {
	display: grid;
	grid-template-columns: minmax(140px, 38%) minmax(0, 1fr);
	gap: 4px 18px;
	align-items: baseline;
	padding: 7px 0;
	border-bottom: 1px dashed var(--c-line);
	font-size: 14px;
	line-height: 1.5;
}

.xc-kv:last-child { border-bottom: none; }

.xc-kv__k {
	color: var(--c-muted);
	line-height: 1.5;
}

.xc-kv__v {
	color: var(--c-ink);
	font-weight: 600;
	min-width: 0;
	overflow-wrap: anywhere;
	line-height: 1.5;
}

/* ---------------- объекты / записи ---------------- */

.xc-obj {
	border: 1px solid var(--c-line);
	border-radius: 11px;
	padding: 13px 15px;
	margin-bottom: 9px;
	background: #fff;
}

.xc-obj__t {
	font-size: 15px;
	font-weight: 700;
	color: var(--c-ink);
	margin-bottom: 4px;
	word-break: break-all;
}

/* ---------------- находки ---------------- */

.xc-find {
	border-left: 3px solid var(--c-line);
	border-radius: 0 9px 9px 0;
	padding: 11px 15px;
	margin-bottom: 8px;
	background: var(--c-bg-soft);
}

.xc-find--error { border-left-color: var(--c-red); background: #fdf5f5; }
.xc-find--warn  { border-left-color: #d9a520; background: #fdfaf2; }
.xc-find--info  { border-left-color: #5b87c4; background: #f5f8fc; }

.xc-find__h {
	display: flex;
	gap: 9px;
	align-items: baseline;
	flex-wrap: wrap;
	margin-bottom: 5px;
}

.xc-find__sev {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: 2px 8px;
	border-radius: 999px;
	white-space: nowrap;
}

.xc-find--error .xc-find__sev { background: var(--c-red); color: #fff; }
.xc-find--warn  .xc-find__sev { background: #e8b93a; color: #3d2c05; }
.xc-find--info  .xc-find__sev { background: #5b87c4; color: #fff; }

.xc-find__title {
	font-size: 15px;
	font-weight: 700;
	color: var(--c-ink);
	line-height: 1.4;
}

.xc-find__d {
	font-size: 14px;
	line-height: 1.6;
	color: var(--c-ink-2);
	margin-bottom: 6px;
}

.xc-find__fix {
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--c-muted);
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.xc-find__fix-l {
	font-weight: 700;
	color: var(--c-red);
	flex: 0 0 auto;
}

.xc-find__fix-t { flex: 1 1 200px; min-width: 0; }

/* ---------------- текст ---------------- */

.xc-conclusion {
	font-size: 14px;
	line-height: 1.65;
	color: var(--c-ink-2);
	white-space: pre-wrap;
	background: var(--c-bg-soft);
	border-radius: 9px;
	padding: 13px 15px;
	max-height: 460px;
	overflow-y: auto;
	word-break: break-word;
}

.xc-plain {
	border: 1px solid var(--c-line);
	border-radius: 11px;
	padding: 13px 15px;
	background: var(--c-bg-soft);
}

.xc-plain-row {
	font-size: 13.5px;
	color: var(--c-ink-2);
	padding: 4px 0;
	word-break: break-all;
}

.xc-muted {
	font-size: 13px;
	color: var(--c-muted);
	padding: 6px 0;
}

/* ---------------- призыв ---------------- */

.xc-cta {
	margin-top: 34px;
	padding: 28px;
	background: var(--c-bg-warm);
	border: 1px solid #f2dcdc;
	border-radius: 18px;
	text-align: center;
}

.xc-cta__t {
	font-size: 21px;
	font-weight: 800;
	color: var(--c-ink);
	margin-bottom: 8px;
}

.xc-cta__d {
	font-size: 15px;
	line-height: 1.6;
	color: var(--c-ink-2);
	max-width: 62ch;
	margin: 0 auto 18px;
}

.xc-cta__btn {
	display: inline-block;
	font-size: 16px;
	font-weight: 700;
	color: #fff !important;          /* тема перебивает цвет ссылки */
	background: var(--c-red);
	border-radius: 12px;
	padding: 14px 28px;
	text-decoration: none !important;
	transition: background .16s ease;
}

.xc-cta__btn:hover { background: var(--c-red-deep); color: #fff !important; }

.xc-cta__tel {
	display: block;
	margin-top: 14px;
	font-size: 18px;
	font-weight: 700;
	color: var(--c-red);
	text-decoration: none;
}

.xc-cta__tel:hover { text-decoration: underline; }

/* ---------------- адаптив ---------------- */

@media (max-width: 720px) {
	.xc-drop__label { padding: 32px 16px; }
	.xc-drop__t { font-size: 15.5px; }
	.xc-drop__s { font-size: 13px; }
	.xc-card, .xc-summary { padding: 16px; }
	.xc-tile__v { font-size: 22px; }
	.xc-kv { flex-direction: column; gap: 1px; }
	.xc-kv__k { flex: 0 0 auto; max-width: none; font-size: 13px; }
	.xc-run, .xc-clear { width: 100%; text-align: center; }
	.xc-cta { padding: 22px 16px; }
	.xc-cta__btn { width: 100%; text-align: center; }
}
