.hw-catalog .hw-class-summary-grid { margin-block: 16px; }
.hw-catalog-grades, .hw-catalog-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-block: 16px; }
.hw-catalog-heading { justify-content: space-between; }
.hw-catalog-grades .is-selected { color: var(--primary); border-color: var(--primary); background: var(--primary-soft); }
.hw-catalog-table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.hw-catalog-table { width: 100%; table-layout: fixed; border-collapse: collapse; }
.hw-catalog-table th, .hw-catalog-table td { padding: 12px; border: 1px solid var(--border); vertical-align: top; text-align: left; overflow-wrap: anywhere; }
.hw-catalog-table thead th { background: var(--surface-soft); }
.hw-catalog-table th:first-child { width: 82px; }
.hw-catalog-table .is-selected { background: var(--primary-soft); color: var(--primary); }
.hw-catalog-table ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.hw-catalog-source { margin-inline-start: 4px; color: var(--text-secondary); font-size: 11px; }
.hw-catalog-table li > button { margin-inline-start: 6px; }
.hw-catalog-table form { display: grid; gap: 8px; }
.hw-catalog-table form input { width: 100%; min-width: 0; box-sizing: border-box; }
.hw-catalog-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.hw-catalog-table form small { color: var(--text-secondary); }
@media (max-width: 640px) { .hw-catalog-table { min-width: 520px; } }
