/* Forum Core — minimal, unopinionated. Theme can override freely. */
.forum-topic-list,
.forum-replies { list-style: none; margin: 0; padding: 0; }

.forum-topic-row {
	display: flex; gap: 1rem; align-items: baseline;
	padding: .75rem 0; border-bottom: 1px solid var(--forum-border, #e5e5e5);
}
.forum-topic-row__title { font-weight: 600; flex: 1; }
.forum-topic-row__by,
.forum-topic-row__count { color: var(--forum-muted, #666); font-size: .875rem; }

.forum-topic__meta { display: flex; gap: 1rem; color: var(--forum-muted, #666); font-size: .875rem; margin-bottom: 1rem; }
.forum-topic__body { margin-bottom: 2rem; }

.forum-reply { padding: 1rem 0; border-top: 1px solid var(--forum-border, #e5e5e5); }
.forum-reply__meta { display: flex; gap: .75rem; font-size: .875rem; margin-bottom: .35rem; }
.forum-reply__meta time { color: var(--forum-muted, #666); }

.forum-reply-form { display: flex; flex-direction: column; gap: .5rem; margin-top: 1.5rem; max-width: 40rem; }
.forum-reply-form textarea { width: 100%; padding: .5rem; }
.forum-reply-form__error { color: #b00020; margin: 0; min-height: 1em; }
.forum-reply-form button { align-self: flex-start; }

/* voting + reply layout */
.forum-reply { display: flex; gap: 1rem; }
.forum-reply__vote { display: flex; flex-direction: column; align-items: center; gap: .1rem; min-width: 2.5rem; }
.forum-reply__vote button { border: 0; background: none; cursor: pointer; font-size: 1rem; line-height: 1; color: var(--forum-muted, #666); }
.forum-reply__vote button:hover { color: var(--forum-accent, #0b57d0); }
.forum-reply__main { flex: 1; }
.forum-reply.is-answer { background: var(--forum-answer-bg, #f0fbf2); border-left: 3px solid #2e7d32; padding-left: .75rem; }

.forum-reply__controls, .forum-topic__controls { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .5rem; }
.forum-reply__controls button, .forum-topic__controls button {
	font-size: .8rem; padding: .2rem .5rem; cursor: pointer;
	background: none; border: 1px solid var(--forum-border, #e5e5e5); border-radius: 3px; color: var(--forum-muted, #666);
}
.forum-reply__controls button:hover, .forum-topic__controls button:hover { color: var(--forum-accent, #0b57d0); border-color: currentColor; }

.forum-badge { display: inline-block; font-size: .7rem; text-transform: uppercase; letter-spacing: .03em; padding: .1rem .4rem; border-radius: 3px; vertical-align: middle; }
.forum-badge--pin { background: #fff3cd; color: #8a6d00; }
.forum-badge--closed { background: #f8d7da; color: #842029; }
.forum-badge--answer { background: #d1e7dd; color: #0f5132; }

/* nested replies */
.forum-replies--nested { margin: .75rem 0 0; padding-left: 1rem; border-left: 2px solid var(--forum-border, #e5e5e5); }
.forum-replies--nested .forum-reply { padding-bottom: 0; }

/* replying-to banner */
.forum-reply-form__replying { display: flex; align-items: center; gap: .5rem; font-size: .85rem; color: var(--forum-muted, #666); background: #f5f5f5; padding: .35rem .6rem; border-radius: 4px; }
.forum-reply-form__replying button { border: 0; background: none; cursor: pointer; font-size: 1rem; line-height: 1; }

.forum-board-list, .forum-new-topic { list-style: none; padding: 0; }
.forum-board { display: flex; justify-content: space-between; padding: .6rem 0; border-bottom: 1px solid var(--forum-border, #e5e5e5); }
.forum-new-topic input, .forum-new-topic textarea, .forum-new-topic select { width: 100%; padding: .5rem; }
.forum-new-topic label { display: block; font-weight: 600; margin-bottom: .25rem; }
