/* A quiet map canvas. Research tools appear only when requested. */
:root{--green:#416845;--green-dark:#315638;--ink:#334437;--muted:#778576;--line:#e0e7db;--mint:#edf3e8;--bg:#142d3b}
[hidden]{display:none!important}html,body{width:100%;height:100%;overflow:hidden}.shell{margin:0}main{padding:0;max-width:none;margin:0;height:100dvh}#screen,.atlas-stage{height:100%;position:relative}.loading-state{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted)}
.map-panel{position:absolute;inset:0;border:0;border-radius:0;box-shadow:none;background:#142d3b;overflow:hidden}.map-canvas{position:absolute;inset:0}.maplibregl-canvas{outline:none}.map-canvas.map-ready canvas{animation:map-appear .45s ease}.map-attribution{position:absolute;bottom:9px;right:18px;display:flex;gap:6px;font-size:9px;color:#c4d4da;z-index:2}.map-attribution a{color:inherit;background:#142d3bd0;border-radius:3px}.map-controls{right:22px;bottom:38px;padding:3px;border:1px solid #dbe3d4;border-radius:12px;box-shadow:0 3px 18px #34492c08;background:#fffffff2}.map-controls button{width:36px;height:36px;border-radius:8px}.map-controls button+button{border:0}.map-controls svg{width:17px;height:17px}.compass{transition:transform .12s}.map-error{position:absolute;left:24px;bottom:24px;font-size:12px;background:white;padding:16px;border-radius:12px;border:1px solid var(--line)}.map-error button{color:var(--green);text-decoration:underline}
.map-toolbar{position:absolute;left:24px;top:24px;width:min(445px,calc(100% - 112px));z-index:20}.search-surface{display:flex;align-items:center;height:54px;background:#fffffff5;border:1px solid #dbe3d4;border-radius:14px;box-shadow:0 4px 24px #34492c0c;backdrop-filter:blur(12px)}.compact-brand{display:grid;place-items:center;flex-shrink:0;width:54px;height:38px;border-right:1px solid #e7ece3;color:#5b7850}.compact-brand svg{width:27px;height:27px}.atlas-search{flex:1;min-width:0;padding:0 15px}.atlas-search input{border:0;outline:0;background:none;width:100%;font-size:13px;color:var(--ink);padding:10px 0}.atlas-search input::placeholder{color:#85917d}.filter-trigger{position:relative;width:44px;height:38px;margin-right:7px;border-radius:9px;display:grid;place-items:center;color:#6b8060;flex-shrink:0}.filter-trigger:hover,.filter-trigger[aria-expanded=true]{background:#edf3e7}.filter-trigger svg{width:19px;height:19px}.filter-indicator{position:absolute;top:5px;right:8px;width:5px;height:5px;background:#c08855;border-radius:50%}.menu-trigger{position:fixed;right:24px;top:24px;z-index:50;width:54px;height:54px;display:grid;place-items:center;border:1px solid #dbe3d4;border-radius:14px;background:#fffffff5;box-shadow:0 4px 24px #34492c0c;color:#6b8060;backdrop-filter:blur(12px)}.menu-trigger:hover,.menu-trigger[aria-expanded=true]{background:#f7faf2}
.floating-panel{position:fixed;z-index:60;background:#fffffff9;border:1px solid #dce5d4;border-radius:16px;box-shadow:0 12px 45px #33462614;backdrop-filter:blur(18px);animation:panel-appear .18s ease;overflow:auto;max-height:calc(100dvh - 116px)}.floating-panel>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}.floating-panel h2{font-size:16px;letter-spacing:-.4px;font-weight:650}.floating-panel>header button{display:grid;place-items:center;width:28px;height:28px;color:#7d8a73;border-radius:7px}.floating-panel>header button:hover{background:var(--mint)}.floating-panel>header .icon{width:16px;height:16px}.workspace-menu{right:24px;top:90px;width:264px;padding:20px 14px 10px}.workspace-menu>header{padding:0 8px;margin-bottom:12px}.workspace-menu .nav-item{margin:2px 0;padding:11px 10px;font-size:12px;gap:11px;border-radius:9px;color:#67765d}.workspace-menu .nav-item svg{width:18px;height:18px}.workspace-menu .nav-short{display:none}.workspace-menu .nav-item.active{font-weight:550}.menu-divider{border-top:1px solid var(--line);margin:10px 8px}.menu-note{font-size:10px;color:#8e9a84;padding:13px 10px 9px}.filter-panel{top:90px;left:24px;width:330px;padding:22px}.filter-panel .form-field{font-size:11px;margin-bottom:17px}.filter-panel .form-field select{font-size:12px;padding:10px;background:#f8faf5;border-color:#e2e9db;border-radius:8px}.filter-options{margin:0 0 18px;border-top:1px solid #e8ede2}.filter-option{display:flex;width:100%;align-items:center;justify-content:space-between;padding:13px 0;font-size:12px;border-bottom:1px solid #e8ede2;color:#6e7f62}.filter-option .icon{width:15px;height:15px;opacity:0}.filter-option[aria-pressed=true]{color:var(--green);font-weight:550}.filter-option[aria-pressed=true] .icon{opacity:1}.filter-panel footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px}.filter-panel footer .button{font-size:11px;padding:9px 13px}.filter-panel footer .text-link{font-size:11px}
.atlas-pin{width:36px;height:36px;padding:0;display:grid;place-items:center;z-index:2;cursor:pointer;overflow:visible;background:none;border:0}.pin-dot{width:14px;height:14px;display:grid;place-items:center;background:#365a46;border:2.5px solid #fffdf4;border-radius:50%;box-shadow:0 1px 6px #354c2930;transition:background .15s,box-shadow .15s}.cluster .pin-dot{width:29px;height:29px;font-size:11px;font-weight:600;color:#fff;border-width:2px;background:#365a46}.atlas-pin:hover .pin-dot,.atlas-pin:focus-visible .pin-dot,.atlas-pin.selected .pin-dot{background:#bd8957;box-shadow:0 0 0 5px #bc915622}.pin-label{position:absolute;left:50%;bottom:39px;transform:translateX(-50%);opacity:0;pointer-events:none;white-space:nowrap;padding:8px 11px;border:1px solid #dce5d4;border-radius:8px;background:#fffffff7;font-size:11px;color:#5d7053;box-shadow:0 3px 12px #364f2010;transition:opacity .15s}.atlas-pin:hover .pin-label,.atlas-pin:focus-visible .pin-label{opacity:1}
.results-drawer{position:absolute;top:90px;left:24px;bottom:24px;width:370px;border:1px solid #dce5d4;border-radius:16px;box-shadow:0 10px 40px #34482b12;z-index:25;background:#fffffff9;display:flex;flex-direction:column;overflow:hidden;animation:panel-appear .22s ease}.results-drawer-header{padding:22px 23px 15px;display:flex;align-items:center;justify-content:space-between}.results-drawer-header h2{font-size:19px;font-weight:600;letter-spacing:-.5px}.results-drawer-header button{width:28px;height:28px;display:grid;place-items:center;color:#88987b}.results-drawer-header svg{width:17px;height:17px}.results-drawer .results-top{padding:0 23px 16px;margin:0;font-size:11px;border-bottom:1px solid #e6ece1;gap:6px}.results-drawer .results-top small{display:none}.results-drawer .sort-select{font-size:10px;max-width:145px}.results-drawer .program-list{display:flex;flex-direction:column;gap:0;overflow-y:auto;flex:1;overscroll-behavior:contain}.results-drawer .program-card{border:0;border-bottom:1px solid #e6ece1;border-radius:0;padding:21px 23px;background:transparent;animation:none}.results-drawer .program-card:hover{transform:none;box-shadow:none;background:#f7faf3}.results-drawer .uni-mark,.results-drawer .card-tags,.results-drawer .card-meta{display:none}.results-drawer .title-button{font-size:13px;line-height:1.55;letter-spacing:0}.results-drawer .title-button>span{display:none}.results-drawer .university-name{font-size:11px;margin-top:4px;color:#86917e}.results-drawer .location-row{font-size:10px;margin:8px 0 0}.results-drawer .card-footer{margin-top:15px}.results-drawer .card-link{font-size:10px}.results-drawer .card-action-line{margin-top:15px}.results-drawer .empty-state{border:0;border-radius:0;padding:35px 25px;background:transparent}.results-drawer .empty-state h2{font-size:19px}
.atlas-mode .detail-dialog{position:fixed;margin:0;left:auto;right:24px;top:90px;bottom:24px;width:430px;max-width:calc(100% - 48px);height:calc(100dvh - 114px);max-height:none;border-radius:16px;border:1px solid #dce5d4;z-index:35;box-shadow:0 12px 45px #33462614;animation:panel-appear .22s ease;overscroll-behavior:contain;background:#fff}.atlas-mode .detail-header{padding:26px;background:#f2f6ed}.atlas-mode .detail-header .uni-mark{display:none}.atlas-mode .detail-header h1{font-size:25px;font-weight:600;line-height:1.4;letter-spacing:-.65px;padding-right:14px}.atlas-mode .detail-header p{font-size:12px;line-height:1.75;color:#7c8b72}.atlas-mode .detail-tabs{padding:0 17px;overflow-x:auto;scrollbar-width:none;white-space:nowrap}.atlas-mode .detail-tabs button{font-size:10px;padding:15px 8px}.atlas-mode .detail-content{padding:25px 26px;min-height:0}.atlas-mode .detail-content h2{font-size:17px}.atlas-mode .detail-content p,.atlas-mode .detail-content li{font-size:12px;line-height:1.8}.atlas-mode .detail-actions{padding:16px 22px;background:#fffffff9}.atlas-mode .detail-actions .button{font-size:11px;padding:10px 12px}.atlas-mode .dialog-close{width:28px;height:28px;right:16px;top:16px}
.workspace-sheet{position:absolute;inset:90px 24px 24px;background:#fbfcf8f9;border:1px solid #dce5d4;border-radius:17px;padding:35px;z-index:30;box-shadow:0 12px 45px #33462614;overflow:auto;overscroll-behavior:contain;backdrop-filter:blur(12px);animation:panel-appear .22s ease}.workspace-dismiss{position:sticky;top:0;float:right;display:grid;place-items:center;width:30px;height:30px;z-index:3;border-radius:8px;color:#7d8d71;background:#eaf1e1;margin-left:17px}.workspace-dismiss svg{width:17px;height:17px}.workspace-sheet .eyebrow{display:none}.workspace-sheet .page-header h1{font-size:28px;font-weight:600;letter-spacing:-.8px}.workspace-sheet .page-header>p{font-size:12px;max-width:660px}.workspace-sheet .page-header-row{padding-right:13px}.workspace-sheet .shortlist-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-sheet .panel,.workspace-sheet .method-card{box-shadow:none}.workspace-mode .map-toolbar{visibility:hidden}.atlas-mode .compare-tray{left:50%;bottom:24px;z-index:40;border-radius:12px;font-size:11px;padding:11px 15px;box-shadow:0 5px 25px #33462614;max-width:calc(100% - 36px)}.atlas-mode .toast{z-index:100;left:50%;right:auto;transform:translateX(-50%) translateY(10px);max-width:calc(100% - 36px);width:max-content;text-align:center;background:#425b37;color:#fff;font-size:12px;bottom:26px;border-radius:11px}.atlas-mode .toast.show{transform:translateX(-50%) translateY(0)}.profile-dialog{border-radius:18px;background:#fcfdf9}.profile-dialog h1{font-size:28px;font-weight:600}.profile-dialog .eyebrow{display:none}
.map-panel.flat-map{background:#c4dce7}
@keyframes panel-appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes map-appear{from{opacity:0}to{opacity:1}}
@media(max-width:1050px){.workspace-sheet .shortlist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-sheet .workspace-grid,.workspace-sheet .method-grid{grid-template-columns:1fr}.results-drawer{width:340px}}
@media(max-width:700px){.map-toolbar{left:16px;top:16px;width:calc(100% - 90px)}.search-surface{height:50px;border-radius:12px}.compact-brand{width:42px;height:32px}.compact-brand svg{width:23px;height:23px}.atlas-search{padding:0 10px}.atlas-search input{font-size:16px}.atlas-search input::placeholder{font-size:12px}.filter-trigger{width:33px;margin-right:5px}.filter-trigger svg{width:17px}.menu-trigger{right:16px;top:16px;width:50px;height:50px;border-radius:12px}.floating-panel{max-height:calc(100dvh - 96px)}.workspace-menu{top:78px;right:16px}.filter-panel{top:78px;left:16px;width:min(330px,calc(100% - 32px))}.map-controls{right:17px;bottom:35px}.map-attribution{right:16px;font-size:8px}.results-drawer{left:16px;right:16px;top:78px;bottom:18px;width:auto;max-height:68dvh}.results-drawer .program-card{padding:20px 22px}.atlas-mode .detail-dialog{left:16px;right:16px;top:auto;bottom:18px;width:auto;max-width:none;height:68dvh;max-height:calc(100dvh - 98px);border-radius:16px}.atlas-mode .detail-header{padding:23px}.atlas-mode .detail-header h1{font-size:23px}.atlas-mode .detail-content{padding:22px}.atlas-mode .detail-tabs{padding:0 13px}.atlas-mode .detail-tabs button{font-size:10px}.workspace-sheet{inset:78px 16px 18px;padding:23px 20px}.workspace-sheet .page-header h1{font-size:25px}.workspace-sheet .page-header-row{flex-direction:column;align-items:flex-start}.workspace-sheet .shortlist-grid{grid-template-columns:1fr}.workspace-sheet .panel{padding:20px}.workspace-sheet .form-grid{grid-template-columns:1fr}.workspace-sheet .comparison-table{min-width:620px}.profile-dialog .form-field input,.profile-dialog .form-field select,.workspace-sheet input,.workspace-sheet textarea{font-size:16px}.atlas-mode .toast{font-size:11px;bottom:24px}.atlas-mode .compare-tray{bottom:22px;padding:10px 12px;gap:12px}.atlas-mode .compare-tray .button{font-size:10px}.atlas-mode .compare-tray>span{font-size:10px;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.map-canvas.map-ready canvas,.floating-panel,.results-drawer,.detail-dialog,.workspace-sheet{animation:none}.pin-dot,.pin-label,.compass{transition:none}}

.map-location-links{position:absolute;inset:0;pointer-events:none;z-index:22}.map-accessible-pin{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.map-accessible-pin:focus-visible{top:90px;left:24px;width:auto;height:auto;max-width:calc(100% - 48px);padding:12px 16px;clip-path:none;white-space:normal;background:#fff;border-radius:10px;font-size:12px;pointer-events:auto;box-shadow:0 5px 25px #142d3b30}.map-tooltip .maplibregl-popup-content{padding:9px 12px;border-radius:8px;font:11px/1.5 Manrope,sans-serif;color:#334437;box-shadow:0 4px 20px #142d3b18}.map-tooltip{pointer-events:none}

/* Pointer focus keeps the normal field appearance; keyboard controls use a quiet fill. */
input:focus,select:focus,textarea:focus{outline:none;box-shadow:none}
button:focus-visible,a:focus-visible{background-color:#dcebd3;color:#264b36}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{background:#fbfcf9}
.atlas-search input:focus{background:transparent}
.filter-panel .form-field select:focus{background:#f8faf5}
.side-panel-mode .map-toolbar{visibility:visible;width:min(445px,calc(100% - 490px))}
.comparison-panel-mode .map-toolbar{width:min(445px,calc(100% - 700px));min-width:220px}
.workspace-sheet.workspace-drawer{left:auto;width:410px;padding:27px 24px;background:#fbfcf8;animation:drawer-appear .24s ease}
.workspace-sheet.compare-drawer{width:min(630px,calc(100% - 320px))}
.workspace-drawer .page-header h1{font-size:24px}
.workspace-drawer .page-header-row{display:block;padding-right:32px}
.workspace-drawer .page-header-row>.button{margin-top:16px;font-size:11px}
.workspace-drawer .shortlist-grid{grid-template-columns:1fr;gap:14px}
.workspace-drawer .program-card{padding:21px;animation:none;box-shadow:none}
.workspace-drawer .program-card:hover{transform:none}
.workspace-drawer .uni-mark{width:35px;height:35px;font-size:10px}
.workspace-drawer .title-button{font-size:15px}
.workspace-drawer .title-button>span{display:none}
.workspace-drawer .empty-state{padding:35px 18px}
.workspace-drawer .empty-state h2{font-size:20px}
.workspace-drawer .comparison-table{min-width:var(--table-width);font-size:11px}
.workspace-drawer .comparison-table th,.workspace-drawer .comparison-table td{padding:16px 14px;font-size:11px;overflow-wrap:anywhere}
.workspace-drawer .comparison-table th:first-child{position:sticky;left:0;width:140px;z-index:1;background:#f3f7ee}
.comparison-hint{font-size:10px;color:var(--muted);margin:0 0 12px}
.workspace-drawer .comparison-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.workspace-drawer .comparison-bottom>span{font-size:11px}
.side-panel-mode .compare-tray{left:24px;transform:none;max-width:calc(100% - 480px)}
.side-panel-mode .map-controls{right:458px}
.comparison-panel-mode .map-controls{right:calc(min(630px,calc(100% - 320px)) + 48px)}
@keyframes drawer-appear{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:1000px){.side-panel-mode .map-toolbar{width:calc(100% - 490px);min-width:220px}.side-panel-mode .compare-tray{display:none}}
@media(max-width:700px){.workspace-sheet.workspace-drawer{left:16px;right:16px;width:auto;padding:23px 20px}.workspace-drawer .comparison-table{min-width:var(--table-width)}.side-panel-mode .map-toolbar,.side-panel-mode .map-controls{visibility:hidden}.workspace-drawer .page-header h1{font-size:23px}}
@media(prefers-reduced-motion:reduce){.workspace-sheet.workspace-drawer{animation:none}}
.results-pagination{border-top:1px solid var(--line);padding:14px 23px;flex-shrink:0;background:#fbfcf8}
.results-pagination{font-size:11px;color:#6e7f62}.results-sentinel{height:1px;flex-shrink:0}.results-drawer .program-list[data-order=university] .card-title{display:flex;flex-direction:column}.results-drawer .program-list[data-order=university] .university-name{order:-1;font-size:13px;font-weight:600;color:#334437;line-height:1.55;margin:0 0 4px}.results-drawer .program-list[data-order=university] .title-button{font-size:11px;font-weight:500;color:#6e7f62}
.institution-card .title-button{font-size:13px;line-height:1.6}
.institution-scope{font-size:10px;color:var(--muted);line-height:1.7;margin:10px 0}
.institution-card>.card-link{margin-top:5px;font-size:11px}
.search-kinds{display:flex;gap:5px;margin:0 20px 12px;flex-shrink:0}
.search-kinds button{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;padding:9px 7px;border-radius:8px;font-size:11px;color:#71816c;background:#f4f6f0}
.search-kinds button[aria-pressed=true]{background:#e4ebdf;color:#334437;font-weight:600}
.search-kinds button span{font-size:10px;font-variant-numeric:tabular-nums;font-weight:400}
.search-status{margin:0;padding:10px 23px;font-size:10px;line-height:1.6;color:#71816c;flex-shrink:0}
.search-status button{text-decoration:underline;margin-left:5px;color:#334437}
.related-searches{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:9px 23px 12px;border-bottom:1px solid #e6ece1;flex-shrink:0}
.related-searches>span{font-size:9px;color:#71816c;width:100%;margin-bottom:2px}
.related-searches button{font-size:10px;line-height:1.5;padding:4px 7px;border:1px solid #dce5d4;border-radius:6px;color:#52634e}
.institution-programmes{display:flex;flex-direction:column;gap:8px;margin:10px 0 14px}
.institution-programmes button{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;font-size:11px;line-height:1.5;color:#42573d}
.institution-programmes .icon{width:12px;height:12px;flex-shrink:0}
.institution-programmes>span{font-size:9px;color:#71816c}
.detail-programmes button{font-size:13px;padding:10px 0;border-bottom:1px solid #e6ece1}
.catalogue-scope{margin-top:10px;font-size:10px;line-height:1.6;padding:8px 12px;width:fit-content;max-width:100%;border-radius:9px;background:#ffffffeb;color:#3b6475;box-shadow:0 3px 12px #142d3b10}
.directory-method{margin-bottom:24px}
.source-row>div{max-width:45%;overflow-wrap:anywhere;text-align:right}
.catalogue-explanation{margin-bottom:24px}
.methodology-table{width:100%;border-collapse:collapse;margin:18px 0;font-size:12px;line-height:1.8}
.methodology-table th,.methodology-table td{padding:15px 13px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.methodology-table th{width:27%;font-weight:600;color:#52684d;background:#f2f6ed}
.methodology-table td{color:#66775e}
.reuse-body{padding:0 20px 18px;background:#fff}
.reuse-body p{font-size:12px;line-height:1.8;margin:15px 0;color:#66775e}
@media(max-width:700px){.methodology-table{font-size:11px}.methodology-table th{width:34%}.methodology-table th,.methodology-table td{padding:12px 9px}.reuse-body{padding:0 10px 12px}}
