@defra/interactive-map 0.0.30-alpha → 0.0.32-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/README.md +2 -2
  2. package/assets/images/bright-ofm-thumb.jpg +0 -0
  3. package/assets/images/dark-ofm-thumb.jpg +0 -0
  4. package/assets/images/road-ofm-thumb.jpg +0 -0
  5. package/assets/templates/add-polygons.njk +143 -0
  6. package/assets/templates/add-symbols.njk +119 -0
  7. package/assets/templates/{map.njk → basic-map.njk} +9 -17
  8. package/assets/templates/button-map.njk +56 -0
  9. package/assets/templates/draw-tools.njk +161 -0
  10. package/assets/templates/marker-panel.njk +91 -0
  11. package/assets/templates/place-marker.njk +104 -0
  12. package/assets/templates/search-control.njk +98 -0
  13. package/assets/templates/select-feature.njk +101 -0
  14. package/assets/templates/style-switcher.njk +87 -0
  15. package/assets/templates/toggle-marker-label.njk +74 -0
  16. package/dist/css/index.css +1 -1
  17. package/dist/esm/im-core.js +1 -1
  18. package/dist/esm/im-shell.js +1 -1
  19. package/dist/umd/im-core.js +1 -1
  20. package/dist/umd/index.js +1 -1
  21. package/docs/api/context.md +4 -4
  22. package/docs/api.md +166 -37
  23. package/docs/assets/css/docusaurus.scss +36 -4
  24. package/docs/assets/images/add-polygons.jpg +0 -0
  25. package/docs/assets/images/add-symbols.jpg +0 -0
  26. package/docs/assets/images/basic-map.jpg +0 -0
  27. package/docs/assets/images/button-first.jpg +0 -0
  28. package/docs/assets/images/deuteranopia-ozs-map-thumb.jpg +0 -0
  29. package/docs/assets/images/draw.jpg +0 -0
  30. package/docs/assets/images/marker-panel.jpg +0 -0
  31. package/docs/assets/images/night-ozs-map-thumb.jpg +0 -0
  32. package/docs/assets/images/outdoor-ozs-map-thumb.jpg +0 -0
  33. package/docs/assets/images/place-marker.jpg +0 -0
  34. package/docs/assets/images/screenshot.jpg +0 -0
  35. package/docs/assets/images/search.jpg +0 -0
  36. package/docs/assets/images/select-feature.jpg +0 -0
  37. package/docs/assets/images/style-switcher.jpg +0 -0
  38. package/docs/assets/images/toggle-marker-label.jpg +0 -0
  39. package/docs/assets/images/tritanopia-ozs-map-thumb.jpg +0 -0
  40. package/docs/examples/add-marker-with-panel.mdx +3 -3
  41. package/docs/examples/add-polygons.mdx +225 -0
  42. package/docs/examples/add-symbols.mdx +177 -0
  43. package/docs/examples/basic-map.mdx +2 -2
  44. package/docs/examples/draw-tools.mdx +271 -0
  45. package/docs/examples/index.mdx +95 -11
  46. package/docs/examples/place-marker.mdx +151 -0
  47. package/docs/examples/search-control.mdx +71 -0
  48. package/docs/examples/select-feature.mdx +146 -0
  49. package/docs/examples/style-switcher.mdx +135 -0
  50. package/docs/examples/toggle-marker-label.mdx +3 -3
  51. package/docs/plugins/datasets.md +157 -122
  52. package/docs/plugins/interact.md +1 -4
  53. package/docusaurus.config.cjs +9 -2
  54. package/govuk-prototype-kit.config.json +52 -2
  55. package/package.json +1 -1
  56. package/plugins/beta/datasets/dist/css/index.css +5 -2
  57. package/plugins/beta/datasets/dist/esm/im-datasets-ml-adapter.js +1 -0
  58. package/plugins/beta/datasets/dist/esm/im-datasets-plugin.js +1 -1
  59. package/plugins/beta/datasets/dist/esm/index.js +1 -1
  60. package/plugins/beta/datasets/dist/umd/im-datasets-ml-adapter.js +2 -0
  61. package/plugins/beta/datasets/dist/umd/im-datasets-plugin.js +2 -0
  62. package/plugins/beta/datasets/dist/umd/index.js +2 -0
  63. package/plugins/beta/datasets/src/adapters/loadLayerAdapter.js +33 -0
  64. package/plugins/beta/datasets/src/adapters/maplibre/layerBuilders.js +44 -120
  65. package/plugins/beta/datasets/src/adapters/maplibre/maplibreLayerAdapter.js +145 -245
  66. package/plugins/beta/datasets/src/adapters/maplibre/maplibreLayerAdapter.test.js +516 -0
  67. package/plugins/beta/datasets/src/adapters/maplibre/registry/mapLibreDataset.js +209 -0
  68. package/plugins/beta/datasets/src/adapters/maplibre/registry/mapLibreDataset.test.js +483 -0
  69. package/plugins/beta/datasets/src/api/addDataset.js +2 -5
  70. package/plugins/beta/datasets/src/api/addDataset.test.js +16 -0
  71. package/plugins/beta/datasets/src/api/getOpacity.js +14 -14
  72. package/plugins/beta/datasets/src/api/getOpacity.test.js +72 -0
  73. package/plugins/beta/datasets/src/api/getStyle.js +8 -9
  74. package/plugins/beta/datasets/src/api/getStyle.test.js +42 -0
  75. package/plugins/beta/datasets/src/api/removeDataset.js +7 -7
  76. package/plugins/beta/datasets/src/api/removeDataset.test.js +45 -0
  77. package/plugins/beta/datasets/src/api/setData.js +9 -3
  78. package/plugins/beta/datasets/src/api/setData.test.js +62 -0
  79. package/plugins/beta/datasets/src/api/setDatasetVisibility.js +5 -30
  80. package/plugins/beta/datasets/src/api/setDatasetVisibility.test.js +31 -0
  81. package/plugins/beta/datasets/src/api/setFeatureVisibility.js +9 -18
  82. package/plugins/beta/datasets/src/api/setFeatureVisibility.test.js +74 -0
  83. package/plugins/beta/datasets/src/api/setGlobals.js +20 -0
  84. package/plugins/beta/datasets/src/api/setGlobals.test.js +63 -0
  85. package/plugins/beta/datasets/src/api/setOpacity.js +8 -27
  86. package/plugins/beta/datasets/src/api/setOpacity.test.js +31 -0
  87. package/plugins/beta/datasets/src/api/setStyle.js +5 -21
  88. package/plugins/beta/datasets/src/api/setStyle.test.js +53 -0
  89. package/plugins/beta/datasets/src/components/Key/Key.jsx +51 -0
  90. package/plugins/beta/datasets/src/components/Key/KeyGroupItem.jsx +18 -0
  91. package/plugins/beta/datasets/src/components/Key/KeyItem.jsx +20 -0
  92. package/plugins/beta/datasets/src/components/Key/KeySvg.jsx +22 -0
  93. package/plugins/beta/datasets/src/components/Key/KeySvg.test.jsx +87 -0
  94. package/plugins/beta/datasets/src/components/Key/KeySvgLine.jsx +19 -0
  95. package/plugins/beta/datasets/src/components/Key/KeySvgLine.test.jsx +71 -0
  96. package/plugins/beta/datasets/src/components/{KeySvgPattern.jsx → Key/KeySvgPattern.jsx} +3 -4
  97. package/plugins/beta/datasets/src/components/Key/KeySvgPattern.test.jsx +55 -0
  98. package/plugins/beta/datasets/src/components/Key/KeySvgRect.jsx +22 -0
  99. package/plugins/beta/datasets/src/components/Key/KeySvgRect.test.jsx +85 -0
  100. package/plugins/beta/datasets/src/components/{KeySvgSymbol.jsx → Key/KeySvgSymbol.jsx} +5 -5
  101. package/plugins/beta/datasets/src/components/Key/KeySvgSymbol.test.jsx +80 -0
  102. package/plugins/beta/datasets/src/components/Key/svgProperties.test.js +61 -0
  103. package/plugins/beta/datasets/src/{panels → components/LayersMenu}/Layers.module.scss +15 -11
  104. package/plugins/beta/datasets/src/components/LayersMenu/LayersMenu.jsx +33 -0
  105. package/plugins/beta/datasets/src/components/LayersMenu/LayersMenuCheckbox.jsx +31 -0
  106. package/plugins/beta/datasets/src/components/LayersMenu/LayersMenuGroupWrapper.jsx +19 -0
  107. package/plugins/beta/datasets/src/datasets.scss +2 -2
  108. package/plugins/beta/datasets/src/fetch/createDynamicSource.js +8 -8
  109. package/plugins/beta/datasets/src/{DatasetsInit.jsx → initialise/DatasetsInit.jsx} +19 -21
  110. package/plugins/beta/datasets/src/{defaults.js → initialise/defaults.js} +17 -2
  111. package/plugins/beta/datasets/src/initialise/defaults.test.js +127 -0
  112. package/plugins/beta/datasets/src/{datasets.js → initialise/initialiseDatasets.js} +30 -26
  113. package/plugins/beta/datasets/src/initialise/initialiseDatasets.test.js +273 -0
  114. package/plugins/beta/datasets/src/manifest.js +8 -6
  115. package/plugins/beta/datasets/src/reducers/__data__/demoDatasets.js +253 -0
  116. package/plugins/beta/datasets/src/reducers/datasetsToMenu.js +83 -0
  117. package/plugins/beta/datasets/src/reducers/datasetsToMenu.test.js +84 -0
  118. package/plugins/beta/datasets/src/reducers/mappedDatasetsReducer.js +41 -0
  119. package/plugins/beta/datasets/src/reducers/mappedDatasetsReducer.test.js +117 -0
  120. package/plugins/beta/datasets/src/reducers/pluginState.js +206 -0
  121. package/plugins/beta/datasets/src/reducers/pluginState.test.js +386 -0
  122. package/plugins/beta/datasets/src/registry/__mocks__/datasetRegistry.js +29 -0
  123. package/plugins/beta/datasets/src/registry/createDataset.js +5 -0
  124. package/plugins/beta/datasets/src/registry/dataset.js +176 -0
  125. package/plugins/beta/datasets/src/registry/dataset.test.js +497 -0
  126. package/plugins/beta/datasets/src/registry/datasetDefinitionCache.js +35 -0
  127. package/plugins/beta/datasets/src/registry/datasetRegistry.js +116 -0
  128. package/plugins/beta/datasets/src/registry/datasetRegistry.test.js +335 -0
  129. package/plugins/beta/datasets/src/registry/dynamicGeoJson.js +17 -0
  130. package/plugins/beta/datasets/src/registry/globalDataset.js +36 -0
  131. package/plugins/beta/draw-es/dist/esm/im-draw-es-plugin.js +1 -1
  132. package/plugins/beta/draw-es/src/api/addFeature.js +12 -3
  133. package/plugins/beta/draw-es/src/events.js +8 -3
  134. package/plugins/beta/draw-es/src/events.test.js +2 -0
  135. package/plugins/beta/draw-es/src/graphic.js +26 -2
  136. package/plugins/beta/draw-ml/dist/esm/im-draw-ml-plugin.js +1 -1
  137. package/plugins/beta/draw-ml/dist/umd/im-draw-ml-plugin.js +1 -1
  138. package/plugins/beta/draw-ml/src/DrawInit.jsx +8 -0
  139. package/plugins/beta/draw-ml/src/api/newLine.js +1 -0
  140. package/plugins/beta/draw-ml/src/api/newPolygon.js +1 -0
  141. package/plugins/beta/draw-ml/src/events.js +13 -1
  142. package/plugins/beta/draw-ml/src/index.js +1 -1
  143. package/plugins/beta/draw-ml/src/manifest.js +3 -0
  144. package/plugins/beta/draw-ml/src/modes/createDrawMode.js +21 -12
  145. package/plugins/beta/draw-ml/src/modes/editVertexMode.js +4 -0
  146. package/plugins/beta/draw-ol/dist/esm/EditMode.js +1 -1
  147. package/plugins/beta/draw-ol/dist/esm/im-draw-ol-plugin.js +1 -1
  148. package/plugins/beta/draw-ol/src/edit/keyboardHandler.js +4 -2
  149. package/plugins/beta/map-styles/src/mapStyles.scss +41 -41
  150. package/plugins/interact/dist/esm/im-interact-plugin.js +1 -1
  151. package/plugins/interact/dist/umd/im-interact-plugin.js +1 -1
  152. package/plugins/interact/dist/umd/index.js +1 -1
  153. package/plugins/interact/src/InteractInit.jsx +3 -5
  154. package/plugins/interact/src/InteractInit.test.js +1 -3
  155. package/plugins/interact/src/events.js +2 -29
  156. package/plugins/interact/src/events.test.js +4 -102
  157. package/plugins/interact/src/hooks/useAttachEvents.js +3 -4
  158. package/plugins/interact/src/hooks/useAttachEvents.test.js +1 -3
  159. package/plugins/interact/src/hooks/useCrossHairVisibility.js +4 -10
  160. package/plugins/interact/src/hooks/useCrossHairVisibility.test.js +5 -10
  161. package/plugins/interact/src/hooks/useHighlightSync.js +1 -10
  162. package/plugins/interact/src/hooks/useHighlightSync.test.js +2 -21
  163. package/plugins/interact/src/hooks/useInteractionHandlers.js +15 -12
  164. package/plugins/interact/src/hooks/useInteractionHandlers.test.js +28 -29
  165. package/plugins/interact/src/manifest.js +0 -35
  166. package/plugins/interact/src/manifest.test.js +3 -43
  167. package/plugins/interact/src/reducer.js +4 -22
  168. package/plugins/interact/src/reducer.test.js +11 -39
  169. package/plugins/search/dist/css/index.css +5 -2
  170. package/plugins/search/src/components/Form/Form.module.scss +5 -2
  171. package/plugins/search/src/search.scss +4 -4
  172. package/providers/beta/esri/dist/esm/im-esri-provider.js +1 -1
  173. package/providers/beta/esri/src/esriProvider.js +4 -0
  174. package/providers/beta/openlayers/dist/esm/im-openlayers-provider.js +1 -1
  175. package/providers/beta/openlayers/dist/umd/im-openlayers-provider.js +1 -1
  176. package/providers/beta/openlayers/src/openlayersProvider.js +4 -0
  177. package/providers/beta/openlayers/src/openlayersProvider.test.js +5 -0
  178. package/providers/maplibre/dist/esm/im-maplibre-provider.js +1 -1
  179. package/providers/maplibre/dist/umd/im-maplibre-provider.js +1 -1
  180. package/providers/maplibre/src/maplibreProvider.js +6 -4
  181. package/providers/maplibre/src/maplibreProvider.test.js +5 -0
  182. package/providers/maplibre/src/utils/highlightFeatures.js +74 -25
  183. package/providers/maplibre/src/utils/highlightFeatures.test.js +132 -0
  184. package/providers/maplibre/src/utils/patternImages.js +2 -4
  185. package/providers/maplibre/src/utils/symbolImages.js +1 -4
  186. package/rollup.esm.mjs +2 -8
  187. package/src/App/components/CrossHair/CrossHair.module.scss +8 -8
  188. package/src/App/components/MapButton/MapButton.jsx +16 -1
  189. package/src/App/components/MapButton/MapButton.module.scss +12 -1
  190. package/src/App/components/MapButton/MapButton.test.jsx +40 -1
  191. package/src/App/hooks/useContinueEnabledEvaluator.js +31 -0
  192. package/src/App/hooks/useContinueEnabledEvaluator.test.js +118 -0
  193. package/src/App/hooks/useEvaluateProp.js +15 -15
  194. package/src/App/hooks/useEvaluateProp.test.js +80 -76
  195. package/src/App/hooks/useLayoutMeasurements.js +11 -5
  196. package/src/App/hooks/useResizeObserver.js +15 -2
  197. package/src/App/hooks/useResizeObserver.test.js +1 -0
  198. package/src/App/renderer/PluginInits.jsx +2 -0
  199. package/src/App/renderer/mapButtons.js +21 -1
  200. package/src/App/renderer/mapButtons.test.js +46 -1
  201. package/src/App/store/appReducer.js +1 -1
  202. package/src/App/store/appReducer.test.js +37 -0
  203. package/src/InteractiveMap/InteractiveMap.js +14 -4
  204. package/src/InteractiveMap/InteractiveMap.test.js +11 -3
  205. package/src/InteractiveMap/behaviourController.js +3 -1
  206. package/src/InteractiveMap/behaviourController.test.js +6 -3
  207. package/src/InteractiveMap/domStateManager.js +2 -0
  208. package/src/config/appConfig.js +25 -0
  209. package/src/config/appConfig.test.js +50 -0
  210. package/src/config/defaults.js +1 -0
  211. package/src/config/events.js +21 -3
  212. package/src/scss/settings/_dimensions.scss +1 -0
  213. package/src/services/patternRegistry.js +8 -4
  214. package/src/types.js +7 -0
  215. package/src/utils/patternUtils.js +1 -2
  216. package/src/utils/patternUtils.test.js +9 -0
  217. package/webpack.dev.mjs +10 -0
  218. package/webpack.umd.mjs +1 -1
  219. package/docs/assets/images/screens-blue.jpg +0 -0
  220. package/docs/assets/images/screens-white.jpg +0 -0
  221. package/plugins/beta/datasets/dist/adapters/maplibre/esm/im-datasets-ml-adapter.js +0 -1
  222. package/plugins/beta/datasets/dist/adapters/maplibre/esm/index.js +0 -1
  223. package/plugins/beta/datasets/dist/umd/maplibre/im-datasets-maplibre-adapter.js +0 -2
  224. package/plugins/beta/datasets/dist/umd/maplibre/im-datasets-plugin.js +0 -2
  225. package/plugins/beta/datasets/dist/umd/maplibre/index.js +0 -2
  226. package/plugins/beta/datasets/src/adapters/maplibre/index.js +0 -18
  227. package/plugins/beta/datasets/src/adapters/maplibre/layerIds.js +0 -75
  228. package/plugins/beta/datasets/src/adapters/maplibre/patternImages.js +0 -27
  229. package/plugins/beta/datasets/src/adapters/maplibre/symbolImages.js +0 -31
  230. package/plugins/beta/datasets/src/components/KeySvg.jsx +0 -24
  231. package/plugins/beta/datasets/src/components/KeySvgLine.jsx +0 -19
  232. package/plugins/beta/datasets/src/components/KeySvgRect.jsx +0 -22
  233. package/plugins/beta/datasets/src/index.maplibre.umd.js +0 -23
  234. package/plugins/beta/datasets/src/panels/Key.jsx +0 -62
  235. package/plugins/beta/datasets/src/panels/Layers.jsx +0 -141
  236. package/plugins/beta/datasets/src/reducer.js +0 -219
  237. package/plugins/beta/datasets/src/reducers/keyReducer.js +0 -34
  238. package/plugins/beta/datasets/src/utils/filters.js +0 -34
  239. package/plugins/beta/datasets/src/utils/mergeSublayer.js +0 -86
  240. package/plugins/beta/draw-ml/dist/css/index.css +0 -21
  241. /package/plugins/beta/datasets/dist/umd/{maplibre/im-datasets-maplibre-adapter.js.LICENSE.txt → im-datasets-ml-adapter.js.LICENSE.txt} +0 -0
  242. /package/plugins/beta/datasets/dist/umd/{maplibre/im-datasets-plugin.js.LICENSE.txt → im-datasets-plugin.js.LICENSE.txt} +0 -0
  243. /package/plugins/beta/datasets/dist/umd/{maplibre/index.js.LICENSE.txt → index.js.LICENSE.txt} +0 -0
  244. /package/plugins/beta/datasets/src/components/{EmptyKey.jsx → Key/EmptyKey.jsx} +0 -0
  245. /package/plugins/beta/datasets/src/components/{EmptyKey.test.jsx → Key/EmptyKey.test.jsx} +0 -0
  246. /package/plugins/beta/datasets/src/{panels → components/Key}/Key.module.scss +0 -0
  247. /package/plugins/beta/datasets/src/components/{svgProperties.js → Key/svgProperties.js} +0 -0
@@ -0,0 +1,104 @@
1
+ {% extends "layouts/main.html" %}
2
+
3
+ {% block pageTitle %}
4
+ Place a marker to continue – GOV.UK Prototype Kit
5
+ {% endblock %}
6
+
7
+ {% block head %}
8
+ <link href="/public/stylesheets/application.css" rel="stylesheet" type="text/css">
9
+ <link href="/plugin-assets/%40defra%2Finteractive-map/dist/css/index.css" rel="stylesheet" type="text/css">
10
+ {% endblock %}
11
+
12
+ {% block bodyStart %}
13
+ <script>document.body.classList.add('im-is-loading')</script>
14
+ {% endblock %}
15
+
16
+ {% block beforeContent %}
17
+ {{ govukBackLink({
18
+ text: "Back",
19
+ href: "javascript:window.history.back()"
20
+ }) }}
21
+ {% endblock %}
22
+
23
+ {% block content %}
24
+ <div class="govuk-grid-row">
25
+ <div class="govuk-grid-column-two-thirds">
26
+
27
+ <h1 class="govuk-heading-l">
28
+ Place a marker to continue
29
+ </h1>
30
+
31
+ <div id="map"></div>
32
+
33
+ <div id="external-buttons" hidden>
34
+ <button class="govuk-button govuk-!-margin-top-4" id="continue-btn" disabled>Continue</button>
35
+ </div>
36
+
37
+ </div>
38
+ </div>
39
+ {% endblock %}
40
+
41
+ {% block pageScripts %}
42
+ <!-- Defra library scripts -->
43
+ <script src="/plugin-assets/%40defra%2Finteractive-map/dist/umd/index.js"></script>
44
+ <script src="/plugin-assets/%40defra%2Finteractive-map/providers/maplibre/dist/umd/index.js"></script>
45
+ <script src="/plugin-assets/%40defra%2Finteractive-map/plugins/interact/dist/umd/index.js"></script>
46
+
47
+ <script>
48
+ var interactPlugin = defra.interactPlugin({
49
+ interactionModes: ['placeMarker']
50
+ })
51
+
52
+ var map = new defra.InteractiveMap('map', {
53
+ behaviour: 'hybrid',
54
+ mapProvider: defra.maplibreProvider(),
55
+ mapStyle: {
56
+ url: 'https://tiles.openfreemap.org/styles/liberty',
57
+ attribution: 'OpenFreeMap © OpenMapTiles Data from OpenStreetMap',
58
+ backgroundColor: '#f5f5f0'
59
+ },
60
+ center: [-0.1276, 51.5074],
61
+ zoom: 12,
62
+ containerHeight: '516px',
63
+ plugins: [interactPlugin],
64
+ backAndContinue: {
65
+ backLabel: 'Back',
66
+ continueLabel: 'Continue',
67
+ continueEnabledWhen: function (context) {
68
+ return context.mapState.markers.items.some(function (m) { return m.id === 'location' })
69
+ }
70
+ }
71
+ })
72
+
73
+ map.on('map:ready', function () {
74
+ interactPlugin.enable()
75
+ })
76
+
77
+ map.on('app:continue', function (context) {
78
+ var marker = context.mapState.markers.items.find(function (m) { return m.id === 'location' })
79
+ // navigate to next step with marker.coords
80
+ if (marker) {
81
+ console.log('Continuing with marker at:', marker.coords)
82
+ }
83
+ })
84
+
85
+ var continueBtn = document.getElementById('continue-btn')
86
+ var externalButtons = document.getElementById('external-buttons')
87
+
88
+ function setInline(isFullscreen) {
89
+ externalButtons.hidden = isFullscreen
90
+ }
91
+
92
+ map.on('app:opened', function (e) { setInline(e.isFullscreen) })
93
+ map.on('app:closed', function () { externalButtons.hidden = true })
94
+ map.on('app:fullscreenchange', function (e) { setInline(e.isFullscreen) })
95
+
96
+ map.on('interact:markerchange', function () {
97
+ continueBtn.disabled = false
98
+ })
99
+
100
+ continueBtn.addEventListener('click', function () {
101
+ // navigate to next step
102
+ })
103
+ </script>
104
+ {% endblock %}
@@ -0,0 +1,98 @@
1
+ {% extends "layouts/main.html" %}
2
+
3
+ {% block pageTitle %}
4
+ Add a search control – GOV.UK Prototype Kit
5
+ {% endblock %}
6
+
7
+ {% block head %}
8
+ <link href="/public/stylesheets/application.css" rel="stylesheet" type="text/css">
9
+ <link href="/plugin-assets/%40defra%2Finteractive-map/dist/css/index.css" rel="stylesheet" type="text/css">
10
+ <link href="/plugin-assets/%40defra%2Finteractive-map/plugins/search/dist/css/index.css" rel="stylesheet" type="text/css">
11
+ {% endblock %}
12
+
13
+ {% block bodyStart %}
14
+ <script>document.body.classList.add('im-is-loading')</script>
15
+ {% endblock %}
16
+
17
+ {% block beforeContent %}
18
+ {{ govukBackLink({
19
+ text: "Back",
20
+ href: "javascript:window.history.back()"
21
+ }) }}
22
+ {% endblock %}
23
+
24
+ {% block content %}
25
+ <div class="govuk-grid-row">
26
+ <div class="govuk-grid-column-two-thirds">
27
+
28
+ <h1 class="govuk-heading-l">
29
+ Add a search control
30
+ </h1>
31
+
32
+ <div id="map"></div>
33
+
34
+ </div>
35
+ </div>
36
+ {% endblock %}
37
+
38
+ {% block pageScripts %}
39
+ <!-- Defra library scripts -->
40
+ <script src="/plugin-assets/%40defra%2Finteractive-map/dist/umd/index.js"></script>
41
+ <script src="/plugin-assets/%40defra%2Finteractive-map/providers/maplibre/dist/umd/index.js"></script>
42
+ <script src="/plugin-assets/%40defra%2Finteractive-map/plugins/search/dist/umd/index.js"></script>
43
+
44
+ <script>
45
+ const SETTLEMENT_TYPES = new Set(['city', 'town', 'village', 'hamlet', 'suburb', 'quarter', 'neighbourhood', 'municipality', 'borough', 'district', 'county'])
46
+
47
+ const nominatimDataset = {
48
+ name: 'nominatim',
49
+ buildRequest: function (query) {
50
+ const params = new URLSearchParams({
51
+ q: query,
52
+ format: 'json',
53
+ limit: '8',
54
+ countrycodes: 'gb'
55
+ })
56
+ return new Request('https://nominatim.openstreetmap.org/search?' + params, {
57
+ headers: { 'Accept-Language': 'en' }
58
+ })
59
+ },
60
+ parseResults: function (json, query) {
61
+ if (!Array.isArray(json)) return []
62
+ const escaped = query.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
63
+ const results = json
64
+ .filter(function (item) { return SETTLEMENT_TYPES.has(item.addresstype) })
65
+ .map(function (item) {
66
+ const bb = item.boundingbox.map(Number)
67
+ return {
68
+ id: String(item.place_id),
69
+ text: item.display_name,
70
+ marked: item.display_name.replace(new RegExp('(' + escaped + ')', 'i'), '<mark>$1</mark>'),
71
+ point: [Number(item.lon), Number(item.lat)],
72
+ bounds: [bb[2], bb[0], bb[3], bb[1]]
73
+ }
74
+ })
75
+ return Array.from(new Map(results.map(function (r) { return [r.text, r] })).values())
76
+ }
77
+ }
78
+
79
+ const searchPlugin = defra.searchPlugin({
80
+ customDatasets: [nominatimDataset],
81
+ width: '300px'
82
+ })
83
+
84
+ new defra.InteractiveMap('map', {
85
+ behaviour: 'inline',
86
+ mapProvider: defra.maplibreProvider(),
87
+ mapStyle: {
88
+ url: 'https://tiles.openfreemap.org/styles/liberty',
89
+ attribution: 'OpenFreeMap © OpenMapTiles Data from OpenStreetMap',
90
+ backgroundColor: '#f5f5f0'
91
+ },
92
+ center: [-1.6, 53.1],
93
+ zoom: 6,
94
+ containerHeight: '516px',
95
+ plugins: [searchPlugin]
96
+ })
97
+ </script>
98
+ {% endblock %}
@@ -0,0 +1,101 @@
1
+ {% extends "layouts/main.html" %}
2
+
3
+ {% block pageTitle %}
4
+ Select a feature – GOV.UK Prototype Kit
5
+ {% endblock %}
6
+
7
+ {% block head %}
8
+ <link href="/public/stylesheets/application.css" rel="stylesheet" type="text/css">
9
+ <link href="/plugin-assets/%40defra%2Finteractive-map/dist/css/index.css" rel="stylesheet" type="text/css">
10
+ {% endblock %}
11
+
12
+ {% block bodyStart %}
13
+ <script>document.body.classList.add('im-is-loading')</script>
14
+ {% endblock %}
15
+
16
+ {% block beforeContent %}
17
+ {{ govukBackLink({
18
+ text: "Back",
19
+ href: "javascript:window.history.back()"
20
+ }) }}
21
+ {% endblock %}
22
+
23
+ {% block content %}
24
+ <div class="govuk-grid-row">
25
+ <div class="govuk-grid-column-two-thirds">
26
+
27
+ <h1 class="govuk-heading-l">
28
+ Select a feature
29
+ </h1>
30
+
31
+ <div id="map"></div>
32
+
33
+ </div>
34
+ </div>
35
+ {% endblock %}
36
+
37
+ {% block pageScripts %}
38
+ <!-- Defra library scripts -->
39
+ <script src="/plugin-assets/%40defra%2Finteractive-map/dist/umd/index.js"></script>
40
+ <script src="/plugin-assets/%40defra%2Finteractive-map/providers/maplibre/dist/umd/index.js"></script>
41
+ <script src="/plugin-assets/%40defra%2Finteractive-map/plugins/interact/dist/umd/index.js"></script>
42
+
43
+ <script>
44
+ const PANEL_ID = 'building-info'
45
+
46
+ const interactPlugin = defra.interactPlugin({
47
+ interactionModes: ['selectFeature'],
48
+ deselectOnClickOutside: true,
49
+ layers: [
50
+ { layerId: 'buildings 3D', idProperty: 'uuid' }
51
+ ]
52
+ })
53
+
54
+ const map = new defra.InteractiveMap('map', {
55
+ behaviour: 'inline',
56
+ mapProvider: defra.maplibreProvider(),
57
+ mapStyle: {
58
+ url: 'https://labs.os.uk/tiles/styles/open-zoomstack-outdoor/style.json',
59
+ attribution: `Contains OS data © Crown copyright and database rights ${new Date().getFullYear()}`,
60
+ backgroundColor: '#f5f5f0'
61
+ },
62
+ center: [-1.5491, 53.8008],
63
+ zoom: 14.5,
64
+ maxZoom: 14.5,
65
+ containerHeight: '516px',
66
+ plugins: [interactPlugin]
67
+ })
68
+
69
+ map.on('map:ready', () => {
70
+ interactPlugin.enable()
71
+
72
+ map.addPanel(PANEL_ID, {
73
+ focus: false,
74
+ label: 'Selected building',
75
+ html: '<div id="building-info-content"></div>',
76
+ mobile: { slot: 'drawer', dismissible: true, open: false },
77
+ tablet: { slot: 'left-top', dismissible: true, width: '300px', open: false },
78
+ desktop: { slot: 'left-top', dismissible: true, width: '300px', open: false }
79
+ })
80
+ })
81
+
82
+ map.on('interact:selectionchange', ({ selectedFeatures }) => {
83
+ if (selectedFeatures.length > 0) {
84
+ let html = ''
85
+ for (const [k, v] of Object.entries(selectedFeatures[0].properties)) {
86
+ html += '<p class="govuk-body govuk-!-margin-bottom-1"><strong>' + k + ':</strong> ' + v + '</p>'
87
+ }
88
+ document.getElementById('building-info-content').innerHTML = html
89
+ map.showPanel(PANEL_ID)
90
+ } else {
91
+ map.hidePanel(PANEL_ID)
92
+ }
93
+ })
94
+
95
+ map.on('app:panelclosed', ({ panelId }) => {
96
+ if (panelId === PANEL_ID) {
97
+ interactPlugin.clear()
98
+ }
99
+ })
100
+ </script>
101
+ {% endblock %}
@@ -0,0 +1,87 @@
1
+ {% extends "layouts/main.html" %}
2
+
3
+ {% block pageTitle %}
4
+ Change map style – GOV.UK Prototype Kit
5
+ {% endblock %}
6
+
7
+ {% block head %}
8
+ <link href="/public/stylesheets/application.css" rel="stylesheet" type="text/css">
9
+ <link href="/plugin-assets/%40defra%2Finteractive-map/dist/css/index.css" rel="stylesheet" type="text/css">
10
+ <link href="/plugin-assets/%40defra%2Finteractive-map/plugins/beta/map-styles/dist/css/index.css" rel="stylesheet" type="text/css">
11
+ {% endblock %}
12
+
13
+ {% block bodyStart %}
14
+ <script>document.body.classList.add('im-is-loading')</script>
15
+ {% endblock %}
16
+
17
+ {% block beforeContent %}
18
+ {{ govukBackLink({
19
+ text: "Back",
20
+ href: "javascript:window.history.back()"
21
+ }) }}
22
+ {% endblock %}
23
+
24
+ {% block content %}
25
+ <div class="govuk-grid-row">
26
+ <div class="govuk-grid-column-two-thirds">
27
+
28
+ <h1 class="govuk-heading-l">
29
+ Change map style
30
+ </h1>
31
+
32
+ <div id="map"></div>
33
+
34
+ </div>
35
+ </div>
36
+ {% endblock %}
37
+
38
+ {% block pageScripts %}
39
+ <!-- Defra library scripts -->
40
+ <script src="/plugin-assets/%40defra%2Finteractive-map/dist/umd/index.js"></script>
41
+ <script src="/plugin-assets/%40defra%2Finteractive-map/providers/maplibre/dist/umd/index.js"></script>
42
+ <script src="/plugin-assets/%40defra%2Finteractive-map/plugins/beta/map-styles/dist/umd/index.js"></script>
43
+
44
+ <script>
45
+ const attribution = 'OpenFreeMap © OpenMapTiles Data from OpenStreetMap'
46
+
47
+ const mapStyles = [
48
+ {
49
+ id: 'road',
50
+ label: 'Road',
51
+ url: 'https://tiles.openfreemap.org/styles/liberty',
52
+ thumbnail: '/plugin-assets/%40defra%2Finteractive-map/assets/images/road-ofm-thumb.jpg',
53
+ attribution,
54
+ backgroundColor: '#f5f5f0'
55
+ },
56
+ {
57
+ id: 'bright',
58
+ label: 'Bright',
59
+ url: 'https://tiles.openfreemap.org/styles/bright',
60
+ thumbnail: '/plugin-assets/%40defra%2Finteractive-map/assets/images/bright-ofm-thumb.jpg',
61
+ attribution,
62
+ backgroundColor: '#f5f5f0'
63
+ },
64
+ {
65
+ id: 'dark',
66
+ label: 'Dark',
67
+ url: 'https://tiles.openfreemap.org/styles/fiord',
68
+ thumbnail: '/plugin-assets/%40defra%2Finteractive-map/assets/images/dark-ofm-thumb.jpg',
69
+ attribution,
70
+ mapColorScheme: 'dark',
71
+ appColorScheme: 'dark'
72
+ }
73
+ ]
74
+
75
+ const mapStylesPlugin = defra.mapStylesPlugin({ mapStyles })
76
+
77
+ new defra.InteractiveMap('map', {
78
+ behaviour: 'inline',
79
+ mapProvider: defra.maplibreProvider(),
80
+ mapStyle: mapStyles[0],
81
+ center: [-0.1276, 51.5074],
82
+ zoom: 12,
83
+ containerHeight: '516px',
84
+ plugins: [mapStylesPlugin]
85
+ })
86
+ </script>
87
+ {% endblock %}
@@ -0,0 +1,74 @@
1
+ {% extends "layouts/main.html" %}
2
+
3
+ {% block pageTitle %}
4
+ Toggle marker label – GOV.UK Prototype Kit
5
+ {% endblock %}
6
+
7
+ {% block head %}
8
+ <link href="/public/stylesheets/application.css" rel="stylesheet" type="text/css">
9
+ <link href="/plugin-assets/%40defra%2Finteractive-map/dist/css/index.css" rel="stylesheet" type="text/css">
10
+ {% endblock %}
11
+
12
+ {% block bodyStart %}
13
+ <script>document.body.classList.add('im-is-loading')</script>
14
+ {% endblock %}
15
+
16
+ {% block beforeContent %}
17
+ {{ govukBackLink({
18
+ text: "Back",
19
+ href: "javascript:window.history.back()"
20
+ }) }}
21
+ {% endblock %}
22
+
23
+ {% block content %}
24
+ <div class="govuk-grid-row">
25
+ <div class="govuk-grid-column-two-thirds">
26
+
27
+ <h1 class="govuk-heading-l">
28
+ Toggle marker label
29
+ </h1>
30
+
31
+ <div id="map"></div>
32
+
33
+ </div>
34
+ </div>
35
+ {% endblock %}
36
+
37
+ {% block pageScripts %}
38
+ <!-- Defra library scripts -->
39
+ <script src="/plugin-assets/%40defra%2Finteractive-map/dist/umd/index.js"></script>
40
+ <script src="/plugin-assets/%40defra%2Finteractive-map/providers/maplibre/dist/umd/index.js"></script>
41
+ <script src="/plugin-assets/%40defra%2Finteractive-map/plugins/interact/dist/umd/index.js"></script>
42
+
43
+ <script>
44
+ const interactPlugin = defra.interactPlugin({
45
+ deselectOnClickOutside: true
46
+ })
47
+
48
+ const map = new defra.InteractiveMap('map', {
49
+ behaviour: 'inline',
50
+ mapProvider: defra.maplibreProvider(),
51
+ mapStyle: {
52
+ url: 'https://tiles.openfreemap.org/styles/liberty',
53
+ attribution: 'OpenFreeMap © OpenMapTiles Data from OpenStreetMap',
54
+ backgroundColor: '#f5f5f0'
55
+ },
56
+ center: [-2.96, 54.43],
57
+ zoom: 15,
58
+ containerHeight: '516px',
59
+ plugins: [interactPlugin]
60
+ })
61
+
62
+ map.on('map:ready', () => {
63
+ map.addMarker('my-marker', [-2.96, 54.43], {
64
+ label: 'My location',
65
+ showLabel: false
66
+ })
67
+ interactPlugin.enable()
68
+ })
69
+
70
+ map.on('interact:selectionchange', ({ selectedMarkers }) => {
71
+ map.updateMarker('my-marker', { showLabel: selectedMarkers.includes('my-marker') })
72
+ })
73
+ </script>
74
+ {% endblock %}
@@ -1 +1 @@
1
- :root{--foreground-color: #0b0c0c;--background-color: #ffffff;--focus-border-color: #0b0c0c;--focus-outline-color: #ffdd00;--button-background-color: #ffffff;--button-hover-color: #f3f2f1;--primary-button-color: #00703c;--primary-button-hover-color: #005a30;--primary-button-box-shadow: inset 0 -2px 0 #002d18;--tertiary-button-border-color: #505a5f;--disabled-button-opacity: 0.4;--pressed-button-foreground-color: #ffffff;--pressed-button-border-color: #0b0c0c;--pressed-button-background-color: #0b0c0c;--scrollable-outline: 3px solid #ffdd00;--scrollable-outline-offset: -3px;--scrollable-box-shadow: inset 0 0 0 6px #002d18;--tooltip-background-color: #383F43;--tooltip-foreground-color: #ffffff;--modal-background-color: #0b0c0c;--modal-backdrop-opacity: 0.4;--attributions-foreground-color: #0b0c0c;--attributions-background-color: #ffffff80;--fixed-foreground-color: #0b0c0c;--app-border-color: #cecece;--content-border-color: #f3f2f1;--secondary-text-color: #505a5f;--image-placeholder-color: #b1b4b6;--content-link-color: #1d70b8}:root .im-o-app--dark-app{--foreground-color: #ffffff;--background-color: #383F43;--focus-border-color: #0b0c0c;--focus-outline-color: #ffdd00;--button-background-color: #383F43;--button-hover-color: #505a5f;--primary-button-color: #ffffff;--primary-button-hover-color: #b1b4b6;--primary-button-box-shadow: none;--tertiary-button-border-color: #f3f2f1;--tertiary-button-box-shadow: none;--disabled-button-opacity: 0.4;--pressed-button-foreground-color: #0b0c0c;--pressed-button-border-color: #ffffff;--pressed-button-background-color: #ffffff;--content-border-color: #505a5f;--secondary-text-color: #f3f2f1;--content-link-color: #ffffff}:root{--font-family: gds transport,arial,sans-serif;--font-size: 16px;--line-height: 1.25em}:root{--button-box-shadow: 0 -2px 20px rgba(0,0,0,.1), 0 0 12px rgba(0,0,0,.1);--panel-box-shadow: 0 -2px 20px rgba(0,0,0,.1), 0 0 12px rgba(0,0,0,.1);--shadow-clip-size: 20px}:root{--duration: 0.2s}:root{--primary-gap: 15px;--divider-gap: 10px;--button-size: 40px;--icon-size: 24px;--button-padding: 8px;--button-icon-label-offset: 7px;--label-button-padding: 10px;--app-border-width: 1px;--button-border-radius: 0px;--panel-border-radius: 0px;--focus-border-width: 3px;--focus-outline-width: 3px;--modal-offset-top: 0px;--modal-offset-right: 0px;--tooltip-padding: 10px;--tooltip-offset: 10px;--tooltip-arrow-size: 8px;--tooltip-font-size: 14px;--tooltip-border-radius: 3px;--min-panel-width: 260px;--panel-close-button-gap: 4px;--panel-heading-margin-top: 12px;--panel-margin: 15px;--banner-close-button-gap: 0px;--banner-max-desktop-width: 400px;--banner-collapse-margin: 14px;--popup-menu-min-width: 200px;--popup-menu-max-width: 300px;--action-bar-max-width: calc(100% - (var(--button-size) * 2) - (var(--primary-gap) * 4));--attributions-padding: 2px 5px;--attributions-font-size: 12px}:root{--kbd-font-family: monospace;--kbd-background-color: var(--background-color);--kbd-foreground-color: var(--tooltip-background-color);--kbd-border: 2px solid #e7e7e7;--kbd-border-radius: 4px;--kbd-font-size: .825rem;--kbd-padding: 2px 4px;--kbd-tooltip-border: none}:root .im-o-app--dark-app{--kbd-background-color: var(--background-color);--kbd-foreground-color: var(--tooltip-foreground-color);--kbd-tooltip-border: 2px solid #505a5f;--kbd-border: 2px solid #505a5f}.im-o-app *,.im-o-app *::before,.im-o-app *::after{box-sizing:border-box}.im-o-app *{margin:0}.im-o-app img,.im-o-app picture,.im-o-app video,.im-o-app canvas,.im-o-app svg{display:block}.im-o-app input,.im-o-app button,.im-o-app textarea,.im-o-app select{font:inherit}.im-o-app p,.im-o-app h1,.im-o-app h2,.im-o-app h3,.im-o-app h4,.im-o-app h5,.im-o-app h6{overflow-wrap:break-word}.im-o-app{visibility:visible;font-family:var(--font-family);font-size:var(--font-size);line-height:var(--line-height);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--foreground-color);background-color:var(--background-color);-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.im-is-fullscreen>.im-o-app{position:fixed;z-index:999;top:0;bottom:0;left:0;right:0;width:100%}.im-o-app__overlay,.im-o-app__modal{pointer-events:none}.im-e-heading-s,.im-e-heading-m,.im-e-heading-l{margin:0;font-weight:600}.im-e-heading-l{font-size:1.5rem;line-height:1.25}.im-e-heading-m{font-size:1.25rem;line-height:1.25}.im-e-heading-s{font-size:1rem;line-height:1.25}kbd{font-family:var(--kbd-font-family);border:var(--kbd-border);background-color:var(--kbd-background-color);color:var(--kbd-foreground-color);border-radius:var(--kbd-border-radius);font-size:var(--kbd-font-size);padding:var(--kbd-padding)}.im-o-app{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;touch-action:none}.im-o-app__overlay{position:absolute;z-index:1;box-sizing:border-box;flex-direction:row;display:flex;justify-content:space-between;top:0;left:0;width:100%;height:100%;min-height:0;visibility:visible;opacity:1}@media(prefers-reduced-motion: no-preference){.im-o-app__overlay{transition:opacity var(--duration) ease-in}}.im-o-app__side{position:relative;display:flex;flex-direction:column;z-index:3;flex-shrink:0;height:100%}.im-o-app__main{position:relative;display:flex;flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;flex-wrap:nowrap;padding:var(--primary-gap)}.im-o-app__side .im-c-panel{height:100%;border:0;border-radius:var(--panel-border-radius)}.im-o-app__side .im-c-panel::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--panel-border-radius));box-shadow:var(--panel-box-shadow)}.im-o-app__side .im-c-panel:focus{outline:0}.im-o-app__side .im-c-panel[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-o-app__side .im-c-panel::after{content:"";pointer-events:none;position:absolute;z-index:99;top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width);border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--panel-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-o-app__side .im-c-panel::after{transition:opacity var(--duration) ease}}.im-o-app__side .im-c-panel[data-focus-visible=true]::after{opacity:1}.im-o-app__side .im-c-panel,.im-o-app__side .im-c-panel::before,.im-o-app__side .im-c-panel::after{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app__side .im-c-panel::before{clip-path:inset(-20px -20px -20px -20px)}.im-o-app__banner{display:flex;flex-direction:column;gap:var(--divider-gap)}.im-o-app__banner .im-c-panel:last-child{margin-bottom:var(--divider-gap)}.im-o-app__top{display:flex;margin-bottom:auto;justify-content:space-between;align-items:flex-start;width:100%;gap:var(--divider-gap)}.im-o-app__top-col{display:flex;flex:1 1 auto;gap:var(--divider-gap)}.im-o-app__top-col:not(:empty){padding-bottom:var(--divider-gap)}.im-o-app__top-col:first-child,.im-o-app__top-col:last-child{flex:1 1 calc(var(--button-size) + var(--primary-gap)*2);max-width:var(--top-col-width, 100%)}.im-o-app__top-col:first-child{justify-content:flex-start}.im-o-app__top-col:last-child{justify-content:flex-end}.im-o-app__top-col:nth-child(2){justify-content:center}.im-o-app__inset{display:flex;flex-direction:column;position:absolute;gap:var(--divider-gap);top:var(--left-offset-top)}.im-o-app__left{position:absolute;display:flex;flex-direction:column;left:var(--primary-gap);top:var(--left-offset-top);bottom:var(--left-offset-bottom);gap:var(--divider-gap)}.im-o-app__left>*:empty{display:none}.im-o-app__left-top{display:flex;flex-direction:column;align-items:flex-start;min-height:0;position:relative;gap:var(--divider-gap)}.im-o-app__left-bottom{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;min-height:0;margin-top:auto;position:relative;gap:var(--divider-gap)}.im-o-app__middle{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:-1}.im-o-app__right{position:absolute;display:flex;flex-direction:column;right:var(--primary-gap);top:var(--right-offset-top);bottom:var(--right-offset-bottom);gap:var(--divider-gap)}.im-o-app__right-top{display:flex;flex-direction:column;flex:0 0 auto;align-items:flex-end;position:relative;gap:var(--divider-gap)}.im-o-app__right-bottom{display:flex;flex-direction:column;flex:0 0 auto;margin-top:auto;align-items:flex-end;position:relative;gap:var(--divider-gap)}.im-o-app__bottom{display:flex;justify-content:space-between;align-items:flex-end;z-index:-2}.im-o-app__bottom-col{display:flex;min-width:auto}.im-o-app__bottom-col:first-child{flex-direction:row;align-items:flex-end;flex-shrink:0;gap:var(--divider-gap)}.im-o-app__bottom-col:last-child{position:relative;flex:1 1 auto;flex-direction:column;align-items:flex-end;min-width:0}.im-o-app__bottom-left,.im-o-app__bottom-right{display:flex;flex-direction:row;gap:var(--divider-gap)}.im-o-app__bottom-right{justify-content:flex-end}.im-o-app__attributions:not(:empty){position:absolute;bottom:calc(var(--primary-gap)*-1);right:calc(var(--primary-gap)*-1);display:flex;justify-content:flex-end}.im-o-app__drawer{z-index:1}.im-o-app__drawer .im-c-panel,.im-o-app__drawer .im-c-panel::before,.im-o-app__drawer .im-c-panel::after{border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app__drawer .im-c-panel::before{clip-path:inset(-20px -20px 0 -20px)}.im-o-app__actions{display:flex;flex-shrink:0;justify-content:center;text-align:center}.im-o-app__actions .im-c-panel__body{overflow:visible}.im-o-app .im-o-app__modal{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.im-o-app .im-o-app__modal .im-c-panel{position:absolute;top:0;right:0;bottom:auto;left:0;z-index:1000}.im-o-app .im-o-app__modal .im-c-panel+.im-o-app__modal-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--modal-background-color);opacity:var(--modal-backdrop-opacity);pointer-events:auto}.im-o-app .im-o-app__modal .im-c-panel--side{width:100%;max-width:80%;bottom:0;border:0;border-radius:var(--panel-border-radius)}.im-o-app .im-o-app__modal .im-c-panel--side::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--panel-border-radius));box-shadow:var(--panel-box-shadow)}.im-o-app .im-o-app__modal .im-c-panel--side:focus{outline:0}.im-o-app .im-o-app__modal .im-c-panel--side[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-o-app .im-o-app__modal .im-c-panel--side::after{content:"";pointer-events:none;position:absolute;z-index:99;top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width);border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--panel-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-o-app .im-o-app__modal .im-c-panel--side::after{transition:opacity var(--duration) ease}}.im-o-app .im-o-app__modal .im-c-panel--side[data-focus-visible=true]::after{opacity:1}.im-o-app .im-o-app__modal .im-c-panel--side,.im-o-app .im-o-app__modal .im-c-panel--side::before,.im-o-app .im-o-app__modal .im-c-panel--side::after{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app .im-o-app__modal .im-c-panel--side::before{clip-path:inset(-20px -20px -20px -20px)}.im-o-app .im-o-app__modal .im-c-panel--inset{inset:var(--modal-inset);max-width:calc(100% - var(--primary-gap)*2);max-height:var(--modal-max-height)}.im-o-app .im-o-app__modal .im-c-panel--left-top,.im-o-app .im-o-app__modal .im-c-panel.im-c-panel--left-top-button{inset:var(--left-offset-top) auto auto var(--primary-gap);max-height:calc(100% - var(--left-offset-top) - var(--primary-gap))}.im-o-app .im-o-app__modal .im-c-panel--left-bottom,.im-o-app .im-o-app__modal .im-c-panel.im-c-panel--left-bottom-button{inset:auto auto var(--left-offset-bottom) var(--primary-gap);max-height:calc(100% - var(--left-offset-bottom) - var(--primary-gap))}.im-o-app .im-o-app__modal .im-c-panel--right-top,.im-o-app .im-o-app__modal .im-c-panel.im-c-panel--right-top-button{inset:var(--right-offset-top) var(--primary-gap) auto auto;max-height:calc(100% - var(--right-offset-top) - var(--primary-gap))}.im-o-app .im-o-app__modal .im-c-panel--right-bottom,.im-o-app .im-o-app__modal .im-c-panel.im-c-panel--right-bottom-button{inset:auto var(--primary-gap) var(--right-offset-bottom) auto;max-height:calc(100% - var(--right-offset-bottom) - var(--primary-gap))}.im-o-app .im-o-app__modal .im-c-panel--middle{position:relative;margin:auto;width:100%;max-width:calc(100% - var(--primary-gap)*2);max-height:calc(100% - var(--primary-gap)*2)}.im-o-app .im-o-app__modal .im-c-panel--drawer{top:auto;bottom:0;max-height:85%}.im-o-app .im-o-app__modal .im-c-panel--drawer,.im-o-app .im-o-app__modal .im-c-panel--drawer::before,.im-o-app .im-o-app__modal .im-c-panel--drawer::after{border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app .im-o-app__modal .im-c-panel--drawer::before{clip-path:inset(-20px -20px 0 -20px)}.im-o-app .im-o-app__modal [class*=im-c-panel--][class*=-button]{inset:var(--modal-inset);max-height:var(--modal-max-height)}.im-o-app--mobile .im-o-app__modal .im-c-panel--banner,.im-o-app--tablet .im-o-app__modal .im-c-panel--banner{margin:var(--primary-gap)}.im-o-app--mobile .im-o-app__banner,.im-o-app--tablet .im-o-app__banner{z-index:9}.im-o-app--desktop .im-o-app__modal .im-c-panel--banner{margin-top:var(--primary-gap)}.im-o-app--inline{border:var(--app-border-width) solid var(--app-border-color);box-sizing:border-box}.im-o-app__overlay--not-ready{visibility:hidden;opacity:0}.im-o-app--desktop .im-c-panel--banner{margin-left:auto;margin-right:auto;max-width:var(--banner-max-desktop-width)}.im-o-app--tablet .im-o-app__actions,.im-o-app--desktop .im-o-app__actions{position:absolute;width:100%;left:0;bottom:calc(var(--primary-gap)*2)}.im-o-app--tablet .im-o-app__actions .im-c-panel,.im-o-app--desktop .im-o-app__actions .im-c-panel{max-width:var(--action-bar-max-width)}@media(prefers-reduced-motion: no-preference){.im-o-app--tablet .im-o-app__actions .im-c-actions,.im-o-app--desktop .im-o-app__actions .im-c-actions{transition:opacity var(--duration) ease}}.im-o-app--tablet .im-o-app__actions .im-c-actions--hidden,.im-o-app--desktop .im-o-app__actions .im-c-actions--hidden{opacity:0}.im-o-app--mobile .im-o-app__drawer,.im-o-app--mobile .im-o-app__actions{margin:var(--primary-gap) calc(var(--primary-gap)*-1) calc(var(--primary-gap)*-1) calc(var(--primary-gap)*-1)}.im-o-app--mobile .im-o-app__drawer .im-c-panel,.im-o-app--mobile .im-o-app__actions .im-c-panel{width:100%}.im-o-app--mobile .im-o-app__drawer .im-c-panel,.im-o-app--mobile .im-o-app__drawer .im-c-panel::before,.im-o-app--mobile .im-o-app__drawer .im-c-panel::after,.im-o-app--mobile .im-o-app__actions .im-c-panel,.im-o-app--mobile .im-o-app__actions .im-c-panel::before,.im-o-app--mobile .im-o-app__actions .im-c-panel::after{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app--mobile .im-o-app__drawer .im-c-panel::before,.im-o-app--mobile .im-o-app__actions .im-c-panel::before{clip-path:inset(-20px -20px -20px -20px)}.im-o-app--mobile .im-o-app__drawer .im-c-panel{clip-path:inset(-20px 0 0 0)}.im-o-app--mobile .im-o-app__drawer .im-c-panel::after,.im-o-app--mobile .im-o-app__actions .im-c-panel::after,.im-o-app__modal .im-c-panel--drawer::after{top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width)}.im-o-app--mobile .im-o-app__side{position:absolute;left:0;top:0;width:100%;max-width:80%;pointer-events:none}.im-c-keyboard-help__list{margin:0;color:var(--foreground-color)}.im-c-keyboard-help__item{display:table;padding:10px 0;width:100%;border-top:1px solid var(--content-border-color)}.im-c-keyboard-help__item:last-child{padding-bottom:0}.im-c-keyboard-help__group:last-child .im-c-keyboard-help__item:last-child{padding-bottom:0}.im-c-keyboard-help__title{display:table-cell;width:45%}.im-c-keyboard-help__description{display:table-cell}.im-o-app--mobile .im-c-keyboard-help__title{width:100%;display:block}.im-o-app--mobile .im-c-keyboard-help__description{display:block;margin-top:5px}.im-c-tabs__panel .im-c-keyboard-help__item:first-child{border-top:0}.im-c-tabs__list{position:relative;display:flex;flex-wrap:wrap;padding:0;margin:0;border-bottom:1px solid var(--app-border-color);z-index:1}.im-c-tabs__tab{position:relative;appearance:none;background:var(--button-hover-color);border:1px solid rgba(0,0,0,0);border-bottom:none;padding:7.5px 15px;margin:5px 5px 5px 0;cursor:pointer;color:var(--foreground-color);font-size:inherit;font-weight:normal;outline:3px solid rgba(0,0,0,0)}.im-c-tabs__tab[aria-selected=true]{background:var(--background-color);border-color:var(--app-border-color);border-bottom-color:var(--background-color);margin-top:0;margin-bottom:-1px}.im-c-tabs__tab:focus .im-c-tabs__label{outline:3px solid rgba(0,0,0,0);color:var(--focus-border-color);background-color:var(--focus-outline-color);box-shadow:0 -2px var(--focus-outline-color),0 4px var(--focus-border-color);text-decoration:none}.im-c-tabs__tab:not([aria-selected=true]):hover{background-color:var(--content-border-color)}.im-c-tabs__tab:not([aria-selected=true]) .im-c-tabs__label{text-decoration:underline;text-underline-offset:3px}.im-c-tabs__tab:not([aria-selected=true]):hover .im-c-tabs__label{text-decoration-thickness:3px}.im-c-button-wrapper{position:relative}.im-c-button-wrapper .im-c-panel{position:absolute;right:calc(100% + var(--divider-gap));top:0}.im-c-map-button{border:0;border-radius:var(--button-border-radius)}.im-c-map-button::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--button-border-radius));box-shadow:var(--button-box-shadow)}.im-c-map-button:focus{outline:0}.im-c-map-button[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-map-button::after{content:"";pointer-events:none;position:absolute;z-index:99;top:-1px;right:-1px;bottom:-1px;left:-1px;border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--button-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-map-button::after{transition:opacity var(--duration) ease}}.im-c-map-button[data-focus-visible=true]::after{opacity:1}.im-c-map-button{display:flex;justify-content:center;align-items:center;padding-left:var(--button-padding);padding-right:var(--button-padding);pointer-events:auto;color:var(--foreground-color);background-color:var(--button-background-color);min-height:var(--button-size);min-width:var(--button-size);user-select:none;cursor:pointer}.im-c-map-button--primary[aria-disabled=true],.im-c-map-button--tertiary[aria-disabled=true]{opacity:var(--disabled-button-opacity)}.im-c-map-button svg{pointer-events:none;width:var(--icon-size);height:var(--icon-size);flex-shrink:0}.im-c-map-button svg+span{margin-left:var(--button-icon-label-offset);white-space:nowrap}@media(hover: hover)and (pointer: fine){.im-c-map-button:hover{background-color:var(--button-hover-color)}}@media(hover: hover)and (pointer: fine)and (prefers-reduced-motion: no-preference){.im-c-map-button:hover{transition:background-color var(--duration) ease}}.im-c-map-button--with-label{padding-left:var(--label-button-padding);padding-right:var(--label-button-padding)}.im-c-map-button--primary{color:var(--background-color);background-color:var(--primary-button-color);box-shadow:var(--primary-button-box-shadow)}.im-c-map-button--primary span{white-space:nowrap;padding:0 var(--button-icon-label-offset)}.im-c-map-button--primary svg+span{padding-left:0}.im-c-map-button--primary::before{box-shadow:none}@media(hover: hover)and (pointer: fine){.im-c-map-button--primary:hover{background-color:var(--primary-button-hover-color)}}.im-c-map-button--tertiary{border:1px solid var(--tertiary-button-border-color);box-shadow:var(--tertiary-button-box-shadow)}.im-c-map-button--tertiary span{white-space:nowrap;padding:0 5px}.im-c-map-button--tertiary svg+span{padding-left:0}.im-c-map-button--tertiary::before{box-shadow:none}.im-o-app__right .im-c-button-group{display:flex;flex-direction:column}.im-o-app__right .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button,.im-o-app__right .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::before,.im-o-app__right .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::after{border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app__right .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::before{clip-path:inset(-20px -20px 0 -20px)}.im-o-app__right .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button,.im-o-app__right .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before,.im-o-app__right .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::after{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app__right .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before{clip-path:inset(-20px -20px -20px -20px)}.im-o-app__right .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before{clip-path:inset(0 -20px 0 -20px)}.im-o-app__right .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button{margin-top:0}.im-o-app__right .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button,.im-o-app__right .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::before,.im-o-app__right .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::after{border-top-left-radius:0;border-top-right-radius:0}.im-o-app__right .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::before{clip-path:inset(0 -20px -20px -20px)}.im-o-app__top .im-c-button-group{display:flex;flex-direction:row}.im-o-app__top .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button,.im-o-app__top .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::before,.im-o-app__top .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::after{border-top-right-radius:0;border-bottom-right-radius:0}.im-o-app__top .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::before{clip-path:inset(-20px 0 -20px -20px)}.im-o-app__top .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button,.im-o-app__top .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before,.im-o-app__top .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::after{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app__top .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before{clip-path:inset(-20px -20px -20px -20px)}.im-o-app__top .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before{clip-path:inset(-20px 0 -20px 0)}.im-o-app__top .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button,.im-o-app__top .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::before,.im-o-app__top .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::after{border-top-left-radius:0;border-bottom-left-radius:0}.im-o-app__top .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::before{clip-path:inset(-20px -20px -20px 0)}.im-c-map-button[aria-haspopup=true][aria-expanded=true] svg{transform:rotate(180deg)}.im-c-map-button[aria-disabled=true]:not(.im-c-map-button--primary):not(.im-c-map-button--tertiary) svg,.im-c-map-button[aria-disabled=true]:not(.im-c-map-button--primary):not(.im-c-map-button--tertiary) span{opacity:var(--disabled-button-opacity)}.im-o-app__actions .im-c-map-button[aria-pressed=true]{color:var(--pressed-button-foreground-color);border-color:var(--pressed-button-border-color);background-color:var(--pressed-button-background-color)}.im-c-panel{border:0;border-radius:var(--panel-border-radius)}.im-c-panel::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--panel-border-radius));box-shadow:var(--panel-box-shadow)}.im-c-panel:focus{outline:0}.im-c-panel[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-panel::after{content:"";pointer-events:none;position:absolute;z-index:99;top:-1px;right:-1px;bottom:-1px;left:-1px;border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--panel-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-panel::after{transition:opacity var(--duration) ease}}.im-c-panel[data-focus-visible=true]::after{opacity:1}.im-c-panel{position:relative;display:flex;flex-direction:column;max-height:100vh;min-height:0;min-width:var(--min-panel-width);pointer-events:auto;background-color:var(--background-color)}.im-c-panel__heading{display:flex;padding:var(--panel-heading-margin-top) calc(var(--panel-close-button-gap)*2 + var(--button-size)) var(--panel-margin) var(--panel-margin);color:var(--foreground-color)}.im-c-panel__close{border:0;border-radius:var(--button-border-radius)}.im-c-panel__close::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--button-border-radius));box-shadow:var(--button-box-shadow)}.im-c-panel__close:focus{outline:0}.im-c-panel__close[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-panel__close::after{content:"";pointer-events:none;position:absolute;z-index:99;top:-1px;right:-1px;bottom:-1px;left:-1px;border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--button-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-panel__close::after{transition:opacity var(--duration) ease}}.im-c-panel__close[data-focus-visible=true]::after{opacity:1}.im-c-panel__close{border:0;position:absolute;top:var(--panel-close-button-gap);right:var(--panel-close-button-gap);padding-left:var(--button-padding);padding-right:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);color:var(--foreground-color);background-color:rgba(0,0,0,0);cursor:pointer}.im-c-panel__body{padding:0 var(--panel-margin) var(--panel-margin);overflow:auto}.im-c-panel__body[data-focus-visible=true]{outline:var(--scrollable-outline);outline-offset:var(--scrollable-outline-offset);box-shadow:var(--scrollable-box-shadow)}.im-c-panel__close::before{content:none}@media(prefers-reduced-motion: no-preference){.im-c-panel__close:hover{transition:background-color var(--duration) ease}}.im-c-panel__close:hover{background-color:var(--button-hover-color)}.im-o-app--mobile .im-c-panel--bottom{border:0;border-radius:var(--panel-border-radius)}.im-o-app--mobile .im-c-panel--bottom::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--panel-border-radius));box-shadow:var(--panel-box-shadow)}.im-o-app--mobile .im-c-panel--bottom:focus{outline:0}.im-o-app--mobile .im-c-panel--bottom[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-o-app--mobile .im-c-panel--bottom::after{content:"";pointer-events:none;position:absolute;z-index:99;top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width);border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--panel-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-o-app--mobile .im-c-panel--bottom::after{transition:opacity var(--duration) ease}}.im-o-app--mobile .im-c-panel--bottom[data-focus-visible=true]::after{opacity:1}.im-o-app--mobile .im-c-panel--bottom,.im-o-app--mobile .im-c-panel--bottom::before,.im-o-app--mobile .im-c-panel--bottom::after{border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app--mobile .im-c-panel--bottom::before{clip-path:inset(-20px -20px 0 -20px)}.im-o-app--desktop .im-c-panel--banner.im-c-panel--no-heading .im-c-panel__close{top:var(--banner-close-button-gap);right:var(--banner-close-button-gap)}.im-o-app--desktop .im-c-panel--banner.im-c-panel--no-heading .im-c-panel__body--offset{padding-top:10px;padding-bottom:10px}.im-c-panel__body--offset{padding-right:calc(var(--button-size) + var(--divider-gap))}.im-c-icon--narrow{margin-left:-3px;margin-right:-3px}.im-c-viewport{width:100%;height:100%;background-color:var(--background-colour);-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:0;border-radius:0px}.im-c-viewport::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:0px}.im-c-viewport:focus{outline:0}.im-c-viewport[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-viewport::after{content:"";pointer-events:none;position:absolute;z-index:99;top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width);border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:-2px;opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-viewport::after{transition:opacity var(--duration) ease}}.im-c-viewport[data-focus-visible=true]::after{opacity:1}.im-c-viewport__map-container{width:100%;height:100%}.im-c-viewport__map-container>*:first-child{overflow:visible;transform-origin:top left}.im-c-viewport__safezone{position:absolute;pointer-events:none;z-index:1}.im-c-viewport__markers{position:absolute;inset:0;pointer-events:none}.im-c-viewport--medium .im-c-viewport__map-container{width:66.66%;height:66.66%}.im-c-viewport--medium .im-c-viewport__map-container>*:first-child{transform:scale(1.5)}.im-c-viewport--large .im-c-viewport__map-container{width:50%;height:50%}.im-c-viewport--large .im-c-viewport__map-container>*:first-child{transform:scale(2)}.im-c-tooltip-wrapper{position:relative;display:inline-block;z-index:1}.im-c-tooltip-wrapper:hover,.im-c-tooltip-wrapper--has-focus{z-index:2}.im-c-tooltip{position:absolute;z-index:10;visibility:hidden;pointer-events:none;opacity:0;color:var(--tooltip-foreground-color);background-color:var(--tooltip-background-color);border-radius:var(--tooltip-border-radius);white-space:nowrap;padding:var(--tooltip-padding);font-size:var(--tooltip-font-size);line-height:1.2}@media(prefers-reduced-motion: no-preference){.im-c-tooltip{transition:opacity var(--duration) ease,visibility var(--duration) ease}}.im-c-tooltip::after{content:"";position:absolute;box-sizing:border-box;z-index:-1;width:var(--tooltip-arrow-size);height:var(--tooltip-arrow-size);color:var(--tooltip-background-color);border:calc(var(--tooltip-arrow-size)/2) solid currentcolor}.im-c-tooltip--is-visible{opacity:1;visibility:visible;pointer-events:auto}.im-c-tooltip--hidden{width:0;overflow:hidden}.im-c-tooltip--left{top:50%;transform:translateY(-50%);left:auto;right:calc(100% + var(--tooltip-offset))}.im-c-tooltip--left::after{top:50%;transform:translateY(-50%) rotate(45deg);right:calc(var(--tooltip-arrow-size)/2*-1)}.im-c-tooltip--right{top:50%;transform:translateY(-50%);right:auto;left:calc(100% + var(--tooltip-offset))}.im-c-tooltip--right::after{top:50%;transform:translateY(-50%) rotate(45deg);left:calc(var(--tooltip-arrow-size)/2*-1)}.im-c-tooltip--bottom{top:calc(100% + var(--tooltip-offset));left:50%;transform:translateX(-50%)}.im-c-tooltip--bottom::after{left:50%;transform:translateX(-50%) rotate(45deg);top:calc(var(--tooltip-arrow-size)/2*-1)}.im-c-tooltip--top{bottom:calc(100% + var(--tooltip-offset));left:50%;transform:translateX(-50%)}.im-c-tooltip--top::after{left:50%;transform:translateX(-50%) rotate(45deg);bottom:calc(var(--tooltip-arrow-size)/2*-1)}.im-c-popup-menu{border:0;border-radius:var(--button-border-radius)}.im-c-popup-menu::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--button-border-radius));box-shadow:var(--button-box-shadow)}.im-c-popup-menu:focus{outline:0}.im-c-popup-menu[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-popup-menu::after{content:"";pointer-events:none;position:absolute;z-index:99;top:-1px;right:-1px;bottom:-1px;left:-1px;border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--button-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-popup-menu::after{transition:opacity var(--duration) ease}}.im-c-popup-menu[data-focus-visible=true]::after{opacity:1}.im-c-popup-menu[data-focus-visible=true]::after{opacity:0}.im-c-popup-menu{background-color:var(--background-color);position:fixed;z-index:9999;list-style:none;margin:0;padding:0}.im-c-popup-menu[data-direction=below]{margin-top:var(--divider-gap)}.im-c-popup-menu[data-direction=above]{margin-bottom:var(--divider-gap)}.im-c-popup-menu[data-halign=center]{transform:translateX(-50%)}.im-c-popup-menu__item{display:flex;position:relative;align-items:center;padding:var(--divider-gap);border-top:1px solid var(--button-hover-color);text-align:left;cursor:pointer;min-width:var(--popup-menu-min-width);max-width:var(--popup-menu-max-width)}.im-c-popup-menu__item:first-child{border-top:0}@media(hover: hover)and (pointer: fine){.im-c-popup-menu__item:hover:not(.im-c-popup-menu__item--selected){background-color:var(--button-hover-color)}}.im-c-popup-menu__item:hover:not(.im-c-popup-menu__item--selected) .im-c-popup-menu__item-label{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:2px;text-decoration-color:var(--foreground-color);text-decoration-skip-ink:none}.im-c-popup-menu__item--selected{background-color:var(--button-hover-color)}.im-c-popup-menu__item--selected .im-c-popup-menu__item-label{outline:3px solid rgba(0,0,0,0);color:var(--focus-border-color);background-color:var(--focus-outline-color);box-shadow:0 -2px var(--focus-outline-color),0 4px var(--focus-border-color);text-decoration:none}.im-c-popup-menu__item svg+span{margin-left:calc(var(--button-icon-label-offset) + 3px);white-space:nowrap}.im-c-popup-menu__item[aria-disabled=true] .im-c-popup-menu__item-label,.im-c-popup-menu__item[aria-disabled=true] svg{opacity:.5}.im-c-popup-menu__item[role=menuitemcheckbox]{padding-right:75px}.im-c-popup-menu__item[role=menuitemcheckbox]::before{content:"";position:absolute;border:1px solid var(--foreground-color);left:auto;top:12px;right:12px;width:20px;height:20px;opacity:.2}.im-c-popup-menu__item[role=menuitemcheckbox]::after{content:"";position:absolute;top:17px;left:auto;right:16px;width:12px;height:6.5px;border:solid;border-width:0 0 3px 3px;transform:rotate(-45deg);opacity:0}.im-c-popup-menu__item[role=menuitemcheckbox][aria-checked=true]::before{top:10px;right:10px;width:24px;height:24px;border-width:2px;opacity:1}.im-c-popup-menu__item[role=menuitemcheckbox][aria-checked=true]::after{opacity:1}.im-c-popup-menu__item[role=menuitemcheckbox]:hover::before,.im-c-popup-menu__item--selected[role=menuitemcheckbox]::before,.im-c-popup-menu__item--selected[role=menuitemcheckbox][aria-checked=true]::before{top:10px;right:10px;width:24px;height:24px;border-width:4px;outline:3px solid rgba(0,0,0,0);outline-offset:1px;box-shadow:0 0 0 3px #fd0;opacity:1}.im-c-attributions{color:var(--attributions-foreground-color);background-color:var(--attributions-background-color);padding:var(--attributions-padding);font-size:var(--attributions-font-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.im-c-logo{align-self:center;flex-shrink:0;height:auto;width:auto;user-select:none}.im-o-hints{position:absolute;bottom:var(--hint-bottom, var(--primary-gap));left:50%;transform:translateX(-50%);z-index:1001}.im-c-hints{display:flex;flex-direction:column;align-items:center;gap:var(--divider-gap)}.im-c-hints__hint{text-wrap:nowrap;color:var(--tooltip-foreground-color);background-color:var(--tooltip-background-color);border-radius:var(--tooltip-border-radius);padding:var(--tooltip-padding);font-size:var(--tooltip-font-size);line-height:1.2}.im-c-hints__hint kbd{border:var(--kbd-tooltip-border)}.im-c-cross-hair{position:absolute;top:0;left:0;pointer-events:none;margin:-19px 0 0 -19px}.im-c-cross-hair path{stroke-width:3;stroke:var(--map-overlay-halo-color);fill:var(--map-overlay-foreground-color);paint-order:stroke fill}.im-c-markers{position:absolute;top:0;left:0;pointer-events:none}.im-c-marker{position:absolute;left:0;top:0;pointer-events:none}.im-c-marker-wrapper{position:absolute;left:0;top:0;pointer-events:none}.im-c-marker__svg{display:block;pointer-events:none}.im-c-marker__label{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);white-space:nowrap;pointer-events:none;color:var(--tooltip-foreground-color);background-color:var(--tooltip-background-color);border-radius:var(--tooltip-border-radius);padding:var(--tooltip-padding);font-size:var(--tooltip-font-size);line-height:1.2}.im-c-marker__label--standalone{bottom:0}.im-c-marker__label--standalone::after{content:"";position:absolute;top:calc(100% - 1px);left:50%;transform:translateX(-50%);border:calc(var(--tooltip-arrow-size) - 2px) solid rgba(0,0,0,0);border-top-color:var(--tooltip-background-color)}.im-c-features{position:absolute;inset:0;pointer-events:none;list-style:none;margin:0;padding:0;border:0;border-radius:0px}.im-c-features::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:0px}.im-c-features:focus{outline:0}.im-c-features[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-features::after{content:"";pointer-events:none;position:absolute;z-index:99;top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width);border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:-2px;opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-features::after{transition:opacity var(--duration) ease}}.im-c-features[data-focus-visible=true]::after{opacity:1}.im-c-features[data-focus-visible=true][aria-activedescendant]::after{opacity:0}.im-c-features [role=option]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.im-c-actions{position:relative;display:flex;flex-direction:row;justify-content:center;gap:calc(var(--divider-gap)/2);padding:var(--panel-margin);max-height:200px}.im-c-actions--border-top{border-top:1px solid var(--app-border-color)}.im-c-actions--hidden{max-height:0;padding-top:0;padding-bottom:0;border:0}.im-c-actions .im-c-button-wrapper--wide{display:flex;flex:1 1 0}.im-c-actions .im-c-map-button--primary,.im-c-actions .im-c-map-button--tertiary{width:100%}.im-o-app--tablet .im-c-actions,.im-o-app--desktop .im-c-actions{min-width:0}.im-c-open-map-button{font-family:-apple-system,blinkmacsystemfont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;display:inline-flex;text-decoration:none;border:1px solid #505a5f;white-space:nowrap;padding:10px}.im-c-open-map-button svg+span{padding-left:8px}.im-c-open-map-button span{color:#1d70b8}.im-c-open-map-button:hover{background-color:#f3f2f1}.im-c-open-map-button:active span{color:#0b0c0c}.im-c-open-map-button:focus{border-color:rgba(0,0,0,0);outline:3px solid rgba(0,0,0,0);color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none}.im-c-open-map-button:focus span{color:#0b0c0c}.im-c-error{padding:15px;margin-bottom:30px;border:5px solid #b1b4b6}.im-is-loading{visibility:hidden}.im-has-js{position:fixed;overflow:hidden;top:0;right:0;bottom:0;left:0}.im-is-fullscreen{height:100%;overflow-y:visible;overscroll-behavior-y:none}.im-is-fullscreen body{position:fixed;overflow:hidden;top:0;right:0;bottom:0;left:0}.maplibregl-canvas-container canvas{image-rendering:pixelated;outline:0}.maplibregl-control-container{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.maplibregl-control-container *{pointer-events:auto}.maplibregl-symbols{display:none}.im-u-visually-hidden{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0;white-space:nowrap}
1
+ :root{--foreground-color: #0b0c0c;--background-color: #ffffff;--focus-border-color: #0b0c0c;--focus-outline-color: #ffdd00;--button-background-color: #ffffff;--button-hover-color: #f3f2f1;--primary-button-color: #00703c;--primary-button-hover-color: #005a30;--primary-button-box-shadow: inset 0 -2px 0 #002d18;--tertiary-button-border-color: #505a5f;--disabled-button-opacity: 0.4;--pressed-button-foreground-color: #ffffff;--pressed-button-border-color: #0b0c0c;--pressed-button-background-color: #0b0c0c;--scrollable-outline: 3px solid #ffdd00;--scrollable-outline-offset: -3px;--scrollable-box-shadow: inset 0 0 0 6px #002d18;--tooltip-background-color: #383F43;--tooltip-foreground-color: #ffffff;--modal-background-color: #0b0c0c;--modal-backdrop-opacity: 0.4;--attributions-foreground-color: #0b0c0c;--attributions-background-color: #ffffff80;--fixed-foreground-color: #0b0c0c;--app-border-color: #cecece;--content-border-color: #f3f2f1;--secondary-text-color: #505a5f;--image-placeholder-color: #b1b4b6;--content-link-color: #1d70b8}:root .im-o-app--dark-app{--foreground-color: #ffffff;--background-color: #383F43;--focus-border-color: #0b0c0c;--focus-outline-color: #ffdd00;--button-background-color: #383F43;--button-hover-color: #505a5f;--primary-button-color: #ffffff;--primary-button-hover-color: #b1b4b6;--primary-button-box-shadow: none;--tertiary-button-border-color: #f3f2f1;--tertiary-button-box-shadow: none;--disabled-button-opacity: 0.4;--pressed-button-foreground-color: #0b0c0c;--pressed-button-border-color: #ffffff;--pressed-button-background-color: #ffffff;--content-border-color: #505a5f;--secondary-text-color: #f3f2f1;--content-link-color: #ffffff}:root{--font-family: gds transport,arial,sans-serif;--font-size: 16px;--line-height: 1.25em}:root{--button-box-shadow: 0 -2px 20px rgba(0,0,0,.1), 0 0 12px rgba(0,0,0,.1);--panel-box-shadow: 0 -2px 20px rgba(0,0,0,.1), 0 0 12px rgba(0,0,0,.1);--shadow-clip-size: 20px}:root{--duration: 0.2s}:root{--primary-gap: 15px;--divider-gap: 10px;--button-size: 40px;--icon-size: 24px;--button-padding: 8px;--button-icon-label-offset: 7px;--label-button-padding: 10px;--app-border-width: 1px;--button-border-radius: 0px;--panel-border-radius: 0px;--focus-border-width: 3px;--focus-outline-width: 3px;--modal-offset-top: 0px;--modal-offset-right: 0px;--tooltip-padding: 10px;--tooltip-offset: 10px;--tooltip-arrow-size: 8px;--tooltip-font-size: 14px;--tooltip-border-radius: 3px;--min-panel-width: 260px;--panel-close-button-gap: 4px;--panel-heading-margin-top: 12px;--panel-margin: 15px;--banner-close-button-gap: 0px;--banner-max-desktop-width: 400px;--banner-collapse-margin: 14px;--popup-menu-min-width: 200px;--popup-menu-max-width: 300px;--action-bar-max-width: calc(100% - (var(--button-size) * 2) - (var(--primary-gap) * 4));--action-button-min-width: 120px;--attributions-padding: 2px 5px;--attributions-font-size: 12px}:root{--kbd-font-family: monospace;--kbd-background-color: var(--background-color);--kbd-foreground-color: var(--tooltip-background-color);--kbd-border: 2px solid #e7e7e7;--kbd-border-radius: 4px;--kbd-font-size: .825rem;--kbd-padding: 2px 4px;--kbd-tooltip-border: none}:root .im-o-app--dark-app{--kbd-background-color: var(--background-color);--kbd-foreground-color: var(--tooltip-foreground-color);--kbd-tooltip-border: 2px solid #505a5f;--kbd-border: 2px solid #505a5f}.im-o-app *,.im-o-app *::before,.im-o-app *::after{box-sizing:border-box}.im-o-app *{margin:0}.im-o-app img,.im-o-app picture,.im-o-app video,.im-o-app canvas,.im-o-app svg{display:block}.im-o-app input,.im-o-app button,.im-o-app textarea,.im-o-app select{font:inherit}.im-o-app p,.im-o-app h1,.im-o-app h2,.im-o-app h3,.im-o-app h4,.im-o-app h5,.im-o-app h6{overflow-wrap:break-word}.im-o-app{visibility:visible;font-family:var(--font-family);font-size:var(--font-size);line-height:var(--line-height);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--foreground-color);background-color:var(--background-color);-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.im-is-fullscreen>.im-o-app{position:fixed;z-index:999;top:0;bottom:0;left:0;right:0;width:100%}.im-o-app__overlay,.im-o-app__modal{pointer-events:none}.im-e-heading-s,.im-e-heading-m,.im-e-heading-l{margin:0;font-weight:600}.im-e-heading-l{font-size:1.5rem;line-height:1.25}.im-e-heading-m{font-size:1.25rem;line-height:1.25}.im-e-heading-s{font-size:1rem;line-height:1.25}kbd{font-family:var(--kbd-font-family);border:var(--kbd-border);background-color:var(--kbd-background-color);color:var(--kbd-foreground-color);border-radius:var(--kbd-border-radius);font-size:var(--kbd-font-size);padding:var(--kbd-padding)}.im-o-app{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;touch-action:none}.im-o-app__overlay{position:absolute;z-index:1;box-sizing:border-box;flex-direction:row;display:flex;justify-content:space-between;top:0;left:0;width:100%;height:100%;min-height:0;visibility:visible;opacity:1}@media(prefers-reduced-motion: no-preference){.im-o-app__overlay{transition:opacity var(--duration) ease-in}}.im-o-app__side{position:relative;display:flex;flex-direction:column;z-index:3;flex-shrink:0;height:100%}.im-o-app__main{position:relative;display:flex;flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;flex-wrap:nowrap;padding:var(--primary-gap)}.im-o-app__side .im-c-panel{height:100%;border:0;border-radius:var(--panel-border-radius)}.im-o-app__side .im-c-panel::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--panel-border-radius));box-shadow:var(--panel-box-shadow)}.im-o-app__side .im-c-panel:focus{outline:0}.im-o-app__side .im-c-panel[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-o-app__side .im-c-panel::after{content:"";pointer-events:none;position:absolute;z-index:99;top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width);border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--panel-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-o-app__side .im-c-panel::after{transition:opacity var(--duration) ease}}.im-o-app__side .im-c-panel[data-focus-visible=true]::after{opacity:1}.im-o-app__side .im-c-panel,.im-o-app__side .im-c-panel::before,.im-o-app__side .im-c-panel::after{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app__side .im-c-panel::before{clip-path:inset(-20px -20px -20px -20px)}.im-o-app__banner{display:flex;flex-direction:column;gap:var(--divider-gap)}.im-o-app__banner .im-c-panel:last-child{margin-bottom:var(--divider-gap)}.im-o-app__top{display:flex;margin-bottom:auto;justify-content:space-between;align-items:flex-start;width:100%;gap:var(--divider-gap)}.im-o-app__top-col{display:flex;flex:1 1 auto;gap:var(--divider-gap)}.im-o-app__top-col:not(:empty){padding-bottom:var(--divider-gap)}.im-o-app__top-col:first-child,.im-o-app__top-col:last-child{flex:1 1 calc(var(--button-size) + var(--primary-gap)*2);max-width:var(--top-col-width, 100%)}.im-o-app__top-col:first-child{justify-content:flex-start}.im-o-app__top-col:last-child{justify-content:flex-end}.im-o-app__top-col:nth-child(2){justify-content:center}.im-o-app__inset{display:flex;flex-direction:column;position:absolute;gap:var(--divider-gap);top:var(--left-offset-top)}.im-o-app__left{position:absolute;display:flex;flex-direction:column;left:var(--primary-gap);top:var(--left-offset-top);bottom:var(--left-offset-bottom);gap:var(--divider-gap)}.im-o-app__left>*:empty{display:none}.im-o-app__left-top{display:flex;flex-direction:column;align-items:flex-start;min-height:0;position:relative;gap:var(--divider-gap)}.im-o-app__left-bottom{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;min-height:0;margin-top:auto;position:relative;gap:var(--divider-gap)}.im-o-app__middle{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:-1}.im-o-app__right{position:absolute;display:flex;flex-direction:column;right:var(--primary-gap);top:var(--right-offset-top);bottom:var(--right-offset-bottom);gap:var(--divider-gap)}.im-o-app__right-top{display:flex;flex-direction:column;flex:0 0 auto;align-items:flex-end;position:relative;gap:var(--divider-gap)}.im-o-app__right-bottom{display:flex;flex-direction:column;flex:0 0 auto;margin-top:auto;align-items:flex-end;position:relative;gap:var(--divider-gap)}.im-o-app__bottom{display:flex;justify-content:space-between;align-items:flex-end;z-index:-2}.im-o-app__bottom-col{display:flex;min-width:auto}.im-o-app__bottom-col:first-child{flex-direction:row;align-items:flex-end;flex-shrink:0;gap:var(--divider-gap)}.im-o-app__bottom-col:last-child{position:relative;flex:1 1 auto;flex-direction:column;align-items:flex-end;min-width:0}.im-o-app__bottom-left,.im-o-app__bottom-right{display:flex;flex-direction:row;gap:var(--divider-gap)}.im-o-app__bottom-right{justify-content:flex-end}.im-o-app__attributions:not(:empty){position:absolute;bottom:calc(var(--primary-gap)*-1);right:calc(var(--primary-gap)*-1);display:flex;justify-content:flex-end}.im-o-app__drawer{z-index:1}.im-o-app__drawer .im-c-panel,.im-o-app__drawer .im-c-panel::before,.im-o-app__drawer .im-c-panel::after{border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app__drawer .im-c-panel::before{clip-path:inset(-20px -20px 0 -20px)}.im-o-app__actions{display:flex;flex-shrink:0;justify-content:center;text-align:center}.im-o-app__actions .im-c-panel__body{overflow:visible}.im-o-app .im-o-app__modal{display:flex;position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.im-o-app .im-o-app__modal .im-c-panel{position:absolute;top:0;right:0;bottom:auto;left:0;z-index:1000}.im-o-app .im-o-app__modal .im-c-panel+.im-o-app__modal-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--modal-background-color);opacity:var(--modal-backdrop-opacity);pointer-events:auto}.im-o-app .im-o-app__modal .im-c-panel--side{width:100%;max-width:80%;bottom:0;border:0;border-radius:var(--panel-border-radius)}.im-o-app .im-o-app__modal .im-c-panel--side::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--panel-border-radius));box-shadow:var(--panel-box-shadow)}.im-o-app .im-o-app__modal .im-c-panel--side:focus{outline:0}.im-o-app .im-o-app__modal .im-c-panel--side[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-o-app .im-o-app__modal .im-c-panel--side::after{content:"";pointer-events:none;position:absolute;z-index:99;top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width);border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--panel-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-o-app .im-o-app__modal .im-c-panel--side::after{transition:opacity var(--duration) ease}}.im-o-app .im-o-app__modal .im-c-panel--side[data-focus-visible=true]::after{opacity:1}.im-o-app .im-o-app__modal .im-c-panel--side,.im-o-app .im-o-app__modal .im-c-panel--side::before,.im-o-app .im-o-app__modal .im-c-panel--side::after{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app .im-o-app__modal .im-c-panel--side::before{clip-path:inset(-20px -20px -20px -20px)}.im-o-app .im-o-app__modal .im-c-panel--inset{inset:var(--modal-inset);max-width:calc(100% - var(--primary-gap)*2);max-height:var(--modal-max-height)}.im-o-app .im-o-app__modal .im-c-panel--left-top,.im-o-app .im-o-app__modal .im-c-panel.im-c-panel--left-top-button{inset:var(--left-offset-top) auto auto var(--primary-gap);max-height:calc(100% - var(--left-offset-top) - var(--primary-gap))}.im-o-app .im-o-app__modal .im-c-panel--left-bottom,.im-o-app .im-o-app__modal .im-c-panel.im-c-panel--left-bottom-button{inset:auto auto var(--left-offset-bottom) var(--primary-gap);max-height:calc(100% - var(--left-offset-bottom) - var(--primary-gap))}.im-o-app .im-o-app__modal .im-c-panel--right-top,.im-o-app .im-o-app__modal .im-c-panel.im-c-panel--right-top-button{inset:var(--right-offset-top) var(--primary-gap) auto auto;max-height:calc(100% - var(--right-offset-top) - var(--primary-gap))}.im-o-app .im-o-app__modal .im-c-panel--right-bottom,.im-o-app .im-o-app__modal .im-c-panel.im-c-panel--right-bottom-button{inset:auto var(--primary-gap) var(--right-offset-bottom) auto;max-height:calc(100% - var(--right-offset-bottom) - var(--primary-gap))}.im-o-app .im-o-app__modal .im-c-panel--middle{position:relative;margin:auto;width:100%;max-width:calc(100% - var(--primary-gap)*2);max-height:calc(100% - var(--primary-gap)*2)}.im-o-app .im-o-app__modal .im-c-panel--drawer{top:auto;bottom:0;max-height:85%}.im-o-app .im-o-app__modal .im-c-panel--drawer,.im-o-app .im-o-app__modal .im-c-panel--drawer::before,.im-o-app .im-o-app__modal .im-c-panel--drawer::after{border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app .im-o-app__modal .im-c-panel--drawer::before{clip-path:inset(-20px -20px 0 -20px)}.im-o-app .im-o-app__modal [class*=im-c-panel--][class*=-button]{inset:var(--modal-inset);max-height:var(--modal-max-height)}.im-o-app--mobile .im-o-app__modal .im-c-panel--banner,.im-o-app--tablet .im-o-app__modal .im-c-panel--banner{margin:var(--primary-gap)}.im-o-app--mobile .im-o-app__banner,.im-o-app--tablet .im-o-app__banner{z-index:9}.im-o-app--desktop .im-o-app__modal .im-c-panel--banner{margin-top:var(--primary-gap)}.im-o-app--inline{border:var(--app-border-width) solid var(--app-border-color);box-sizing:border-box}.im-o-app__overlay--not-ready{visibility:hidden;opacity:0}.im-o-app--desktop .im-c-panel--banner{margin-left:auto;margin-right:auto;max-width:var(--banner-max-desktop-width)}.im-o-app--tablet .im-o-app__actions,.im-o-app--desktop .im-o-app__actions{position:absolute;width:100%;left:0;bottom:calc(var(--primary-gap)*2)}.im-o-app--tablet .im-o-app__actions .im-c-panel,.im-o-app--desktop .im-o-app__actions .im-c-panel{max-width:var(--action-bar-max-width)}@media(prefers-reduced-motion: no-preference){.im-o-app--tablet .im-o-app__actions .im-c-actions,.im-o-app--desktop .im-o-app__actions .im-c-actions{transition:opacity var(--duration) ease}}.im-o-app--tablet .im-o-app__actions .im-c-actions--hidden,.im-o-app--desktop .im-o-app__actions .im-c-actions--hidden{opacity:0}.im-o-app--mobile .im-o-app__drawer,.im-o-app--mobile .im-o-app__actions{margin:var(--primary-gap) calc(var(--primary-gap)*-1) calc(var(--primary-gap)*-1) calc(var(--primary-gap)*-1)}.im-o-app--mobile .im-o-app__drawer .im-c-panel,.im-o-app--mobile .im-o-app__actions .im-c-panel{width:100%}.im-o-app--mobile .im-o-app__drawer .im-c-panel,.im-o-app--mobile .im-o-app__drawer .im-c-panel::before,.im-o-app--mobile .im-o-app__drawer .im-c-panel::after,.im-o-app--mobile .im-o-app__actions .im-c-panel,.im-o-app--mobile .im-o-app__actions .im-c-panel::before,.im-o-app--mobile .im-o-app__actions .im-c-panel::after{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app--mobile .im-o-app__drawer .im-c-panel::before,.im-o-app--mobile .im-o-app__actions .im-c-panel::before{clip-path:inset(-20px -20px -20px -20px)}.im-o-app--mobile .im-o-app__drawer .im-c-panel{clip-path:inset(-20px 0 0 0)}.im-o-app--mobile .im-o-app__drawer .im-c-panel::after,.im-o-app--mobile .im-o-app__actions .im-c-panel::after,.im-o-app__modal .im-c-panel--drawer::after{top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width)}.im-o-app--mobile .im-o-app__side{position:absolute;left:0;top:0;width:100%;max-width:80%;pointer-events:none}.im-c-keyboard-help__list{margin:0;color:var(--foreground-color)}.im-c-keyboard-help__item{display:table;padding:10px 0;width:100%;border-top:1px solid var(--content-border-color)}.im-c-keyboard-help__item:last-child{padding-bottom:0}.im-c-keyboard-help__group:last-child .im-c-keyboard-help__item:last-child{padding-bottom:0}.im-c-keyboard-help__title{display:table-cell;width:45%}.im-c-keyboard-help__description{display:table-cell}.im-o-app--mobile .im-c-keyboard-help__title{width:100%;display:block}.im-o-app--mobile .im-c-keyboard-help__description{display:block;margin-top:5px}.im-c-tabs__panel .im-c-keyboard-help__item:first-child{border-top:0}.im-c-tabs__list{position:relative;display:flex;flex-wrap:wrap;padding:0;margin:0;border-bottom:1px solid var(--app-border-color);z-index:1}.im-c-tabs__tab{position:relative;appearance:none;background:var(--button-hover-color);border:1px solid rgba(0,0,0,0);border-bottom:none;padding:7.5px 15px;margin:5px 5px 5px 0;cursor:pointer;color:var(--foreground-color);font-size:inherit;font-weight:normal;outline:3px solid rgba(0,0,0,0)}.im-c-tabs__tab[aria-selected=true]{background:var(--background-color);border-color:var(--app-border-color);border-bottom-color:var(--background-color);margin-top:0;margin-bottom:-1px}.im-c-tabs__tab:focus .im-c-tabs__label{outline:3px solid rgba(0,0,0,0);color:var(--focus-border-color);background-color:var(--focus-outline-color);box-shadow:0 -2px var(--focus-outline-color),0 4px var(--focus-border-color);text-decoration:none}.im-c-tabs__tab:not([aria-selected=true]):hover{background-color:var(--content-border-color)}.im-c-tabs__tab:not([aria-selected=true]) .im-c-tabs__label{text-decoration:underline;text-underline-offset:3px}.im-c-tabs__tab:not([aria-selected=true]):hover .im-c-tabs__label{text-decoration-thickness:3px}.im-c-button-wrapper{position:relative}.im-c-button-wrapper .im-c-panel{position:absolute;right:calc(100% + var(--divider-gap));top:0}.im-c-map-button{border:0;border-radius:var(--button-border-radius)}.im-c-map-button::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--button-border-radius));box-shadow:var(--button-box-shadow)}.im-c-map-button:focus{outline:0}.im-c-map-button[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-map-button::after{content:"";pointer-events:none;position:absolute;z-index:99;top:-1px;right:-1px;bottom:-1px;left:-1px;border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--button-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-map-button::after{transition:opacity var(--duration) ease}}.im-c-map-button[data-focus-visible=true]::after{opacity:1}.im-c-map-button{display:flex;justify-content:center;align-items:center;padding-left:var(--button-padding);padding-right:var(--button-padding);pointer-events:auto;color:var(--foreground-color);background-color:var(--button-background-color);min-height:var(--button-size);min-width:var(--button-size);user-select:none;cursor:pointer}.im-c-map-button--primary[aria-disabled=true],.im-c-map-button--tertiary[aria-disabled=true]{opacity:var(--disabled-button-opacity)}.im-c-map-button svg{pointer-events:none;width:var(--icon-size);height:var(--icon-size);flex-shrink:0}.im-c-map-button svg+span{margin-left:var(--button-icon-label-offset);white-space:nowrap}@media(hover: hover)and (pointer: fine){.im-c-map-button:hover{background-color:var(--button-hover-color)}}@media(hover: hover)and (pointer: fine)and (prefers-reduced-motion: no-preference){.im-c-map-button:hover{transition:background-color var(--duration) ease}}.im-c-map-button--with-label{padding-left:var(--label-button-padding);padding-right:var(--label-button-padding)}.im-c-map-button--primary{color:var(--background-color);background-color:var(--primary-button-color);box-shadow:var(--primary-button-box-shadow)}.im-c-map-button--primary span{white-space:nowrap;padding:0 var(--button-icon-label-offset)}.im-c-map-button--primary svg+span{padding-left:0}.im-c-map-button--primary::before{box-shadow:none}@media(hover: hover)and (pointer: fine){.im-c-map-button--primary:hover{background-color:var(--primary-button-hover-color)}}.im-c-map-button--tertiary{border:1px solid var(--tertiary-button-border-color);box-shadow:var(--tertiary-button-box-shadow)}.im-c-map-button--tertiary span{white-space:nowrap;padding:0 5px}.im-c-map-button--tertiary svg+span{padding-left:0}.im-c-map-button--tertiary::before{box-shadow:none}.im-o-app__right .im-c-button-group{display:flex;flex-direction:column}.im-o-app__right .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button,.im-o-app__right .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::before,.im-o-app__right .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::after{border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app__right .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::before{clip-path:inset(-20px -20px 0 -20px)}.im-o-app__right .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button,.im-o-app__right .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before,.im-o-app__right .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::after{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app__right .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before{clip-path:inset(-20px -20px -20px -20px)}.im-o-app__right .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before{clip-path:inset(0 -20px 0 -20px)}.im-o-app__right .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button{margin-top:0}.im-o-app__right .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button,.im-o-app__right .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::before,.im-o-app__right .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::after{border-top-left-radius:0;border-top-right-radius:0}.im-o-app__right .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::before{clip-path:inset(0 -20px -20px -20px)}.im-o-app__top .im-c-button-group{display:flex;flex-direction:row}.im-o-app__top .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button,.im-o-app__top .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::before,.im-o-app__top .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::after{border-top-right-radius:0;border-bottom-right-radius:0}.im-o-app__top .im-c-button-group .im-c-button-wrapper:first-child .im-c-map-button::before{clip-path:inset(-20px 0 -20px -20px)}.im-o-app__top .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button,.im-o-app__top .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before,.im-o-app__top .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::after{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app__top .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before{clip-path:inset(-20px -20px -20px -20px)}.im-o-app__top .im-c-button-group .im-c-button-wrapper:not(:first-child):not(:last-child) .im-c-map-button::before{clip-path:inset(-20px 0 -20px 0)}.im-o-app__top .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button,.im-o-app__top .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::before,.im-o-app__top .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::after{border-top-left-radius:0;border-bottom-left-radius:0}.im-o-app__top .im-c-button-group .im-c-button-wrapper:last-child .im-c-map-button::before{clip-path:inset(-20px -20px -20px 0)}.im-c-map-button[aria-haspopup=true][aria-expanded=true] svg{transform:rotate(180deg)}.im-c-map-button[aria-disabled=true]:not(.im-c-map-button--primary):not(.im-c-map-button--tertiary) svg,.im-c-map-button[aria-disabled=true]:not(.im-c-map-button--primary):not(.im-c-map-button--tertiary) span{opacity:var(--disabled-button-opacity)}.im-o-app__actions .im-c-map-button[aria-pressed=true]{color:var(--pressed-button-foreground-color);border-color:var(--pressed-button-border-color);background-color:var(--pressed-button-background-color)}.im-o-app--tablet .im-c-map-button--journey-back,.im-o-app--tablet .im-c-map-button--journey-continue,.im-o-app--tablet .im-c-map-button--select-at-target,.im-o-app--tablet .im-c-map-button--draw-cancel,.im-o-app--tablet .im-c-map-button--draw-done,.im-o-app--tablet .im-c-map-button--draw-add-point,.im-o-app--desktop .im-c-map-button--journey-back,.im-o-app--desktop .im-c-map-button--journey-continue,.im-o-app--desktop .im-c-map-button--select-at-target,.im-o-app--desktop .im-c-map-button--draw-cancel,.im-o-app--desktop .im-c-map-button--draw-done,.im-o-app--desktop .im-c-map-button--draw-add-point{min-width:var(--action-button-min-width)}.im-c-panel{border:0;border-radius:var(--panel-border-radius)}.im-c-panel::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--panel-border-radius));box-shadow:var(--panel-box-shadow)}.im-c-panel:focus{outline:0}.im-c-panel[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-panel::after{content:"";pointer-events:none;position:absolute;z-index:99;top:-1px;right:-1px;bottom:-1px;left:-1px;border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--panel-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-panel::after{transition:opacity var(--duration) ease}}.im-c-panel[data-focus-visible=true]::after{opacity:1}.im-c-panel{position:relative;display:flex;flex-direction:column;max-height:100vh;min-height:0;min-width:var(--min-panel-width);pointer-events:auto;background-color:var(--background-color)}.im-c-panel__heading{display:flex;padding:var(--panel-heading-margin-top) calc(var(--panel-close-button-gap)*2 + var(--button-size)) var(--panel-margin) var(--panel-margin);color:var(--foreground-color)}.im-c-panel__close{border:0;border-radius:var(--button-border-radius)}.im-c-panel__close::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--button-border-radius));box-shadow:var(--button-box-shadow)}.im-c-panel__close:focus{outline:0}.im-c-panel__close[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-panel__close::after{content:"";pointer-events:none;position:absolute;z-index:99;top:-1px;right:-1px;bottom:-1px;left:-1px;border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--button-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-panel__close::after{transition:opacity var(--duration) ease}}.im-c-panel__close[data-focus-visible=true]::after{opacity:1}.im-c-panel__close{border:0;position:absolute;top:var(--panel-close-button-gap);right:var(--panel-close-button-gap);padding-left:var(--button-padding);padding-right:var(--button-padding);min-height:var(--button-size);min-width:var(--button-size);color:var(--foreground-color);background-color:rgba(0,0,0,0);cursor:pointer}.im-c-panel__body{padding:0 var(--panel-margin) var(--panel-margin);overflow:auto}.im-c-panel__body[data-focus-visible=true]{outline:var(--scrollable-outline);outline-offset:var(--scrollable-outline-offset);box-shadow:var(--scrollable-box-shadow)}.im-c-panel__close::before{content:none}@media(prefers-reduced-motion: no-preference){.im-c-panel__close:hover{transition:background-color var(--duration) ease}}.im-c-panel__close:hover{background-color:var(--button-hover-color)}.im-o-app--mobile .im-c-panel--bottom{border:0;border-radius:var(--panel-border-radius)}.im-o-app--mobile .im-c-panel--bottom::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--panel-border-radius));box-shadow:var(--panel-box-shadow)}.im-o-app--mobile .im-c-panel--bottom:focus{outline:0}.im-o-app--mobile .im-c-panel--bottom[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-o-app--mobile .im-c-panel--bottom::after{content:"";pointer-events:none;position:absolute;z-index:99;top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width);border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--panel-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-o-app--mobile .im-c-panel--bottom::after{transition:opacity var(--duration) ease}}.im-o-app--mobile .im-c-panel--bottom[data-focus-visible=true]::after{opacity:1}.im-o-app--mobile .im-c-panel--bottom,.im-o-app--mobile .im-c-panel--bottom::before,.im-o-app--mobile .im-c-panel--bottom::after{border-bottom-left-radius:0;border-bottom-right-radius:0}.im-o-app--mobile .im-c-panel--bottom::before{clip-path:inset(-20px -20px 0 -20px)}.im-o-app--desktop .im-c-panel--banner.im-c-panel--no-heading .im-c-panel__close{top:var(--banner-close-button-gap);right:var(--banner-close-button-gap)}.im-o-app--desktop .im-c-panel--banner.im-c-panel--no-heading .im-c-panel__body--offset{padding-top:10px;padding-bottom:10px}.im-c-panel__body--offset{padding-right:calc(var(--button-size) + var(--divider-gap))}.im-c-icon--narrow{margin-left:-3px;margin-right:-3px}.im-c-viewport{width:100%;height:100%;background-color:var(--background-colour);-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border:0;border-radius:0px}.im-c-viewport::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:0px}.im-c-viewport:focus{outline:0}.im-c-viewport[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-viewport::after{content:"";pointer-events:none;position:absolute;z-index:99;top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width);border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:-2px;opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-viewport::after{transition:opacity var(--duration) ease}}.im-c-viewport[data-focus-visible=true]::after{opacity:1}.im-c-viewport__map-container{width:100%;height:100%}.im-c-viewport__map-container>*:first-child{overflow:visible;transform-origin:top left}.im-c-viewport__safezone{position:absolute;pointer-events:none;z-index:1}.im-c-viewport__markers{position:absolute;inset:0;pointer-events:none}.im-c-viewport--medium .im-c-viewport__map-container{width:66.66%;height:66.66%}.im-c-viewport--medium .im-c-viewport__map-container>*:first-child{transform:scale(1.5)}.im-c-viewport--large .im-c-viewport__map-container{width:50%;height:50%}.im-c-viewport--large .im-c-viewport__map-container>*:first-child{transform:scale(2)}.im-c-tooltip-wrapper{position:relative;display:inline-block;z-index:1}.im-c-tooltip-wrapper:hover,.im-c-tooltip-wrapper--has-focus{z-index:2}.im-c-tooltip{position:absolute;z-index:10;visibility:hidden;pointer-events:none;opacity:0;color:var(--tooltip-foreground-color);background-color:var(--tooltip-background-color);border-radius:var(--tooltip-border-radius);white-space:nowrap;padding:var(--tooltip-padding);font-size:var(--tooltip-font-size);line-height:1.2}@media(prefers-reduced-motion: no-preference){.im-c-tooltip{transition:opacity var(--duration) ease,visibility var(--duration) ease}}.im-c-tooltip::after{content:"";position:absolute;box-sizing:border-box;z-index:-1;width:var(--tooltip-arrow-size);height:var(--tooltip-arrow-size);color:var(--tooltip-background-color);border:calc(var(--tooltip-arrow-size)/2) solid currentcolor}.im-c-tooltip--is-visible{opacity:1;visibility:visible;pointer-events:auto}.im-c-tooltip--hidden{width:0;overflow:hidden}.im-c-tooltip--left{top:50%;transform:translateY(-50%);left:auto;right:calc(100% + var(--tooltip-offset))}.im-c-tooltip--left::after{top:50%;transform:translateY(-50%) rotate(45deg);right:calc(var(--tooltip-arrow-size)/2*-1)}.im-c-tooltip--right{top:50%;transform:translateY(-50%);right:auto;left:calc(100% + var(--tooltip-offset))}.im-c-tooltip--right::after{top:50%;transform:translateY(-50%) rotate(45deg);left:calc(var(--tooltip-arrow-size)/2*-1)}.im-c-tooltip--bottom{top:calc(100% + var(--tooltip-offset));left:50%;transform:translateX(-50%)}.im-c-tooltip--bottom::after{left:50%;transform:translateX(-50%) rotate(45deg);top:calc(var(--tooltip-arrow-size)/2*-1)}.im-c-tooltip--top{bottom:calc(100% + var(--tooltip-offset));left:50%;transform:translateX(-50%)}.im-c-tooltip--top::after{left:50%;transform:translateX(-50%) rotate(45deg);bottom:calc(var(--tooltip-arrow-size)/2*-1)}.im-c-popup-menu{border:0;border-radius:var(--button-border-radius)}.im-c-popup-menu::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:calc(var(--button-border-radius));box-shadow:var(--button-box-shadow)}.im-c-popup-menu:focus{outline:0}.im-c-popup-menu[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-popup-menu::after{content:"";pointer-events:none;position:absolute;z-index:99;top:-1px;right:-1px;bottom:-1px;left:-1px;border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:calc(var(--button-border-radius) - 2px);opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-popup-menu::after{transition:opacity var(--duration) ease}}.im-c-popup-menu[data-focus-visible=true]::after{opacity:1}.im-c-popup-menu[data-focus-visible=true]::after{opacity:0}.im-c-popup-menu{background-color:var(--background-color);position:fixed;z-index:9999;list-style:none;margin:0;padding:0}.im-c-popup-menu[data-direction=below]{margin-top:var(--divider-gap)}.im-c-popup-menu[data-direction=above]{margin-bottom:var(--divider-gap)}.im-c-popup-menu[data-halign=center]{transform:translateX(-50%)}.im-c-popup-menu__item{display:flex;position:relative;align-items:center;padding:var(--divider-gap);border-top:1px solid var(--button-hover-color);text-align:left;cursor:pointer;min-width:var(--popup-menu-min-width);max-width:var(--popup-menu-max-width)}.im-c-popup-menu__item:first-child{border-top:0}@media(hover: hover)and (pointer: fine){.im-c-popup-menu__item:hover:not(.im-c-popup-menu__item--selected){background-color:var(--button-hover-color)}}.im-c-popup-menu__item:hover:not(.im-c-popup-menu__item--selected) .im-c-popup-menu__item-label{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:2px;text-decoration-color:var(--foreground-color);text-decoration-skip-ink:none}.im-c-popup-menu__item--selected{background-color:var(--button-hover-color)}.im-c-popup-menu__item--selected .im-c-popup-menu__item-label{outline:3px solid rgba(0,0,0,0);color:var(--focus-border-color);background-color:var(--focus-outline-color);box-shadow:0 -2px var(--focus-outline-color),0 4px var(--focus-border-color);text-decoration:none}.im-c-popup-menu__item svg+span{margin-left:calc(var(--button-icon-label-offset) + 3px);white-space:nowrap}.im-c-popup-menu__item[aria-disabled=true] .im-c-popup-menu__item-label,.im-c-popup-menu__item[aria-disabled=true] svg{opacity:.5}.im-c-popup-menu__item[role=menuitemcheckbox]{padding-right:75px}.im-c-popup-menu__item[role=menuitemcheckbox]::before{content:"";position:absolute;border:1px solid var(--foreground-color);left:auto;top:12px;right:12px;width:20px;height:20px;opacity:.2}.im-c-popup-menu__item[role=menuitemcheckbox]::after{content:"";position:absolute;top:17px;left:auto;right:16px;width:12px;height:6.5px;border:solid;border-width:0 0 3px 3px;transform:rotate(-45deg);opacity:0}.im-c-popup-menu__item[role=menuitemcheckbox][aria-checked=true]::before{top:10px;right:10px;width:24px;height:24px;border-width:2px;opacity:1}.im-c-popup-menu__item[role=menuitemcheckbox][aria-checked=true]::after{opacity:1}.im-c-popup-menu__item[role=menuitemcheckbox]:hover::before,.im-c-popup-menu__item--selected[role=menuitemcheckbox]::before,.im-c-popup-menu__item--selected[role=menuitemcheckbox][aria-checked=true]::before{top:10px;right:10px;width:24px;height:24px;border-width:4px;outline:3px solid rgba(0,0,0,0);outline-offset:1px;box-shadow:0 0 0 3px #fd0;opacity:1}.im-c-attributions{color:var(--attributions-foreground-color);background-color:var(--attributions-background-color);padding:var(--attributions-padding);font-size:var(--attributions-font-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.im-c-logo{align-self:center;flex-shrink:0;height:auto;width:auto;user-select:none}.im-o-hints{position:absolute;bottom:var(--hint-bottom, var(--primary-gap));left:50%;transform:translateX(-50%);z-index:1001}.im-c-hints{display:flex;flex-direction:column;align-items:center;gap:var(--divider-gap)}.im-c-hints__hint{text-wrap:nowrap;color:var(--tooltip-foreground-color);background-color:var(--tooltip-background-color);border-radius:var(--tooltip-border-radius);padding:var(--tooltip-padding);font-size:var(--tooltip-font-size);line-height:1.2}.im-c-hints__hint kbd{border:var(--kbd-tooltip-border)}.im-c-cross-hair{position:absolute;top:0;left:0;pointer-events:none;margin:-19px 0 0 -19px}.im-c-cross-hair path{stroke-width:3;stroke:var(--map-overlay-halo-color);fill:var(--map-overlay-foreground-color);paint-order:stroke fill}.im-c-markers{position:absolute;top:0;left:0;pointer-events:none}.im-c-marker{position:absolute;left:0;top:0;pointer-events:none}.im-c-marker-wrapper{position:absolute;left:0;top:0;pointer-events:none}.im-c-marker__svg{display:block;pointer-events:none}.im-c-marker__label{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);white-space:nowrap;pointer-events:none;color:var(--tooltip-foreground-color);background-color:var(--tooltip-background-color);border-radius:var(--tooltip-border-radius);padding:var(--tooltip-padding);font-size:var(--tooltip-font-size);line-height:1.2}.im-c-marker__label--standalone{bottom:0}.im-c-marker__label--standalone::after{content:"";position:absolute;top:calc(100% - 1px);left:50%;transform:translateX(-50%);border:calc(var(--tooltip-arrow-size) - 2px) solid rgba(0,0,0,0);border-top-color:var(--tooltip-background-color)}.im-c-features{position:absolute;inset:0;pointer-events:none;list-style:none;margin:0;padding:0;border:0;border-radius:0px}.im-c-features::before{content:"";pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;border-radius:0px}.im-c-features:focus{outline:0}.im-c-features[data-focus-visible=true]{outline:3px solid rgba(0,0,0,0)}.im-c-features::after{content:"";pointer-events:none;position:absolute;z-index:99;top:var(--focus-border-width);right:var(--focus-border-width);bottom:var(--focus-border-width);left:var(--focus-border-width);border:var(--focus-border-width) solid var(--focus-border-color);outline:var(--focus-outline-width) solid var(--focus-outline-color);border-radius:-2px;opacity:0}@media(prefers-reduced-motion: no-preference){.im-c-features::after{transition:opacity var(--duration) ease}}.im-c-features[data-focus-visible=true]::after{opacity:1}.im-c-features[data-focus-visible=true][aria-activedescendant]::after{opacity:0}.im-c-features [role=option]{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.im-c-actions{position:relative;display:flex;flex-direction:row;justify-content:center;gap:calc(var(--divider-gap)/2);padding:var(--panel-margin);max-height:200px}.im-c-actions--border-top{border-top:1px solid var(--app-border-color)}.im-c-actions--hidden{max-height:0;padding-top:0;padding-bottom:0;border:0}.im-c-actions .im-c-button-wrapper--wide{display:flex;flex:1 1 0}.im-c-actions .im-c-map-button--primary,.im-c-actions .im-c-map-button--tertiary{width:100%}.im-o-app--tablet .im-c-actions,.im-o-app--desktop .im-c-actions{min-width:0}.im-c-open-map-button{font-family:-apple-system,blinkmacsystemfont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;display:inline-flex;text-decoration:none;border:1px solid #505a5f;white-space:nowrap;padding:10px}.im-c-open-map-button svg+span{padding-left:8px}.im-c-open-map-button span{color:#1d70b8}.im-c-open-map-button:hover{background-color:#f3f2f1}.im-c-open-map-button:active span{color:#0b0c0c}.im-c-open-map-button:focus{border-color:rgba(0,0,0,0);outline:3px solid rgba(0,0,0,0);color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none}.im-c-open-map-button:focus span{color:#0b0c0c}.im-c-error{padding:15px;margin-bottom:30px;border:5px solid #b1b4b6}.im-is-loading{visibility:hidden}.im-has-js{position:fixed;overflow:hidden;top:0;right:0;bottom:0;left:0}.im-is-fullscreen{height:100%;overflow-y:visible;overscroll-behavior-y:none}.im-is-fullscreen body{position:fixed;overflow:hidden;top:0;right:0;bottom:0;left:0}.maplibregl-canvas-container canvas{image-rendering:pixelated;outline:0}.maplibregl-control-container{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.maplibregl-control-container *{pointer-events:auto}.maplibregl-symbols{display:none}.im-u-visually-hidden{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0;white-space:nowrap}