.city-viewport{position:relative;min-width:0;min-height:0;overflow:hidden;isolation:isolate;background:#81939d}
.city-viewport .city-canvas,.city-map-overlay{display:block;position:absolute;inset:0;width:100%;height:100%}
.city-canvas{touch-action:none;cursor:grab}.city-canvas:active{cursor:grabbing}.city-canvas:focus-visible{outline:2px solid #bbd6c5;outline-offset:-3px}
.city-map-overlay,.city-map-pane{pointer-events:none;overflow:hidden}.city-map-pane{position:absolute;top:0;bottom:0}
.city-map-overlay [hidden]{display:none!important}
.city-map-pane .city-pin,.city-map-pane .city-job-pin{position:absolute;pointer-events:auto;transform:translate(-50%,-100%);background:rgba(22,40,45,.89);border:1px solid #93a4a0;border-radius:2px;display:flex;align-items:center;gap:6px;min-height:22px;padding:3px 7px;color:#edf4ed;white-space:nowrap;font:560 clamp(10px,.72vw,13px)/1.35 var(--sans,'Yu Gothic UI',sans-serif);letter-spacing:.025em;box-shadow:0 1px 3px #06101455}
.city-map-pane .city-pin::after{content:'';position:absolute;left:50%;top:100%;height:7px;border-left:1px solid #c6d5c4}
.city-map-pane .city-pin::before{content:'';width:4px;height:4px;background:#b0d0b7}
.city-map-pane .city-pin[data-alarm=true]{border-color:#d6af83}.city-map-pane .city-pin[data-alarm=true]::before{background:#e9b27e}
.city-map-pane .city-pin[data-selected=true],.city-map-pane .city-pin:focus-visible,.city-map-pane .city-pin:hover{background:#29473f;border-color:#d4e9d6;z-index:2}
.city-pin-state{font-size:.87em;color:#f0cfaa}.city-map-pane .city-job-pin{color:#e6e7da;background:#2c3936e8;z-index:3;transform:translate(-50%,0);border-color:#afc9ad;font-size:10px}
.city-map-tooltip,.city-map-cue,.city-map-legend{position:absolute;color:#eaf0e9;background:#17272de0;border-left:2px solid #a5c3ab;line-height:1.4;padding:5px 9px;font-size:11px;z-index:4;max-width:83%}
.city-map-cue{bottom:12px;left:14px;font-size:12px}.city-map-legend{top:13px;left:14px;font-size:13px;font-weight:620}
.city-map-divider{position:absolute;top:0;bottom:0;left:50%;width:1px;background:#e1e4d1a8}.city-map-north{position:absolute;bottom:16px;right:15px;display:grid;place-items:center;width:25px;height:25px;border:1px solid #adbfbb9c;border-radius:50%;font:600 10px monospace;color:#f0f2e9;background:#293c4199}.city-map-north::before{content:'▴';position:absolute;top:-8px}.city-pin-state{color:#bacac5;font-family:Consolas,monospace;padding-left:5px;border-left:1px solid #617c76}.city-pin[data-alarm=true] .city-pin-state{color:#f2c997}
