.student-portal-body{min-height:100vh;background:#f3f6fa;color:#17304d;font:14px/1.55 Inter,Arial,sans-serif}
.student-portal-body h1,.student-portal-body h2,.student-portal-body h3{font-family:"Plus Jakarta Sans",Inter,sans-serif;color:#17304d}
.student-portal-body .skip-link{position:absolute;left:-999px;top:8px;z-index:1000;padding:10px 14px;border-radius:9px;background:#fff;color:#17304d}
.student-portal-body .skip-link:focus{left:10px}
.student-portal-flash{width:min(1200px,94%);margin:16px auto 0}
.student-portal-shell{--student-sidebar-width:258px;display:grid;grid-template-columns:var(--student-sidebar-width) minmax(0,1fr);min-height:100vh}
.student-sidebar{position:sticky;top:0;z-index:100;height:100vh;display:flex;flex-direction:column;padding:22px 14px 16px;background:linear-gradient(180deg,#092f5c 0%,#062446 100%);color:#e8f1f8;overflow-y:auto}
.student-sidebar-brand{display:flex;align-items:center;gap:11px;padding:2px 10px 26px;color:#fff;text-decoration:none}
.student-sidebar-brand img,.student-auth-brand img{width:43px;height:43px;border-radius:50%;object-fit:contain;background:#fff}
.student-sidebar-brand>span:last-child,.student-auth-brand>span:last-child{min-width:0}
.student-sidebar-brand strong,.student-sidebar-brand small,.student-auth-brand strong,.student-auth-brand small{display:block}
.student-sidebar-brand strong,.student-auth-brand strong{color:#fff;font-size:13px;letter-spacing:.08em}
.student-sidebar-brand small,.student-auth-brand small{color:#abc5dc;font-size:8px;letter-spacing:.12em}
.student-brand-mark{display:grid;place-items:center;width:43px;height:43px;flex:0 0 43px;border-radius:50%;background:#fff;color:#0c477f;font:800 22px "Plus Jakarta Sans",sans-serif}
.student-sidebar-nav{display:grid;gap:5px}
.student-nav-heading{padding:0 12px 7px;color:#88a9c7;font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.student-nav-link{min-height:44px;display:flex;align-items:center;gap:11px;padding:0 11px;border-radius:10px;color:#d4e2ee;text-decoration:none;font-size:12px;font-weight:600;transition:background .15s ease,color .15s ease}
.student-nav-link:hover,.student-nav-link:focus-visible{background:rgba(255,255,255,.09);color:#fff}
.student-nav-link.active{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 3px 0 var(--accent)}
.student-nav-icon{display:grid;place-items:center;width:26px;height:26px;flex:0 0 26px;border:1px solid rgba(214,237,255,.2);border-radius:8px;color:#c0dbef;font-size:14px;font-weight:700}
.student-nav-link.active .student-nav-icon{border-color:transparent;background:rgba(255,255,255,.14);color:#fff}
.student-sidebar-bottom{display:grid;gap:10px;margin-top:auto;padding-top:20px}
.student-help-link{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.06);color:#e8f1f8;text-decoration:none}
.student-help-link>span:first-child{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.12);font-weight:800}
.student-help-link strong,.student-help-link small,.student-user-card strong,.student-user-card small{display:block}
.student-help-link strong,.student-user-card strong{font-size:10px;color:#fff}
.student-help-link small,.student-user-card small{font-size:9px;color:#adc5db}
.student-user-card{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.045)}
.student-user-avatar{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:#d5e8f6;color:#0b477c;font-size:11px;font-weight:800}
.student-logout{width:100%;min-height:40px;display:flex;align-items:center;gap:11px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:#d5e3ee;font:600 12px Inter,Arial,sans-serif;text-align:left;cursor:pointer}
.student-logout:hover{background:rgba(255,255,255,.09);color:#fff}
.student-portal-workspace{min-width:0;display:flex;flex-direction:column}
.student-topbar{position:sticky;top:0;z-index:50;min-height:72px;display:flex;align-items:center;gap:14px;padding:12px clamp(18px,3vw,38px);border-bottom:1px solid #e5ebf1;background:linear-gradient(90deg,#147eae 0 76%,var(--accent) 76%) top/100% 3px no-repeat,rgba(255,255,255,.95);backdrop-filter:blur(14px)}
.student-sidebar-toggle{display:none;place-items:center;width:40px;height:40px;flex:0 0 40px;border:1px solid #e1e9f1;border-radius:11px;background:#fff;color:#31516f;font-size:17px;cursor:pointer}
.student-sidebar-toggle:hover{background:#fff0f1;border-color:#f1c9cd;color:var(--accent)}
.student-topbar-title strong,.student-topbar-title small{display:block}
.student-topbar-title strong{color:#17304d;font-size:14px;font-weight:750}
.student-topbar-title small{color:#718299;font-size:10px}
.student-topbar-spacer{flex:1}
.student-topbar-matric{padding:8px 12px;border:1px solid #f0d6d8;border-radius:999px;background:#fff5f5;color:#a82d3b;font-size:11px;font-weight:750;letter-spacing:.04em}
.student-portal-main{width:100%;flex:1;padding:30px clamp(18px,3vw,38px) 40px}
.student-portal-main>.student-page-content{max-width:1250px;margin:auto}
.student-portal-main .student-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}
.student-portal-main .student-page-heading h1{margin:4px 0 5px;font-size:clamp(1.55rem,2.4vw,2rem);letter-spacing:-.035em}
.student-portal-main .student-page-heading p{margin:0;color:#718299}
.student-portal-main .grid{gap:16px}
.student-portal-main .settings-section{margin:0;padding:22px;border:1px solid #e5ebf1;border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(17,50,82,.035);scroll-margin-top:95px}
.student-portal-main .settings-section h2{margin-bottom:14px;font-size:16px}
.student-portal-main .settings-section p{margin:8px 0;color:#60758b;font-size:13px;overflow-wrap:anywhere}
.student-portal-main .settings-section p b{color:#1b3855}
.student-portal-main .eyebrow{color:var(--accent);font-size:10px;letter-spacing:.1em}
.student-profile-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:18px;margin-bottom:18px;padding:24px;border:1px solid #e5ebf1;border-radius:16px;background:linear-gradient(115deg,#fff 0%,#fff 70%,#fff4f4 100%);box-shadow:0 6px 20px rgba(17,50,82,.035)}
.student-profile-avatar{display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;border-radius:17px;background:linear-gradient(145deg,#0d548b,#092f5c);color:#fff;font:800 23px "Plus Jakarta Sans",sans-serif;box-shadow:0 8px 20px rgba(8,55,96,.17)}
.student-profile-card h2{margin:4px 0 2px;font-size:20px}
.student-profile-card p{margin:0;color:#718299;font-size:12px}
.student-profile-status{margin-left:auto;padding:7px 11px;border:1px solid #d9eee2;border-radius:999px;background:#f0fbf4;color:#287747;font-size:10px;font-weight:750;white-space:nowrap}
.student-workspace-footer{padding:14px clamp(18px,3vw,38px);border-top:1px solid #e6ebf1;color:#8190a2;font-size:10px}
.student-workspace-footer span{padding:0 5px;color:var(--accent)}
.student-sidebar-backdrop{display:none}
.student-auth-body{min-height:100vh;background:radial-gradient(ellipse at 12% 100%,rgba(201,37,56,.08),transparent 32%),radial-gradient(ellipse at 90% 0,rgba(30,127,180,.12),transparent 34%),#f3f6fa}
.student-auth-brand{display:flex;align-items:center;gap:11px;width:min(540px,92%);margin:0 auto;padding:26px 0 16px}
.student-auth-brand strong{color:#123b63;font-size:14px}
.student-auth-brand small{color:#70869b;font-size:8px}
.student-auth-brand .student-brand-mark{background:#0b4276;color:#fff}
.student-auth-main{width:min(540px,92%);margin:14px auto 0}
.student-auth-card{padding:clamp(24px,5vw,38px);border:1px solid #e2e9f0;border-radius:20px;background:#fff;box-shadow:0 24px 70px rgba(13,51,86,.11)}
.student-auth-heading{display:flex;align-items:center;gap:12px;margin-bottom:23px;padding-bottom:18px;border-bottom:1px solid #edf1f5}
.student-auth-heading strong,.student-auth-heading small{display:block}
.student-auth-heading strong{color:#163b5e;font:750 15px "Plus Jakarta Sans",Inter,sans-serif}
.student-auth-heading small{color:#8290a0;font-size:10px}
.student-auth-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#fff0f1;color:var(--accent);font:800 18px "Plus Jakarta Sans",sans-serif}
.student-auth-content h1{margin:0 0 9px;font-size:25px;letter-spacing:-.03em}
.student-auth-content>p{margin:0 0 18px;color:#6f8194;font-size:13px}
.student-auth-content .field{margin:13px 0}
.student-auth-content .field span{font-size:12px;font-weight:700;color:#35516c}
.student-auth-content .field input{min-height:45px;border-radius:10px}
.student-auth-content .btn{min-height:44px;border-radius:10px}
.student-auth-content details{padding-top:16px;border-top:1px solid #edf1f5;color:#405d78}
.student-auth-content summary{cursor:pointer;font-size:12px;font-weight:700}
.student-auth-content a{color:#a72c39;font-weight:650}
.student-auth-privacy{width:min(540px,92%);margin:18px auto 26px;color:#8694a3;text-align:center;font-size:10px}
@media(max-width:980px){.student-portal-shell{--student-sidebar-width:232px}.student-portal-main .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .student-portal-shell{display:block}
 .student-sidebar{position:fixed;left:0;top:0;width:min(290px,86vw);height:100dvh;min-height:0;transform:translateX(-105%);transition:transform .22s ease;box-shadow:18px 0 50px rgba(6,31,57,.18)}
 .student-portal-shell.menu-open .student-sidebar{transform:translateX(0)}
 .student-sidebar-toggle{display:grid}
 .student-sidebar-backdrop{position:fixed;inset:0;z-index:90;display:block;visibility:hidden;opacity:0;border:0;background:rgba(5,23,43,.5);transition:opacity .2s ease,visibility .2s ease}
 .student-portal-shell.menu-open .student-sidebar-backdrop{visibility:visible;opacity:1}
 .student-topbar{min-height:64px;padding:10px 15px}
 .student-topbar-matric{font-size:9px;padding:7px 9px}
 .student-portal-main{padding:22px 16px 30px}
}
@media(max-width:560px){
 .student-portal-main .grid-3{grid-template-columns:1fr}
 .student-portal-main .student-page-heading{align-items:flex-start}
 .student-profile-card{align-items:flex-start;gap:12px;padding:18px}
 .student-profile-avatar{width:48px;height:48px;flex-basis:48px;border-radius:14px}
 .student-profile-card h2{font-size:16px}
 .student-profile-status{margin-left:0;position:absolute;right:13px;top:14px;font-size:9px}
 .student-auth-card{border-radius:16px}
}
@media(prefers-reduced-motion:reduce){.student-nav-link,.student-sidebar,.student-sidebar-backdrop{transition:none}}
