:root{--navy:#102b55;--royal:#2563eb;--cyan:#06b6d4;--ink:#14213d;--muted:#64748b;--paper:#f5f7fb}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:'Segoe UI',Arial,sans-serif;color:var(--ink);background:#174783}button,input{font:inherit}a,button,input{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid #f59e0b;outline-offset:4px}img{max-width:100%}
.portal{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;background:radial-gradient(ellipse at 80% 15%,#71b7ff88,transparent 48%),radial-gradient(ellipse at 80% 100%,#b3eaff,transparent 49%),linear-gradient(118deg,#102b55 0%,#2056a6 44%,#3b82f6 78%,#69baff 100%)}
.portal:before,.portal:after{content:'';position:absolute;z-index:-1;pointer-events:none;left:36%;top:-20%;width:95%;height:114%;border:1px solid #b2edff55;border-radius:50%;transform:rotate(-28deg);box-shadow:0 0 0 55px #84c8ff08,0 0 0 115px #83cfff08}
.portal:after{top:70%;left:-15%;width:140%;height:70%;background:linear-gradient(145deg,#3b82f622,#a4e5ff55);transform:rotate(7deg);border:0}
.portal-shell{width:min(1500px,100%);margin:auto;padding:42px 48px 20px;display:grid;grid-template-columns:minmax(0,3fr) minmax(360px,2fr);gap:30px 48px;align-items:center;min-height:100svh}
.institutional{min-width:0;color:#fff;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.brand{display:flex;align-items:center;gap:22px;margin-bottom:42px;animation:enter .45s both}
.brand-logo{flex:none;width:175px;height:66px;border:1px solid #ffffff80;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 5px 22px #061b3c16}
.brand-logo img{max-width:none;width:235px;height:auto}
.brand-wordmark{padding-left:22px;border-left:1px solid #ffffff40;line-height:1.45}.brand-wordmark strong{display:block;font-size:19px;letter-spacing:-.3px}.brand-wordmark span{display:block;font-size:12px;color:#dfebff;margin-top:3px}
.intro{position:relative;z-index:1;animation:enter .55s .05s both}.eyebrow{display:inline-flex;gap:8px;align-items:center;font-size:12px;letter-spacing:.25px;font-weight:600;background:#408cff33;border:1px solid #93c5fd66;padding:7px 13px;border-radius:30px;margin-bottom:18px}.eyebrow i{color:#a5edff}
.intro h1{font-size:clamp(34px,3.45vw,54px);font-weight:750;line-height:1.14;letter-spacing:-1.8px;margin:0 0 18px}.intro h1 span{color:#b4eaff}.intro>p{font-size:16px;line-height:1.65;color:#e1edff;max-width:540px;margin:0}
.academic-overview{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:8px;margin:28px 0 24px;min-height:230px}
.stats-section{z-index:1;min-width:0}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.stat-card{min-width:0;display:flex;align-items:center;gap:12px;padding:16px 12px;border:1px solid #ffffffb3;border-radius:14px;background:linear-gradient(120deg,#fffffff2,#e5f0ffe8);box-shadow:0 7px 18px #07295712;color:var(--ink);animation:enter .45s both;transition:transform .22s,box-shadow .22s}
.stat-card:nth-child(2){animation-delay:.09s}.stat-card:nth-child(3){animation-delay:.16s}.stat-card:nth-child(4){animation-delay:.23s}.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #061b3c29}.stat-icon{flex:none;display:grid;place-items:center;width:40px;height:44px;border-radius:13px;font-size:24px;background:#e6ddff;color:#7049d9}.stat-card:nth-child(2) .stat-icon{background:#d8e9ff;color:#2563eb}.stat-card:nth-child(3) .stat-icon{background:#d0f0eb;color:#13846b}.stat-card:nth-child(4) .stat-icon{background:#ffead1;color:#b96a09}
.stat-value{display:block;font-size:clamp(22px,2.1vw,30px);font-weight:750;letter-spacing:-.8px;font-variant-numeric:tabular-nums;line-height:1.1;min-width:4ch}.stat-label{display:block;font-size:12px;font-weight:500;line-height:1.3;margin-top:5px}.stats-caption{margin:12px 0 0;font-size:11px;text-align:center;color:#e6f2ff;letter-spacing:.1px}.stats-caption i{margin-right:4px}
.academic-art{width:125%;height:auto;max-width:none;justify-self:center;pointer-events:none;filter:drop-shadow(0 22px 25px #09275c24);animation:float 4.5s ease-in-out infinite;aspect-ratio:3/2;object-fit:contain}
.announcements{position:relative;z-index:1;padding:18px;border:1px solid #ffffff91;border-radius:20px;background:linear-gradient(120deg,#f0f5fff5,#e9f4ffde);color:var(--ink);box-shadow:0 15px 40px #09295712;animation:enter .55s .18s both}
.announcement-heading{display:flex;gap:9px;align-items:center;margin:0 0 12px;font-size:16px;font-weight:700}.announcement-heading>i{color:#2563eb;font-size:19px}.announcement-list{padding:0;margin:0;list-style:none;display:grid;gap:9px}.announcement-item{display:flex;gap:12px;padding:13px;background:#ffffffc4;border:1px solid #fff9;border-radius:12px;min-width:0}.announcement-icon{display:grid;place-items:center;width:34px;height:36px;flex:none;border-radius:10px;background:#ece6ff;color:#7250d8;font-size:18px}.announcement-item h6{font-size:13px;font-weight:700;line-height:1.45;margin:0 0 4px}.announcement-item h6 a{color:#142d5b;text-decoration:none}.announcement-item h6 a:hover{text-decoration:underline;color:#1d4ed8}.announcement-item p{color:#526581;font-size:11px;line-height:1.55;margin:0}.announcement-date{display:block;color:#546986;font-size:10px;font-weight:500;margin-top:6px}
.login-column{width:100%;max-width:500px;justify-self:center;padding-top:0;animation:enter .6s .12s both}
.login-card{padding:40px 36px 30px;border:1px solid #fff;border-radius:28px;background:linear-gradient(145deg,#fff,#f4f8fff5);box-shadow:0 24px 75px #08285924,0 2px 8px #fff4 inset}
.login-heading{text-align:center;margin-bottom:32px}.academic-icon{width:70px;height:70px;display:grid;place-items:center;margin:0 auto 20px;background:linear-gradient(140deg,#e1ecff,#cbdcff);color:#2563eb;border-radius:22px;font-size:38px;box-shadow:0 6px 14px #2563eb0b}.login-heading h2{font-size:31px;font-weight:750;letter-spacing:-.8px;line-height:1.2;margin:0 0 10px}.login-heading p{font-size:15px;color:#586b88;line-height:1.55;margin:0 auto;max-width:300px}
.field-label{display:block;font-size:13px;font-weight:650;color:#23385a;margin-bottom:8px}.field-label i{color:#62779a;margin-right:5px}.login-field{position:relative}.login-field-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:20px;color:#7083a1;z-index:5;pointer-events:none}.login-card .form-control{height:52px;width:100%;border:1px solid #c9d6e8;border-radius:11px;padding:12px 15px;background:#fbfcff;color:var(--ink);font-size:14px;box-shadow:0 1px 2px #102b5504 inset;transition:border-color .2s,box-shadow .2s,background .2s}.login-card .form-control::placeholder{color:#7888a1;opacity:1}.login-card .login-field .form-control{padding-left:46px}.login-card .form-control:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 4px #2563eb20}.login-card .mb-3{margin-bottom:22px!important}
.login-card .input-group{position:relative;display:block}.login-card .input-group .form-control{padding-right:51px;border-radius:11px!important;float:none}.password-toggle{position:absolute!important;right:4px;top:4px;z-index:6!important;width:44px;height:44px;border:0!important;border-radius:8px!important;background:transparent;color:#667c9d;font-size:19px}.password-toggle:hover{color:#1d4ed8;background:#eaf1ff}.password-toggle:focus-visible{outline:2px solid #2563eb;outline-offset:-3px}
.login-submit{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;width:100%;border:0;border-radius:11px;color:white;background:linear-gradient(110deg,#3182f6,#244bde);box-shadow:0 8px 18px #2563eb30;font-size:16px;font-weight:650;transition:transform .22s,box-shadow .22s;margin-top:7px}.login-submit:hover{color:#fff;transform:translateY(-2px);box-shadow:0 11px 23px #2563eb40;background:linear-gradient(110deg,#2573e8,#203ec5)}.login-submit:disabled{color:#fff;opacity:.75;transform:none;cursor:wait}.login-submit[aria-busy=true] i{animation:pulse 1s ease-in-out infinite}
.login-guidance{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:12px;background:#e8f0fc;margin-top:28px;color:#4d6282;font-size:12px;line-height:1.6}.login-guidance>i{color:#2563eb;font-size:20px;line-height:1.2}.login-guidance p{margin:0}.login-help{font-size:11px;line-height:1.6;color:#62738b;text-align:center;margin:18px 5px 0}.login-help strong{font-weight:600;color:#405472}
.portal-footer{grid-column:1/-1;color:#e2edff;font-size:11px;display:flex;justify-content:space-between;gap:12px;padding-top:2px;align-self:end}.portal-footer span:last-child{color:#173b69;font-weight:500}.mobile-brand{display:none}.captcha-container{position:relative;display:flex;align-items:center;gap:12px;padding:10px;background:#eaf1fc;border-radius:10px;margin-bottom:9px}.captcha-loader{position:absolute;bottom:0;left:0;height:3px;background:#2563eb;width:0;transition:width .5s}#refreshCaptcha{width:40px;height:40px;border-radius:8px;border:1px solid #c9d6e8;background:#fff;color:#2563eb}.toast-container{max-width:calc(100vw - 24px)}.toast-modern,#flashToast{min-width:0!important;max-width:min(360px,calc(100vw - 24px))!important}.toast-modern{border:1px solid #ffffff50}.toast-message{line-height:1.45!important}.skip-link{position:fixed;top:-80px;left:16px;z-index:2000;background:white;color:var(--navy);padding:12px;border-radius:8px}.skip-link:focus{top:12px}
@keyframes enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}@keyframes pulse{50%{opacity:.4}}
@media(min-width:1200px){.brand{margin-bottom:30px}.academic-overview{min-height:205px;margin:22px 0}.academic-art{width:115%;max-height:230px}.login-column{align-self:start;margin-top:10px}.login-card{padding-top:45px;padding-bottom:36px}}
@media(min-width:1600px){.portal-shell{padding-top:55px;padding-bottom:28px;gap:30px 64px}.brand{margin-bottom:36px}.academic-overview{margin:28px 0}.login-card{padding:48px 42px 36px}.login-heading{margin-bottom:40px}.stat-card{padding:18px 15px}.stat-label{font-size:13px}}
@media(min-width:768px) and (max-width:1199px){.portal-shell{padding:28px;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:24px}.brand{gap:13px;margin-bottom:28px}.brand-logo{width:136px;height:56px}.brand-logo img{width:194px}.brand-wordmark{padding-left:13px}.brand-wordmark strong{font-size:15px}.brand-wordmark span{font-size:10px}.intro h1{font-size:34px;letter-spacing:-1px}.intro>p{font-size:14px}.academic-overview{grid-template-columns:1fr;margin:24px 0}.academic-art{position:absolute;right:-10px;bottom:-20px;width:145px;opacity:.22;z-index:0}.stats-section{z-index:1}.stat-card{padding:13px}.login-card{padding:30px 23px}.login-heading h2{font-size:27px}.announcement-item{padding:10px}.announcement-item p{font-size:11px}.portal-footer{font-size:10px}}
@media(max-width:767px){.portal-shell{display:flex;flex-direction:column;padding:24px 18px 18px;gap:28px;min-height:100svh}.login-column{order:0;max-width:460px}.institutional{order:1;width:100%;max-width:580px;align-self:center}.portal-footer{order:2;width:100%;max-width:580px;flex-direction:column;text-align:center;gap:5px;font-size:10px}.portal-footer span:last-child{color:#edf5ff}.brand{display:none}.mobile-brand{display:flex;align-items:center;justify-content:center;gap:13px;color:white;margin-bottom:24px}.mobile-brand .brand-logo{width:130px;height:50px;border-radius:10px}.mobile-brand .brand-logo img{width:184px}.mobile-brand strong{display:block;font-size:13px;line-height:1.4}.mobile-brand small{display:block;color:#dceaff;font-size:10px;margin-top:3px}.login-card{padding:27px 23px 24px;border-radius:22px}.academic-icon{width:52px;height:52px;border-radius:16px;font-size:28px;margin-bottom:16px}.login-heading{margin-bottom:26px}.login-heading h2{font-size:27px}.login-heading p{font-size:13px}.login-guidance{margin-top:24px;padding:14px;font-size:11px}.login-help{font-size:11px}.intro h1{font-size:34px;letter-spacing:-1px}.intro>p{font-size:14px}.eyebrow{font-size:11px;margin-bottom:15px}.academic-overview{grid-template-columns:1fr;gap:10px;margin:24px 0}.academic-art{width:190px;max-width:70%;grid-row:2;margin:0 auto -16px}.stat-value{font-size:27px}.stat-label{font-size:12px}.stat-card{padding:16px 12px}.announcements{padding:15px;border-radius:18px}.announcement-heading{font-size:15px}.announcement-item h6{font-size:12px}.announcement-item p{font-size:11px}}
@media(max-width:359px){.portal-shell{padding:18px 12px}.login-card{padding:24px 18px}.stat-icon{width:32px;font-size:20px}.stat-card{gap:8px;padding:12px 9px}.stat-value{font-size:24px}.stat-label{font-size:11px}.mobile-brand{gap:9px}}
/* Fit the desktop composition to shorter laptop screens without clipping content. */
@media(min-width:992px) and (max-height:950px){
.portal-shell{padding:20px 32px 14px;gap:14px 32px;grid-template-rows:1fr auto}
.brand{gap:16px;margin-bottom:16px}.brand-logo{width:145px;height:48px}.brand-logo img{width:200px}.brand-wordmark{padding-left:16px}.brand-wordmark strong{font-size:16px}
.eyebrow{padding:5px 11px;margin-bottom:10px;font-size:11px}.intro h1{font-size:clamp(32px,3vw,44px);line-height:1.1;margin-bottom:10px}.intro>p{font-size:14px;line-height:1.5}
.academic-overview{min-height:0;margin:16px 0}.academic-art{max-height:165px;width:108%}.stat-card{padding:11px 10px;gap:10px}.stat-icon{width:34px;height:36px;font-size:21px}.stat-value{font-size:26px}.stat-label{font-size:11px}.stats-caption{margin-top:8px}
.announcements{padding:13px;border-radius:17px}.announcement-heading{font-size:14px;margin-bottom:8px}.announcement-list{gap:7px}.announcement-item{padding:9px;gap:9px}.announcement-item h6{font-size:12px;margin-bottom:3px}.announcement-item p{line-height:1.4}.announcement-date{margin-top:3px}.announcement-icon{width:29px;height:31px;font-size:16px}
.login-column{align-self:center;margin-top:0}.login-card{padding:26px 28px 22px}.login-heading{margin-bottom:20px}.academic-icon{width:52px;height:52px;font-size:29px;border-radius:16px;margin-bottom:13px}.login-heading h2{font-size:28px}.login-heading p{font-size:14px}.login-card .mb-3{margin-bottom:16px!important}.login-guidance{margin-top:20px;padding:13px}.login-help{margin-top:12px}
}
@media(min-width:992px) and (max-height:720px){
.portal-shell{padding-top:14px;padding-bottom:10px;gap:10px 28px}.brand{margin-bottom:12px}.intro h1{font-size:32px}.intro>p{font-size:13px}.academic-overview{margin:12px 0}.academic-art{max-height:145px}.stat-card{padding:9px}.login-card{padding:20px 24px}.login-heading{margin-bottom:16px}.academic-icon{width:44px;height:44px;font-size:25px;margin-bottom:10px}.login-heading h2{font-size:26px}.login-heading p{font-size:13px}.login-guidance{margin-top:16px;padding:10px}.login-help{margin-top:10px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.academic-art{transform:none}}
