/*
 * Стили форума.
 *
 * Продолжают gdz.css и работают на тех же токенах темы. Бренд-гайд тот же:
 * ни теней, ни градиентов, радиусы 8/12/20/999, отступы кратны 8,
 * киноварь не под мелким текстом.
 */

/* --- Сообщения ---------------------------------------------------------- */

.gdz-notice {
	margin: 0 0 24px;
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
}

.gdz-notice--error {
	border-color: var(--accent-text);
}

.gdz-byline {
	margin: 8px 0 24px;
	color: var(--text-muted);
	font-size: 14px;
	line-height: 20px;
	letter-spacing: .01em;
}

.gdz-question__task {
	margin: 0 0 32px;
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	font-size: 14px;
	line-height: 22px;
}

/* --- Ответы -------------------------------------------------------------- */

.gdz-answers {
	margin: 0 0 32px;
}

.gdz-answer-item {
	margin: 0 0 16px;
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: var(--r);
	background: var(--surface);
}

/* Принятый ответ выделен краем, а не фоном: заливка на длинном тексте
   читается тяжелее, а край работает так же однозначно. */
.gdz-answer-item.is-solved {
	border-color: var(--ok);
}

.gdz-answer-item__badge {
	margin: 0 0 8px;
	color: var(--ok);
	font-weight: 600;
	font-size: 14px;
	line-height: 20px;
}

.gdz-answer-item__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--border);
}

.gdz-answer-item__foot .gdz-byline {
	margin: 0;
}

.gdz-answers__empty,
.gdz-task-qa__empty {
	color: var(--text-muted);
}

/* --- Голосование --------------------------------------------------------- */

.gdz-vote {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 8px 16px;
	border: 1px solid var(--border);
	border-radius: var(--r-pill);
	background: none;
	color: var(--text-muted);
	font: inherit;
	font-size: 14px;
	line-height: 20px;
	cursor: pointer;
	transition: border-color .2s ease, color .2s ease;
}

.gdz-vote:hover {
	border-color: var(--text-muted);
	color: var(--text);
}

.gdz-vote.is-on {
	border-color: var(--text);
	color: var(--text);
}

.gdz-vote--static {
	cursor: default;
}

.gdz-vote__count {
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.gdz-solve-form {
	margin: 0;
}

.gdz-solve {
	min-height: 40px;
	padding: 8px 16px;
	border: 1px solid var(--border);
	border-radius: var(--r-pill);
	background: none;
	color: var(--text-muted);
	font: inherit;
	font-size: 14px;
	cursor: pointer;
}

.gdz-solve:hover {
	border-color: var(--text-muted);
	color: var(--text);
}

/* --- Формы --------------------------------------------------------------- */

.gdz-form-block {
	margin: 32px 0;
}

.gdz-form-block__auth {
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: var(--r);
	color: var(--text-muted);
}

.gdz-form__row {
	margin: 0 0 16px;
}

.gdz-form__row label {
	display: block;
	margin-bottom: 8px;
	font-weight: 600;
}

.gdz-form__row input[type=text],
.gdz-form__row textarea,
.gdz-form__row select {
	width: 100%;
	padding: 8px 16px;
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	background: var(--surface);
	color: var(--text);
	font: inherit;
}

.gdz-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

.gdz-form__note {
	margin: 8px 0 0;
	color: var(--text-muted);
	font-size: 14px;
	line-height: 20px;
}

.gdz-captcha input[type=text] {
	max-width: 120px;
}

/* Honeypot: убран из потока и от экранных читалок, но не display:none —
   часть ботов такие поля распознаёт и пропускает. */
.gdz-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* --- Списки -------------------------------------------------------------- */

.gdz-questions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin: 0 0 32px;
}

.gdz-forum-subjects {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 32px;
}

.gdz-task-qa {
	margin: 32px 0;
}

.gdz-task-qa__list {
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.gdz-task-qa__item {
	padding: 8px 0;
	border-bottom: 1px solid var(--border);
}

.gdz-task-qa__item:last-child {
	border-bottom: 0;
}

.gdz-task-qa__meta {
	display: block;
	color: var(--text-muted);
	font-size: 14px;
	line-height: 20px;
	letter-spacing: .01em;
}

@media (min-width: 768px) {
	.gdz-form__grid {
		grid-template-columns: 1fr 1fr;
	}

	.gdz-questions {
		grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	}
}

/* --- Навигация по разделам ------------------------------------------------ */

.gdz-forum-nav {
	margin: 0 0 32px;
}

.gdz-forum-nav__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gdz-forum-nav__link {
	display: flex;
	align-items: center;
	min-height: 56px;
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: var(--r);
	color: var(--text);
	font-weight: 600;
	transition: border-color .2s ease;
}

.gdz-forum-nav__link:hover {
	border-color: var(--text-muted);
	text-decoration: none;
}

/* --- Поиск по форуму ------------------------------------------------------ */

.gdz-forum-search {
	display: flex;
	gap: 8px;
	margin: 0 0 32px;
}

.gdz-forum-search__input {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 48px;
	padding: 8px 16px;
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	background: var(--surface);
	color: var(--text);
	font: inherit;
}

.gdz-forum-search__btn {
	flex: none;
}

/* --- Панель форматирования ------------------------------------------------ */

.gdz-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 8px;
}

.gdz-toolbar__btn {
	min-width: 48px;
	min-height: 40px;
	padding: 8px 16px;
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
	background: none;
	color: var(--text-muted);
	font: inherit;
	font-size: 14px;
	cursor: pointer;
}

.gdz-toolbar__btn:hover {
	border-color: var(--text-muted);
	color: var(--text);
}

/* --- Фотографии ----------------------------------------------------------- */

.gdz-upload__preview {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 8px;
}

.gdz-upload__thumb {
	width: 96px;
	height: 96px;
	object-fit: cover;
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
}

.gdz-photo {
	margin: 16px 0;
}

.gdz-photo img {
	max-width: 100%;
	height: auto;
	border: 1px solid var(--border);
	border-radius: var(--r-sm);
}

/* --- Хэштеги -------------------------------------------------------------- */

.gdz-hashtag {
	color: var(--accent-text);
	white-space: nowrap;
}

.gdz-form__hint {
	display: block;
	margin-top: 4px;
	color: var(--text-muted);
	font-size: 14px;
	line-height: 20px;
	letter-spacing: .01em;
}
