/* Shared visual system: navy for authority, sky blue for navigation, coral for emphasis. */
:root { --ink:#102a52; --muted:#5d7493; --line:#cfe2f5; --canvas:#f3f9ff; --blue:#146cc5; --blue-soft:#dff1ff; --orange:#ef765c; --green:#17865d; }
.sidebar { background:linear-gradient(180deg,#eaf7ff 0%,#d7ecfb 100%); border-right-color:#b9d8ef; }
.sidebar .nav-item { color:#315574; }
.sidebar .nav-item i { background:#c7e6f8; color:#164d7a; }
.sidebar .nav-item.active,.sidebar .nav-item:hover { background:#b9e4fa; color:#0b4576; box-shadow:inset 3px 0 0 #ef765c; }
.sidebar .nav-label,.sidebar .nav-group-toggle { color:#244d70; }
.sidebar .user-card { border-top-color:#b9d8ef; }
.panel,.stat-card { border-color:#cfe2f5; box-shadow:0 10px 28px rgba(20,75,123,.05); }
.panel { background:linear-gradient(145deg,#fff 0%,#f7fcff 100%); }
.form-grid label,.student-form-grid label { color:#244d70; }
.form-grid input,.form-grid select,.form-grid textarea,.student-form-grid input,.student-form-grid select,.student-form-grid textarea { background:linear-gradient(135deg,#f4fbff,#eaf6ff); border-color:#b9d8ef; }
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.student-form-grid input:focus,.student-form-grid select:focus,.student-form-grid textarea:focus { border-color:#146cc5; box-shadow:0 0 0 3px rgba(20,108,197,.14); }
.primary-button { background:linear-gradient(135deg,#123b70,#146cc5); box-shadow:0 8px 18px rgba(20,108,197,.22); }
.primary-button:hover { background:linear-gradient(135deg,#102a52,#0c5aa8); }
.outline-button,.icon-button,.help-button,.filter-button { background:#eef9ff; border-color:#b9d8ef; color:#174e7b; }
.outline-button:hover,.icon-button:hover,.help-button:hover,.filter-button:hover { border-color:#ef765c; color:#b94d3a; }
.academic-page-tabs button { background:#edf8ff; border-color:#b9d8ef; color:#245475; }
.academic-page-tabs button.active,.academic-page-tabs button:hover { background:#cbeaff; border-color:#63b6e5; color:#103d6c; }
.academic-action-panel { background:linear-gradient(135deg,#ecf9ff,#fff5f0); }
.academic-action-panel>span { color:#ef765c; }
.status.pending { background:#fff0eb; color:#c9543d; }
.status.active { background:#e2f6ef; color:#116b4c; }
/* Student portal surfaces use the same institutional navy, sky and coral palette. */
body[data-portal-role="student"] main { background:linear-gradient(135deg,#f6fbff 0%,#edf8ff 100%); }
body[data-portal-role="student"] .student-hub-hero { background:linear-gradient(130deg,#102a52,#146cc5); box-shadow:0 16px 34px rgba(16,42,82,.18); }
body[data-portal-role="student"] .student-hub-hero .eyebrow { color:#aee7ff; }
body[data-portal-role="student"] .student-resource-card,body[data-portal-role="student"] .student-document-card,body[data-portal-role="student"] .student-registration-subpanel { border-color:#c8e3f5; background:linear-gradient(145deg,#fff,#f2faff); }
body[data-portal-role="student"] .student-id-card { background:linear-gradient(135deg,#102a52,#2077ca); }
body[data-portal-role="student"] .student-registration-hero { border-color:#91cce9; background:linear-gradient(105deg,#d8f1ff,#bfe6fa); }
body[data-portal-role="student"] .student-registration-summary { border-color:#badcf0; background:linear-gradient(135deg,#fff,#edf8ff); }
body[data-portal-role="student"] .student-registration-guide { border-color:#c8e3f5; background:#f1faff; }
body[data-portal-role="student"] .student-course-cards .student-course-check:has(input:checked) { border-color:#ef765c; box-shadow:0 0 0 2px rgba(239,118,92,.16); }
body[data-portal-role="student"] .student-week-day { border-color:#c8e3f5; background:linear-gradient(180deg,#fff,#eff9ff); }
body[data-portal-role="student"] .student-friendly-empty { border-color:#c8e3f5; background:#f3faff; color:#315574; }
.programme-family-disclosure { min-width:360px; }
.programme-family-disclosure summary { cursor:pointer; color:#103d6c; font-weight:800; }
.programme-level-list { display:grid; gap:8px; padding:12px 0 2px; }
.programme-level-row { display:grid; grid-template-columns:auto minmax(180px,1fr) auto; gap:10px; align-items:center; padding:10px; border:1px solid #c8e3f5; border-radius:10px; background:#f6fbff; }
.programme-level-row small { display:block; color:#5d7493; margin-top:3px; }
@media (max-width:780px) { .programme-family-disclosure { min-width:260px; } .programme-level-row { grid-template-columns:auto 1fr; } .programme-level-row .button-row { grid-column:2; } }
