@opendfieldmap/map 0.1.0-alpha.0

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.
package/dist/style.css ADDED
@@ -0,0 +1,1339 @@
1
+ /* required styles */
2
+
3
+ .mapRoot .leaflet-pane,.mapRoot
4
+ .leaflet-tile,.mapRoot
5
+ .leaflet-marker-icon,.mapRoot
6
+ .leaflet-marker-shadow,.mapRoot
7
+ .leaflet-tile-container,.mapRoot
8
+ .leaflet-pane > svg,.mapRoot
9
+ .leaflet-pane > canvas,.mapRoot
10
+ .leaflet-zoom-box,.mapRoot
11
+ .leaflet-image-layer,.mapRoot
12
+ .leaflet-layer {
13
+ position: absolute;
14
+ left: 0;
15
+ top: 0;
16
+ }
17
+ .mapRoot {
18
+ overflow: hidden;
19
+ }
20
+ .mapRoot .leaflet-tile,.mapRoot
21
+ .leaflet-marker-icon,.mapRoot
22
+ .leaflet-marker-shadow {
23
+ -webkit-user-select: none;
24
+ -moz-user-select: none;
25
+ user-select: none;
26
+ -webkit-user-drag: none;
27
+ }
28
+ /* Prevents IE11 from highlighting tiles in blue */
29
+ .mapRoot .leaflet-tile::selection {
30
+ background: transparent;
31
+ }
32
+ /* Safari renders non-retina tile on retina better with this, but Chrome is worse */
33
+ .mapRoot .leaflet-safari .leaflet-tile {
34
+ image-rendering: -webkit-optimize-contrast;
35
+ }
36
+ /* hack that prevents hw layers "stretching" when loading new tiles */
37
+ .mapRoot .leaflet-safari .leaflet-tile-container {
38
+ width: 1600px;
39
+ height: 1600px;
40
+ -webkit-transform-origin: 0 0;
41
+ }
42
+ .mapRoot .leaflet-marker-icon,.mapRoot
43
+ .leaflet-marker-shadow {
44
+ display: block;
45
+ }
46
+ /* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
47
+ /* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
48
+ .mapRoot .leaflet-overlay-pane svg {
49
+ max-width: none !important;
50
+ max-height: none !important;
51
+ }
52
+ .mapRoot .leaflet-marker-pane img,
53
+ .mapRoot .leaflet-shadow-pane img,
54
+ .mapRoot .leaflet-tile-pane img,
55
+ .mapRoot img.leaflet-image-layer,
56
+ .mapRoot .leaflet-tile {
57
+ max-width: none !important;
58
+ max-height: none !important;
59
+ width: auto;
60
+ padding: 0;
61
+ }
62
+
63
+ .mapRoot img.leaflet-tile {
64
+ /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
65
+ mix-blend-mode: plus-lighter;
66
+ }
67
+
68
+ .mapRoot.leaflet-touch-zoom {
69
+ -ms-touch-action: pan-x pan-y;
70
+ touch-action: pan-x pan-y;
71
+ }
72
+ .mapRoot.leaflet-touch-drag {
73
+ -ms-touch-action: pinch-zoom;
74
+ /* Fallback for FF which doesn't support pinch-zoom */
75
+ touch-action: none;
76
+ touch-action: pinch-zoom;
77
+ }
78
+ .mapRoot.leaflet-touch-drag.leaflet-touch-zoom {
79
+ -ms-touch-action: none;
80
+ touch-action: none;
81
+ }
82
+ .mapRoot {
83
+ -webkit-tap-highlight-color: transparent;
84
+ }
85
+ .mapRoot a {
86
+ -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
87
+ }
88
+ .mapRoot .leaflet-tile {
89
+ filter: inherit;
90
+ visibility: hidden;
91
+ }
92
+ .mapRoot .leaflet-tile-loaded {
93
+ visibility: inherit;
94
+ }
95
+ .mapRoot .leaflet-zoom-box {
96
+ width: 0;
97
+ height: 0;
98
+ -moz-box-sizing: border-box;
99
+ box-sizing: border-box;
100
+ z-index: 800;
101
+ }
102
+ /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
103
+ .mapRoot .leaflet-overlay-pane svg {
104
+ -moz-user-select: none;
105
+ }
106
+
107
+ .mapRoot .leaflet-pane { z-index: 400; }
108
+
109
+ .mapRoot .leaflet-tile-pane { z-index: 200; }
110
+ .mapRoot .leaflet-overlay-pane { z-index: 400; }
111
+ .mapRoot .leaflet-shadow-pane { z-index: 500; }
112
+ .mapRoot .leaflet-marker-pane { z-index: 600; }
113
+ .mapRoot .leaflet-tooltip-pane { z-index: 650; }
114
+ .mapRoot .leaflet-popup-pane { z-index: 700; }
115
+
116
+ .mapRoot .leaflet-map-pane canvas { z-index: 100; }
117
+ .mapRoot .leaflet-map-pane svg { z-index: 200; }
118
+
119
+ .mapRoot .leaflet-vml-shape {
120
+ width: 1px;
121
+ height: 1px;
122
+ }
123
+ .mapRoot .lvml {
124
+ behavior: url(#default#VML);
125
+ display: inline-block;
126
+ position: absolute;
127
+ }
128
+
129
+
130
+ /* control positioning */
131
+
132
+ .mapRoot .leaflet-control {
133
+ position: relative;
134
+ z-index: 800;
135
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
136
+ pointer-events: auto;
137
+ }
138
+ .mapRoot .leaflet-top,.mapRoot
139
+ .leaflet-bottom {
140
+ position: absolute;
141
+ z-index: 1000;
142
+ pointer-events: none;
143
+ }
144
+ .mapRoot .leaflet-top {
145
+ top: 0;
146
+ }
147
+ .mapRoot .leaflet-right {
148
+ right: 0;
149
+ }
150
+ .mapRoot .leaflet-bottom {
151
+ bottom: 0;
152
+ }
153
+ .mapRoot .leaflet-left {
154
+ left: 0;
155
+ }
156
+ .mapRoot .leaflet-control {
157
+ float: left;
158
+ clear: both;
159
+ }
160
+ .mapRoot .leaflet-right .leaflet-control {
161
+ float: right;
162
+ }
163
+ .mapRoot .leaflet-top .leaflet-control {
164
+ margin-top: 10px;
165
+ }
166
+ .mapRoot .leaflet-bottom .leaflet-control {
167
+ margin-bottom: 10px;
168
+ }
169
+ .mapRoot .leaflet-left .leaflet-control {
170
+ margin-left: 10px;
171
+ }
172
+ .mapRoot .leaflet-right .leaflet-control {
173
+ margin-right: 10px;
174
+ }
175
+
176
+
177
+ /* zoom and fade animations */
178
+
179
+ .mapRoot .leaflet-fade-anim .leaflet-popup {
180
+ opacity: 0;
181
+ -webkit-transition: opacity 0.2s linear;
182
+ -moz-transition: opacity 0.2s linear;
183
+ transition: opacity 0.2s linear;
184
+ }
185
+ .mapRoot .leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
186
+ opacity: 1;
187
+ }
188
+ .mapRoot .leaflet-zoom-animated {
189
+ -webkit-transform-origin: 0 0;
190
+ -ms-transform-origin: 0 0;
191
+ transform-origin: 0 0;
192
+ }
193
+ .mapRoot svg.leaflet-zoom-animated {
194
+ will-change: transform;
195
+ }
196
+
197
+ .mapRoot .leaflet-zoom-anim .leaflet-zoom-animated {
198
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
199
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
200
+ transition: transform 0.25s cubic-bezier(0,0,0.25,1);
201
+ }
202
+ .mapRoot .leaflet-zoom-anim .leaflet-tile,.mapRoot
203
+ .leaflet-pan-anim .leaflet-tile {
204
+ -webkit-transition: none;
205
+ -moz-transition: none;
206
+ transition: none;
207
+ }
208
+
209
+ .mapRoot .leaflet-zoom-anim .leaflet-zoom-hide {
210
+ visibility: hidden;
211
+ }
212
+
213
+
214
+ /* cursors */
215
+
216
+ .mapRoot .leaflet-interactive {
217
+ cursor: pointer;
218
+ }
219
+ .mapRoot .leaflet-grab {
220
+ cursor: -webkit-grab;
221
+ cursor: -moz-grab;
222
+ cursor: grab;
223
+ }
224
+ .mapRoot .leaflet-crosshair,.mapRoot
225
+ .leaflet-crosshair .leaflet-interactive {
226
+ cursor: crosshair;
227
+ }
228
+ .mapRoot .leaflet-popup-pane,.mapRoot
229
+ .leaflet-control {
230
+ cursor: auto;
231
+ }
232
+ .mapRoot .leaflet-dragging .leaflet-grab,.mapRoot
233
+ .leaflet-dragging .leaflet-grab .leaflet-interactive,.mapRoot
234
+ .leaflet-dragging .leaflet-marker-draggable {
235
+ cursor: move;
236
+ cursor: -webkit-grabbing;
237
+ cursor: -moz-grabbing;
238
+ cursor: grabbing;
239
+ }
240
+
241
+ /* marker & overlays interactivity */
242
+ .mapRoot .leaflet-marker-icon,.mapRoot
243
+ .leaflet-marker-shadow,.mapRoot
244
+ .leaflet-image-layer,.mapRoot
245
+ .leaflet-pane > svg path,.mapRoot
246
+ .leaflet-tile-container {
247
+ pointer-events: none;
248
+ }
249
+
250
+ .mapRoot .leaflet-marker-icon.leaflet-interactive,.mapRoot
251
+ .leaflet-image-layer.leaflet-interactive,.mapRoot
252
+ .leaflet-pane > svg path.leaflet-interactive,.mapRoot
253
+ svg.leaflet-image-layer.leaflet-interactive path {
254
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
255
+ pointer-events: auto;
256
+ }
257
+
258
+ /* visual tweaks */
259
+
260
+ .mapRoot {
261
+ background: #ddd;
262
+ outline-offset: 1px;
263
+ }
264
+ .mapRoot a {
265
+ color: #0078A8;
266
+ }
267
+ .mapRoot .leaflet-zoom-box {
268
+ border: 2px dotted #38f;
269
+ background: rgba(255,255,255,0.5);
270
+ }
271
+
272
+
273
+ /* general typography */
274
+ .mapRoot {
275
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
276
+ font-size: 12px;
277
+ font-size: 0.75rem;
278
+ line-height: 1.5;
279
+ }
280
+
281
+
282
+ /* general toolbar styles */
283
+
284
+ .mapRoot .leaflet-bar {
285
+ box-shadow: 0 1px 5px rgba(0,0,0,0.65);
286
+ border-radius: 4px;
287
+ }
288
+ .mapRoot .leaflet-bar a {
289
+ background-color: #fff;
290
+ border-bottom: 1px solid #ccc;
291
+ width: 26px;
292
+ height: 26px;
293
+ line-height: 26px;
294
+ display: block;
295
+ text-align: center;
296
+ text-decoration: none;
297
+ color: black;
298
+ }
299
+ .mapRoot .leaflet-bar a,.mapRoot
300
+ .leaflet-control-layers-toggle {
301
+ background-position: 50% 50%;
302
+ background-repeat: no-repeat;
303
+ display: block;
304
+ }
305
+ .mapRoot .leaflet-bar a:hover,.mapRoot
306
+ .leaflet-bar a:focus {
307
+ background-color: #f4f4f4;
308
+ }
309
+ .mapRoot .leaflet-bar a:first-child {
310
+ border-top-left-radius: 4px;
311
+ border-top-right-radius: 4px;
312
+ }
313
+ .mapRoot .leaflet-bar a:last-child {
314
+ border-bottom-left-radius: 4px;
315
+ border-bottom-right-radius: 4px;
316
+ border-bottom: none;
317
+ }
318
+ .mapRoot .leaflet-bar a.leaflet-disabled {
319
+ cursor: default;
320
+ background-color: #f4f4f4;
321
+ color: #bbb;
322
+ }
323
+
324
+ .mapRoot .leaflet-touch .leaflet-bar a {
325
+ width: 30px;
326
+ height: 30px;
327
+ line-height: 30px;
328
+ }
329
+ .mapRoot .leaflet-touch .leaflet-bar a:first-child {
330
+ border-top-left-radius: 2px;
331
+ border-top-right-radius: 2px;
332
+ }
333
+ .mapRoot .leaflet-touch .leaflet-bar a:last-child {
334
+ border-bottom-left-radius: 2px;
335
+ border-bottom-right-radius: 2px;
336
+ }
337
+
338
+ /* zoom control */
339
+
340
+ .mapRoot .leaflet-control-zoom-in,.mapRoot
341
+ .leaflet-control-zoom-out {
342
+ font: bold 18px 'Lucida Console', Monaco, monospace;
343
+ text-indent: 1px;
344
+ }
345
+
346
+ .mapRoot .leaflet-touch .leaflet-control-zoom-in,.mapRoot .leaflet-touch .leaflet-control-zoom-out {
347
+ font-size: 22px;
348
+ }
349
+
350
+
351
+ /* layers control */
352
+
353
+ .mapRoot .leaflet-control-layers {
354
+ box-shadow: 0 1px 5px rgba(0,0,0,0.4);
355
+ background: #fff;
356
+ border-radius: 5px;
357
+ }
358
+ .mapRoot .leaflet-touch .leaflet-control-layers-toggle {
359
+ width: 44px;
360
+ height: 44px;
361
+ }
362
+ .mapRoot .leaflet-control-layers .leaflet-control-layers-list,.mapRoot
363
+ .leaflet-control-layers-expanded .leaflet-control-layers-toggle {
364
+ display: none;
365
+ }
366
+ .mapRoot .leaflet-control-layers-expanded .leaflet-control-layers-list {
367
+ display: block;
368
+ position: relative;
369
+ }
370
+ .mapRoot .leaflet-control-layers-expanded {
371
+ padding: 6px 10px 6px 6px;
372
+ color: #333;
373
+ background: #fff;
374
+ }
375
+ .mapRoot .leaflet-control-layers-scrollbar {
376
+ overflow-y: scroll;
377
+ overflow-x: hidden;
378
+ padding-right: 5px;
379
+ }
380
+ .mapRoot .leaflet-control-layers-selector {
381
+ margin-top: 2px;
382
+ position: relative;
383
+ top: 1px;
384
+ }
385
+ .mapRoot .leaflet-control-layers label {
386
+ display: block;
387
+ font-size: 13px;
388
+ font-size: 1.08333em;
389
+ }
390
+ .mapRoot .leaflet-control-layers-separator {
391
+ height: 0;
392
+ border-top: 1px solid #ddd;
393
+ margin: 5px -10px 5px -6px;
394
+ }
395
+
396
+ /* Default icon URLs */
397
+
398
+
399
+ /* attribution and scale controls */
400
+
401
+ .mapRoot .leaflet-control-attribution {
402
+ background: #fff;
403
+ background: rgba(255, 255, 255, 0.8);
404
+ margin: 0;
405
+ }
406
+ .mapRoot .leaflet-control-attribution,.mapRoot
407
+ .leaflet-control-scale-line {
408
+ padding: 0 5px;
409
+ color: #333;
410
+ line-height: 1.4;
411
+ }
412
+ .mapRoot .leaflet-control-attribution a {
413
+ text-decoration: none;
414
+ }
415
+ .mapRoot .leaflet-control-attribution a:hover,.mapRoot
416
+ .leaflet-control-attribution a:focus {
417
+ text-decoration: underline;
418
+ }
419
+ .mapRoot .leaflet-attribution-flag {
420
+ display: inline !important;
421
+ vertical-align: baseline !important;
422
+ width: 1em;
423
+ height: 0.6669em;
424
+ }
425
+ .mapRoot .leaflet-left .leaflet-control-scale {
426
+ margin-left: 5px;
427
+ }
428
+ .mapRoot .leaflet-bottom .leaflet-control-scale {
429
+ margin-bottom: 5px;
430
+ }
431
+ .mapRoot .leaflet-control-scale-line {
432
+ border: 2px solid #777;
433
+ border-top: none;
434
+ line-height: 1.1;
435
+ padding: 2px 5px 1px;
436
+ white-space: nowrap;
437
+ -moz-box-sizing: border-box;
438
+ box-sizing: border-box;
439
+ background: rgba(255, 255, 255, 0.8);
440
+ text-shadow: 1px 1px #fff;
441
+ }
442
+ .mapRoot .leaflet-control-scale-line:not(:first-child) {
443
+ border-top: 2px solid #777;
444
+ border-bottom: none;
445
+ margin-top: -2px;
446
+ }
447
+ .mapRoot .leaflet-control-scale-line:not(:first-child):not(:last-child) {
448
+ border-bottom: 2px solid #777;
449
+ }
450
+
451
+ .mapRoot .leaflet-touch .leaflet-control-attribution,.mapRoot
452
+ .leaflet-touch .leaflet-control-layers,.mapRoot
453
+ .leaflet-touch .leaflet-bar {
454
+ box-shadow: none;
455
+ }
456
+ .mapRoot .leaflet-touch .leaflet-control-layers,.mapRoot
457
+ .leaflet-touch .leaflet-bar {
458
+ border: 2px solid rgba(0,0,0,0.2);
459
+ background-clip: padding-box;
460
+ }
461
+
462
+
463
+ /* popup */
464
+
465
+ .mapRoot .leaflet-popup {
466
+ position: absolute;
467
+ text-align: center;
468
+ margin-bottom: 20px;
469
+ }
470
+ .mapRoot .leaflet-popup-content-wrapper {
471
+ padding: 1px;
472
+ text-align: left;
473
+ border-radius: 12px;
474
+ }
475
+ .mapRoot .leaflet-popup-content {
476
+ margin: 13px 24px 13px 20px;
477
+ line-height: 1.3;
478
+ font-size: 13px;
479
+ font-size: 1.08333em;
480
+ min-height: 1px;
481
+ }
482
+ .mapRoot .leaflet-popup-content p {
483
+ margin: 17px 0;
484
+ margin: 1.3em 0;
485
+ }
486
+ .mapRoot .leaflet-popup-tip-container {
487
+ width: 40px;
488
+ height: 20px;
489
+ position: absolute;
490
+ left: 50%;
491
+ margin-top: -1px;
492
+ margin-left: -20px;
493
+ overflow: hidden;
494
+ pointer-events: none;
495
+ }
496
+ .mapRoot .leaflet-popup-tip {
497
+ width: 17px;
498
+ height: 17px;
499
+ padding: 1px;
500
+
501
+ margin: -10px auto 0;
502
+ pointer-events: auto;
503
+
504
+ -webkit-transform: rotate(45deg);
505
+ -moz-transform: rotate(45deg);
506
+ -ms-transform: rotate(45deg);
507
+ transform: rotate(45deg);
508
+ }
509
+ .mapRoot .leaflet-popup-content-wrapper,.mapRoot
510
+ .leaflet-popup-tip {
511
+ background: white;
512
+ color: #333;
513
+ box-shadow: 0 3px 14px rgba(0,0,0,0.4);
514
+ }
515
+ .mapRoot a.leaflet-popup-close-button {
516
+ position: absolute;
517
+ top: 0;
518
+ right: 0;
519
+ border: none;
520
+ text-align: center;
521
+ width: 24px;
522
+ height: 24px;
523
+ font: 16px/24px Tahoma, Verdana, sans-serif;
524
+ color: #757575;
525
+ text-decoration: none;
526
+ background: transparent;
527
+ }
528
+ .mapRoot a.leaflet-popup-close-button:hover,
529
+ .mapRoot a.leaflet-popup-close-button:focus {
530
+ color: #585858;
531
+ }
532
+ .mapRoot .leaflet-popup-scrolled {
533
+ overflow: auto;
534
+ }
535
+
536
+ .mapRoot .leaflet-oldie .leaflet-popup-content-wrapper {
537
+ -ms-zoom: 1;
538
+ }
539
+ .mapRoot .leaflet-oldie .leaflet-popup-tip {
540
+ width: 24px;
541
+ margin: 0 auto;
542
+
543
+ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
544
+ filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
545
+ }
546
+
547
+ .mapRoot .leaflet-oldie .leaflet-control-zoom,.mapRoot
548
+ .leaflet-oldie .leaflet-control-layers,.mapRoot
549
+ .leaflet-oldie .leaflet-popup-content-wrapper,.mapRoot
550
+ .leaflet-oldie .leaflet-popup-tip {
551
+ border: 1px solid #999;
552
+ }
553
+
554
+
555
+ /* div icon */
556
+
557
+ .mapRoot .leaflet-div-icon {
558
+ background: #fff;
559
+ border: 1px solid #666;
560
+ }
561
+
562
+
563
+ /* Tooltip */
564
+ /* Base styles for the element that has a tooltip */
565
+ .mapRoot .leaflet-tooltip {
566
+ position: absolute;
567
+ padding: 6px;
568
+ background-color: #fff;
569
+ border: 1px solid #fff;
570
+ border-radius: 3px;
571
+ color: #222;
572
+ white-space: nowrap;
573
+ -webkit-user-select: none;
574
+ -moz-user-select: none;
575
+ -ms-user-select: none;
576
+ user-select: none;
577
+ pointer-events: none;
578
+ box-shadow: 0 1px 3px rgba(0,0,0,0.4);
579
+ }
580
+ .mapRoot .leaflet-tooltip.leaflet-interactive {
581
+ cursor: pointer;
582
+ pointer-events: auto;
583
+ }
584
+ .mapRoot .leaflet-tooltip-top:before,.mapRoot
585
+ .leaflet-tooltip-bottom:before,.mapRoot
586
+ .leaflet-tooltip-left:before,.mapRoot
587
+ .leaflet-tooltip-right:before {
588
+ position: absolute;
589
+ pointer-events: none;
590
+ border: 6px solid transparent;
591
+ background: transparent;
592
+ content: "";
593
+ }
594
+
595
+ /* Directions */
596
+
597
+ .mapRoot .leaflet-tooltip-bottom {
598
+ margin-top: 6px;
599
+ }
600
+ .mapRoot .leaflet-tooltip-top {
601
+ margin-top: -6px;
602
+ }
603
+ .mapRoot .leaflet-tooltip-bottom:before,.mapRoot
604
+ .leaflet-tooltip-top:before {
605
+ left: 50%;
606
+ margin-left: -6px;
607
+ }
608
+ .mapRoot .leaflet-tooltip-top:before {
609
+ bottom: 0;
610
+ margin-bottom: -12px;
611
+ border-top-color: #fff;
612
+ }
613
+ .mapRoot .leaflet-tooltip-bottom:before {
614
+ top: 0;
615
+ margin-top: -12px;
616
+ margin-left: -6px;
617
+ border-bottom-color: #fff;
618
+ }
619
+ .mapRoot .leaflet-tooltip-left {
620
+ margin-left: -6px;
621
+ }
622
+ .mapRoot .leaflet-tooltip-right {
623
+ margin-left: 6px;
624
+ }
625
+ .mapRoot .leaflet-tooltip-left:before,.mapRoot
626
+ .leaflet-tooltip-right:before {
627
+ top: 50%;
628
+ margin-top: -6px;
629
+ }
630
+ .mapRoot .leaflet-tooltip-left:before {
631
+ right: 0;
632
+ margin-right: -12px;
633
+ border-left-color: #fff;
634
+ }
635
+ .mapRoot .leaflet-tooltip-right:before {
636
+ left: 0;
637
+ margin-left: -12px;
638
+ border-right-color: #fff;
639
+ }
640
+
641
+ /* Printing */
642
+
643
+ @media print {
644
+ /* Prevent printers from removing background-images of controls. */
645
+ .mapRoot .leaflet-control {
646
+ -webkit-print-color-adjust: exact;
647
+ print-color-adjust: exact;
648
+ }
649
+ }
650
+
651
+ .mapRoot .leaflet-cluster-anim .leaflet-marker-icon,.mapRoot .leaflet-cluster-anim .leaflet-marker-shadow {
652
+ -webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in;
653
+ -moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in;
654
+ -o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in;
655
+ transition: transform 0.3s ease-out, opacity 0.3s ease-in;
656
+ }
657
+
658
+ .mapRoot .leaflet-cluster-spider-leg {
659
+ /* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */
660
+ -webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in;
661
+ -moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in;
662
+ -o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in;
663
+ transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;
664
+ }
665
+
666
+ .mapRoot .completedMarker {
667
+ z-index: 0 !important;
668
+ }
669
+
670
+ .mapRoot .incompleteMarker {
671
+ z-index: 1 !important;
672
+ }
673
+
674
+ .mapRoot .markerInner {
675
+ opacity: 1;
676
+ transition: opacity 0.15s ease-in;
677
+ position: relative;
678
+ z-index: 1;
679
+ }
680
+ .mapRoot .markerInner::before {
681
+ content: "";
682
+ position: absolute;
683
+ width: var(--icon-size);
684
+ height: var(--icon-size);
685
+ background-color: rgb(248, 248, 248);
686
+ box-shadow: 0 0 10px rgb(0, 0, 0);
687
+ border-radius: 50%;
688
+ z-index: -1;
689
+ outline: 2px solid transparent;
690
+ outline-offset: 12px;
691
+ transform: translate3d(calc((var(--image-size) - var(--icon-size)) / 2), calc((var(--image-size) - var(--icon-size)) / 2), 0);
692
+ transition: outline 0.35s cubic-bezier(0.6, 0, 0, 1), outline-offset 0.35s cubic-bezier(0.6, 0, 0, 1);
693
+ }
694
+ .mapRoot .markerInner:hover::before {
695
+ outline: 2px solid rgba(248, 248, 248, 0.4);
696
+ outline-offset: 8px;
697
+ transition: outline 0.25s ease-in, outline-offset 0.25s ease-in;
698
+ }
699
+ .mapRoot .markerInner:hover .subIconContainer::before {
700
+ transform: translate3d(-50%, -50%, 0) scale(1);
701
+ opacity: 1;
702
+ transition: transform 0.35s cubic-bezier(0.6, 0, 0, 1), opacity 0.35s cubic-bezier(0.6, 0, 0, 1);
703
+ }
704
+ .mapRoot .markerInner:hover .subIconContainer .subIcon {
705
+ transform: translate3d(-50%, -50%, 0) scale(1.05);
706
+ transition: transform 0.35s cubic-bezier(0.6, 0, 0, 1);
707
+ }
708
+ .mapRoot .markerInner.selected::before {
709
+ outline: 2px solid rgb(248, 248, 248);
710
+ outline-offset: 6px;
711
+ transition: outline 0.125s cubic-bezier(0.6, 0, 0.6, 1), outline-offset 0.125s cubic-bezier(0.6, 0, 0.6, 1);
712
+ }
713
+ .mapRoot .markerInner.selected .frameImage {
714
+ opacity: 1;
715
+ }
716
+ .mapRoot .markerInner.selected .frameImage::before {
717
+ outline-color: rgb(255, 196, 40);
718
+ }
719
+ .mapRoot .markerInner.selected .frameImage::after {
720
+ border-top-color: rgb(255, 196, 40);
721
+ }
722
+ .mapRoot .markerInner.selected .frameImage:has(+ .subIconContainer)::after {
723
+ transform: rotate(-90deg);
724
+ }
725
+ .mapRoot .markerInner.selected .frameImage:not(:has(+ .subIconContainer))::after {
726
+ bottom: -11px;
727
+ }
728
+ .mapRoot .markerInner.selected .subIconContainer::before {
729
+ transform: translate3d(-50%, -50%, 0) scale(1);
730
+ opacity: 0;
731
+ transition: transform 0.35s cubic-bezier(0.6, 0, 0, 1), opacity 0.35s cubic-bezier(0.6, 0, 0, 1);
732
+ }
733
+ .mapRoot .markerInner.selected .subIconContainer::after {
734
+ transform: translate3d(-50%, -50%, 0) scale(1.05);
735
+ opacity: 1;
736
+ transition: transform 0.35s cubic-bezier(0.6, 0, 0, 1), opacity 0.35s cubic-bezier(0.6, 0, 0, 1);
737
+ }
738
+ .mapRoot .markerInner.checked {
739
+ opacity: 0.3;
740
+ }
741
+ .mapRoot .markerInner.checked .frameImage::before {
742
+ background-color: rgb(255, 196, 40);
743
+ }
744
+ .mapRoot .markerInner.checked .subIconContainer {
745
+ opacity: 0.5;
746
+ }
747
+ .mapRoot .markerInner.offLayer img {
748
+ filter: grayscale(1);
749
+ }
750
+
751
+ .mapRoot .noFrameInner {
752
+ opacity: 1;
753
+ transition: opacity 0.15s ease-in, transform 0.3s cubic-bezier(0.8, 0.2, 0.35, 0.7);
754
+ position: relative;
755
+ z-index: 1;
756
+ }
757
+ .mapRoot .noFrameInner:hover {
758
+ transform: translate3d(-50%, -60%, 0);
759
+ transition: transform 0.35s cubic-bezier(0.8, 0.2, 0.35, 0.7);
760
+ z-index: 1000;
761
+ }
762
+ .mapRoot .noFrameInner.selected .noFrameImage {
763
+ opacity: 1;
764
+ filter: invert(1);
765
+ transition: filter 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s cubic-bezier(0.8, 0.2, 0.35, 0.7);
766
+ }
767
+ .mapRoot .noFrameInner.checked {
768
+ z-index: 0;
769
+ }
770
+ .mapRoot .noFrameInner.checked .noFrameImage {
771
+ opacity: 0.5;
772
+ }
773
+ .mapRoot .noFrameInner.offLayer img {
774
+ filter: grayscale(1);
775
+ }
776
+
777
+ .mapRoot .noFrameInner,.mapRoot .markerInner {
778
+ position: absolute;
779
+ left: 50%;
780
+ top: 50%;
781
+ transform: translate3d(-50%, -50%, 0);
782
+ color: inherit;
783
+ text-decoration: none;
784
+ }
785
+
786
+ .mapRoot .markerInner[data-tier]::after,.mapRoot .noFrameInner[data-tier]::after {
787
+ content: attr(data-tier);
788
+ position: absolute;
789
+ right: -0.45rem;
790
+ top: -0.45rem;
791
+ min-width: 1rem;
792
+ height: 1rem;
793
+ padding: 0 3px;
794
+ border-radius: 0.5rem;
795
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
796
+ font-family: "Novecento Medium", "Novecento Cyrillic Medium", "Novecento Vietnamese Medium", "HMSans_EN", "Geist", system-ui, sans-serif;
797
+ font-size: 0.6875rem;
798
+ font-weight: 700;
799
+ line-height: 1rem;
800
+ text-align: center;
801
+ z-index: 20;
802
+ pointer-events: none;
803
+ box-sizing: border-box;
804
+ }
805
+
806
+ .mapRoot .noFrameInner[data-tier]::after {
807
+ right: 50%;
808
+ top: 0;
809
+ transform: translate3d(50%, 0, 0);
810
+ }
811
+
812
+ .mapRoot :is(.markerInner, .noFrameInner)[data-tier^=L] {
813
+ color: rgb(51, 51, 51);
814
+ }
815
+ .mapRoot :is(.markerInner, .noFrameInner)[data-tier=L1]::after {
816
+ background-color: rgb(253, 255, 149);
817
+ }
818
+ .mapRoot :is(.markerInner, .noFrameInner)[data-tier=L2]::after {
819
+ background-color: rgb(255, 229, 36);
820
+ }
821
+ .mapRoot :is(.markerInner, .noFrameInner)[data-tier=L3]::after {
822
+ background-color: rgb(255, 139, 56);
823
+ }
824
+ .mapRoot :is(.markerInner, .noFrameInner)[data-tier^=B] {
825
+ color: rgb(248, 248, 248);
826
+ }
827
+ .mapRoot :is(.markerInner, .noFrameInner)[data-tier=B1]::after {
828
+ background-color: rgb(50, 98, 201);
829
+ }
830
+ .mapRoot :is(.markerInner, .noFrameInner)[data-tier=B2]::after {
831
+ background-color: rgb(29, 72, 189);
832
+ }
833
+ .mapRoot :is(.markerInner, .noFrameInner)[data-tier=B3]::after {
834
+ background-color: rgb(52, 39, 188);
835
+ }
836
+ .mapRoot :is(.markerInner, .noFrameInner)[data-tier=B4]::after {
837
+ background-color: rgb(67, 29, 190);
838
+ }
839
+
840
+ .mapRoot .noFrameMarkerIcon {
841
+ background-color: transparent;
842
+ }
843
+ .mapRoot .noFrameMarkerIcon .noFrameImage {
844
+ display: block;
845
+ width: 50px;
846
+ height: 50px;
847
+ object-fit: contain;
848
+ transition: filter 0.3s cubic-bezier(0.8, 0.2, 0.35, 0.7), opacity 0.3s cubic-bezier(0.8, 0.2, 0.35, 0.7);
849
+ opacity: 1;
850
+ filter: invert(0);
851
+ }
852
+
853
+ .mapRoot .markerInner.appearing,.mapRoot
854
+ .noFrameInner.appearing {
855
+ animation: mapMarkerFadeIn 0.15s ease-out forwards;
856
+ }
857
+
858
+ @keyframes mapMarkerFadeIn {
859
+ from {
860
+ opacity: 0;
861
+ }
862
+ to {
863
+ opacity: 1;
864
+ }
865
+ }
866
+ .mapRoot .markerInner.checked.appearing,.mapRoot
867
+ .noFrameInner.checked.appearing {
868
+ animation: mapMarkerFadeInChecked 0.15s ease-out forwards;
869
+ }
870
+
871
+ .mapRoot .markerInner.offLayer.appearing,.mapRoot
872
+ .noFrameInner.offLayer.appearing {
873
+ animation: mapMarkerFadeIn 0.15s ease-out forwards;
874
+ }
875
+
876
+ @keyframes mapMarkerFadeInChecked {
877
+ from {
878
+ opacity: 0;
879
+ }
880
+ to {
881
+ opacity: 0.3;
882
+ }
883
+ }
884
+ .mapRoot .markerInner.disappearing,.mapRoot
885
+ .noFrameInner.disappearing {
886
+ animation: mapMarkerFadeOut 0.15s ease-in forwards;
887
+ }
888
+
889
+ .mapRoot .markerInner.pulsing::before {
890
+ outline: 2px solid rgba(248, 248, 248, 0);
891
+ outline-offset: 2px;
892
+ animation: mapMarkerPulse 1.15s ease-out infinite;
893
+ }
894
+
895
+ .mapRoot .noFrameInner.pulsing::before {
896
+ content: "";
897
+ position: absolute;
898
+ left: 50%;
899
+ top: 50%;
900
+ width: 26px;
901
+ height: 26px;
902
+ border-radius: 50%;
903
+ transform: translate3d(-50%, -50%, 0);
904
+ pointer-events: none;
905
+ outline: 2px solid rgba(248, 248, 248, 0.95);
906
+ outline-offset: 2px;
907
+ animation: mapMarkerPulse 1.15s ease-out infinite;
908
+ }
909
+
910
+ @keyframes mapMarkerFadeOut {
911
+ from {
912
+ opacity: 1;
913
+ }
914
+ to {
915
+ opacity: 0;
916
+ }
917
+ }
918
+ .mapRoot .markerInner.checked.disappearing,.mapRoot
919
+ .noFrameInner.checked.disappearing {
920
+ animation: mapMarkerFadeOutChecked 0.15s ease-in forwards;
921
+ }
922
+
923
+ .mapRoot .markerInner.offLayer.disappearing,.mapRoot
924
+ .noFrameInner.offLayer.disappearing {
925
+ animation: mapMarkerFadeOut 0.15s ease-in forwards;
926
+ }
927
+
928
+ @keyframes mapMarkerFadeOutChecked {
929
+ from {
930
+ opacity: 0.3;
931
+ }
932
+ to {
933
+ opacity: 0;
934
+ }
935
+ }
936
+ @keyframes mapMarkerPulse {
937
+ 0% {
938
+ outline-offset: 4px;
939
+ outline-color: rgba(248, 248, 248, 0.95);
940
+ }
941
+ 100% {
942
+ outline-offset: 14px;
943
+ outline-color: rgba(248, 248, 248, 0);
944
+ }
945
+ }
946
+ .mapRoot .frameMarkerIcon {
947
+ background-color: transparent;
948
+ --image-size: 2rem;
949
+ --icon-size: 1.75rem;
950
+ }
951
+ .mapRoot .frameMarkerIcon .frameImage {
952
+ position: relative;
953
+ background-position: center;
954
+ background-size: cover;
955
+ background-repeat: no-repeat;
956
+ width: var(--image-size);
957
+ height: var(--image-size);
958
+ opacity: 1;
959
+ transition: opacity 0.3s cubic-bezier(0.8, 0.2, 0.35, 0.7);
960
+ }
961
+ .mapRoot .frameMarkerIcon .frameImage > img {
962
+ display: block;
963
+ width: 100%;
964
+ height: 100%;
965
+ object-fit: cover;
966
+ }
967
+ .mapRoot .frameMarkerIcon .frameImage::before {
968
+ content: "";
969
+ position: absolute;
970
+ width: var(--icon-size);
971
+ height: var(--icon-size);
972
+ background-color: rgb(248, 248, 248);
973
+ box-shadow: 0 0 10px rgb(0, 0, 0);
974
+ border-radius: 50%;
975
+ z-index: -1;
976
+ outline: 2px solid rgb(248, 248, 248);
977
+ outline-offset: 2px;
978
+ transform: translate3d(calc((var(--image-size) - var(--icon-size)) / 2), calc((var(--image-size) - var(--icon-size)) / 2), 0);
979
+ transition: outline-color 0.15s cubic-bezier(0.8, 0.2, 0.35, 0.7), background-color 0.15s cubic-bezier(0.8, 0.2, 0.35, 0.7);
980
+ }
981
+ .mapRoot .frameMarkerIcon .frameImage::after {
982
+ content: "";
983
+ position: absolute;
984
+ bottom: -9px;
985
+ left: calc(50% - 5px);
986
+ width: 0;
987
+ height: 0;
988
+ border-left: 5px solid transparent;
989
+ border-right: 5px solid transparent;
990
+ border-top: 7px solid rgb(248, 248, 248);
991
+ transition: transform 0.2s cubic-bezier(0.6, 0, 0, 1);
992
+ z-index: 10;
993
+ filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.7));
994
+ -webkit-transform-origin-x: center;
995
+ -webkit-transform-origin-y: calc((var(--image-size) + 4px) / -2);
996
+ transition: border-top-color 0.1s cubic-bezier(0.6, 0, 0.6, 1), transform 0.3s cubic-bezier(0.6, 0, 0, 1), bottom 0.15s cubic-bezier(0.6, 0, 0.6, 1);
997
+ }
998
+
999
+ .mapRoot .subIconContainer {
1000
+ position: absolute;
1001
+ left: 100%;
1002
+ top: 50%;
1003
+ transform: translateY(-50%);
1004
+ width: 2.5rem;
1005
+ height: 2.5rem;
1006
+ pointer-events: none;
1007
+ z-index: 1;
1008
+ transition: opacity 0.15s ease-in;
1009
+ }
1010
+ .mapRoot .subIconContainer::before {
1011
+ content: "";
1012
+ position: absolute;
1013
+ left: 50%;
1014
+ top: 50%;
1015
+ transform: translate3d(-50%, -50%, 0) scale(1.2);
1016
+ width: 30px;
1017
+ height: 30px;
1018
+ z-index: -1;
1019
+ background-image: url("./assets/marker-hover.webp");
1020
+ background-position: center;
1021
+ background-size: contain;
1022
+ opacity: 0;
1023
+ transition: transform 0.5s cubic-bezier(0.6, 0, 0, 1), opacity 0.5s cubic-bezier(0.6, 0, 0, 1);
1024
+ }
1025
+ .mapRoot .subIconContainer::after {
1026
+ content: "";
1027
+ position: absolute;
1028
+ left: 50%;
1029
+ top: 50%;
1030
+ transform: translate3d(-50%, -50%, 0) scale(1.2);
1031
+ width: 25px;
1032
+ height: 25px;
1033
+ z-index: -2;
1034
+ background-image: url("./assets/marker-select.webp");
1035
+ background-position: center;
1036
+ background-size: contain;
1037
+ opacity: 0;
1038
+ transition: transform 0.35s cubic-bezier(0.6, 0, 0, 1), opacity 0.35s cubic-bezier(0.6, 0, 0, 1);
1039
+ }
1040
+ .mapRoot .subIconContainer .subIcon {
1041
+ display: block;
1042
+ position: absolute;
1043
+ left: 50%;
1044
+ top: 50%;
1045
+ transform: translate3d(-50%, -50%, 0);
1046
+ width: 100%;
1047
+ height: 100%;
1048
+ object-fit: contain;
1049
+ background-position: center;
1050
+ background-size: contain;
1051
+ background-repeat: no-repeat;
1052
+ transition: transform 0.35s cubic-bezier(0.6, 0, 0, 1), opacity 0.35s cubic-bezier(0.6, 0, 0, 1);
1053
+ will-change: transform, opacity;
1054
+ }
1055
+
1056
+ .mapRoot .clusterMarker {
1057
+ position: relative;
1058
+ }
1059
+ .mapRoot .clusterMarker .clusterCount {
1060
+ position: absolute;
1061
+ top: -0.5rem;
1062
+ right: -0.5rem;
1063
+ background-color: rgb(255, 196, 40);
1064
+ color: rgb(51, 51, 51);
1065
+ font-family: "Novecento Medium", "Novecento Cyrillic Medium", "Novecento Vietnamese Medium", "HMSans_EN", "Geist", system-ui, sans-serif;
1066
+ font-size: 0.75rem;
1067
+ font-weight: 700;
1068
+ min-width: 18px;
1069
+ height: 18px;
1070
+ border-radius: 9px;
1071
+ display: flex;
1072
+ align-items: center;
1073
+ justify-content: center;
1074
+ padding: 0 4px;
1075
+ box-shadow: -1px 1px 2px rgba(0, 0, 0, 0.8);
1076
+ z-index: 10;
1077
+ pointer-events: none;
1078
+ }
1079
+ .mapRoot .clusterMarker:hover::before {
1080
+ outline: 2px solid rgba(248, 248, 248, 0.6);
1081
+ outline-offset: 10px;
1082
+ transition: outline 0.25s ease-in, outline-offset 0.25s ease-in;
1083
+ }
1084
+
1085
+ .mapRoot .noFrameInner.clusterMarker .clusterCount {
1086
+ top: 2px;
1087
+ right: 2px;
1088
+ background-color: rgba(255, 196, 40, 0.9);
1089
+ backdrop-filter: blur(4px);
1090
+ }
1091
+ .mapRoot .noFrameInner.clusterMarker:hover {
1092
+ transform: translate3d(-50%, -55%, 0);
1093
+ transition: transform 0.35s cubic-bezier(0.8, 0.2, 0.35, 0.7);
1094
+ }
1095
+
1096
+ .mapRoot, .mapRoot[data-theme=light] {
1097
+ --labelColor: rgb(242, 242, 235);
1098
+ --labelShadowPrimary: rgba(0, 0, 0, 0.8);
1099
+ --labelShadowSecondary: rgb(51, 51, 51);
1100
+ }
1101
+
1102
+ .mapRoot[data-theme=dark] {
1103
+ --labelColor: rgb(245, 240, 235);
1104
+ --labelShadowPrimary: rgb(0, 0, 0);
1105
+ --labelShadowSecondary: rgb(51, 51, 51);
1106
+ }
1107
+
1108
+ .mapRoot .innerSub,.mapRoot .innerSite {
1109
+ color: var(--labelColor);
1110
+ font-size: 0.9375rem;
1111
+ font-weight: 560;
1112
+ text-transform: uppercase;
1113
+ letter-spacing: -0.5px;
1114
+ line-height: 1.02;
1115
+ word-break: break-word;
1116
+ text-overflow: ellipsis;
1117
+ width: 8.8rem;
1118
+ text-align: center;
1119
+ position: absolute;
1120
+ left: 0;
1121
+ top: 0;
1122
+ transform: translate(-50%, -50%);
1123
+ user-select: none;
1124
+ text-shadow: 1px 1px 1px var(--labelShadowPrimary), 0 0 1px var(--labelShadowSecondary), -0.5px -0.5px 2px var(--labelShadowSecondary);
1125
+ font-family: "Novecento Medium", "Novecento Cyrillic Medium", "Novecento Vietnamese Medium", "HMSans_EN", "Geist", system-ui, sans-serif;
1126
+ animation: mapFadeIn 0.3s ease-in-out;
1127
+ }
1128
+
1129
+ .mapRoot .innerSub {
1130
+ font-family: "Novecento DemiBold", "Novecento Cyrillic DemiBold", "Novecento Vietnamese DemiBold", "HMSans_EN", "Geist", system-ui, sans-serif;
1131
+ text-transform: capitalize;
1132
+ letter-spacing: -0.2px;
1133
+ font-size: 18px;
1134
+ font-weight: 700;
1135
+ width: 9.6rem;
1136
+ }
1137
+
1138
+ @keyframes mapFadeIn {
1139
+ from {
1140
+ opacity: 0;
1141
+ }
1142
+ to {
1143
+ opacity: 1;
1144
+ }
1145
+ }
1146
+ @keyframes mapFadeOut {
1147
+ from {
1148
+ opacity: 1;
1149
+ }
1150
+ to {
1151
+ opacity: 0;
1152
+ }
1153
+ }
1154
+ .mapRoot,
1155
+ .mapRoot[data-theme=light] {
1156
+ --boundary: rgb(255, 139, 56);
1157
+ }
1158
+
1159
+ .mapRoot[data-theme=dark] {
1160
+ --boundary: rgb(255, 196, 40);
1161
+ }
1162
+
1163
+ .mapRoot .subregionBoundaryStroke {
1164
+ stroke: var(--boundary);
1165
+ stroke-width: 2;
1166
+ fill: none;
1167
+ stroke-dasharray: 5, 3;
1168
+ opacity: 0.8;
1169
+ filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.4));
1170
+ }
1171
+
1172
+ .mapRoot .subregionBoundaryFill {
1173
+ fill: var(--boundary);
1174
+ fill-opacity: 0.2;
1175
+ stroke: var(--boundary);
1176
+ stroke-width: 1;
1177
+ stroke-dasharray: 2, 2;
1178
+ opacity: 0.6;
1179
+ }
1180
+
1181
+ .mapRoot,
1182
+ .mapRoot[data-theme=light] {
1183
+ --mapBg: rgb(242, 242, 235);
1184
+ --mapPatternBg: rgb(217, 217, 217);
1185
+ --mapPatternErrorBg: rgb(29, 72, 189);
1186
+ --attributionBorder: rgba(255, 255, 255, 0.6);
1187
+ --attributionBg: rgba(248, 248, 248, 0.6);
1188
+ --attributionColor: rgb(32, 32, 32);
1189
+ --attributionLink: rgb(50, 98, 201);
1190
+ position: relative;
1191
+ width: 100%;
1192
+ height: 100%;
1193
+ min-height: inherit;
1194
+ isolation: isolate;
1195
+ font-family: inherit;
1196
+ font-size: 16px;
1197
+ background: var(--mapBg);
1198
+ touch-action: none;
1199
+ }
1200
+
1201
+ .mapRoot[data-theme=dark] {
1202
+ --mapBg: rgb(32, 32, 32);
1203
+ --mapPatternBg: rgb(51, 51, 51);
1204
+ --mapPatternErrorBg: rgb(255, 196, 40);
1205
+ --attributionBorder: rgba(51, 51, 51, 0.6);
1206
+ --attributionBg: rgba(32, 32, 32, 0.6);
1207
+ --attributionColor: rgb(245, 240, 235);
1208
+ --attributionLink: rgb(255, 196, 40);
1209
+ }
1210
+
1211
+ .mapRoot::before {
1212
+ content: "";
1213
+ position: absolute;
1214
+ inset: 0;
1215
+ z-index: 1;
1216
+ pointer-events: none;
1217
+ transform: translateX(-1px);
1218
+ background: var(--mapPatternBg);
1219
+ mask-image: url("./assets/map-pattern.svg");
1220
+ mask-repeat: repeat;
1221
+ mask-size: 100px;
1222
+ transition: background-color 0.3s cubic-bezier(0.8, 0.2, 0.35, 0.7);
1223
+ }
1224
+
1225
+ .mapRoot.overdrag::before {
1226
+ background: var(--mapPatternErrorBg);
1227
+ }
1228
+
1229
+ .mapRoot img.leaflet-tile {
1230
+ mix-blend-mode: normal;
1231
+ }
1232
+
1233
+ .mapRoot .attribution {
1234
+ position: absolute;
1235
+ right: 4px;
1236
+ bottom: 4px;
1237
+ z-index: 1000;
1238
+ display: flex;
1239
+ align-items: center;
1240
+ gap: 2px;
1241
+ padding: 4px 8px;
1242
+ border-radius: 4px;
1243
+ border: 1px solid var(--attributionBorder);
1244
+ color: var(--attributionColor);
1245
+ background: var(--attributionBg);
1246
+ backdrop-filter: blur(3px);
1247
+ font-family: inherit;
1248
+ font-size: 11px;
1249
+ font-feature-settings: normal;
1250
+ font-variant-numeric: normal;
1251
+ line-height: 1.2;
1252
+ pointer-events: auto;
1253
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.12);
1254
+ user-select: none;
1255
+ -webkit-user-select: none;
1256
+ }
1257
+
1258
+ .mapRoot .attributionBrand,
1259
+ .mapRoot .attributionGithub,
1260
+ .mapRoot .attributionSeparator,
1261
+ .mapRoot .attributionLink {
1262
+ user-select: none;
1263
+ -webkit-user-select: none;
1264
+ transition: all 0.2s cubic-bezier(0.8, 0.2, 0.35, 0.7);
1265
+ }
1266
+
1267
+ .mapRoot .attributionGithub {
1268
+ display: inline-flex;
1269
+ align-items: center;
1270
+ justify-content: center;
1271
+ width: 12px;
1272
+ height: 12px;
1273
+ color: inherit;
1274
+ line-height: 0;
1275
+ text-decoration: none;
1276
+ }
1277
+
1278
+ .mapRoot .attributionGithub svg {
1279
+ display: block;
1280
+ width: 11px;
1281
+ height: 11px;
1282
+ fill: currentColor;
1283
+ transition: fill 0.2s cubic-bezier(0.8, 0.2, 0.35, 0.7);
1284
+ }
1285
+
1286
+ .mapRoot .attributionGithub:hover,
1287
+ .mapRoot .attributionGithub:focus-visible {
1288
+ color: var(--attributionLink);
1289
+ outline: 0;
1290
+ }
1291
+
1292
+ .mapRoot .attributionBrand {
1293
+ position: relative;
1294
+ color: inherit;
1295
+ font-weight: 600;
1296
+ text-decoration: none;
1297
+ }
1298
+
1299
+ .mapRoot .attributionSeparator {
1300
+ font-weight: 800;
1301
+ opacity: 0.45;
1302
+ }
1303
+
1304
+ .mapRoot .attributionLink {
1305
+ position: relative;
1306
+ font-weight: 500;
1307
+ color: inherit;
1308
+ text-decoration: none;
1309
+ }
1310
+
1311
+ .mapRoot .attributionBrand::after,
1312
+ .mapRoot .attributionLink::after {
1313
+ content: "";
1314
+ position: absolute;
1315
+ right: 0;
1316
+ bottom: -2px;
1317
+ left: 0;
1318
+ height: 1.5px;
1319
+ background-color: currentColor;
1320
+ transform: scaleX(0);
1321
+ transform-origin: right center;
1322
+ transition: transform 0.3s ease;
1323
+ }
1324
+
1325
+ .mapRoot .attributionBrand:hover::after,
1326
+ .mapRoot .attributionBrand:focus-visible::after,
1327
+ .mapRoot .attributionLink:hover::after,
1328
+ .mapRoot .attributionLink:focus-visible::after {
1329
+ transform: scaleX(1);
1330
+ transform-origin: left center;
1331
+ }
1332
+
1333
+ .mapRoot .attributionBrand:hover,
1334
+ .mapRoot .attributionBrand:focus-visible,
1335
+ .mapRoot .attributionLink:hover,
1336
+ .mapRoot .attributionLink:focus-visible {
1337
+ color: var(--attributionLink);
1338
+ outline: 0;
1339
+ }