/* Page-specific layout, loaded after the shared portal theme. */
.course-management-page .course-editor,
.course-management-page .course-catalog { min-width:0; }
.course-management-page .course-editor { padding:20px; border:1px solid var(--portal-line); border-radius:12px; background:#f8fafb; }
.course-management-page .management-section-heading { display:flex; align-items:flex-start; gap:12px; margin-bottom:18px; }
.course-management-page .management-section-heading > span { display:grid; place-items:center; flex:0 0 32px; height:32px; border-radius:9px; background:var(--portal-navy); color:#fff; font-size:12px; font-weight:800; }
.course-management-page .management-section-heading h2 { margin:0 0 4px; color:var(--portal-ink); font-size:18px; line-height:1.4; }
.course-management-page .management-section-heading p { margin:0; color:#60717f; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.course-management-page .course-form-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:14px; }
.course-management-page #courseForm label { display:flex; flex-direction:column; gap:7px; min-width:0; margin:0; grid-column:span 3; color:#40515f; font-size:12px; font-weight:700; }
.course-management-page #courseForm label:nth-child(1),
.course-management-page #courseForm label:nth-child(4) { grid-column:span 2; }
.course-management-page #courseForm label:nth-child(3) { grid-column:span 5; }
.course-management-page #courseForm label:nth-child(5),
.course-management-page #courseForm label:nth-child(7),
.course-management-page #courseForm label:nth-child(8),
.course-management-page #courseForm label:nth-child(9) { grid-column:span 2; }
.course-management-page #courseForm label:nth-child(6) { grid-column:span 4; }
.course-management-page #courseForm input,
.course-management-page #courseForm select { box-sizing:border-box; width:100%!important; min-width:0; margin:0; font-family:inherit; font-size:13px; line-height:1.4; }
.course-management-page .course-code-fields { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(48px,.5fr); align-items:center; gap:6px; }
.course-management-page .course-form-actions { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:18px; padding-top:16px; border-top:1px solid var(--portal-line); }
.course-management-page .course-form-actions p { display:grid; gap:3px; min-width:0; margin:0; color:#657682; font-size:11px; line-height:1.5; }
.course-management-page .course-form-actions p strong { color:#344956; font-size:12px; }
.course-management-page .course-form-actions p span { overflow-wrap:anywhere; }
.course-management-page .course-form-buttons { display:flex; flex:0 0 auto; gap:8px; }
.course-management-page .course-form-actions button { min-width:106px; }
.course-management-page .practice-guide { margin:18px 0 26px; padding:14px 16px; color:#526472; font-size:12px; line-height:1.8; }
.course-management-page .practice-guide strong { color:var(--portal-blue); }
.course-management-page .course-search { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:9px 12px; padding:16px 18px; margin-bottom:14px; border-radius:12px; }
.course-management-page .course-search label { grid-column:1; grid-row:1; color:var(--portal-ink); font-size:13px; font-weight:800; }
.course-management-page .course-search input { box-sizing:border-box; grid-column:1; grid-row:2; width:100%; min-width:0; min-height:42px; padding:9px 12px; }
.course-management-page #clearCourseSearch { grid-column:2; grid-row:2; }
.course-management-page #clearCourseSearch { height:40px; padding:0 14px; border:1px solid var(--portal-line); background:#fff; color:#40515f; font-family:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.course-management-page .course-count { grid-column:2; grid-row:1; color:#5c6f7d; font-size:12px; text-align:right; white-space:nowrap; }
.course-management-page .course-summaries { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:14px; }
.course-management-page .applied-summary { min-width:0; padding:12px 14px; color:#526472; font-size:12px; line-height:1.8; overflow-wrap:anywhere; }
.course-management-page .applied-summary strong { color:var(--portal-blue); }
.course-management-page #recommendationNotice { margin:0 0 18px; }
.course-management-page .priority-courses { margin:0 0 16px; padding:14px; border:1px solid #d8e3ea; border-radius:12px; background:#f8fafb; }
.course-management-page .priority-courses[hidden] { display:none; }
.course-management-page .priority-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:10px; }
.course-management-page .priority-heading h3 { margin:0 0 2px; color:var(--portal-ink); font-size:15px; }
.course-management-page .priority-heading p { margin:0; color:#667784; font-size:11px; line-height:1.5; }
.course-management-page .priority-heading>span { flex:0 0 auto; color:var(--portal-blue); font-size:11px; font-weight:800; }
.course-management-page .priority-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.course-management-page .priority-item { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:5px 10px; min-width:0; padding:9px 10px; border:1px solid #e0e7ec; border-radius:9px; background:#fff; }
.course-management-page .priority-item>div:first-child { min-width:0; }
.course-management-page .priority-item strong { display:block; overflow:hidden; color:var(--portal-ink); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.course-management-page .priority-item small { display:block; margin-top:2px; color:#71808b; font-size:10px; }
.course-management-page .priority-badges { display:flex; grid-column:1; gap:4px; flex-wrap:wrap; }
.course-management-page .priority-badges span { padding:3px 6px; border-radius:999px; background:#edf3f8; color:#315f86; font-size:9px; font-weight:800; }
.course-management-page .priority-badges .favorite { background:#fff5da; color:#916410; }
.course-management-page .priority-badges .package { background:#fff0e3; color:#955018; }
.course-management-page .priority-badges .applied { background:#e5f3eb; color:#287343; }
.course-management-page .priority-item button { grid-column:2; grid-row:1 / span 2; min-height:34px; padding:6px 9px; border:1px solid #cfdae2; border-radius:7px; background:#edf3f7; color:#315f86; font-size:10px; font-weight:800; cursor:pointer; }
.course-management-page .priority-more { grid-column:1/-1; margin:2px 0 0; color:#667784; font-size:10px; text-align:center; }
.course-management-page #preparedSummary > span { display:inline; }
.course-management-page #preparedSummary .course-action { min-height:26px!important; padding:3px 7px!important; margin:2px 3px; vertical-align:baseline; }
.course-management-page .course-table-wrap { width:100%; }
.course-management-page .course-table-wrap table { display:table; width:100%; min-width:980px; table-layout:fixed; border-collapse:collapse; }
.course-management-page .course-table-wrap th,
.course-management-page .course-table-wrap td { box-sizing:border-box; padding:8px 6px; vertical-align:middle; white-space:normal; overflow-wrap:anywhere; word-break:normal; font-size:12px; line-height:1.4; }
.course-management-page .course-table-wrap th { font-weight:700; }
.course-management-page .course-table-wrap th:first-child { padding:12px 2px; font-size:11px; }
.course-management-page .course-table-wrap td:nth-child(3),
.course-management-page .course-table-wrap td:nth-child(6) { text-align:left; }
.course-management-page .course-name { display:-webkit-box; max-width:100%; max-height:2.8em; white-space:normal; overflow:hidden; overflow-wrap:anywhere; word-break:normal; font-weight:700; color:var(--portal-ink); line-height:1.4; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.course-management-page .course-table-wrap tbody tr:hover td { background:#f7fafc!important; }
.course-management-page .course-table-wrap .priority-course td { background:#f6fafc!important; }
.course-management-page .course-table-wrap .applied-course td { background:#f1f8f4!important; }
.course-management-page .course-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px; min-width:0; }
.course-management-page .course-actions select { box-sizing:border-box; grid-column:1 / -1; width:100%; min-width:0; min-height:29px!important; padding:4px 5px!important; color:#40515f; }
.course-management-page .course-action { font-family:inherit; font-size:12px; line-height:1.4; cursor:pointer; }
.course-management-page .course-actions .course-action { min-width:0; min-height:29px!important; padding:4px 3px!important; font-size:10px; white-space:normal; overflow-wrap:anywhere; }
.course-management-page button:hover { transform:none; }
.course-management-page .course-action.edit { background:#e9f0f5!important; color:#315f86!important; }
.course-management-page .course-statuses { display:flex; grid-column:1/-1; gap:3px; flex-wrap:wrap; }
.course-management-page .course-status { flex:1 1 auto; padding:4px 5px; border-radius:6px; background:#edf3f8; color:var(--portal-blue); font-size:10px; font-weight:800; text-align:center; }
.course-management-page .course-status.general { background:#eaf2f7; color:#315f86; }
.course-management-page .course-status.package { background:#fff4e8; color:#9b561b; }
.course-management-page .course-status.applied { background:#e5f3eb; color:#287343; }
.course-management-page .favorite-toggle { display:block; width:30px; height:28px; margin:auto; padding:0; border:0; background:transparent; color:#8999a5; font-size:20px; cursor:pointer; }
.course-management-page .favorite-toggle.active { color:#bd7e0c; }
.course-management-page .course-pagination { display:flex; justify-content:center; flex-wrap:wrap; gap:6px; margin-top:20px; }
.course-management-page .course-pagination button { min-width:34px; height:34px; padding:0 10px; border:1px solid var(--portal-line); background:#fff; color:#40515f; font-family:inherit; font-size:12px; cursor:pointer; }
.course-management-page .course-pagination button.active { color:#fff; font-weight:800; }
.course-management-page .course-pagination button:disabled { color:#8a98a3; background:#f5f7f9; cursor:default; }
@media(max-width:850px) {
    .course-management-page .course-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .course-management-page #courseForm label:nth-child(n) { grid-column:span 1; }
    .course-management-page #courseForm label:nth-child(3),
    .course-management-page #courseForm label:nth-child(6) { grid-column:1 / -1; }
    .course-management-page .course-summaries { grid-template-columns:1fr; }
    .course-management-page .priority-list { grid-template-columns:1fr; }
}
@media(max-width:480px) {
    .course-management-page .course-editor { padding:14px; }
    .course-management-page .course-form-grid { grid-template-columns:minmax(0,1fr); }
    .course-management-page .course-form-actions { align-items:stretch; flex-direction:column; }
    .course-management-page .course-form-buttons { width:100%; }
    .course-management-page .course-form-actions button { flex:1; min-width:0; }
    .course-management-page .management-section-heading h2 { font-size:17px; }
    .course-management-page .course-search { padding:14px; }
    .course-management-page .course-search input { grid-column:1/-1; grid-row:2; }
    .course-management-page #clearCourseSearch { grid-column:1/-1; grid-row:3; width:100%; }
    .course-management-page .priority-item { grid-template-columns:minmax(0,1fr) auto; }
}
/* Keep search updates inside a stable viewport, including empty results. */
.course-management-page .course-search { min-height:96px; }
.course-management-page .course-count { min-width:120px; font-variant-numeric:tabular-nums; }
.course-management-page .course-table-wrap { height:65vh; min-height:320px; overflow:auto!important; scrollbar-gutter:stable; }
.course-management-page #coursePagination { min-height:44px; }
.course-management-page .course-action.mark-applied { background:#e7f4ea; color:#28713c; }
