/* Community Forum - theme tokens only, logical properties so it mirrors correctly in RTL */
.fm-page .alert { margin-bottom: calc(var(--space) * 2); }
.fm-search { display: flex; gap: .6rem; max-width: 34rem; margin-bottom: calc(var(--space) * 2); }
.fm-search .input { flex: 1; min-width: 0; }

/* category list */
.fm-cats { display: grid; gap: calc(var(--space) * 2); }
.fm-cat { display: flex; align-items: center; gap: calc(var(--space) * 2); padding: calc(var(--space) * 2.5); color: var(--c-text); text-decoration: none; }
.fm-cat:hover { border-color: var(--c-accent); }
.fm-cat-ico { flex: none; display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: var(--radius); background: color-mix(in srgb, var(--c-accent) 14%, transparent); color: var(--c-accent); }
.fm-cat-ico svg { width: 1.5rem; height: 1.5rem; }
.fm-cat-main { flex: 1; min-width: 0; display: grid; gap: .2rem; }
.fm-cat-title { font-size: 1.15rem; }
.fm-cat-desc { overflow-wrap: anywhere; }
.fm-cat-stats { flex: none; display: flex; gap: calc(var(--space) * 3); text-align: center; }
.fm-cat-stats span { display: grid; }
.fm-cat-stats strong { font-size: 1.3rem; line-height: 1.2; }
.fm-cat-stats small { color: var(--c-muted); }

/* topic list */
.fm-topics { list-style: none; margin: 0; padding: 0; overflow: hidden; }
.fm-topic { display: grid; grid-template-columns: minmax(0, 1fr) 5rem 9rem; align-items: center; gap: calc(var(--space) * 2); padding: calc(var(--space) * 2) calc(var(--space) * 2.5); border-bottom: 1px solid color-mix(in srgb, var(--c-border) 45%, transparent); }
.fm-topic:last-child { border-bottom: 0; }
.fm-topic.is-pinned { background: color-mix(in srgb, var(--c-highlight) 22%, transparent); }
.fm-topic-main { min-width: 0; display: grid; gap: .25rem; justify-items: start; }
.fm-topic-title { font-weight: 700; font-size: 1.05rem; overflow-wrap: anywhere; }
.fm-badges { display: inline-flex; flex-wrap: wrap; gap: .35rem; }
.fm-badges:empty { display: none; }
.badge svg { width: .9em; height: .9em; margin-inline-end: .25rem; vertical-align: -.1em; }
.fm-topic-stat, .fm-topic-last { display: grid; text-align: center; }
.fm-topic-stat strong { font-size: 1.2rem; }
.fm-topic-stat small, .fm-topic-last small { color: var(--c-muted); }

/* topic page */
.fm-title { margin-block: .5rem .6rem; overflow-wrap: anywhere; }
.fm-meta { margin-bottom: calc(var(--space) * 2); }
.fm-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: calc(var(--space) * 2); }
.fm-move { display: inline-flex; gap: .4rem; align-items: center; margin: 0; }
.fm-move .input { width: auto; min-width: 9rem; max-width: 14rem; padding-block: .35rem; }
.fm-posts { display: grid; gap: calc(var(--space) * 2); margin-bottom: calc(var(--space) * 3); }
.fm-post { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: calc(var(--space) * 2); padding: calc(var(--space) * 2.5); }
.fm-post.is-pending { border-style: dashed; }
.fm-author { display: flex; flex-direction: column; align-items: center; gap: .5rem; text-align: center; min-width: 0; overflow-wrap: anywhere; }
.fm-author .avatar { width: 3rem; height: 3rem; font-size: 1.1rem; }
.fm-post-main { min-width: 0; }
.fm-post-meta { margin-bottom: .6rem; }
.fm-note { margin-bottom: .8rem; }
.fm-body { overflow-wrap: anywhere; line-height: 1.85; }
.fm-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .3rem .5rem; margin-top: 1rem; }
.fm-actions svg, .fm-toolbar svg { width: 1.05em; height: 1.05em; }
.fm-pop { position: relative; }
.fm-pop > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: .35rem; }
.fm-pop > summary::-webkit-details-marker { display: none; }
.fm-pop-form { position: absolute; inset-inline-start: 0; z-index: 20; width: min(20rem, 80vw); margin-top: .3rem; }
.fm-pop-form .field { margin-bottom: .6rem; }
.fm-reported { font-size: .85rem; align-self: center; }
.fm-reply { margin-top: calc(var(--space) * 3); }
.fm-reply h2 { font-size: 1.2rem; }
.fm-form .field { margin-bottom: 1rem; }
.fm-form .form-actions { margin: 0; }
.fm-ban { margin-bottom: calc(var(--space) * 2); }

@media (max-width: 720px) {
    .fm-cat { flex-wrap: wrap; padding: calc(var(--space) * 2); }
    .fm-cat-stats { width: 100%; justify-content: flex-start; gap: calc(var(--space) * 4); }
    .fm-cat-stats span { text-align: start; }
    .fm-topic { grid-template-columns: minmax(0, 1fr) auto; }
    .fm-topic-last { display: none; }
    .fm-post { grid-template-columns: minmax(0, 1fr); gap: calc(var(--space) * 1.5); padding: calc(var(--space) * 2); }
    .fm-author { flex-direction: row; text-align: start; }
    .fm-author .avatar { width: 2.2rem; height: 2.2rem; font-size: .9rem; }
    .fm-pop-form { position: static; width: auto; }
    .fm-pop[open] { flex-basis: 100%; }
}
@media (max-width: 520px) {
    .fm-search .btn span { display: none; }
    .fm-move { flex: 1 1 100%; }
    .fm-move .input { flex: 1; max-width: none; }
}
