.student-hub-content { display: grid; gap: 20px; }
.student-hub-hero { padding: 28px; border-radius: 22px; color: #fff; background: linear-gradient(125deg, #0b3476, #1f63c7); display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.student-hub-hero h2 { margin: 4px 0 8px; font-size: clamp(1.65rem, 3vw, 2.4rem); }
.student-hub-hero p { margin: 0; color: #dce9ff; max-width: 640px; }
.student-hub-hero .eyebrow { color: #a7d8ff; }
.student-hub-tabs { display: none; }
.student-hub-tabs button { flex: 0 0 auto; border: 1px solid var(--line, #dbe4f2); background: #fff; color: var(--ink, #17325c); border-radius: 10px; padding: 10px 14px; font-weight: 700; cursor: pointer; }
.student-hub-tabs button.active { background: #175dcc; border-color: #175dcc; color: #fff; }
.student-resource-grid, .student-doc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.student-resource-card, .student-document-card { border: 1px solid var(--line, #dbe4f2); background: #fff; border-radius: 16px; padding: 18px; display: grid; gap: 10px; }
.student-resource-card strong, .student-document-card strong { color: #132d55; font-size: 1rem; }
.student-resource-card p, .student-document-card p { margin: 0; color: #637493; font-size: .9rem; line-height: 1.5; }
.student-resource-card button, .student-document-card button { justify-self: start; }
.student-summary-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.student-summary-list article { padding: 16px; border-radius: 14px; background: #f6f9fe; border: 1px solid #e2eafa; }
.student-summary-list p { margin: 0 0 6px; color: #647492; font-size: .83rem; }
.student-summary-list strong { color: #132d55; }
.student-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.student-form-grid label { display: grid; gap: 7px; color: #405475; font-size: .9rem; font-weight: 700; }
.student-form-grid input, .student-form-grid textarea, .student-form-grid select { width: 100%; box-sizing: border-box; border: 1px solid #d5e0f0; background: #fff; border-radius: 9px; padding: 11px 12px; color: #172b4d; font: inherit; }
.student-form-grid .form-full { grid-column: 1 / -1; }
.student-document-card .status { justify-self: start; }
.student-document-card input[type=file] { max-width: 100%; font-size: .82rem; }
.student-note { margin: 0; color: #637493; line-height: 1.55; }
.student-id-card { background: linear-gradient(145deg, #0d3476, #1671cf); color: #fff; padding: 22px; border-radius: 16px; max-width: 390px; box-shadow: 0 10px 26px rgba(11,52,118,.18); }
.student-id-card small { color: #bcd9ff; display: block; letter-spacing: .1em; text-transform: uppercase; }
.student-id-card strong { display: block; font-size: 1.35rem; margin: 18px 0 6px; }
.student-id-card span { color: #e7f1ff; }
.student-profile-photo { display: block; width: 116px; height: 116px; margin: 0 0 14px; border: 3px solid #e4ecf8; border-radius: 50%; object-fit: cover; }
.student-id-photo { float: right; width: 68px; height: 82px; margin: 0 0 10px 14px; border: 2px solid rgba(255,255,255,.85); border-radius: 8px; object-fit: cover; }
.student-course-list { display: grid; gap: 9px; }
.student-course-check { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid #e0e8f5; border-radius: 10px; }
.student-course-check input { inline-size: 18px; block-size: 18px; }
.student-course-check small { margin-left: auto; color: #617291; }
.student-empty { color: #687895; padding: 14px 0; margin: 0; }
.student-progress { block-size: 9px; border-radius: 99px; overflow: hidden; background: #e7edf8; margin: 10px 0 14px; }
.student-progress span { display: block; block-size: 100%; border-radius: inherit; background: linear-gradient(90deg, #0b3476, #2d74df); }
.student-progress-value { color: #17325c; }
.student-checklist { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.student-checklist p { margin: 0; padding: 10px; border-radius: 10px; color: #71809b; background: #f7f9fd; font-size: .86rem; }
.student-checklist p.complete { color: #126c4d; background: #eaf8f1; }
.student-summary-list small { display: block; margin-top: 7px; color: #697997; font-size: .78rem; line-height: 1.35; }
.student-week-strip { display: grid; grid-template-columns: repeat(5, minmax(118px, 1fr)); gap: 10px; overflow-x: auto; }
.student-week-day { min-block-size: 120px; padding: 13px; border: 1px solid #e0e8f5; border-radius: 13px; background: #f8faff; }
.student-week-day > strong { display: block; color: #17325c; letter-spacing: .06em; font-size: .78rem; text-transform: uppercase; }
.student-week-day p { margin: 14px 0 2px; color: #1559bb; font-size: .82rem; font-weight: 800; }
.student-week-day small { color: #6d7d98; font-size: .77rem; }
.student-friendly-empty { padding: 24px; border: 1px dashed #c7d5ea; border-radius: 13px; color: #667792; background: #fbfcff; line-height: 1.55; }
.student-course-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.student-course-cards .student-course-check { display: grid; grid-template-columns: auto 1fr; align-items: start; min-block-size: 92px; cursor: pointer; }
.student-course-cards .student-course-check strong { color: #1559bb; font-size: .78rem; letter-spacing: .04em; }
.student-course-cards .student-course-check span { color: #17325c; font-weight: 700; }
.student-course-cards .student-course-check small { grid-column: 2; margin: 0; }
.student-registration-summary { position: sticky; bottom: 16px; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 16px; padding: 12px 14px; border: 1px solid #d8e5f7; border-radius: 14px; background: rgba(255,255,255,.96); box-shadow: 0 10px 24px rgba(20,51,98,.12); }
.student-registration-summary span { color: #17325c; font-weight: 800; }
.student-registration-guide { margin: 16px 0 0; padding: 14px 18px 14px 34px; border: 1px solid #d8e5f7; border-radius: 12px; background: #f6fbff; color: #405676; line-height: 1.65; }
.student-registration-guide li + li { margin-top: 4px; }
.student-registration-hero { display:flex; justify-content:space-between; gap:20px; margin:0 0 18px; padding:18px 20px; border:1px solid #8fb9d3; border-radius:10px; background:linear-gradient(100deg,#d8edf9,#b7d8eb); color:#173b68; }
.student-registration-identity { display:grid; gap:5px; }.student-registration-identity > strong { font-size:1.05rem; letter-spacing:.06em; }.student-registration-identity > span { font-size:1.18rem; font-weight:800; }.student-registration-identity small { color:#31557e; }
.student-registration-fee { display:grid; grid-template-columns:repeat(2,minmax(130px,1fr)); gap:8px 14px; align-content:start; }.student-registration-fee strong { padding:10px; border-radius:8px; text-align:center; background:rgba(255,255,255,.66); }.student-registration-fee small { grid-column:1/-1; text-align:right; color:#31557e; }
.student-registration-subpanel { margin:16px 0; border-color:#c9deec; box-shadow:none; }.student-unit-semester .table-wrap { margin:0; }.student-unit-semester table input[type=checkbox] { inline-size:18px; block-size:18px; accent-color:#145abd; }
.student-loading-skeleton { display: grid; gap: 16px; }
.student-loading-skeleton span { display: block; min-block-size: 112px; border-radius: 18px; background: linear-gradient(90deg, #edf2fa 20%, #f8faff 38%, #edf2fa 55%); background-size: 200% 100%; animation: studentSkeleton 1.2s linear infinite; }
.student-loading-skeleton span:first-child { min-block-size: 180px; }
.student-mobile-tabs { display: none; }
@keyframes studentSkeleton { to { background-position: -200% 0; } }

body[data-portal-role="student"] .sidebar { inline-size: 214px; padding-inline: 14px; }
body[data-portal-role="student"] main { margin-left: 214px; width: calc(100% - 214px); max-width: none; padding-left: 30px; padding-right: 30px; }
body[data-portal-role="student"] .sidebar .institution,
body[data-portal-role="student"] #primary-navigation,
body[data-portal-role="student"] .sidebar-bottom > #open-account,
body[data-portal-role="student"] .sidebar-bottom > [data-view="settings"] { display: none; }
body[data-portal-role="student"] #primary-navigation { display: none !important; }
body[data-portal-role="student"] .sidebar .student-nav { display: block !important; }
body[data-portal-role="student"] .sidebar-bottom { display: flex; flex: 1; flex-direction: column; min-height: 0; margin-top: 20px; }
body[data-portal-role="student"] .sidebar .student-nav { flex: 1; min-height: 0; overflow-y: auto; padding-right: 3px; scrollbar-width: thin; }
body[data-portal-role="student"] .sidebar .student-nav .nav-label { display: block; }
body[data-portal-role="student"] .sidebar .student-nav .nav-item { min-block-size: 44px; }
body[data-portal-role="student"] .sidebar .brand { justify-content: flex-start; }
body[data-portal-role="student"] .sidebar .brand img { inline-size: 42px; }
body[data-portal-role="student"] .sidebar .user-card { padding-inline: 4px; }
 .student-management-table { min-width: 920px; }
 .student-management-table td { vertical-align: top; white-space: normal; }
 .student-management-table td:nth-child(4) { min-width: 210px; font-size: .78rem; line-height: 1.45; }
 .student-management-table td:nth-child(5) { max-width: 185px; overflow-wrap: anywhere; white-space: pre-line; }
 .student-management-table .button-row { flex-wrap: wrap; min-width: 160px; }
@media (max-width: 920px) { .student-resource-grid, .student-doc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .student-hub-hero { display: block; padding: 22px; } .student-resource-grid, .student-doc-grid, .student-summary-list, .student-form-grid, .student-course-cards, .student-checklist { grid-template-columns: 1fr; } .student-hub-hero .outline-button, .student-hub-hero .primary-button { margin-top: 16px; min-block-size: 44px; } .student-mobile-tabs { position: sticky; bottom: 0; z-index: 10; display: grid; grid-template-columns: repeat(5, 1fr); gap: 2px; margin: 0 -8px -8px; padding: 8px 4px calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid #dce6f4; background: rgba(255,255,255,.97); box-shadow: 0 -8px 22px rgba(18,47,93,.08); } .student-mobile-tab { display: grid; place-items: center; gap: 3px; min-block-size: 44px; padding: 4px; border: 0; border-radius: 9px; color: #617291; background: transparent; } .student-mobile-tab span { font-size: 1.1rem; } .student-mobile-tab small { font-size: .66rem; } .student-mobile-tab.active { color: #145abd; background: #eaf1ff; } body[data-portal-role="student"] .sidebar { display: none; } body[data-portal-role="student"] .sidebar.open { display: flex; } body[data-portal-role="student"] .app-shell { display: block; } body[data-portal-role="student"] main { margin: 0; width: 100%; padding: 0 18px 74px; } body[data-portal-role="student"] .sidebar .student-nav .nav-label { display: none; } body[data-portal-role="student"] .sidebar .student-nav { display: grid !important; gap: 2px; overflow-y: auto; } body[data-portal-role="student"] .sidebar .student-nav [data-student-campus-links] { display: contents; } body[data-portal-role="student"] .sidebar .student-nav .nav-item { min-block-size: 48px; } }
/* Semester-aware course catalogue */
.student-unit-semester{grid-column:1/-1;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.student-unit-semester-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;background:#f7f9fe;border-bottom:1px solid var(--line)}.student-unit-semester-head h4{margin:0;font:700 13px 'Plus Jakarta Sans',sans-serif;color:var(--ink)}.student-unit-semester-head small{color:var(--blue);font-weight:700}.student-course-check.is-preview{background:#fafbfc;color:#7d8798}.student-course-check.is-preview input{cursor:not-allowed}.student-course-check.is-preview small{color:#8993a4}
