/* 课程目录页（/courses/catalog）：没有设计稿，全站页头页脚 + 分类一览表 + 各小节课程表，由 scripts/build-courses.js 生成 */
.catalog { max-width: calc(75rem + var(--bs-gutter-x, 1.5rem)); padding-bottom: var(--dy-section-gap); }

.catalog-breadcrumb { --bs-breadcrumb-divider: ">"; --bs-breadcrumb-item-padding-x: 0.375rem; --bs-breadcrumb-divider-color: rgba(0, 0, 0, 0.4); margin: 1.5rem 0 2.5rem; font-size: 1rem; }
.catalog-breadcrumb a { color: rgba(0, 0, 0, 0.4); text-decoration: none; }
.catalog-breadcrumb a:hover { color: var(--dy-primary); }

.catalog h1 { margin-bottom: 1rem; font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.5rem); font-weight: 500; }
.catalog-lead { margin-bottom: 2rem; color: var(--dy-text-secondary); }

/* 表格公共：分类一览表、各小节课程表 */
.catalog .table { --bs-table-color: var(--dy-text-secondary); margin: 0; font-size: 0.9375rem; line-height: 1.6; }
.catalog thead th { color: var(--dy-text); font-weight: 600; white-space: nowrap; background: var(--dy-bg-soft); }
.catalog tbody th { color: var(--dy-text); font-weight: 500; }

/* 分类一览表 */
.catalog-summary { margin-bottom: 2rem; }
.catalog-summary tbody th { white-space: nowrap; }
.catalog-summary tbody th a { color: inherit; text-decoration: none; }
.catalog-summary tbody th a:hover { color: var(--dy-primary); }
.catalog-summary td:nth-child(2),
.catalog-summary td:nth-child(4),
.catalog-summary td:nth-child(5),
.catalog-summary td:nth-child(6) { white-space: nowrap; }
.catalog-summary td:nth-child(3) { min-width: 16rem; } /* 窄屏时细分列不被挤成一两个字宽，整表横向滚动 */

/* 分类导航 */
.catalog-toc ul { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0 0 1rem; }
.catalog-toc a { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.375rem 1rem; border: 1px solid var(--dy-border); border-radius: 999px; color: var(--dy-text); text-decoration: none; }
.catalog-toc a:hover { border-color: var(--dy-violet); color: var(--dy-primary); }
.catalog-toc span { font-size: 0.875rem; color: var(--dy-text-muted); }

/* 分类 → 小节 → 课程 */
.catalog-tab { padding-top: 3rem; scroll-margin-top: var(--dy-header-height); }
.catalog h2 { margin-bottom: 0.5rem; padding-bottom: 0.75rem; border-bottom: 2px solid var(--dy-violet); font-size: 1.75rem; font-weight: 500; }
.catalog h3 { margin: 2rem 0 0.5rem; font-size: 1.25rem; font-weight: 500; color: var(--dy-tag-text); }
.catalog h2 small,
.catalog h3 small { margin-left: 0.75rem; font-size: 0.875rem; font-weight: 400; color: var(--dy-text-muted); }

/* 各小节课程表：一门课一行，列随分类变化；属性列不换行，简介（最后一列）换行；窄屏横向滚动时课程名固定在左侧 */
.catalog-table { margin-top: 0.75rem; }
.catalog-table .table { font-size: 0.875rem; }
.catalog-table td { white-space: nowrap; }
.catalog-table td:last-child { min-width: 18rem; white-space: normal; }
.catalog-table tr > :first-child { position: sticky; left: 0; z-index: 1; }
.catalog-table tbody th { min-width: 11rem; }
.catalog-table tr { scroll-margin-top: var(--dy-header-height); }

@media (max-width: 767.98px) {
  .catalog-breadcrumb { margin-bottom: 1.5rem; font-size: 0.8125rem; }
  .catalog-tab { padding-top: 2rem; }
  .catalog h2 { font-size: 1.375rem; }
  .catalog h3 { font-size: 1.125rem; }
  .catalog-table tbody th { min-width: 8rem; max-width: 9rem; }
  .catalog-table tr > :first-child { box-shadow: inset -1px 0 0 var(--dy-border); }
}
