/* Forum. Builds on styles.css; class names here are the ones forums.js renders. */
.forum-layout { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 56px; padding-top: 24px; min-height: 60vh; }
#category-nav { border-top: 1px solid var(--ink); }
.category-link { display: block; width: 100%; padding: 7px 4px; border-bottom: 1px solid var(--rule); font-size: .92rem; text-align: left; }
.category-link:hover, .quiet-button:hover, .back-button:hover, .post-actions button:hover, .auth-switch button { text-decoration: underline; }
.moderation-link { margin-top: 12px; font-weight: 650; text-decoration: underline; }

.solid-button { background: var(--ink); color: var(--bg); padding: 7px 12px; font-size: .9rem; font-weight: 650; white-space: nowrap; }
.solid-button:hover { background: var(--hi); color: #111; }
.solid-button:disabled { opacity: .5; cursor: wait; }
.outline-button, .moderation-actions button { border: 1px solid var(--ink); padding: 7px 12px; font-size: .9rem; font-weight: 650; }
.tools .solid-button { padding: 5px 10px; font-weight: 650; }
#account-actions { margin-right: 0; align-items: center; }
.user-chip { font-weight: 650; }
.user-role, .topic-tag, .topic-state { font: .72rem/1.6 var(--mono); text-transform: uppercase; letter-spacing: .04em; color: var(--dim); margin-left: 6px; }
.topic-tag { margin-left: 0; }

.forum-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.forum-toolbar h1, .forum-toolbar h2 { margin: 0; font-size: 1.7rem; font-weight: 800; letter-spacing: -.03em; line-height: 1.1; }
.forum-loading { padding: 40px 0; font: .8rem var(--mono); color: var(--dim); }
.forum-empty { padding: 40px 0; border-block: 1px solid var(--rule); margin-top: 16px; }
.forum-empty h3 { margin: 0 0 6px; font-size: 1.2rem; }
.forum-empty p { margin: 0 0 14px; font: 1rem/1.5 var(--serif); color: var(--dim); max-width: 60ch; }

.board-meta { display: flex; justify-content: space-between; margin-top: 18px; padding-bottom: 6px; border-bottom: 1px solid var(--ink); font: 700 .78rem/1.4 var(--mono); text-transform: uppercase; letter-spacing: .04em; }
.topic-list { list-style: none; margin: 0; padding: 0; }
.topic-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid var(--rule); }
.topic-main h3 { margin: 2px 0; font-size: 1.08rem; font-weight: 650; line-height: 1.27; overflow-wrap: anywhere; }
.topic-main h3 a { text-decoration: none; }
.topic-main h3 a:hover { text-decoration: underline; }
.topic-meta, .reply-count, .post-actions, .field-note, .form-actions p, .auth-switch { font: .74rem/1.7 var(--mono); color: var(--dim); }
.topic-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.topic-meta strong, .reply-count strong { color: var(--ink); font-weight: 600; }
.reply-count strong { margin-right: 5px; }
.list-more { padding: 20px 0; }

.back-button { font: .74rem/1.7 var(--mono); margin-bottom: 18px; }
.topic-detail-header h2 { margin: 6px 0 10px; font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 800; line-height: 1.08; letter-spacing: -.03em; overflow-wrap: anywhere; }
.post-body { padding: 14px 0; max-width: 72ch; font: 1.02rem/1.6 var(--serif); white-space: pre-wrap; overflow-wrap: anywhere; }
.post-actions { display: flex; flex-wrap: wrap; gap: 16px; padding-bottom: 16px; }
.topic-replies-heading { margin: 8px 0 0; padding: 20px 0 6px; border-bottom: 1px solid var(--ink); font: 700 .78rem/1.4 var(--mono); text-transform: uppercase; letter-spacing: .04em; }
.reply-card { padding: 16px 0 0; border-bottom: 1px solid var(--rule); }
.reply-box, .reply-cta, .locked-notice { margin-top: 24px; padding: 18px; border: 1px solid var(--ink); }
.reply-box h3 { margin: 0 0 12px; font-size: 1.1rem; }
.reply-cta p, .locked-notice { font: 1rem/1.5 var(--serif); }
.reply-cta p { margin: 0 0 12px; }
.reply-cta .quiet-button { margin-left: 14px; }

/* Forms (dialogs and the reply box) */
.forum-form label { display: block; margin-bottom: 5px; font-size: .85rem; font-weight: 650; }
.forum-form input, .forum-form select, .forum-form textarea { width: 100%; margin-bottom: 14px; font: 1rem/1.5 var(--sans); color: var(--ink); background: var(--bg); border: 1px solid var(--ink); border-radius: 0; padding: 9px 10px; }
.forum-form textarea { min-height: 140px; resize: vertical; }
.field-note { margin: -8px 0 14px; }
.form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 16px; }
.form-actions p { margin: 0 auto 0 0; }
.form-error { margin-bottom: 14px; padding: 9px 11px; border: 1px solid var(--bad); color: var(--bad); font-size: .9rem; }
.auth-switch { margin: 16px 0 0; }
.rules-list { padding-left: 1.2em; }
.rules-list li { padding: 4px 0; }

.moderation-help { font: 1rem/1.5 var(--serif); color: var(--dim); max-width: 64ch; }
.report-card { padding: 16px 0; border-bottom: 1px solid var(--ink); }
.report-card h3 { margin: 2px 0; font-size: 1.15rem; overflow-wrap: anywhere; }
.report-card h4 { margin: 14px 0 0; font: 700 .72rem var(--mono); text-transform: uppercase; letter-spacing: .04em; }
.report-reason { margin: 4px 0 0; font: 1rem/1.55 var(--serif); white-space: pre-wrap; overflow-wrap: anywhere; }
.moderation-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }

@media (max-width: 860px) {
  .forum-layout { display: block; }
  #category-nav { display: flex; flex-wrap: wrap; gap: 2px 4px; border: 0; margin-bottom: 4px; }
  .category-link { width: auto; border: 0; padding: 4px 8px; }
  .forum-layout aside { margin-bottom: 20px; }
  .forum-form input, .forum-form select, .forum-form textarea { font-size: 16px; } /* stops iOS zoom on focus */
}
