
:root{--navy:#28145f;--purple:#351879;--magenta:#c21878;--gold:#f3cf16;--green:#477c39;--ink:#241b3a;--muted:#706985;--cream:#fffdf8}
*{box-sizing:border-box}
body{background:#faf9ff;color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.navbar{background:#fff!important;border-bottom:1px solid #eee8fa;box-shadow:0 4px 20px rgba(40,20,95,.08)}
.navbar .navbar-brand{color:var(--navy)!important;font-weight:850;letter-spacing:.15px}
.brand-logo{width:58px;height:58px;object-fit:contain;border-radius:50%;background:#fff;margin-right:12px}
.brand-sub{display:block;font-size:.65rem;letter-spacing:.6px;color:#766d88;font-weight:650;margin-top:-3px}
.navbar .nav-link{color:var(--navy)!important;font-weight:700}
.btn-primary{background:var(--magenta);border-color:var(--magenta);color:#fff;font-weight:700}
.btn-primary:hover{background:#9d125f;border-color:#9d125f}
.btn-outline-primary{color:var(--navy);border-color:var(--navy);font-weight:700}
.btn-outline-primary:hover{background:var(--navy);color:#fff}
.card{border:1px solid #eee8f7!important;border-radius:17px!important;box-shadow:0 8px 26px rgba(40,20,95,.07)!important}
.table thead{background:#f2edfc}.stat{font-size:1.7rem;font-weight:800;color:var(--navy)}
.portal-hero{min-height:410px;border-radius:22px;overflow:hidden;background:linear-gradient(90deg,rgba(35,15,91,.96),rgba(73,30,133,.75)),url('mets-home-hero.jpg') center/cover;display:flex;align-items:center;color:#fff;position:relative;border:3px solid #fff;box-shadow:0 12px 35px rgba(40,20,95,.18)}
.portal-hero .hero-content{max-width:720px;padding:clamp(28px,5vw,64px)}
.portal-hero h1{font-weight:900;line-height:1.08;font-size:clamp(2rem,4vw,3.5rem)}
.portal-hero .highlight{color:var(--gold)}
.section-title{font-weight:850;color:var(--navy)}
.feature-card{height:100%;padding:22px;background:#fff;border:1px solid #eee8f7;border-radius:16px;box-shadow:0 8px 22px rgba(40,20,95,.05)}
.feature-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#f5eafa;color:var(--magenta);font-size:1.35rem;margin-bottom:14px}
.metric-strip{background:#fff;border:1px solid #eee8f7;border-radius:16px;padding:18px}
.public-footer{background:var(--navy);color:#eee8ff}
.public-footer a{color:#fff}
main.container{min-height:70vh}
.form-control,.form-select{border-radius:9px;padding:.65rem .8rem}
.badge{letter-spacing:.2px}
.portal-logo-large{width:120px;height:120px;object-fit:contain;border-radius:50%;background:#fff;padding:3px;box-shadow:0 8px 24px rgba(0,0,0,.14)}
.course-tile{border:1px solid #eee8f7;border-radius:15px;padding:20px;background:#fff;height:100%;transition:.2s}
.course-tile:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(40,20,95,.1)}
.pill-gold{background:var(--gold);color:#28145f}
@media(max-width:767px){.portal-hero{min-height:360px}.portal-hero .hero-content{padding:28px}.navbar-brand{font-size:.92rem}.brand-logo{width:48px;height:48px}}


/* METS institutional portal login homepage */
.portal-login-home{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.75fr);gap:0;background:#fff;border:1px solid #e9e0f2;border-radius:24px;overflow:hidden;box-shadow:0 18px 48px rgba(40,20,95,.12);min-height:540px}
.portal-welcome{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(26px,4vw,54px);color:#fff;background:radial-gradient(circle at 85% 18%,rgba(194,24,120,.42),transparent 30%),linear-gradient(140deg,#241052 0%,#351879 58%,#54217f 100%);overflow:hidden}
.portal-welcome:after{content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(243,207,22,.25);border-radius:50%;right:-130px;bottom:-170px;box-shadow:0 0 0 28px rgba(243,207,22,.04),0 0 0 58px rgba(243,207,22,.035)}
.portal-brand-lockup{display:flex;align-items:center;gap:15px;position:relative;z-index:1}
.portal-brand-lockup img{width:86px;height:86px;border-radius:50%;object-fit:contain;background:#fff;padding:3px}
.portal-brand-name{font-size:1.15rem;font-weight:900;letter-spacing:.6px}.portal-brand-sub{font-size:.9rem;letter-spacing:3px;color:var(--gold);font-weight:800}
.portal-welcome-copy{max-width:650px;position:relative;z-index:1;padding:40px 0}
.welcome-kicker,.login-eyebrow{font-size:.72rem;font-weight:900;letter-spacing:2px;color:var(--magenta)}
.welcome-kicker{color:var(--gold)}
.portal-welcome h1{font-size:clamp(2.2rem,4.5vw,4rem);line-height:1.05;font-weight:900;margin:14px 0}
.portal-welcome h1 span{color:var(--gold)}
.portal-welcome-copy p{max-width:540px;color:#eee7fa;font-size:1.08rem;line-height:1.7}
.welcome-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.btn-gold{background:var(--gold);color:#28145f;border:1px solid var(--gold);font-weight:850}.btn-gold:hover{background:#ffe45b;color:#28145f}
.portal-services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;position:relative;z-index:1}
.portal-services div{border-top:1px solid rgba(255,255,255,.25);padding-top:12px;display:flex;flex-direction:column;gap:4px}
.portal-services b{font-size:.78rem;color:var(--gold)}.portal-services span{font-size:.78rem;font-weight:700;color:#fff}
.portal-login-side{background:#fbf9ff;padding:clamp(22px,3vw,42px);display:flex;flex-direction:column;justify-content:center;align-items:center}
.login-card{background:#fff;border:1px solid #eee6f5;border-radius:20px;padding:28px;width:100%;max-width:390px;box-shadow:0 12px 36px rgba(40,20,95,.1)}
.login-card-logo{display:flex;justify-content:center;margin-bottom:14px}.login-card-logo img{width:82px;height:82px;object-fit:contain;border-radius:50%}
.login-card h2{font-weight:900;color:var(--navy);margin:5px 0}.login-card p{color:var(--muted);font-size:.9rem}
.portal-login-form{display:grid;gap:9px;margin-top:22px}.portal-login-form label{font-weight:750;font-size:.85rem;color:var(--ink)}.portal-login-form .form-control{padding:12px;border:1px solid #ded4ed}
.btn-login{background:var(--navy);color:#fff;font-weight:850;padding:12px;border-radius:10px;margin-top:10px}.btn-login:hover{background:#45218a;color:#fff}
.login-card-divider{display:flex;align-items:center;gap:10px;color:#9a91a8;font-size:.68rem;font-weight:850;letter-spacing:1.5px;margin:22px 0 12px}.login-card-divider:before,.login-card-divider:after{content:"";height:1px;background:#eee7f4;flex:1}
.btn-apply{border:1px solid var(--magenta);color:var(--magenta);font-weight:800;padding:11px}.btn-apply:hover{background:var(--magenta);color:#fff}
.login-help{font-size:.75rem;color:#8a8295;text-align:center;margin-top:18px}.portal-side-note{font-size:.78rem;color:#776d89;margin-top:18px}.secure-dot{display:inline-block;width:8px;height:8px;background:#4a9b5b;border-radius:50%;margin-right:7px}
.portal-bottom-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0 48px;padding:18px;background:#fff;border:1px solid #eee6f5;border-radius:16px}
.portal-bottom-strip>div{display:grid;grid-template-columns:42px 1fr;column-gap:10px;align-items:center}.strip-icon{grid-row:span 2;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#f6eaf4;color:var(--magenta);font-size:1.3rem}.portal-bottom-strip strong{color:var(--navy)}.portal-bottom-strip small{color:var(--muted);font-size:.75rem}
.portal-courses{margin-bottom:40px}
.letterpad-toolbar{margin-top:6px}.print-letterpad{background:#fff;color:#222;width:210mm;min-height:297mm;margin:0 auto 28px;padding:18mm 19mm 16mm;box-shadow:0 8px 30px rgba(30,20,50,.12);position:relative;font-family:Georgia,"Times New Roman",serif}
.letterhead-top{display:flex;align-items:center;gap:22px}.letterhead-logo img{width:112px;height:112px;object-fit:contain;border-radius:50%}.letterhead-title{text-align:center;flex:1}.letterhead-title h1{font-family:Arial,sans-serif;color:#28145f;font-size:22px;font-weight:900;margin:0 0 5px;letter-spacing:.4px}.letterhead-tagline{font-family:Arial,sans-serif;color:#c21878;font-size:10px;font-weight:800;letter-spacing:2px;margin:0 0 9px}.letterhead-address,.letterhead-contact{font-family:Arial,sans-serif;font-size:11px;margin:3px 0;color:#51465e}
.letterhead-rule{height:5px;background:linear-gradient(90deg,#28145f 0 68%,#c21878 68% 88%,#f3cf16 88%);margin:18px 0 24px;border-radius:3px}
.letter-meta{display:flex;justify-content:space-between;font-size:13px;margin-bottom:35px}.letter-recipient{font-size:14px;line-height:1.6;margin-bottom:22px}.letter-subject{font-size:14px;margin:18px 0}.letter-body{font-size:14px;line-height:1.9;min-height:440px;outline:none}.letter-body p{margin:0 0 16px}
.letterhead-footer{position:absolute;bottom:13mm;left:19mm;right:19mm;border-top:1px solid #d8cce7;padding-top:10px;display:flex;justify-content:space-between;color:#6d617b;font:10px Arial,sans-serif}
@media(max-width:991px){.portal-login-home{grid-template-columns:1fr}.portal-welcome{min-height:480px}.portal-login-side{padding:24px}.portal-bottom-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:575px){.portal-services{grid-template-columns:repeat(2,1fr)}.portal-bottom-strip{grid-template-columns:1fr 1fr}.portal-welcome{min-height:500px}.portal-brand-lockup img{width:68px;height:68px}}
@page{size:A4;margin:0}
@media print{
 body{background:#fff!important}.navbar,.public-footer,.letterpad-toolbar,.letterpad-editor,.alert{display:none!important}
 main.container{width:100%!important;max-width:none!important;padding:0!important;margin:0!important;min-height:0!important}
 .print-letterpad{width:210mm;min-height:297mm;margin:0;padding:18mm 19mm 16mm;box-shadow:none;page-break-after:avoid}
 .letter-body{min-height:440px}
}

/* METS modern public homepage */
body{background:#f5f7fc}
.mets-home-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:34px;align-items:center;min-height:510px;padding:48px clamp(24px,5vw,68px);border-radius:26px;overflow:hidden;background:linear-gradient(90deg,rgba(5,29,79,.97) 0%,rgba(7,48,111,.91) 48%,rgba(8,42,91,.28) 100%),url('mets-home-hero.jpg') center 48%/cover no-repeat;box-shadow:0 20px 55px rgba(13,42,91,.18)}
.mets-home-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 8% 12%,rgba(255,196,0,.16),transparent 26%);pointer-events:none}
.mets-hero-copy{position:relative;z-index:1;max-width:650px;color:#fff;padding:20px 0}.mets-eyebrow,.mets-section-kicker{display:inline-block;font-size:.76rem;font-weight:800;letter-spacing:2px;color:#ffd34d}
.mets-hero-copy h1{font-size:clamp(2.45rem,4.5vw,4.25rem);font-weight:900;line-height:1.04;letter-spacing:-1.5px;margin:18px 0}.mets-hero-copy h1 span{color:#ffd34d}.mets-hero-copy p{max-width:560px;color:#e6edfa;font-size:1.08rem;line-height:1.75}
.mets-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.mets-btn-gold{background:#ffc928;color:#17284b!important;border:0;border-radius:10px;padding:13px 22px;font-weight:800;box-shadow:0 7px 18px rgba(255,201,40,.2)}.mets-btn-gold:hover{background:#ffdb68;color:#17284b!important;transform:translateY(-1px)}.mets-btn-glass{color:#fff;border:1px solid rgba(255,255,255,.75);border-radius:10px;padding:12px 22px;font-weight:700;background:rgba(255,255,255,.08)}.mets-btn-glass:hover{background:#fff;color:#102d66}
.mets-hero-points{display:flex;flex-wrap:wrap;gap:18px;margin-top:30px;color:#f4f7ff;font-size:.86rem;font-weight:650}.mets-login-panel{position:relative;z-index:2;background:#fff;border:1px solid rgba(255,255,255,.8);border-radius:20px;padding:27px 25px;box-shadow:0 18px 45px rgba(0,0,0,.2);color:#18294d}
.mets-login-brand{display:flex;align-items:center;gap:11px;margin-bottom:22px}.mets-login-brand img{width:52px;height:52px;object-fit:contain;border-radius:12px}.mets-login-brand strong{display:block;font-size:1.35rem;line-height:1;color:#132c63;font-weight:900}.mets-login-brand small{display:block;font-size:.65rem;letter-spacing:1.2px;color:#67748d;font-weight:800;margin-top:5px}.mets-login-kicker{font-size:.68rem;letter-spacing:1.8px;color:#9b6d00;font-weight:900}.mets-login-panel h2{font-size:1.7rem;font-weight:900;margin:5px 0}.mets-login-sub{font-size:.88rem;color:#7a8497;margin-bottom:18px}.mets-home-login-form label{font-size:.78rem;font-weight:750;color:#34425e;margin:10px 0 6px}.mets-home-login-form .form-control{height:45px;border:1px solid #dce3ef;border-radius:9px;background:#f9fbff}.mets-home-login-form .form-control:focus{border-color:#315fc0;box-shadow:0 0 0 3px rgba(49,95,192,.12)}.mets-login-submit{margin-top:18px;background:#123d91;color:#fff;border-radius:9px;padding:12px;font-weight:800}.mets-login-submit:hover{background:#0b2c70;color:#fff}.mets-login-submit span,.mets-btn-gold span{margin-left:10px}
.mets-login-divider{display:flex;align-items:center;gap:10px;margin:19px 0 12px;color:#9aa3b3;font-size:.65rem;font-weight:800;letter-spacing:1.3px}.mets-login-divider:before,.mets-login-divider:after{content:"";height:1px;background:#e7ebf2;flex:1}.mets-admission-link{display:block;text-align:center;border:1px solid #d6e0f2;color:#17428f;padding:10px;border-radius:9px;text-decoration:none;font-weight:800;font-size:.87rem}.mets-admission-link:hover{background:#f1f5ff}.mets-login-secure{display:block;text-align:center;color:#8b95a7;margin-top:15px;font-size:.72rem}
.mets-feature-row{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid #e6ebf4;border-radius:16px;margin:22px 0 52px;padding:20px 10px;box-shadow:0 8px 24px rgba(18,48,94,.05)}.mets-feature-row>div{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;align-items:center;padding:4px 18px;border-right:1px solid #edf0f5}.mets-feature-row>div:last-child{border:0}.mets-feature-icon{grid-row:1/3;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#edf3ff;color:#16428f;font-size:1.25rem;font-weight:900}.mets-feature-row b{font-size:.88rem;color:#1b2d50}.mets-feature-row small{font-size:.75rem;color:#8791a3}
.mets-course-section{padding:0 2px 42px}.mets-section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.mets-section-kicker{color:#9b6d00}.mets-section-heading h2{font-size:clamp(1.7rem,3vw,2.35rem);font-weight:900;color:#132c63;margin:7px 0}.mets-section-heading p{color:#7b879a;margin:0}.mets-view-courses{color:#17428f;text-decoration:none;font-weight:800;white-space:nowrap}.mets-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.mets-course-card{background:#fff;border:1px solid #e6ebf4;border-radius:16px;padding:23px;box-shadow:0 7px 22px rgba(18,48,94,.045);transition:.2s}.mets-course-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(18,48,94,.1);border-color:#c9d8f4}.mets-course-icon{display:grid;place-items:center;width:44px;height:44px;background:#edf3ff;color:#17428f;border-radius:13px;font-size:1.35rem;font-weight:900;margin-bottom:15px}.mets-course-card h3{font-size:1.08rem;font-weight:850;color:#1b2d50;margin-bottom:7px}.mets-course-card p{font-size:.87rem;line-height:1.55;color:#7b879a;min-height:42px}.mets-course-card a{display:inline-block;margin-top:8px;text-decoration:none;color:#17428f;font-size:.83rem;font-weight:850}
.mets-bottom-cta{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px clamp(22px,4vw,45px);margin:8px 0 38px;border-radius:18px;background:linear-gradient(110deg,#102d68,#174c9e);color:#fff}.mets-bottom-cta>div>span{font-size:.68rem;letter-spacing:1.8px;font-weight:850;color:#ffd34d}.mets-bottom-cta h2{font-size:1.65rem;font-weight:900;margin:6px 0}.mets-bottom-cta p{margin:0;color:#dce7fb}
@media(max-width:991px){.mets-home-hero{grid-template-columns:1fr;gap:25px;background-position:58% center;padding:36px}.mets-hero-copy{max-width:620px}.mets-login-panel{max-width:480px;width:100%;margin:0 auto}.mets-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.mets-home-hero{padding:26px 19px;min-height:auto;background:linear-gradient(90deg,rgba(5,29,79,.96),rgba(7,48,111,.83)),url('mets-home-hero.jpg') 60% center/cover no-repeat;border-radius:18px}.mets-hero-copy h1{font-size:2.45rem}.mets-hero-copy p{font-size:.96rem}.mets-hero-points{gap:9px 14px;font-size:.75rem}.mets-login-panel{padding:22px 19px}.mets-feature-row{grid-template-columns:repeat(2,1fr);gap:12px;padding:16px 8px;margin-bottom:38px}.mets-feature-row>div{border:0;padding:6px}.mets-feature-row b{font-size:.78rem}.mets-feature-row small{font-size:.68rem}.mets-section-heading{display:block}.mets-view-courses{display:inline-block;margin-top:12px}.mets-course-grid{grid-template-columns:1fr}.mets-course-card p{min-height:0}.mets-bottom-cta{display:block}.mets-bottom-cta .btn{margin-top:18px;width:100%}}


/* Fee due alerts */
.mets-due-alert{border:2px solid #dc2626;background:#fff1f2;color:#b91c1c;border-radius:10px;padding:13px 16px;font-weight:900;font-size:1rem;animation:metsDueBlink 1.1s steps(2,start) infinite}
.mets-due-date{color:#c1121f;font-weight:900;animation:metsDueBlink 1.1s steps(2,start) infinite}
@keyframes metsDueBlink{to{visibility:hidden}}
@media(prefers-reduced-motion:reduce){.mets-due-alert,.mets-due-date{animation:none}}
