.hmp-map{position:relative;isolation:isolate;border:1px solid #58756f88;border-radius:13px;overflow:hidden;background:#223e34;box-shadow:inset 0 1px 1px #c9ffda25,0 10px 24px #0003;min-height:300px}
.hmp-map .maplibregl-canvas:focus-visible{outline:2px solid #ff85bd;outline-offset:-3px}
.hmp-map .maplibregl-ctrl-group{background:linear-gradient(135deg,#17283d,#0e182b);border:1px solid #53698c;border-radius:10px;box-shadow:0 4px 10px #0005;overflow:hidden}
.hmp-map .maplibregl-ctrl-group button+button{border-color:#3c526e}
.hmp-map .maplibregl-ctrl-group button{width:38px;height:38px}
.hmp-map .maplibregl-ctrl-icon{filter:invert(1)}
.hmp-map .maplibregl-ctrl-attrib{background:#0d1b2de8;color:#c6dce9;font:10px/1.6 'Segoe UI',sans-serif;border-radius:5px;max-width:calc(100% - 12px)}
.hmp-map .maplibregl-ctrl-attrib a{color:#d9eaf4}
.hmp-map .maplibregl-marker{z-index:2}
.hmp-map .hmp-pin.maplibregl-marker{position:absolute}
.hmp-map .maplibregl-marker:has([aria-pressed=true]){z-index:4}
.hmp-pin{display:block;position:relative;width:44px;height:51px;border:0;padding:0;background:transparent;color:#f3f7ff;cursor:pointer;overflow:visible;box-shadow:none;touch-action:manipulation}
.hmp-pin-visual{position:absolute;left:4px;bottom:0;width:36px;height:47px;transform-origin:50% 88%;filter:drop-shadow(0 4px 4px #0005)}
.hmp-pin-svg{display:block;overflow:visible}
.hmp-pin-label{position:absolute;left:50%;top:calc(100% + 3px);transform:translateX(-50%);white-space:nowrap;font:12px/1.3 'Segoe UI',sans-serif;font-weight:550;color:#edf5ff;background:#102037dc;padding:4px 7px;border-radius:6px;border:1px solid #91b9c222;box-shadow:0 3px 7px #0004;pointer-events:none;max-width:145px;text-overflow:ellipsis;overflow:hidden}
.hmp-pin[aria-pressed=true] .hmp-pin-label{color:#fff;background:#b21560e8;border-color:#ff85be;box-shadow:0 0 12px #ff33943b}
.hmp-pin[aria-pressed=true] .hmp-pin-visual{filter:drop-shadow(0 0 7px #ff55a788) drop-shadow(0 5px 5px #0005)}
.hmp-pin:hover .hmp-pin-visual{filter:drop-shadow(0 0 6px #ffffff55) drop-shadow(0 4px 4px #0005)}
.hmp-pin:focus-visible{outline:2px solid #fff1b4;outline-offset:5px;border-radius:13px}
.hmp-count{position:absolute;right:-8px;top:3px;display:grid;place-items:center;min-width:21px;height:21px;border-radius:12px;background:#112236;color:#fff;border:1px solid #a6bedf;font:600 11px 'Segoe UI',sans-serif;padding:0 4px}
.hmp-popup-job{display:block;margin-top:8px;width:100%;background:#1e304b;border:1px solid var(--hmp-pin-color);border-left:5px solid var(--hmp-pin-color);border-radius:6px;color:#eaf2ff;padding:8px;text-align:left;cursor:pointer}
.hmp-cluster-fan{position:absolute;left:-14px;top:2px;display:flex;gap:0;align-items:flex-end;filter:drop-shadow(0 2px 3px #0006)}
.hmp-cluster-fan>span{width:14px;display:block;transform:rotate(-12deg)}
.hmp-cluster-fan svg{width:24px;height:31px}
.hmp-mixed-cluster .hmp-pin-visual>.hmp-pin-svg{opacity:0}
.hmp-striped-pin .hmp-pin-visual::after{content:'';position:absolute;inset:5px 6px 16px;border-radius:50%;background:repeating-linear-gradient(45deg,transparent 0 4px,#0009 4px 7px);pointer-events:none}
.hmp-pin-label[hidden]{display:none}
.hmp-map .maplibregl-popup-content{background:#102037;color:#e3f0ff;border:1px solid #3c5679;border-radius:12px;box-shadow:0 7px 24px #0007;font:13px/1.5 'Segoe UI',sans-serif;padding:12px 15px;max-width:240px}
.hmp-map .maplibregl-popup-tip{border-top-color:#102037}
.hmp-map .maplibregl-popup-close-button{color:#eaf2ff;padding:4px 8px;font-size:17px}
.hmp-map-status{position:absolute;z-index:5;inset:auto 12px 33px 12px;padding:9px 12px;background:#0d1b2de8;color:#d6e8f4;border:1px solid #566f8a;border-radius:8px;font:12px/1.5 'Segoe UI',sans-serif;pointer-events:none}
.hmp-map-status[hidden]{display:none}
.hmp-map .maplibregl-ctrl-attrib-button{filter:invert(1)}
@media(pointer:coarse){.hmp-map .maplibregl-ctrl-group button{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){.hmp-pin-visual{animation:none!important;transition:none!important}}

.hmp-day{position:absolute;left:5px;top:8px;width:26px;display:grid;justify-items:center;gap:0;color:#112037;text-shadow:0 1px 1px #ffffffaa;pointer-events:none;font:700 8px/1.05 "Segoe UI",sans-serif}
.hmp-day strong{font-size:12px;line-height:1.15;font-weight:750}
.hmp-pin.hmp-preview.maplibregl-marker{z-index:7}
.hmp-preview .hmp-day{color:#ffd4e8;text-shadow:none}
.hmp-preview .hmp-pin-label{max-width:230px;border:2px dashed #ff4fa3;background:#1e2037ed;color:#ffd4e8;padding:4px 7px}
.hmp-preview .hmp-pin-visual{filter:drop-shadow(0 0 5px #ff4fa344)}
.hmp-preview[aria-pressed=true] .hmp-pin-label{background:#1e2037ed;border-color:#ff4fa3}
.hmp-mixed-cluster .hmp-day{left:-1px;top:-19px;width:38px;padding:3px;border-radius:7px;background:#132239ee;color:#f2f6ff;text-shadow:none;border:1px solid #8ea1c170}
.hmp-pin[aria-pressed=true].maplibregl-marker{z-index:5}

/* A cluster may span several real dates. List them separately from its job count. */
.hmp-pin.hmp-multiple-dates .hmp-day{left:50%;top:auto;bottom:31px;transform:translateX(-50%);width:max-content;min-width:53px;max-width:150px;gap:2px;padding:4px 6px;border-radius:7px;background:#131a2af5;color:#f2f6ff!important;text-shadow:none!important;border:1px solid #9aabc299;font:600 9px/1.2 'Segoe UI',sans-serif;box-shadow:0 2px 6px #0006;white-space:nowrap}
.hmp-pin.hmp-multiple-dates .hmp-count{top:24px;right:-10px;z-index:1}

/* One count replaces date lists, duplicate captions and fans of overlapping pins. */
.hmp-pin.hmp-cluster{width:44px;height:44px}
.hmp-cluster .hmp-pin-visual{left:3px;bottom:3px;width:38px;height:38px;border-radius:50%;background:var(--hmp-cluster-ring,var(--hmp-pin-color));padding:3px;box-sizing:border-box;filter:drop-shadow(0 3px 4px #0006)}
.hmp-cluster .hmp-pin-svg{display:none}
.hmp-cluster .hmp-count{position:static;display:grid;width:32px;height:32px;min-width:0;padding:0;box-sizing:border-box;border:1px solid #ffffff88;border-radius:50%;background:#152336;color:#fff;font:700 14px/1 'Segoe UI',sans-serif}
.hmp-cluster .hmp-pin-label{display:none}
.hmp-cluster:hover .hmp-pin-visual,.hmp-cluster[aria-pressed=true] .hmp-pin-visual{outline:2px solid #fff;outline-offset:2px}

body.hd-main-map-fullscreen{overflow:hidden}
#horizon-booking-demo .hd-map-column .hd-map:is(:fullscreen,.hd-map-expanded){position:fixed;inset:0;z-index:10000;width:100%;height:100dvh;min-height:0;max-height:none;margin:0;border:0;border-radius:0;flex:none;box-sizing:border-box}
#horizon-booking-demo .hd-map:is(:fullscreen,.hd-map-expanded) .hd-map-actions{bottom:48px;right:57px}
#horizon-booking-demo #hd-map-fullscreen[aria-pressed=true]{border:2px solid currentColor;font-weight:700;box-shadow:0 2px 10px #0005}

/* Compact independent basemap choice, inside the map's own control corner. */
#horizon-booking-demo .hmp-map .hmp-style-control{display:flex;align-items:center;gap:7px;max-width:calc(100vw - 50px);padding:5px 7px 5px 10px;border:1px solid #a0b0c88c;border-radius:9px;background:#142238ed;color:#edf3fb;box-shadow:0 3px 9px #0003;font:600 11px/1.2 'Segoe UI',sans-serif;pointer-events:auto}
#horizon-booking-demo .hmp-map .hmp-style-control span{white-space:nowrap}
#horizon-booking-demo .hmp-map .hmp-style-control .hmp-style-select{width:145px;max-width:100%;height:30px;min-height:30px;margin:0;padding:4px 23px 4px 8px;border:1px solid #8195b466;border-radius:5px;background:#24344c;color:#fff;font:400 12px/1.3 'Segoe UI',sans-serif;box-shadow:none;color-scheme:dark;cursor:pointer}
#horizon-booking-demo .hmp-map .hmp-style-control .hmp-style-select option{background:#fff;color:#192032}
#horizon-booking-demo .hmp-map .hmp-style-control select:focus-visible{outline:2px solid #e8bdd8;outline-offset:2px}
@media(max-width:760px){#horizon-booking-demo .hmp-map .hmp-style-control{gap:5px;padding:4px 6px}#horizon-booking-demo .hmp-map .hmp-style-control .hmp-style-select{width:132px;height:34px;min-height:34px}}
html #horizon-booking-demo[data-horizon-theme] .hmp-map .hmp-style-control>span{color:#edf3fb}

/* Keep appearance choices together in the map's bottom-left corner. */
#horizon-booking-demo .hmp-map .hmp-style-control{position:relative;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;gap:0;flex:none}
#horizon-booking-demo .hmp-map .hmp-style-control>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#horizon-booking-demo .hmp-map .hmp-style-control .hmp-style-select{width:135px;height:32px;min-height:32px;padding:5px 25px 5px 9px;border-radius:7px;font-size:11px}
#horizon-booking-demo .hmp-map .maplibregl-ctrl-bottom-left{bottom:12px;left:12px;max-width:calc(100% - 70px)}
#horizon-booking-demo .hmp-map{container: hq-map / inline-size}
@container hq-map (max-width:700px){
 #horizon-booking-demo .hd-map.hmp-map .hd-map-actions{bottom:64px}
}
#horizon-booking-demo .hmp-map .maplibregl-ctrl-attrib{margin:0 0 0 10px;max-width:calc(100% - 10px);font-size:9px;line-height:1.5;white-space:normal}
@media(max-width:760px){#horizon-booking-demo .hmp-map .hmp-style-control .hmp-style-select{width:128px;min-height:34px;height:34px}}

/* Keep provider links visible above the planner title instead of covering roads. */
#horizon-booking-demo .hd-map-column>.hd-map-credit-row{position:relative;flex:none;order:-1;display:block;max-width:100%;margin:0 0 9px;min-height:15px;color:var(--hd-secondary);font:10px/1.5 'Segoe UI',sans-serif;overflow-wrap:anywhere}
#horizon-booking-demo .hd-map-credit-row .maplibregl-ctrl-attrib{position:static;float:none;display:block;margin:0;padding:0;border:0;background:transparent!important;color:inherit;box-shadow:none;font:inherit;white-space:normal;max-width:100%}
#horizon-booking-demo .hd-map-credit-row .maplibregl-ctrl-attrib a{color:inherit;text-decoration:none}
#horizon-booking-demo .hd-map-credit-row .maplibregl-ctrl-attrib a:hover{text-decoration:underline}
#horizon-booking-demo .hd-map-credit-row[hidden]{display:none!important}

/* Independent pin shapes keep the original date/colour and click target. */
#horizon-booking-demo .hmp-map .hmp-style-control{gap:6px;flex-wrap:wrap;max-width:100%}
#horizon-booking-demo .hmp-map .hmp-style-control .hmp-pin-style-select{width:128px}
#horizon-booking-demo[data-horizon-theme] .hmp-pin[data-pin-style]:not([data-pin-style="theme"]):not(.hmp-cluster) .hmp-day{left:5px;top:8px;width:26px;gap:0;font:700 9px/1.05 "Segoe UI",sans-serif;text-shadow:none!important}
#horizon-booking-demo[data-horizon-theme] .hmp-pin[data-pin-style]:not([data-pin-style="theme"]):not(.hmp-cluster) .hmp-day strong{font-size:13px;line-height:1.15;font-weight:750}
@media(max-width:760px){#horizon-booking-demo .hmp-map .hmp-style-control .hmp-pin-style-select{width:116px}}

/* Pole flags keep their location at the original bottom-centre anchor. */
#horizon-booking-demo[data-horizon-theme] .hmp-pin[data-pin-style]:is([data-pin-style="rectangle-flag"],[data-pin-style="wave-flag"]):not(.hmp-cluster) .hmp-day{left:22px;top:8px;width:26px}
