@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Oswald:wght@400;500;600;700&display=swap');

:root { --portal-body-size: .875rem; }
body { font-family: 'Inter', system-ui, sans-serif; font-size: var(--portal-body-size); }
button, input, select, textarea, .btn, .form-control, .form-select { font-family: 'Inter', system-ui, sans-serif; }
h1, h2, h3, h4, h5, h6, .page-title, .chart-title, .section-label {
    font-family: 'Oswald', sans-serif;
}
/* Keep table content consistent with the body, including legacy small-text utilities. */
body table, body table th, body table td,
body table :is(p, div, span, small, a, button, input, select, code, strong) {
    font-family: 'Inter', system-ui, sans-serif;
    font-size: var(--portal-body-size) !important;
}
body .welcome-section h4 { font-size: 1.25rem; }
.profile-summary { padding:28px !important; }
.profile-summary h4 { font-size:1.5rem; line-height:1.4; }
.profile-summary p { overflow-wrap:anywhere; }
.profile-role { color:#121350; font-weight:600; margin:0 0 20px; }
.profile-academic { display:flex; flex-direction:row; justify-content:space-between; align-items:baseline; gap:20px; padding:16px 0; text-align:left; }
.profile-year { flex-shrink:0; text-align:right; }
.profile-membership { border-top:1px solid #e2e8f0; padding-top:16px; }
.profile-student-id { margin-top:-6px; margin-bottom:8px; }
.plain-note { white-space:pre-wrap; overflow-wrap:anywhere; text-align:left; }
body .student-note-popup .swal2-title { grid-column:1 / -1; grid-row:1; text-align:left; padding-right:40px; align-self:center; }
body .student-note-popup .swal2-close { grid-column:1 / -1; grid-row:1; justify-self:end; align-self:center; width:32px; height:32px; margin:0; line-height:1; }
.navbar-brand, .navbar-brand span { font-family:'Oswald',sans-serif; font-weight:500; }
.navbar :is(.nav-link,.btn-login-nav,.btn-register-nav) { font-family:'Inter',system-ui,sans-serif; font-size:.875rem; }
.profile-course { color:#334155; font-weight:500; line-height:1.6; }
.profile-year { color:#64748b; }
body .modal-content, body .swal2-popup { border:1px solid #e2e8f0; border-radius:18px; background:white; color:#1f2937; box-shadow:0 20px 60px rgba(15,23,42,.15); }
body .modal-header { padding:24px 24px 16px; background:white !important; color:#1f2937 !important; border-bottom:1px solid #edf0f5; }
body .modal-header .btn-close-white { filter:none; }
body .modal-body { padding:24px; }
body .modal-footer { padding:16px 24px 24px; background:white !important; border-top:1px solid #edf0f5; gap:8px; }
body .modal-title, body .swal2-title { font-family:'Oswald',sans-serif; font-size:1.4rem; font-weight:500; line-height:1.4; }
body .swal2-popup { padding:24px; font-family:'Inter',sans-serif; }
body .swal2-title { padding:0; }
body .swal2-html-container { margin:20px 0 0; padding:0; font-size:.875rem; line-height:1.7; overflow-wrap:anywhere; }
body .swal2-actions { margin:24px 0 0; gap:10px; }
body .swal2-styled { border-radius:8px; font-size:.875rem; padding:10px 20px; }
body :is(.modal-body,.swal2-html-container) :is(.alert,[class*="bg-"],.card-header) { background:transparent !important; color:#334155; border:0; border-radius:0; }
body :is(.modal-body,.swal2-html-container) .alert { padding:12px 0; margin:12px 0; border-top:1px solid #e2e8f0; }
.request-detail-list { margin:0; text-align:left; }
.request-detail-list > div { display:grid; grid-template-columns:130px minmax(0,1fr); gap:16px; padding:14px 0; border-bottom:1px solid #edf0f5; }
.request-detail-list dt { color:#64748b; font-weight:500; }
.request-detail-list dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.request-detail-message { text-align:left; color:#64748b; margin:18px 0 0; }
@media(max-width:480px){.request-detail-list > div { grid-template-columns:1fr; gap:4px; } body .swal2-popup { padding:20px; }}
/* Shared navy button palette across student, admin, guest and authentication pages. */
body .btn-primary, body .btn-info {
    --bs-btn-bg: #121350; --bs-btn-border-color: #121350;
    --bs-btn-hover-bg: #0d0e3d; --bs-btn-hover-border-color: #0d0e3d;
    --bs-btn-active-bg: #0d0e3d; --bs-btn-active-border-color: #0d0e3d;
    --bs-btn-disabled-bg: #121350; --bs-btn-disabled-border-color: #121350;
    background-color: #121350 !important; border-color: #121350 !important; color: white !important;
}
body .btn-outline-primary, body .btn-outline-info {
    --bs-btn-color: #121350; --bs-btn-border-color: #121350;
    --bs-btn-hover-bg: #121350; --bs-btn-hover-border-color: #121350;
    --bs-btn-active-bg: #121350; --bs-btn-active-border-color: #121350;
    color: #121350; border-color: #121350;
}
body :is(.btn-outline-primary, .btn-outline-info):is(:hover, :active) { background: #121350; color: white; }

/* Password visibility controls shared by student and admin profiles. */
.password-field { position:relative; }
.password-field .form-control { padding-right:48px; }
.password-field .password-toggle[hidden] { display:none !important; }
.password-field .password-toggle { display:flex; align-items:center; justify-content:center; z-index:2; padding:0; position:absolute; right:10px; top:50%; transform:translateY(-50%); width:32px; height:32px; border:0; background:transparent; color:#64748b; }
#changePasswordBtn { background:#121350; border-color:#121350; color:#fff; }
#changePasswordBtn:hover { background:#0d0e3d; border-color:#0d0e3d; color:#fff; }