/* Felt-inspired working surface, in BEE Novation's identity. */
.programme-workspace{--map-ink:#1e2f48;--map-muted:#738092;--map-border:#e8ebef;font-size:16px;color:var(--map-ink);background:#162b3d;min-height:100dvh}
.programme-workspace button,.programme-workspace select{font-size:14px;min-height:42px}
.map-header{height:80px;background:#fff;display:flex;align-items:center;padding:0 27px;gap:28px;border-bottom:1px solid var(--map-border);position:relative;z-index:5}
.map-brand{display:flex;align-items:center;padding-right:27px;border-right:1px solid var(--map-border)}.map-brand img{width:164px;height:39px;object-fit:contain}.map-programme-name{display:grid;gap:5px}.map-programme-name strong{font-size:16px;font-weight:750;letter-spacing:-.3px}.map-programme-name span{font-size:12px;color:var(--map-muted)}.map-header-tools{display:flex;align-items:center;gap:16px;margin-left:auto}.map-header-tools select{background:#f5f7fa;border:1px solid #e8ebef;width:190px;font-size:13px;padding:10px 12px}.map-header-tools .map-inbox{border:0;background:transparent;padding:10px}.map-demo-label{font-size:10px;letter-spacing:1.5px;color:#53637a;background:#f1f3f7;border-radius:5px;padding:6px 8px;font-weight:700}
.map-rail{position:absolute;left:0;top:80px;bottom:0;width:88px;min-height:600px;background:white;display:flex;flex-direction:column;align-items:center;gap:10px;padding:23px 10px;z-index:5;border-right:1px solid var(--map-border)}.map-rail a,.map-rail button{width:66px;min-height:67px;border:0;border-radius:11px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;color:#7a8698;background:transparent;transition:background .18s,color .18s}.map-rail span{font-size:12px;font-weight:600}.map-rail .icon{width:22px;height:22px}.map-rail a.active{background:#edf1fc;color:#3b5bc4}.map-rail a:hover,.map-rail button:hover{background:#f2f5fa;color:#263f72}.map-rail .rail-options{margin-top:auto}
.map-stage{position:relative;margin-left:88px;height:calc(100dvh - 80px);min-height:740px;overflow:hidden;background:#152b3e}.map-surface{position:absolute;inset:0;background:radial-gradient(ellipse at 60% 44%,#233e51 0,#142a3d 85%)}.map-grid{position:absolute;inset:0;opacity:.1;background-image:linear-gradient(#adc5d2 1px,transparent 1px),linear-gradient(90deg,#adc5d2 1px,transparent 1px);background-size:110px 110px;mask-image:linear-gradient(90deg,transparent 15%,#000)}#programme-geography{position:absolute;left:315px;top:0;width:calc(100% - 315px);height:100%;overflow:visible}.country{fill:#243c4e;stroke:#536a77;stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round}.country.south-africa{fill:url(#land-shade);stroke:#8197a2;stroke-width:1.3}.country-labels text{fill:#74909e;font-size:14px;letter-spacing:3px;font-weight:500;text-anchor:middle}.country-labels .sa-label{fill:#9eb2bc;font-size:19px;letter-spacing:6px}.country-labels .minor-label{font-size:10px;letter-spacing:1px}.country-labels .ocean-label{font-size:12px;letter-spacing:4px;fill:#66828f;font-style:italic}
.host-marker{cursor:pointer;outline:none}.marker-halo{fill:#a7d9da10;stroke:#b8dee51a;stroke-width:1}.marker-ring{fill:#152d41;stroke:#92b2c6;stroke-width:1.5}.marker-core{fill:#e5f3f3}.marker-number{fill:#204b51;font-family:inherit;font-size:14px;font-weight:800}.host-marker.needs-action .marker-core{fill:#f9d7a2}.host-marker.needs-action .marker-number{fill:#734719}.marker-label rect{fill:#fdfefe;stroke:#dde5e9;filter:drop-shadow(0 4px 6px #091c3b30)}.marker-host{font-size:12px;font-weight:750;fill:#24364e}.marker-city{font-size:10px;fill:#788494}.host-marker:hover .marker-ring,.host-marker:focus-visible .marker-ring,.host-marker.is-selected .marker-ring{stroke:#fff;stroke-width:3}.host-marker.is-selected .marker-halo{fill:#a7d9da20;stroke:#c4e8ea70}.host-marker:focus-visible .marker-label rect{stroke:#8cbbff;stroke-width:3}
.map-explorer{position:absolute;left:24px;top:24px;width:308px;background:#fff;border:1px solid #ffffff80;border-radius:16px;box-shadow:0 16px 60px #07182726;z-index:2;max-height:calc(100% - 195px);overflow:auto;scrollbar-width:thin}.explorer-heading{padding:27px 24px 21px}.map-kicker{font-size:10px;letter-spacing:1.55px;font-weight:700;color:#53637a;margin-bottom:15px}.explorer-heading h1{font-size:29px;line-height:1.18;letter-spacing:-1.1px;font-weight:750;color:#22374d}.explorer-heading p{font-size:13px;color:#53637a;margin-top:13px}.explorer-list{padding:0 12px}.explorer-host{display:flex;align-items:center;text-align:left;gap:12px;width:100%;background:transparent;border:0;border-top:1px solid #ecf0f3;border-radius:0;padding:19px 10px;justify-content:flex-start}.explorer-host:hover{background:#f5f8fb}.host-monogram{width:38px;height:40px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;font-size:12px;font-weight:750}.host-colour-0{background:#eaf0fb;color:#526dab}.host-colour-1{background:#e6f2ed;color:#528871}.host-colour-2{background:#f6eee3;color:#977648}.host-info{display:grid;gap:5px;min-width:0}.host-info strong{font-size:13px;font-weight:750;letter-spacing:-.2px}.host-info small{font-size:12px;color:#778696;font-weight:400}.host-completion{font-size:11px;color:#8a714c;margin-top:4px;font-weight:500;display:flex;align-items:center;gap:5px}.host-completion i{width:5px;height:5px;border-radius:50%;background:#c89653}.host-completion i.ready{background:#529781}.explorer-host>.icon{width:14px;height:14px;margin-left:auto;color:#9ba8b5}.explorer-foot{padding:16px 21px;background:#f8fafb;color:#53637a;font-size:11px;display:flex;align-items:center;gap:8px;border-top:1px solid #edf0f3}.explorer-foot .icon{width:15px;height:15px}
.map-top-summary{position:absolute;right:27px;top:26px;display:flex;gap:30px;z-index:1;border:1px solid #ffffff1d;background:#10273abb;backdrop-filter:blur(14px);border-radius:13px;padding:18px 24px;color:white}.map-top-summary>div{display:flex;flex-direction:column;gap:9px}.map-top-summary span{font-size:11px;color:#a5b8c7;white-space:nowrap}.map-top-summary strong{font-size:27px;font-weight:600;line-height:1;letter-spacing:-1px}.map-top-summary em{font-size:16px;color:#8da6b9;font-style:normal;font-weight:400;letter-spacing:0;margin-left:2px}.map-layers{position:absolute;top:26px;left:355px;display:flex;padding:4px;background:#fff;border-radius:10px;box-shadow:0 5px 25px #00142b20;z-index:2}.map-layers button{background:transparent;border:0;padding:8px 12px;color:#718093;font-size:12px;min-height:34px;border-radius:7px}.map-layers button.selected{color:#294da2;background:#edf2fc}.map-layers button:hover{background:#f1f4f8}
.map-insight{position:absolute;right:26px;bottom:138px;width:264px;padding:19px 21px;background:#102a3de8;border:1px solid #b1d1df27;border-radius:14px;box-shadow:0 10px 50px #071b2c25;color:#fff;backdrop-filter:blur(16px)}.insight-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px}.insight-heading>span{display:flex;align-items:center;gap:7px;color:#c0d3de}.insight-heading .icon{width:16px;height:16px}.insight-heading a{font-size:11px;color:#9ec4d7;display:flex;align-items:center;gap:5px}.insight-main{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.insight-main strong{font-size:38px;font-weight:550;letter-spacing:-1.6px;line-height:1.1}.insight-main strong>span{font-size:17px;letter-spacing:0;margin-left:4px;color:#89a5b7}.insight-main p{font-size:11px;color:#a3bac8;margin-top:6px}.insight-main svg{width:104px}.insight-note{font-size:12px;color:#a4ded0;margin-top:17px;line-height:1.7}.insight-note span{display:block;font-size:10px;color:#91aab9;margin-top:5px}.map-zoom{position:absolute;right:26px;top:149px;display:grid;gap:0;background:#fff;border-radius:10px;padding:3px;box-shadow:0 8px 25px #07182730;z-index:2}.map-zoom button{width:37px;min-height:38px;padding:9px;border:0;border-radius:7px}.map-zoom .icon{width:17px;height:17px}
.map-timeline{position:absolute;bottom:49px;left:calc(50% + 145px);transform:translateX(-50%);display:flex;align-items:center;gap:8px;border:1px solid #ffffff35;background:#fff;border-radius:13px;padding:8px 10px;box-shadow:0 12px 40px #07182736;z-index:2}.map-timeline>button{min-height:37px;padding:8px;border:0;background:transparent}.map-timeline>button .icon{width:17px;height:17px}.timeline-months{display:flex;position:relative;gap:4px}.timeline-months button{flex-direction:column;gap:7px;min-width:64px;border:0;background:transparent;font-size:12px;min-height:47px;padding:7px 14px;color:#7e8d9d;border-radius:8px}.timeline-months button.selected{color:#3659ad;background:#edf2fc}.timeline-months i{width:5px;height:5px;border-radius:50%;background:#d6deea}.timeline-months .selected i{background:#3b5bc4}.timeline-year{border-left:1px solid #e8edf2;margin-left:4px;padding:0 12px;font-size:12px;color:#53637a}.map-caption{position:absolute;bottom:15px;left:25px;right:25px;display:flex;justify-content:space-between;font-size:10px;color:#8aa4b5}.map-caption a{color:#90adbc}.map-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.map-attention{position:absolute;left:24px;bottom:50px;width:308px;border:1px solid #acc7d328;background:#193347dd;border-radius:12px;padding:4px 13px;color:#bed0db}.map-attention a{display:flex;gap:9px;align-items:center;padding:13px 0;font-size:11px}.map-attention a+a{border-top:1px solid #a3c4da1a}.map-attention a>.icon{width:16px;height:16px;color:#90adbe;flex-shrink:0}.map-attention a>.icon:last-child{margin-left:auto;width:12px}.map-attention strong{font-size:12px;font-weight:750;color:white}.map-attention a:hover{color:white}
.host-detail-head{padding:17px 22px 18px}.map-back{border:0!important;background:transparent!important;padding:0!important;color:#748899!important;justify-content:flex-start;font-weight:500;font-size:12px!important;min-height:30px!important;margin-bottom:13px}.map-back .icon{width:15px}.host-detail-head>.host-monogram{margin-bottom:13px}.host-detail-head h1{font-size:23px;letter-spacing:-.65px;line-height:1.25}.host-detail-head p{font-size:12px;color:#7b8998;margin-top:7px}.host-sector{font-size:10px;display:inline-block;margin-top:10px;border:1px solid #e3e9ef;padding:4px 8px;border-radius:5px;color:#718397}.host-detail-numbers{display:grid;grid-template-columns:1fr 1fr;margin:0 22px;padding:16px 0;border-top:1px solid #ebeff3;border-bottom:1px solid #ebeff3;gap:16px}.host-detail-numbers>div{display:grid;gap:6px}.host-detail-numbers strong{font-size:23px;font-weight:650;letter-spacing:-.6px}.host-detail-numbers em{font-size:13px;color:#8fa0b1;font-style:normal;letter-spacing:0}.host-detail-numbers span{font-size:10px;color:#83919d}.host-supervisor{padding:17px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px}.host-supervisor span{font-size:11px;color:#81909e}.host-supervisor strong{font-size:12px;font-weight:650}.map-team{padding:0 12px}.map-team h2{padding:8px 10px;font-size:13px;display:flex;gap:8px;align-items:center}.map-team h2 span{font-size:10px;color:#8b9aac;background:#f1f4f7;padding:3px 6px;border-radius:4px}.map-person{display:flex;gap:10px;align-items:center;text-align:left;justify-content:flex-start;width:100%;padding:12px 10px;border:0;border-radius:8px;background:transparent}.map-person>span:nth-child(2){display:grid;gap:4px}.map-person strong{font-size:12px;font-weight:650}.map-person small{font-size:10px;font-weight:400;color:#82909f}.map-person>.icon{margin-left:auto;width:13px;height:13px;color:#96a4b3}.map-avatar{width:29px;height:29px;border-radius:50%;background:#f0f4f9;display:grid;place-items:center;font-size:9px;font-weight:650;color:#7286a0;flex-shrink:0}.host-detail-foot{display:flex;justify-content:space-between;gap:12px;padding:18px 22px;background:#f7f9fb;margin-top:12px}.host-detail-foot span{font-size:10px;line-height:1.5;color:#8594a2;max-width:140px}.host-detail-foot strong{font-size:14px;white-space:nowrap;align-self:center}
@media(min-width:1600px){.map-stage{min-height:800px}.map-explorer{width:332px}.explorer-heading{padding:31px 28px}.explorer-heading h1{font-size:33px}.explorer-host{padding:23px 12px}.host-info strong{font-size:15px}.host-info small{font-size:13px}.host-completion{font-size:12px}.map-layers{left:382px}.map-attention{width:332px}.map-top-summary{gap:40px;padding:21px 30px}.map-top-summary span{font-size:13px}.map-top-summary strong{font-size:32px}.map-insight{width:288px}.map-timeline{bottom:55px}}
@media(max-width:1250px){.map-top-summary{gap:20px;padding:16px 20px}.map-layers{top:139px;left:355px}.map-insight{width:230px;right:22px;padding:17px}.map-programme-name span{max-width:240px}.map-header{gap:20px;padding:0 22px}.map-brand{padding-right:20px}.map-header-tools{gap:10px}.map-demo-label{display:none}.map-stage{min-height:770px}.map-insight{bottom:145px}.map-timeline{left:calc(50% + 154px)}}
@media(max-width:950px){.map-header{gap:16px;padding:0 18px}.map-brand{padding-right:16px}.map-brand img{width:135px}.map-programme-name span{display:none}.map-programme-name strong{font-size:14px}.map-header-tools select{width:165px}.map-rail{width:76px;padding:20px 5px}.map-stage{margin-left:76px}.map-explorer{left:17px;width:265px}.explorer-heading{padding:24px 20px}.explorer-heading h1{font-size:26px}.host-monogram{width:32px;height:35px;font-size:10px}.explorer-host{gap:9px}.host-info strong{font-size:12px}.explorer-host>.icon{display:none}.map-attention{left:17px;width:265px}.map-attention a{font-size:10px}.map-layers{left:303px}.map-top-summary{right:18px}.map-insight{width:220px;right:18px}#programme-geography{left:185px;width:calc(100% - 185px)}.map-timeline{left:calc(50% + 130px);gap:0}.timeline-months button{min-width:48px;padding:7px 10px}.timeline-year{padding:0 7px}.map-caption{left:18px;right:18px;font-size:9px}}
@media(max-width:700px){.programme-workspace{background:#f2f5f8}.map-header{height:auto;min-height:75px;flex-wrap:wrap;padding:16px;gap:13px}.map-brand{border:0;padding:0}.map-brand img{width:139px;height:31px}.map-programme-name{margin-left:auto}.map-programme-name strong{font-size:13px}.map-header-tools{width:100%;justify-content:space-between;gap:10px}.map-header-tools select{width:calc(100% - 55px);max-width:none}.map-header-tools .map-inbox{border:1px solid #e5ebf2;background:#f6f8fa}.map-rail{position:static;min-height:0;width:100%;flex-direction:row;padding:6px 10px;gap:4px;justify-content:space-between;border-bottom:1px solid #e4eaf1}.map-rail a,.map-rail button{width:auto;flex:1;min-height:57px;gap:5px;padding:6px;max-width:83px}.map-rail span{font-size:10px}.map-rail .icon{width:18px;height:18px}.map-rail .rail-options{margin:0}.map-stage{height:auto;min-height:0;margin:0;display:flex;flex-direction:column;overflow:hidden;padding:0 16px 50px;background:#183145}.map-surface{position:relative;order:2;width:calc(100% + 32px);margin:0 -16px;height:445px;flex-shrink:0}.map-grid{inset:0}#programme-geography{left:0;top:0;width:100%;height:100%}.map-top-summary{order:0;position:relative;inset:auto;justify-content:space-around;gap:20px;border:0;border-bottom:1px solid #ffffff20;background:transparent;border-radius:0;padding:24px 0;box-shadow:none}.map-top-summary span{font-size:11px}.map-top-summary strong{font-size:25px}.map-layers{order:1;position:relative;inset:auto;width:max-content;align-self:center;margin-top:19px;z-index:2}.map-layers button{font-size:12px}.map-zoom{right:16px;top:181px}.map-zoom button{min-height:37px}.map-timeline{order:3;position:relative;inset:auto;transform:none;width:100%;justify-content:center;margin:-8px 0 22px;gap:7px;box-shadow:0 8px 30px #00192d22}.timeline-months{flex:1;justify-content:center}.timeline-months button{flex:1;font-size:13px}.timeline-year{font-size:12px;padding:0 10px}.map-explorer{order:4;position:relative;inset:auto;width:100%;max-height:none;overflow:visible}.explorer-heading{padding:24px}.explorer-heading h1{font-size:28px}.explorer-heading h1 br{display:none}.explorer-heading p{font-size:14px}.map-kicker{font-size:11px}.explorer-host{padding:20px 12px;gap:13px}.host-info strong{font-size:14px}.host-info small{font-size:13px}.host-completion{font-size:12px}.host-monogram{width:40px;height:42px;font-size:12px}.explorer-host>.icon{display:block}.explorer-foot{font-size:12px;padding:18px 24px}.map-attention{order:5;position:relative;inset:auto;width:100%;margin-top:18px}.map-attention a{font-size:12px;padding:16px 0}.map-attention strong{font-size:14px}.map-insight{order:6;position:relative;inset:auto;width:100%;margin-top:18px;padding:22px}.insight-heading{font-size:14px}.insight-heading a{font-size:13px}.insight-main p{font-size:13px}.insight-note{font-size:13px}.insight-note span{font-size:12px}.insight-main svg{width:150px}.map-caption{bottom:17px;font-size:9px;gap:14px}.map-person{padding:15px 12px}.map-person strong{font-size:14px}.map-person small{font-size:12px}.map-team h2{font-size:14px}.map-avatar{width:35px;height:35px;font-size:11px}.host-detail-head h1{font-size:27px}.host-detail-head p{font-size:14px}.host-detail-numbers span,.host-supervisor span,.host-detail-foot span{font-size:12px}.host-supervisor strong{font-size:14px}.host-sector{font-size:12px}.host-detail-foot span{max-width:200px}.host-detail-head{padding:20px 24px}.host-detail-numbers{margin:0 24px}.host-supervisor{padding:20px 24px}}
@media(prefers-reduced-motion:no-preference){.map-explorer{animation:explorer-arrive .45s cubic-bezier(.2,.7,.3,1)}.map-insight{animation:insight-arrive .45s ease-out}.host-marker .marker-ring{transition:stroke .2s,stroke-width .2s}.map-layers button,.timeline-months button{transition:background .2s,color .2s}@keyframes explorer-arrive{from{opacity:.7;translate:-8px 0}to{opacity:1;translate:0 0}}@keyframes insight-arrive{from{opacity:.5;translate:0 6px}to{opacity:1;translate:0 0}}}
#programme-geography{cursor:grab;touch-action:none}#programme-geography.dragging{cursor:grabbing}.marker-label rect{filter:none}.marker-host{font-size:12px}.marker-city{font-size:11px}
@media(max-width:700px){.marker-label{transform:translate(-68px,27px)}.marker-label rect{width:136px;height:35px;rx:7px}.marker-host{display:none}.marker-city{font-size:13px;transform:translate(0,-19px)}.country-labels .sa-label{font-size:30px;letter-spacing:4px}.country-labels text{font-size:19px}.country-labels .minor-label{font-size:18px}.country-labels .ocean-label{font-size:18px}}
@media(max-width:700px){.host-marker[data-map-action="host:0"] .marker-label{transform:translate(-150px,-18px)}}
#programme-geography{overflow:hidden}.explorer-foot{border-radius:0 0 16px 16px}.host-info strong,.marker-host{font-size:14px}.host-info strong{line-height:1.4}
@media(max-width:950px) and (min-width:701px){.host-info strong{font-size:12px}}
@media(max-width:700px){.map-surface{overflow:hidden}.map-explorer{scroll-margin-top:16px}}
@media(max-width:700px){.map-rail{overflow-x:auto;justify-content:flex-start}.map-rail a,.map-rail button{flex:0 0 54px;max-width:none}.map-rail span{white-space:nowrap}}
/* The map as the Home dashboard inside the standard workspace, with the same
   sidebar as every other page rather than a header and rail of its own. */
.content:has(> .programme-workspace.embedded){max-width:none;padding:0}
.programme-workspace.embedded{min-height:0}
.programme-workspace.embedded .map-stage{margin-left:0;height:calc(100dvh - 77px);min-height:640px}
@media(max-width:700px){.programme-workspace.embedded .map-stage{height:auto;min-height:0}}
/* Nothing sits under the host list on the dashboard, so it may use the height. */
.programme-workspace.embedded .map-explorer{max-height:calc(100% - 80px)}
