@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#102b46;--blue:#176b87;--teal:#1b8791;--ink:#172b3d;--muted:#718096;--line:#e5ebf0;--pale:#f4f8fa}*{box-sizing:border-box}body{font-family:'DM Sans',sans-serif;color:var(--ink);background:#fff}.portal-nav{background:#102b46;padding:17px 0}.navbar-brand{font-family:Manrope,sans-serif;letter-spacing:-.5px}.brand-mark{display:inline-grid;place-items:center;background:#1b8791;color:#fff;width:34px;height:34px;border-radius:10px;margin-right:8px}.brand-light{font-weight:500;color:#a9c6d1}.hero-section{background:radial-gradient(circle at 85% 15%,rgba(35,140,151,.28),transparent 30%),linear-gradient(120deg,#102b46,#164b65);color:#fff}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#8ecbd0;display:flex;align-items:center;gap:9px}.eyebrow span{width:22px;height:2px;background:#55b5b5}.eyebrow.dark{color:#27818c}.hero-section h1{font:800 clamp(2.4rem,5vw,4.25rem)/1.08 Manrope,sans-serif;letter-spacing:-2px;margin:18px 0 12px}.hero-section h1 em{font-style:normal;color:#83d1ce}.hero-copy{color:#c0d3df;font-size:17px;max-width:580px;margin:0}.source-chip{display:inline-flex;align-items:center;gap:10px;border:1px solid #477184;background:#ffffff0c;padding:13px 16px;border-radius:12px;color:#d3e5e9;font-size:12px}.source-chip i{font-size:18px;color:#8ed3ca}.stats-row{max-width:850px}.stat-card{padding:16px 18px;background:#ffffff0d;border:1px solid #ffffff1c;border-radius:13px}.stat-card span{display:block;font-size:9px;letter-spacing:1.5px;color:#a9c7d2;font-weight:700}.stat-card strong{display:block;font:800 27px Manrope,sans-serif;margin-top:4px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.section-heading h2{font:800 28px Manrope,sans-serif;letter-spacing:-.8px;margin:8px 0 5px}.section-heading p{color:var(--muted);margin:0;font-size:14px}.search-wrap{position:relative;width:min(100%,340px)}.search-wrap i{position:absolute;left:15px;top:13px;color:#8a9baa}.search-wrap input{padding:11px 14px 11px 42px;border:1px solid var(--line);border-radius:11px;font-size:13px;box-shadow:0 4px 18px #102b4608}.department-card{height:100%;min-height:225px;border:1px solid var(--line);background:#fff;border-radius:16px;padding:22px;transition:.2s;box-shadow:0 6px 24px #102b4608}.department-card:hover{transform:translateY(-4px);border-color:#9ac9cc;box-shadow:0 15px 35px #102b4614}.card-top{display:flex;justify-content:space-between;align-items:center}.dept-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:#eaf5f5;color:#1b8791;font-size:20px}.arrow-icon{color:#91a3af;font-size:17px}.dept-index{font-size:9px;letter-spacing:1.6px;color:#8295a2;font-weight:700;margin-top:19px}.department-card h3{font:700 17px/1.4 Manrope,sans-serif;margin:6px 0 15px;min-height:48px;color:#19354a}.card-meta{display:flex;flex-wrap:wrap;gap:13px;color:#738694;font-size:11px}.card-meta i{color:#27818c;margin-right:4px}.card-footer-text{border-top:1px solid #edf1f4;margin-top:17px;padding-top:13px;color:#1b7885;font-size:12px;font-weight:700}.card-footer-text i{float:right}.curriculum-modal{border:0;border-radius:17px;overflow:hidden}.curriculum-modal .modal-header{padding:24px 28px;background:#f5f9fa;border-bottom:1px solid var(--line)}.curriculum-modal .modal-title{font:800 22px Manrope,sans-serif;margin-top:7px;color:#17344a}.curriculum-modal .modal-body{padding:24px 28px}.programme-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.programme-tag{font-size:9px;letter-spacing:1.5px;color:#27818c;font-weight:800}.programme-heading h5{font:700 16px Manrope,sans-serif;margin:5px 0 0}.count-pill{font-size:10px;padding:6px 10px;border-radius:20px;background:#edf5f6;color:#287d87;white-space:nowrap}.semester-accordion{border:1px solid var(--line);border-radius:12px;overflow:hidden}.semester-accordion .accordion-item{border:0;border-bottom:1px solid var(--line)}.semester-accordion .accordion-item:last-child{border-bottom:0}.semester-accordion .accordion-button{padding:13px 16px;background:#fff;box-shadow:none;color:#1a3449}.semester-accordion .accordion-button:not(.collapsed){background:#f3f9f9;color:#175d6b}.semester-symbol{display:grid;place-items:center;width:34px;height:34px;background:#eaf4f5;color:#23828b;border-radius:9px;margin-right:12px}.semester-title{font-weight:700;font-size:13px}.semester-title small{display:block;color:#8797a2;font-weight:400;font-size:10px;margin-top:3px}.course-table{font-size:12px}.course-table thead th{font-size:9px;letter-spacing:1px;color:#82929d;background:#f8fafb;padding:12px 15px;border-bottom:1px solid var(--line)}.course-table tbody td{padding:12px 15px;vertical-align:middle;border-color:#edf1f3;color:#3b4e5c}.course-code{display:inline-block;background:#edf4f6;color:#205c70;border-radius:6px;padding:5px 8px;font-weight:700;font-size:10px;white-space:nowrap}.credit-badge{display:inline-grid;place-items:center;min-width:27px;height:25px;border-radius:7px;background:#eaf5f1;color:#28765d;font-weight:700}.programme-divider{border-color:#e5ecef;margin:24px 0}.modal-footer{padding:15px 28px;background:#fbfcfd;border-top:1px solid var(--line)}.modal-footer .btn{font-size:12px}.source-note{display:flex;gap:10px;align-items:center;padding:14px 16px;border:1px solid var(--line);background:#f8fafb;border-radius:10px;color:#748591;font-size:11px}.source-note i{font-size:16px;color:#26818a}.source-note a{color:#1c7180;font-weight:700}.portal-footer{background:#102b46;color:#a9c1cd;padding:22px 0;font-size:11px}.empty-state{text-align:center;padding:65px 20px;color:#8495a1}.empty-state i{font-size:30px;color:#9db6bd}.empty-state h5{font:700 17px Manrope;color:#344e60;margin-top:12px}.empty-state p{font-size:13px}@media(max-width:767px){.section-heading{align-items:stretch;flex-direction:column}.search-wrap{width:100%}.hero-section .container{padding-top:42px!important;padding-bottom:38px!important}.curriculum-modal .modal-header,.curriculum-modal .modal-body{padding:19px}.course-table{min-width:500px}.programme-heading h5{font-size:14px}.count-pill{font-size:9px}}

/* Student course planner */
.registration-page{background:#f5f8fa}.registration-hero{background:radial-gradient(circle at 88% 8%,rgba(48,166,166,.25),transparent 28%),linear-gradient(120deg,#102b46,#164b65);color:#fff}.registration-hero h1{font:800 clamp(2.2rem,4vw,3.5rem)/1.1 Manrope,sans-serif;letter-spacing:-1.8px;margin:13px 0 8px}.registration-hero h1 em{font-style:normal;color:#83d1ce}.registration-hero p{color:#c0d3df;max-width:650px;margin:0}.registration-notice{display:inline-flex;gap:10px;align-items:flex-start;background:#ffffff12;border:1px solid #ffffff2b;border-radius:10px;padding:11px 14px;margin-top:20px;color:#d5e6eb;font-size:12px;max-width:760px}.registration-notice i{color:#8ed3ca}.registration-panel{background:#fff;border:1px solid #e5ebf0;border-radius:16px;padding:23px;box-shadow:0 7px 25px #102b4608}.panel-heading{display:flex;justify-content:space-between;gap:15px;margin-bottom:21px}.panel-heading h2{font:800 19px Manrope,sans-serif;margin:5px 0;color:#17344a}.panel-heading p{font-size:12px;color:#82919c;margin:0}.step-label{font-size:9px;letter-spacing:1.5px;color:#27818c;font-weight:800}.panel-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:12px;background:#eaf5f5;color:#25828b;font-size:19px}.registration-panel .form-label{font-size:11px;font-weight:700;color:#536979}.registration-panel .form-control,.registration-panel .form-select{font-size:13px;padding:11px 12px;border-color:#dfe7ec;border-radius:9px}.registration-panel .form-control:focus,.registration-panel .form-select:focus{border-color:#65aeb1;box-shadow:0 0 0 .2rem #27818c18}.course-prompt{display:flex;align-items:center;gap:12px;border:1px dashed #cbd9df;border-radius:11px;padding:22px;color:#81919c;font-size:12px;background:#fafcfd}.course-prompt i{font-size:21px;color:#27818c}.course-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.course-toolbar strong{display:block;font:700 14px Manrope;color:#244257}.course-toolbar small{display:block;color:#84939e;font-size:10px;margin-top:3px}.course-toolbar .btn{font-size:10px;border:1px solid #e3e9ed;color:#536b7b}.course-selection-list{display:grid;gap:8px}.course-choice{display:grid;grid-template-columns:20px minmax(90px,125px) 1fr auto;align-items:center;gap:11px;padding:12px;border:1px solid #e7edf0;border-radius:10px;cursor:pointer;transition:.15s;background:#fff}.course-choice:hover{border-color:#a8cdd0;background:#fbfefe}.course-choice.is-selected{border-color:#64aaad;background:#f1f9f8}.course-choice .form-check-input{margin:0;width:16px;height:16px;cursor:pointer}.choice-code{font-size:10px;font-weight:800;color:#245f70;background:#edf5f6;padding:6px 7px;border-radius:6px;white-space:nowrap}.choice-name{font-size:12px;color:#3c5363;line-height:1.4}.choice-credit{font-size:10px;font-weight:700;color:#26745d;background:#eaf5f0;padding:6px 8px;border-radius:6px;white-space:nowrap}.selection-summary{position:sticky;top:20px;background:linear-gradient(155deg,#12334e,#164b61);border-radius:17px;padding:23px;color:#fff;box-shadow:0 15px 35px #102b4622}.summary-top{display:flex;justify-content:space-between;align-items:center;color:#a8cbd0;font-size:9px;letter-spacing:1.6px;font-weight:800}.summary-top i{font-size:20px;color:#81ceca}.selection-summary h3{font:800 20px Manrope;margin:8px 0 19px}.summary-stat{display:flex;align-items:baseline;gap:10px;margin:8px 0}.summary-stat strong{font:800 28px Manrope;color:#8ed5ce;min-width:38px}.summary-stat span{font-size:11px;color:#c3d7df}.selection-summary hr{border-color:#ffffff2b;margin:19px 0}.summary-detail{display:flex;justify-content:space-between;gap:15px;margin:12px 0;font-size:10px}.summary-detail span{color:#a8c4d0;flex:0 0 75px}.summary-detail strong{text-align:right;font-size:10px;font-weight:600;color:#fff;overflow-wrap:anywhere}.summary-actions{display:grid;gap:9px;margin-top:23px}.summary-actions .btn{font-size:11px;padding:11px}.summary-actions .btn-primary{background:#21858d;border-color:#21858d}.summary-actions .btn-outline-light{border-color:#ffffff5c}.summary-actions .btn-link{font-size:10px;text-decoration:none}.summary-footnote{font-size:9px;color:#a9c4cf;margin:15px 0 0;line-height:1.5}.registration-page .source-note{background:#fff}@media(max-width:991px){.selection-summary{position:static}}@media(max-width:575px){.registration-panel{padding:17px}.course-choice{grid-template-columns:18px minmax(80px,105px) 1fr;gap:8px;padding:10px}.choice-credit{grid-column:3;justify-self:start}.choice-name{font-size:11px}.course-toolbar{align-items:flex-start;flex-direction:column}.registration-hero .container{padding-top:35px!important;padding-bottom:35px!important}}
@media print{.portal-nav,.registration-hero,.registration-panel,.selection-summary,.source-note,.portal-footer{display:none!important}}
