/* Course page — year filter chips + per-semester course tables.
   Page-scoped selectors only. */

.course-content { max-width: 960px; }

/* ── Year filter chips ──────────────────────────────────── */
.course-filter { margin-bottom: clamp(32px, 5vw, 56px); }
.course-filter .eyebrow { margin-bottom: var(--sp-2); }
.course-filter__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.course-filter__item { margin: 0; flex: 0 0 auto; }

.course-chip { gap: 8px; }
.course-chip__year {
    font-weight: 700;
    color: var(--ink);
}
.course-chip__tag {
    font-size: var(--fs-tiny);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--muted);
}
.course-chip__count {
    font-size: var(--fs-tiny);
    font-weight: 600;
    color: var(--muted);
    padding-left: 8px;
    border-left: 1px solid var(--line);
}
.course-chip.is-active .course-chip__year,
.course-chip.is-active .course-chip__tag,
.course-chip.is-active .course-chip__count {
    color: var(--paper);
}
.course-chip.is-active .course-chip__count {
    border-left-color: rgba(255, 255, 255, .35);
}

/* ── Semester sections ──────────────────────────────────── */
.course-semester + .course-semester { margin-top: clamp(40px, 6vw, 72px); }

.course-table__code {
    width: 130px;
    white-space: nowrap;
}
.course-table__code .badge { font-variant-numeric: tabular-nums; }
th.course-table__code { color: var(--muted); }
.course-table__name { font-weight: 600; }
.course-table__suffix {
    color: var(--muted);
    font-size: var(--fs-tiny);
    white-space: nowrap;
}

/* ── Empty state ────────────────────────────────────────── */
.course-empty i {
    display: block;
    margin-bottom: var(--sp-2);
    font-size: 1.7rem;
    color: var(--faint);
}
.course-empty p { margin: 0; }

/* ── Mobile: stacked definition-list cards (<640px) ─────── */
@media (max-width: 639px) {
    .course-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
        border: 0;
    }
    .course-table,
    .course-table tbody,
    .course-table tr,
    .course-table td {
        display: block;
        width: auto;
    }
    /* One row per course: the code rides along as a badge instead of stacking
       above the title under its own "CODE" label. */
    .course-table tr {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 10px;
        padding: var(--sp-3);
        border: var(--hair);
    }
    .course-table tr:first-child { border-top: var(--rule-heavy); }
    .course-table tr + tr { margin-top: var(--sp-2); }
    .course-table td {
        padding: 0;
        border-bottom: 0;
        white-space: normal;
    }
    .course-table__code { flex: 0 0 auto; width: auto; }
    .course-table td:not(.course-table__code) { flex: 1 1 12ch; }
    .course-table td::before { content: none; }
}
