.topic-search-shell { max-width: 72rem; min-width: 0; overflow-wrap: anywhere; }
.topic-search-form { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(12rem, .8fr) auto; align-items: start; gap: 1rem; margin-top: 1.5rem; }
.topic-search-form > div { min-width: 0; }
.topic-search-form label { display: block; margin-bottom: .45rem; font-weight: 650; }
.topic-search-form input, .topic-search-form select { width: 100%; min-width: 0; min-height: 2.8rem; padding: .65rem .75rem; color: var(--text-primary); background: var(--surface-card); border: 1px solid var(--border-strong); border-radius: .4rem; }
.topic-search-form small { display: block; margin-top: .4rem; color: var(--text-secondary); }
.topic-search-form button { margin-top: 1.8rem; min-height: 2.8rem; }
.topic-search-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 1rem; }
.topic-search-heading p, .topic-search-meta, .topic-search-scope { color: var(--text-secondary); }
.topic-search-results { list-style: none; margin: 0; padding: 0; }
.topic-search-results > li { padding: 1.4rem 0; border-bottom: 1px solid var(--border); }
.topic-search-results h3 { margin: .35rem 0 .55rem; max-width: 65ch; }
.topic-search-meta { list-style: none; padding: 0; margin: 0; font-size: .9rem; }
.topic-search-meta li + li { margin-top: .25rem; }
.topic-search-concepts { margin: .65rem 0; max-width: 72ch; }
.topic-search-concepts strong { font-weight: 550; }
.topic-search-links { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.topic-search-links a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.topic-search-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem; margin: 1.5rem 0; }
.topic-search-scope { margin-top: 1.5rem; max-width: 72ch; }
#topic-search-error { color: var(--text-primary); border-left: .2rem solid var(--text-secondary); padding-left: .75rem; }
@media (max-width: 700px) {
    .topic-search-form { grid-template-columns: minmax(0, 1fr); gap: .9rem; }
    .topic-search-form button { margin-top: 0; justify-self: start; }
    .topic-search-heading { display: block; }
    .topic-search-heading p { margin-top: .35rem; }
}
