/* V30: compact desktop login, gentle readable backing, no dashboard-to-index redirects. */
@media (min-width: 980px) and (min-height: 650px) {
 #loginScreen{height:100vh!important;min-height:0!important;display:grid;grid-template-rows:clamp(174px,26vh,225px) minmax(0,1fr) auto!important;overflow:hidden!important;justify-content:stretch!important;}
 #loginScreen .v25-campus-header{height:100%!important;min-height:0!important;max-height:100%!important;padding:9px 12px!important;display:flex!important;justify-content:center!important;gap:0!important;background-image:url("assets/college-campus-banner-v30.webp")!important;background-size:cover!important;background-position:center 45%!important;}
 #loginScreen .v25-campus-header:before{content:none!important;display:none!important;}
 #loginScreen .v25-campus-header .v25-emblem{width:75px!important;height:75px!important;min-width:0!important;margin:0 0 1px!important;}
 #loginScreen .v25-campus-header .v25-college-name{font-size:clamp(18px,1.78vw,25px)!important;max-width:max-content!important;background:rgba(255,255,255,.76);padding:3px 16px!important;border-radius:22px;margin:0 0 1px!important;line-height:1.15!important;}
 #loginScreen .v25-campus-header .v25-programme-title{font-size:clamp(25px,2.8vw,38px)!important;background:rgba(255,255,255,.75);padding:0px 16px!important;border-radius:20px;margin:0!important;line-height:1.13!important;}
 #loginScreen .v25-campus-header .v25-programme-subtitle{font-size:clamp(11px,1vw,14px)!important;background:rgba(255,255,255,.74);padding:2px 13px!important;border-radius:16px;line-height:1.14!important;margin:1px 0 0!important;}
 #loginScreen .v25-login-layout{height:100%!important;min-height:0!important;max-height:100%!important;overflow:hidden!important;padding:7px 12px 6px!important;gap:12px!important;}
 #loginScreen .v25-info-panel,#loginScreen .v25-login-panel{height:100%!important;min-height:0!important;overflow:hidden!important;padding:12px 17px!important;}
 #loginScreen .v25-info-panel{gap:7px!important;}
 #loginScreen .v25-info-heading{font-size:clamp(17px,1.52vw,21px)!important;padding-bottom:5px!important;line-height:1.23!important;}
 #loginScreen .v25-feature{min-height:0!important;padding:7px 12px!important;gap:11px!important;}
 #loginScreen .v25-feature-icon{width:43px!important;height:43px!important;flex:0 0 43px!important;}
 #loginScreen .v25-feature-icon svg{width:25px!important;height:25px!important;}
 #loginScreen .v25-feature h3{font-size:clamp(15px,1.19vw,18px)!important;margin-bottom:2px!important;line-height:1.2!important;}
 #loginScreen .v25-feature p{font-size:clamp(11px,.99vw,13px)!important;line-height:1.29!important;}
 #loginScreen .v25-feature-note{padding-top:4px!important;margin:0!important;font-size:11px!important;}
 #loginScreen .v25-login-title{margin-bottom:6px!important;gap:10px!important;}
 #loginScreen .v25-login-lock{width:46px!important;height:46px!important;}
 #loginScreen .v25-login-lock svg{width:25px!important;height:25px!important;}
 #loginScreen .v25-login-title h2{font-size:clamp(22px,1.9vw,28px)!important;}
 #loginScreen .v25-login-title p{font-size:11px!important;}
 #loginScreen .login-form,#loginScreen .login-form .login-options{gap:4px!important;}
 #loginScreen .login-form label{font-size:11.5px!important;line-height:1.12!important;}
 #loginScreen .login-form input,#loginScreen .login-form select{height:32px!important;margin-top:3px!important;padding:5px 10px!important;font-size:12px!important;}
 #loginScreen #loginForm button[type=submit]{height:36px!important;font-size:15px!important;margin:3px 0 0!important;}
 #loginScreen #loginError{min-height:9px!important;font-size:11px!important;margin:0!important;}
 #loginScreen .hint-line{font-size:10px!important;line-height:1.17!important;margin-top:3px!important;}
 #loginScreen .security-note{font-size:10px!important;margin-top:5px!important;padding-top:4px!important;}
 #loginScreen .v25-footer{padding:3px 10px!important;line-height:1.1!important;font-size:10px!important;}
 #loginScreen .v25-footer small{line-height:1.1!important;}
}
/* Smaller screens must scroll instead of clipping accessible form fields. */
@media (max-width:979px),(max-height:649px){
 #loginScreen{height:auto!important;min-height:100vh!important;overflow:visible!important;}
 #loginScreen .v25-campus-header{background-image:url("assets/college-campus-banner-v30.webp")!important;background-position:center 45%!important;}
 #loginScreen .v25-campus-header:before{display:none!important;}
 #loginScreen .v25-campus-header .v25-college-name,#loginScreen .v25-campus-header .v25-programme-title,#loginScreen .v25-campus-header .v25-programme-subtitle{background:rgba(255,255,255,.76);border-radius:13px;padding:2px 8px!important;}
}
/* Dashboard info cards show their own complete data, with independent scroll areas. */
#v28DashboardPane .v27-progress-body{max-height:360px!important;overflow:auto!important;overscroll-behavior:contain;}
#v28DashboardPane .v27-recent-list{max-height:360px!important;overflow:auto!important;overscroll-behavior:contain;}
#v28DashboardPane .v27-dates .v27-notes,#v28DashboardPane .v27-announcements .v27-notes{max-height:160px!important;overflow:auto!important;overscroll-behavior:contain;}
#v28DashboardPane .v27-box-title .spacer:last-child{min-width:0;}
#sidebar #navlinks a[data-v20-general="index"],#sidebar #navlinks a[data-v22-kind="home"]{display:none!important;}
