@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#172f3d;--muted:#6f7e87;--teal:#293cc5;--blue:#214bd2;--line:#e6ebed;--paper:#f5f6fb}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e5aa45;outline-offset:3px}button{color:inherit}a{color:inherit}button:disabled{opacity:.5;cursor:default}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip{position:fixed;left:10px;top:-80px;z-index:2000;padding:15px;background:white}.skip:focus{top:10px}.topbar{height:83px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:white;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:800 22px Manrope,sans-serif;letter-spacing:-.9px;white-space:nowrap}.brand b{font-weight:500;color:var(--teal)}.brand small{display:block;font:600 8px 'DM Sans',sans-serif;letter-spacing:1.3px;margin-top:5px;color:#7f8b91}.brand-mark{display:flex;align-items:center;justify-content:center;width:43px;height:43px;border-radius:12px;background:var(--ink);color:white;font-size:28px;position:relative}.brand-mark span{font-size:18px;color:#83d9c1;position:absolute;right:3px;top:3px}.topbar nav{display:flex;gap:29px;height:100%;align-items:stretch}.topbar nav button{border:0;background:none;font-size:13px;position:relative;font-weight:600;padding:0}.topbar nav .nav-active{color:var(--teal)}.nav-active:after{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--teal);content:''}.topbar nav button span{margin-left:7px}.public-label{font-size:11px;border:1px solid #dceae6;border-radius:30px;padding:8px 11px;color:#427060;white-space:nowrap}.public-label i,.small-dot{width:6px;height:6px;background:#3c4ac8;border-radius:50%;display:inline-block;margin-right:6px}main{padding:31px 34px 0;max-width:1920px;margin:auto}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:27px;gap:20px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.8px;color:var(--teal);margin:0 0 10px}.eyebrow>span{display:inline-block;width:14px;height:2px;background:var(--teal);vertical-align:middle;margin-right:5px}h1{font:750 clamp(24px,2.4vw,38px)/1.2 Manrope,sans-serif;letter-spacing:-1.4px;margin:0 0 10px}h1 em{font-style:normal;color:var(--teal)}.intro-description{margin:0;color:var(--muted);font-size:12px}.mobile-break{display:none}.stats{display:flex;gap:33px;align-self:center}.stats>div{border-left:1px solid #dbe3e6;padding-left:28px}.stats strong{display:block;font:750 29px Manrope,sans-serif;letter-spacing:-1px}.stats span{font-size:10px;color:var(--muted);display:block;margin-top:3px;white-space:nowrap}.workspace{display:grid;grid-template-columns:355px minmax(0,1fr);height:calc(100dvh - 274px);min-height:460px;max-height:1000px;background:white;border:1px solid #dfe6e8;border-radius:16px;overflow:hidden;box-shadow:0 8px 30px #23394705}.sidebar{display:flex;flex-direction:column;overflow:hidden;position:relative;border-right:1px solid var(--line);z-index:2;background:white}.search-area{padding:21px 21px 18px;border-bottom:1px solid var(--line)}.section-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.section-label h2{font:750 15px Manrope,sans-serif;margin:0}.section-label>span{font-size:8px;font-weight:600;letter-spacing:1.5px;color:#8a969d}.searchbox{display:flex;align-items:center;border:1px solid #dce3e6;border-radius:8px;gap:9px;padding:0 12px;height:43px;color:#7d9099;background:#fcfdfd}.searchbox input{border:0;outline:0;background:transparent;width:100%;min-width:0;font-size:12px;color:var(--ink);height:100%}.searchbox:focus-within{border-color:var(--teal);box-shadow:0 0 0 2px #293cc515}.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}select{background:white;border:1px solid #dce3e6;border-radius:7px;padding:10px 25px 10px 10px;color:#536875;width:100%;font-size:11px;min-height:39px}.results-heading{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;font-size:10px;color:var(--muted);flex-shrink:0}.results-heading b{color:var(--ink)}.results-heading button{border:0;background:none;color:var(--teal);font-size:10px;padding:5px 0}.results{overflow-y:auto;overscroll-behavior:contain;flex:1;scrollbar-width:thin;scrollbar-color:#dce4e5 white;padding:0 12px 12px}.institution-card{display:block;width:100%;text-align:left;padding:16px 12px;background:white;border:0;border-bottom:1px solid #edf0f1;border-radius:8px;transition:background .15s}.institution-card:hover,.institution-card.active{background:#f1f2ff}.card-top{display:flex;justify-content:space-between;align-items:center}.tag{font-size:8px;letter-spacing:.6px;font-weight:700;text-transform:uppercase;color:var(--blue);background:#eef5fa;padding:4px 7px;border-radius:4px}.tag.kk{color:var(--teal);background:#f1f2ff}.card-state{color:#87949c;font-size:9px}.institution-card h3{font:700 13px/1.55 Manrope,sans-serif;letter-spacing:-.1px;margin:10px 0 8px}.card-meta{display:flex;align-items:center;gap:7px;font-size:10px;color:#7a8a92}.card-meta .arrow{margin-left:auto;font-size:17px;color:#607981}.card-meta .unmapped{color:#a17f45;font-size:9px}.sidebar-footer{padding:11px 16px;border-top:1px solid var(--line);font-size:8px;color:#84949c;display:flex;gap:5px;align-items:center;flex-shrink:0}.sidebar-footer .small-dot{width:5px;height:5px;margin-right:0}.map-section{position:relative;min-width:0;background:#e9f0f0;isolation:isolate}#map{height:100%;width:100%;z-index:0}.region-controls{position:absolute;left:20px;top:19px;display:flex;padding:4px;background:white;border:1px solid #e0e7e8;border-radius:9px;box-shadow:0 3px 14px #1d354114;gap:2px;z-index:400}.region-controls button{padding:9px 13px;border:0;border-radius:6px;background:white;color:#697b86;font-size:10px;font-weight:600}.region-controls .selected{background:var(--ink);color:white}.map-actions{position:absolute;right:19px;top:19px;display:grid;gap:8px;z-index:400}.map-actions button{width:36px;height:36px;border:1px solid #dfe6e7;border-radius:8px;background:white;box-shadow:0 3px 14px #1d354110;font-size:23px}.map-legend{position:absolute;left:20px;bottom:98px;border-radius:6px;display:flex;gap:14px;background:#ffffffed;padding:9px 12px;z-index:400;font-size:9px;color:#667a83}.map-legend>span{display:flex;gap:6px;align-items:center}.legend-pin{width:7px;height:7px;border-radius:50%;display:inline-block}.poly{background:var(--blue)}.kk{background:var(--teal)}.map-summary{position:absolute;bottom:26px;left:20px;right:20px;background:white;border:1px solid #dfe6e8;box-shadow:0 6px 25px #142e3d0c;border-radius:10px;z-index:400;display:flex;align-items:center;gap:12px;padding:15px 17px}.map-summary-icon{font-size:24px;background:#eef0ff;color:var(--teal);height:37px;width:37px;border-radius:8px;display:grid;place-items:center}.map-summary strong{display:block;font:700 12px Manrope,sans-serif}.map-summary div>span{display:block;margin-top:5px;font-size:9px;color:#7b8b93}.map-summary button{margin-left:auto;background:var(--ink);color:white;border:0;border-radius:7px;padding:11px 15px;font-size:10px;white-space:nowrap}.map-summary button span{margin-left:12px}.leaflet-control-zoom{border:1px solid #dfe6e7!important;box-shadow:0 3px 14px #1d354110!important;border-radius:7px!important;overflow:hidden}.leaflet-bottom.leaflet-right{bottom:115px;right:9px}.leaflet-control-attribution{font:8px 'DM Sans',sans-serif!important;color:#667!important}.leaflet-bottom.leaflet-left{bottom:0}.map-pin{width:25px;height:25px;border:3px solid white;border-radius:50% 50% 50% 7px;transform:rotate(-45deg);box-shadow:0 2px 8px #162d3b35;display:grid;place-items:center}.map-pin:after{content:'';width:5px;height:5px;border:1px solid white;border-radius:50%}.map-pin.highlight{outline:4px solid #e2b760;z-index:500}.leaflet-tooltip{font:600 11px 'DM Sans',sans-serif;border:0;border-radius:6px;padding:8px 12px;box-shadow:0 3px 16px #10293820}.page-footer{display:flex;justify-content:space-between;gap:20px;color:#8c989f;font-size:9px;padding:16px 2px}.page-footer>span:first-child{font-weight:600}.footer-divider{margin:0 9px;color:#b4bec2}.mobile-tabs{display:none}.empty{padding:40px 15px;text-align:center;color:var(--muted);line-height:1.8;font-size:12px}.empty strong{display:block;color:var(--ink);font-size:15px}.empty>span{font-size:34px;display:block;margin-bottom:12px}dialog{border:0;padding:0;color:var(--ink);box-shadow:0 20px 100px #122b3b30}dialog::backdrop{background:#102a3c70;backdrop-filter:blur(3px)}.profile-dialog{position:fixed;left:auto;right:18px;top:18px;bottom:18px;margin:0;width:440px;max-width:calc(100% - 36px);max-height:calc(100dvh - 36px);height:calc(100dvh - 36px);border-radius:17px;overflow:auto}.profile-header{padding:31px 27px 26px;background:#112d3c;color:white;position:relative}.close{position:absolute;right:17px;top:15px;width:33px;height:33px;border:1px solid #dbe3e8;border-radius:50%;background:white;font-size:25px;line-height:1;color:#5d727e;z-index:5}.profile-header .close{background:#ffffff12;border-color:#ffffff30;color:white}.profile-header .tag{background:#ffffff15;color:#a5d9ed}.profile-header .tag.kk{color:#a1ddc9}.profile-header h2{font:750 24px/1.4 Manrope,sans-serif;letter-spacing:-.6px;margin:20px 0 12px;padding-right:14px}.profile-location{font-size:12px;color:#b0c6cc;margin:0}.profile-body{padding:25px 27px}.profile-facts{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:10px;margin-bottom:24px}.profile-facts>div{padding:16px}.profile-facts>div+div{border-left:1px solid var(--line)}.profile-facts span{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}.profile-facts strong{font:700 16px Manrope,sans-serif}.profile-facts strong.unavailable{font-size:12px;color:#859197}.profile-body h3{font:750 13px Manrope,sans-serif;margin:25px 0 12px}.profile-body p{font-size:12px;line-height:1.8;color:#6d808a}.detail-label{display:block;font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#8a989f;margin:15px 0 5px}.detail-value{font-size:12px;line-height:1.7;margin:0}.link-button{display:flex;align-items:center;justify-content:space-between;text-decoration:none;border:1px solid var(--line);padding:12px;border-radius:7px;font-size:11px;margin-top:8px;color:var(--teal)}.link-button:hover{background:#f1f2ff}.program-list{padding:0;list-style:none;margin:0}.program-list li{display:flex;gap:10px;border-bottom:1px solid #edf0f1;padding:12px 0;font-size:11px;line-height:1.7}.program-list li:before{content:'↗';color:var(--teal);flex-shrink:0}.program-list a{text-decoration:none}.program-list a:hover{color:var(--teal)}.source-note{font-size:9px!important;border-top:1px solid var(--line);padding-top:17px;margin-top:25px}.source-note a{color:var(--teal)}.location-note{background:#f7f5ee;border-radius:7px;padding:11px;font-size:10px!important;color:#8b794e!important}.primary{background:var(--teal);color:white;border:0;border-radius:8px;padding:13px 16px;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:space-between}.full{width:100%;margin-top:20px}.primary:hover{background:#202fa7}.modal{width:510px;max-width:calc(100% - 28px);max-height:calc(100dvh - 40px);border-radius:17px;padding:34px;overflow:auto}.modal .eyebrow{margin-top:10px;padding-right:25px}.modal h2{font:750 26px/1.4 Manrope,sans-serif;letter-spacing:-.8px;margin:15px 0}.modal p{font-size:12px;line-height:1.8}.muted{color:var(--muted)}.field{display:block;font-size:11px;font-weight:600;margin-top:22px}.field select{display:block;margin-top:8px;font-size:12px;padding:13px 10px}.route-connector{color:#aac2bf;margin:8px 0 -16px 12px;font-size:21px}.fineprint{font-size:10px!important;color:#87949b;border-top:1px solid var(--line);padding-top:16px;margin-top:22px}.distance-value{padding:20px;background:#eef0ff;border-radius:10px;margin-top:20px;text-align:center}.distance-value strong{font:750 42px Manrope,sans-serif;color:var(--teal);letter-spacing:-1.5px}.distance-value span{font-size:16px;margin-left:5px;color:var(--teal)}.distance-value p{margin:4px 0 0;font-size:10px;color:#727e9c}.info-block{padding:16px 0;border-top:1px solid var(--line)}.info-block strong{font-size:12px}.info-block p{margin:7px 0 0;color:var(--muted)}.text-link{display:inline-block;color:var(--teal);font-size:11px;margin-top:15px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:1500;max-width:calc(100% - 30px);padding:14px 20px;border-radius:10px;color:white;background:#163b49;box-shadow:0 5px 30px #132c3a20;transition:.2s;font-size:12px}#toast.show{opacity:1;transform:translate(-50%,0)}#map-failure{position:absolute;top:80px;left:25px;right:70px;background:#fff7de;padding:10px;font-size:11px;z-index:450;border-radius:8px}
@media(min-width:1600px){.workspace{grid-template-columns:390px 1fr}.search-area{padding:25px}.institution-card{padding:18px 14px}.institution-card h3{font-size:14px}.intro{margin-bottom:33px}.intro-description{font-size:14px}.workspace{height:calc(100dvh - 287px)}}
@media(max-width:1100px){.topbar{padding:0 24px}.topbar nav{gap:20px}.public-label{display:none}main{padding:26px 24px 0}.stats{gap:18px}.stats>div{padding-left:18px}.stats strong{font-size:24px}.workspace{grid-template-columns:315px 1fr}.map-summary-icon{display:none}.map-summary{padding:13px}.map-summary strong{font-size:10px}.map-summary button{padding:10px;font-size:9px}.region-controls{left:12px}.region-controls button{padding:8px 10px;font-size:9px}.map-actions{right:12px}.intro-description{max-width:430px;line-height:1.7}.page-footer{font-size:8px}}
@media(max-width:760px){.topbar{height:68px;padding:0 18px}.brand{font-size:20px;gap:10px}.brand-mark{width:36px;height:36px;border-radius:10px;font-size:24px}.brand small{font-size:6px;letter-spacing:1px}.topbar nav{gap:0}.topbar nav button{display:none}.topbar nav #about-nav{display:block;font-size:10px;border:1px solid var(--line);padding:8px 10px;border-radius:6px;height:33px;align-self:center}.topbar nav #about-nav:after{display:none}main{padding:23px 15px 0}.intro{display:block;margin-bottom:20px}.eyebrow{font-size:8px;letter-spacing:1.5px}h1{font-size:29px;line-height:1.25;margin:12px 0 10px;letter-spacing:-1.1px}.mobile-break{display:block}.intro-description{font-size:11px;line-height:1.8;max-width:340px}.stats{gap:0;margin-top:22px;padding:16px 0 0;border-top:1px solid #dfe6e7;justify-content:space-between}.stats>div{border:0;padding:0}.stats>div:last-child{padding-right:12px}.stats strong{font-size:23px}.stats span{font-size:9px}.workspace{display:flex;flex-direction:column;height:auto;min-height:0;max-height:none;border-radius:12px;overflow:visible}.sidebar{border:0;overflow:visible;border-radius:12px}.search-area{padding:18px 16px 12px;border:0}.section-label{margin-bottom:13px}.section-label h2{font-size:14px}.searchbox{height:45px}.filters{gap:9px}select{min-height:42px;font-size:11px}.mobile-tabs{display:grid;grid-template-columns:1fr 1fr;background:#eef2f3;border-radius:8px;padding:4px;margin-top:14px;gap:4px}.mobile-tabs button{border:0;background:transparent;border-radius:6px;font-size:11px;padding:9px}.mobile-tabs [aria-pressed=true]{background:white;box-shadow:0 2px 5px #1c3b4710;color:var(--teal);font-weight:700}.results-heading{padding:8px 18px 13px;border-bottom:1px solid var(--line)}.results{overflow:visible;padding:0 9px 10px;max-height:none}.institution-card{padding:17px 10px}.institution-card h3{font-size:13px}.card-meta{font-size:11px}.tag{font-size:8px}.card-state{font-size:10px}.sidebar-footer{padding:13px 16px;justify-content:center;font-size:8px}.map-section{display:none;height:520px;border-radius:0 0 12px 12px;overflow:hidden}body.map-view .map-section{display:block}body.map-view .results,body.map-view .results-heading,body.map-view .sidebar-footer{display:none}body.map-view .search-area{border-bottom:1px solid var(--line)}.region-controls{top:14px;left:11px}.region-controls button{padding:8px;font-size:9px}.map-actions{right:11px;top:14px}.map-actions button{width:32px;height:32px;font-size:21px}.map-summary{left:11px;right:11px;bottom:25px;padding:13px 12px;gap:10px}.map-summary strong{font-size:10px}.map-summary div>span{font-size:8px;max-width:185px;line-height:1.7}.map-summary button{padding:10px 9px;font-size:9px}.map-summary button span{margin-left:4px}.map-legend{left:11px;bottom:109px;font-size:8px;gap:10px;padding:8px}.page-footer{display:block;padding:20px 4px;line-height:1.8;font-size:8px}.page-footer>span{display:block}.page-footer>span+span{margin-top:7px}.profile-dialog{left:0;right:0;top:auto;bottom:0;margin:0;max-width:100%;width:100%;height:90dvh;max-height:90dvh;border-radius:20px 20px 0 0}.profile-header{padding:28px 23px 24px}.profile-header h2{font-size:23px}.profile-body{padding:22px 23px}.modal{padding:28px 23px}.modal h2{font-size:23px}.profile-facts strong{font-size:15px}.profile-facts strong.unavailable{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.map-cluster{display:grid;place-items:center;width:38px;height:38px;border:4px solid #ffffffc9;background:#173f4c;color:white;border-radius:50%;font:700 12px Manrope,sans-serif;box-shadow:0 2px 9px #1c3b4330}.leaflet-tile-pane{filter:saturate(.64)}
@media(max-width:760px){body.map-view .results-heading{display:flex}}
.program-list small{display:block;font-size:9px;color:#6d7da8;margin-top:4px}.profile-facts small{display:block;color:#8190a9;font-size:8px;margin-top:6px}.staff-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 12px}.staff-summary>div{padding:12px;border:1px solid #e3e5f5;border-radius:8px;background:#f6f7ff}.staff-summary strong{display:block;font:750 21px Manrope,sans-serif;color:#293cc5}.staff-summary span{display:block;font-size:9px;line-height:1.6;margin-top:6px;color:#727e9c}.count-details{margin:13px 0 22px;background:#f4f7f8;border-radius:8px;padding:12px;font-size:10px;color:#617984}.count-details summary{cursor:pointer;font-weight:600}.count-details p{font-size:10px;line-height:1.8}.count-details a{font-size:10px;color:#293cc5}
.brand .official-logo{display:block;width:218px;line-height:0;background:linear-gradient(to bottom,transparent 80%,#172f3d 80%);border-radius:0 0 4px 4px}.brand .official-logo img{display:block;width:100%;height:auto;object-fit:contain}@media(max-width:760px){.brand .official-logo{width:165px}}

