/**
 * Комментарии калькуляторов (includes/calc-comments.php).
 *
 * Оформление — как у остальной обвязки сайта: белые карточки, тонкие серые линии,
 * радиус 4px, акцент — синий #2b5876. Переменные темы (--cl-line и др.) продублированы
 * значениями: блок должен выглядеть одинаково, даже если тему подменят.
 */

.cl-comments {
	margin: 2.5rem 0 0;
	padding-top: 1.5rem;
	border-top: 1px solid #e5e7eb;
}

.cl-comments__h {
	margin: 0 0 1.25rem;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.25;
	color: #1f2937;
}

.cl-comments__count {
	display: inline-block;
	min-width: 1.6em;
	padding: 0 .45em;
	font-size: .62em;
	font-weight: 700;
	line-height: 1.65em;
	text-align: center;
	color: #2b5876;
	background: #eef2f6;
	border-radius: 4px;
	vertical-align: middle;
}

.cl-comments__empty {
	margin: 0 0 1.5rem;
	color: #6b7280;
	font-size: 15px;
}

.cl-comments__note {
	margin: 0 0 1.25rem;
	padding: .75rem 1rem;
	font-size: 15px;
	color: #14532d;
	background: #f0fdf4;
	border: 1px solid #bbf7d0;
	border-radius: 4px;
}

/* ============================ один комментарий ============================ */

.cl-comments__list { margin: 0 0 2rem; }

.cl-comment {
	display: grid;
	grid-template-columns: 40px 1fr;
	grid-template-areas: "avatar main" ".      kids";
	gap: 0 14px;
	padding: 1rem 0;
	border-top: 1px solid #eef0f2;
}
.cl-comment:first-child { border-top: 0; padding-top: 0; }

.cl-comment__avatar {
	grid-area: avatar;
	width: 40px;
	height: 40px;
	border-radius: 4px;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	line-height: 40px;
	text-align: center;
	user-select: none;
}

.cl-comment__main { grid-area: main; min-width: 0; }

.cl-comment__head {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px 10px;
	margin-bottom: .35rem;
}

.cl-comment__name { font-weight: 700; color: #1f2937; }

.cl-comment__badge {
	padding: 1px 7px;
	font-size: 12px;
	font-weight: 600;
	color: #2b5876;
	background: #eef2f6;
	border-radius: 4px;
}

.cl-comment__date { font-size: 13px; color: #9ca3af; }

.cl-comment__pending {
	padding: 1px 7px;
	font-size: 12px;
	font-weight: 600;
	color: #92400e;
	background: #fef3c7;
	border-radius: 4px;
}

.cl-comment__text { color: #374151; font-size: 16px; line-height: 1.6; }
.cl-comment__text p { margin: 0 0 .6em; }
.cl-comment__text p:last-child { margin-bottom: 0; }
.cl-comment__text a { color: #2b5876; }

.cl-comment__foot {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin-top: .5rem;
}

.cl-comment__reply {
	padding: 0;
	font-size: 14px;
	font-weight: 600;
	color: #2b5876;
	background: none;
	border: 0;
	cursor: pointer;
}
.cl-comment__reply:hover { text-decoration: underline; }

/* ===================== полезно / бесполезно ===================== */

.cl-votes { display: inline-flex; gap: 6px; }

.cl-vote {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 3px 9px;
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	color: #6b7280;
	background: #fff;
	border: 1px solid #e4e7ea;
	border-radius: 4px;
	cursor: pointer;
}
.cl-vote:hover:not([disabled]) { border-color: #c9d1d9; background: #f6f8fa; }
.cl-vote svg { flex: none; }

/* Палец вниз — тот же значок, перевёрнутый: два рисунка расходятся при правке. */
.cl-vote--down svg { transform: rotate(180deg); }

.cl-vote--done { cursor: default; opacity: .8; }

/* Свой голос: зелёный «за», красный «против» — красный на сайте означает
   ошибку ввода, но здесь он ни с чем не спорит: это отдельный блок. */
.cl-vote--mine.cl-vote--up   { color: #15803d; border-color: #bbf7d0; background: #f0fdf4; opacity: 1; }
.cl-vote--mine.cl-vote--down { color: #b91c1c; border-color: #fecaca; background: #fef2f2; opacity: 1; }

/* Ответы — вложенный уровень ровно один: ветки глубже читать невозможно. */
.cl-comment__kids { grid-area: kids; }
.cl-comment__kids:not(:empty) {
	margin-top: .75rem;
	padding-left: 14px;
	border-left: 2px solid #eef0f2;
}
.cl-comment__kids .cl-comment { padding: .75rem 0; }
.cl-comment__kids .cl-comment:first-child { padding-top: 0; }

.cl-comment--pending { opacity: .75; }

/* ================================= форма ================================= */

.cl-comment-form {
	padding: 1.25rem;
	background: #fff;
	border: 1px solid #e4e7ea;
	border-radius: 4px;
}

.cl-comment-form__h {
	margin: 0 0 1rem;
	font-size: 1.25rem;
	font-weight: 700;
	color: #1f2937;
}

.cl-comment-form__replyto {
	margin: 0 0 .9rem;
	padding: .5rem .75rem;
	font-size: 14px;
	color: #374151;
	background: #f6f8fa;
	border: 1px solid #e4e7ea;
	border-radius: 4px;
}
.cl-comment-form__cancel {
	margin-left: .5rem;
	padding: 0;
	font-size: 14px;
	color: #6b7280;
	background: none;
	border: 0;
	text-decoration: underline;
	cursor: pointer;
}

.cl-comment-form__row { margin-bottom: .9rem; }

/* Имя — короткое поле: растянутое на всю ширину оно выглядит как ещё одно
   обязательное поле анкеты, хотя в форме их всего два. */
.cl-comment-form__row--name { max-width: 340px; }

.cl-comment-form__label {
	display: block;
	margin-bottom: .3rem;
	font-size: 14px;
	font-weight: 600;
	color: #374151;
}
.cl-req { color: #d0021b; }

.cl-comment-form__input {
	display: block;
	width: 100%;
	padding: .6rem .75rem;
	font: inherit;
	font-size: 16px;
	color: #1f2937;
	background: #fff;
	border: 1px solid #d5dade;
	border-radius: 4px;
	box-sizing: border-box;
}
.cl-comment-form__input:focus {
	outline: none;
	border-color: #2b5876;
	box-shadow: 0 0 0 3px rgba(43, 88, 118, .12);
}
textarea.cl-comment-form__input { resize: vertical; min-height: 96px; }

.cl-comment-form__input.cl-invalid { border-color: #d0021b; background: #fff5f5; }

.cl-comment-form__foot {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px 16px;
	margin-top: 1rem;
}

.cl-comment-form__submit {
	padding: .7rem 1.5rem;
	font: inherit;
	font-size: 16px;
	font-weight: 600;
	color: #fff;
	background: #2b5876;
	border: 0;
	border-radius: 4px;
	cursor: pointer;
}
.cl-comment-form__submit:hover { background: #1f4159; }
.cl-comment-form__submit[disabled] { opacity: .6; cursor: default; }

.cl-comment-form__note { font-size: 13px; color: #9ca3af; }

.cl-comment-form__err,
.cl-comment-form__ok {
	margin: 1rem 0 0;
	padding: .7rem .9rem;
	font-size: 15px;
	border-radius: 4px;
}
.cl-comment-form__err { color: #7f1d1d; background: #fef2f2; border: 1px solid #fecaca; }
.cl-comment-form__ok  { color: #14532d; background: #f0fdf4; border: 1px solid #bbf7d0; }

/* ================================= капча ================================= */

.cl-cap { margin-bottom: .9rem; }

.cl-cap__row {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.cl-cap__img {
	display: block;
	border: 1px solid #e4e7ea;
	border-radius: 4px;
	background: #f6f6f6;
}

.cl-cap__refresh {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	color: #2b5876;
	background: #fff;
	border: 1px solid #d5dade;
	border-radius: 4px;
	cursor: pointer;
}
.cl-cap__refresh:hover { background: #f6f8fa; border-color: #c9d1d9; }
.cl-cap__refresh.cl-cap--busy { opacity: .5; cursor: default; }

.cl-cap__input {
	/* 5 знаков + разрядка + поля ввода: узкое поле само подсказывает, что кода
	   ровно пять и это не «ещё одно длинное поле формы». */
	width: 8em;
	letter-spacing: .18em;
	font-size: 18px;
	font-weight: 600;
	text-align: center;
}

/* Ловушка для роботов: убрана с экрана, но не через display:none —
   часть ботов пропускает поля, спрятанные совсем очевидно. */
.cl-hp {
	position: absolute !important;
	left: -9999px !important;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

@media print {
	.cl-comments { display: none; }
}
