/* v22: fixed-size labels, an expandable reader and unobtrusive conversation. */
.policy-pin span,.policy-pin.selected span{display:none!important}
.policy-nameplates{position:absolute;inset:0;z-index:12;pointer-events:none}
.policy-nameplate{position:absolute;display:flex;align-items:flex-start;gap:5px;padding:6px 0;white-space:normal;height:auto;min-height:44px;background:none;pointer-events:auto;text-align:left}
.policy-nameplate b{display:grid;place-items:center;flex:0 0 29px;height:29px;border-radius:50%;background:var(--pin);color:white;font-size:14px;box-shadow:0 0 0 2px #fffdf5,0 2px 5px #224e3e25}
.policy-nameplate em{flex:1;min-width:0;font-style:normal;font-size:15px;font-weight:600;line-height:21px;padding:4px 8px;white-space:normal;overflow-wrap:anywhere;border-radius:7px;background:#fffdf5f5;color:#254f43;text-overflow:clip;overflow:visible;box-shadow:0 2px 7px #244d3520}
.policy-nameplate.is-selected b{outline:2px solid #edb63c;outline-offset:3px}
.policy-nameplate:focus-visible{outline:2px solid #087d68;border-radius:8px}
.city-art .landmark-label.map-landmark,.city-art.is-3d .landmark-label.map-landmark{height:30px;min-height:30px;line-height:22px;padding:3px 8px}
.actor-chat{position:absolute;z-index:19;max-width:245px;width:max-content;padding:11px 15px;border:1.5px solid #a2c6af;border-radius:17px 17px 17px 5px;background:#fffdf5;color:#205b47;box-shadow:0 5px 16px #244f3826;font-size:17px;line-height:1.55;font-weight:650;pointer-events:none}
.actor-chat:after{content:'';position:absolute;bottom:-7px;left:18px;width:12px;height:12px;background:#fffdf5;border-right:1.5px solid #a2c6af;border-bottom:1.5px solid #a2c6af;transform:skewY(-35deg)}
.actor-chat[data-side=left]{border-radius:17px 17px 5px 17px}.actor-chat[data-side=left]:after{left:auto;right:18px;transform:skewY(35deg)}
[data-phase=night] .actor-chat{background:#213c4b;color:#fff0c8;border-color:#749b98}[data-phase=night] .actor-chat:after{background:#213c4b;border-color:#749b98}
#drawerResize{display:none}#overviewCamera{width:60px;font-size:16px}
.landmark-address{font-size:15px;line-height:1.6;margin:10px 0}.landmark-address a{display:inline-block;color:#087c68;padding:5px 0;font-weight:600}
@media(min-width:800px){
 #explorer:not([data-reader-view=team]):not([data-reader-view=arrival]){inset:16px 18px 16px auto;height:calc(100dvh - 32px);max-height:none;width:410px;border-radius:18px}
 #explorer:not([data-reader-view=team]):not([data-reader-view=arrival]) #drawerContent{padding:18px 22px 26px}
 #explorer:not([data-reader-view=team]):not([data-reader-view=arrival]) .detail-title{font-size:26px}
 body:has(#explorer[open]:not([data-reader-view=team]):not([data-reader-view=arrival])) .view-tools{right:450px;bottom:26px}
 body:has(#explorer[open]:not([data-reader-view=team]):not([data-reader-view=arrival])) .map-compass{right:456px;bottom:90px}
 body:has(#explorer[open]:not([data-reader-view=team]):not([data-reader-view=arrival])) .map-main-actions,body:has(#explorer[open]:not([data-reader-view=team]):not([data-reader-view=arrival])) .active-route{left:calc((100% - 190px)/2)}
}
@media(max-width:799px){
 .actor-chat{max-width:min(230px,calc(100vw - 40px));font-size:16px;padding:9px 12px}
 #explorer[data-can-expand=true] #drawerResize{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0;background:none;font-size:20px;color:#63836e;touch-action:none;margin-left:auto}
 #explorer[data-expanded=true]{height:50dvh;max-height:50dvh}
 body:has(#explorer[open][data-expanded=true]) .view-tools{bottom:calc(50dvh + 89px)}
 #overviewCamera{width:52px;font-size:15px}.view-tools #resetCamera{width:52px}
 .policy-nameplate em{font-size:14px}
}

/* v24: clear category contrast and readable map-edge navigation. */
#cityArt .policy-pin.muted{opacity:.14;filter:grayscale(1)}
.policy-leaders{position:absolute;inset:0;width:100%;height:100%;z-index:11;pointer-events:none}
.policy-leaders path{fill:none;stroke-width:1.3;opacity:.7;stroke-linecap:round}
@media(min-width:800px){
 .map-nav,.island-app[data-phase=night] .map-nav{background:#fffdf5;border:1px solid #cbdcc9;border-radius:18px;padding:14px 12px;box-shadow:0 7px 24px #234e3220;top:116px;left:18px;width:228px;max-height:calc(100dvh - 132px)}
 .reader-open .map-nav{opacity:1}
 .map-nav p{color:#56715c}.map-nav .nav-divider{width:100%;margin:9px 0 5px}
 .map-nav button{color:#294e3f}
}

/* Give the desktop policy navigation and reader enough room for one-line titles. */
@media(min-width:1200px){
 .map-nav,.island-app[data-phase=night] .map-nav{width:330px}
 .map-nav button{font-size:18px}
 .map-nav #blueprintNav button span{white-space:nowrap}
 #explorer:not([data-reader-view=team]):not([data-reader-view=arrival]){width:490px}
 #explorer:not([data-reader-view=team]):not([data-reader-view=arrival]) .policy-card h3{font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #explorer:not([data-reader-view=team]):not([data-reader-view=arrival]) .policy-card .theme-tag{font-size:13px}
 body:has(#explorer[open]:not([data-reader-view=team]):not([data-reader-view=arrival])) .view-tools{right:530px}
 body:has(#explorer[open]:not([data-reader-view=team]):not([data-reader-view=arrival])) .map-compass{right:536px}
 body:has(#explorer[open]:not([data-reader-view=team]):not([data-reader-view=arrival])) .map-main-actions,
 body:has(#explorer[open]:not([data-reader-view=team]):not([data-reader-view=arrival])) .active-route{left:calc((100% - 170px)/2)}
}

/* Keep the walking character above map markers, while navigation remains above the map. */
.city-art .world-actor{z-index:13}
@media(min-width:800px){.map-nav{z-index:15}}

/* Lift daytime map detail on phones without flattening the illuminated night scene. */
@media(max-width:799px){
 .city-art.is-3d[data-phase=dawn] .city-canvas,
 .city-art.is-3d[data-phase=noon] .city-canvas{filter:brightness(1.08) saturate(1.025)}
 .city-art.is-3d[data-phase=dusk] .city-canvas{filter:brightness(1.04)}
}

/* The single view reset and the policy-only label switch leave landmarks visible. */
.view-tools #overviewCamera,.view-tools #policyVisibilityToggle{width:auto;min-width:64px;min-height:44px;padding:0 12px;font-size:16px;font-weight:750;white-space:nowrap}
.view-tools #policyVisibilityIcon{font-size:18px;margin-right:2px;vertical-align:-1px}
.view-tools #policyVisibilityToggle[aria-pressed=true]{background:#236b5b;color:#fff;border-color:#236b5b}
.city-art[data-policy-markers-hidden=true] .policy-pins,
.city-art[data-policy-markers-hidden=true] .policy-nameplates,
.city-art[data-policy-markers-hidden=true] .policy-leaders{display:none!important}
@media(max-width:799px){.view-tools #overviewCamera,.view-tools #policyVisibilityToggle{min-height:44px;font-size:15px}.view-tools{width:auto;flex-wrap:nowrap}}
