1- /* Wrapper invisibile */
2- .custom-marker-wrapper {
3- background : transparent;
4- border : none;
1+ .leaflet-container {
2+ background : # 071014 ;
53}
64
7- /* Base dot */
8- .custom-marker {
9- width : 16px ;
10- height : 16px ;
11- border-radius : 50% ;
12- box-shadow : 0 0 6px rgba (0 , 0 , 0 , 0.6 );
5+ /* =========================
6+ POPUP MODERNI TEMA SCURO
7+ ========================= */
8+
9+ .modern-dark-popup .leaflet-popup-content-wrapper {
10+ background :
11+ linear-gradient (180deg , rgba (16 , 24 , 28 , 0.98 ), rgba (10 , 15 , 18 , 0.98 ));
12+ color : # e6f4f1 ;
13+ border : 1px solid rgba (94 , 234 , 212 , 0.18 );
14+ border-radius : 24px ;
15+ box-shadow :
16+ 0 20px 60px rgba (0 , 0 , 0 , 0.45 ),
17+ 0 0 0 1px rgba (255 , 255 , 255 , 0.03 ) inset,
18+ 0 0 24px rgba (45 , 212 , 191 , 0.08 );
19+ backdrop-filter : blur (10px );
20+ overflow : hidden;
21+ }
22+
23+ .modern-dark-popup .leaflet-popup-content {
24+ margin : 0 ;
25+ min-width : 260px ;
26+ }
27+
28+ .modern-dark-popup .leaflet-popup-tip {
29+ background : # 0d1518 ;
30+ border : 1px solid rgba (94 , 234 , 212 , 0.16 );
31+ }
32+
33+ .modern-dark-popup .leaflet-popup-close-button {
34+ color : rgba (255 , 255 , 255 , 0.72 );
35+ font-size : 18px ;
36+ padding : 10px 12px 0 0 ;
37+ transition : color 0.18s ease, transform 0.18s ease;
1338}
1439
15- /* Stati */
16- . custom-marker . active {
17- background-color : # 22c55e ; /* verde */
40+ . modern-dark-popup . leaflet-popup-close-button : hover {
41+ color : # ffffff ;
42+ transform : scale ( 1.06 );
1843}
1944
20- .custom-marker .closed {
21- background-color : # ef4444 ; /* rosso */
45+ /* card interna popup */
46+
47+ .popup-card {
48+ padding : 18px ;
2249}
2350
24- .custom-marker .idea {
25- background-color : # a855f7 ; /* viola */
51+ .popup-card__top {
52+ display : flex;
53+ align-items : flex-start;
54+ justify-content : space-between;
55+ gap : 12px ;
56+ margin-bottom : 14px ;
2657}
2758
28- .custom-marker .ready {
29- background-color : # facc15 ; /* giallo */
59+ .popup-card__eyebrow {
60+ margin : 0 0 6px 0 ;
61+ font-size : 11px ;
62+ font-weight : 700 ;
63+ letter-spacing : 0.12em ;
64+ text-transform : uppercase;
65+ color : rgba (165 , 243 , 252 , 0.72 );
3066}
67+
68+ .popup-card__title {
69+ margin : 0 ;
70+ font-size : 19px ;
71+ line-height : 1.15 ;
72+ font-weight : 800 ;
73+ color : # f3fffd ;
74+ }
75+
76+ .popup-card__badge {
77+ flex-shrink : 0 ;
78+ display : inline-flex;
79+ align-items : center;
80+ border : 1px solid currentColor;
81+ border-radius : 999px ;
82+ padding : 7px 10px ;
83+ font-size : 11px ;
84+ font-weight : 700 ;
85+ line-height : 1 ;
86+ background : rgba (255 , 255 , 255 , 0.02 );
87+ }
88+
89+ .popup-card__grid {
90+ display : grid;
91+ grid-template-columns : 1fr ;
92+ gap : 10px ;
93+ margin-bottom : 14px ;
94+ }
95+
96+ .popup-card__item {
97+ padding : 11px 12px ;
98+ border-radius : 14px ;
99+ background : rgba (255 , 255 , 255 , 0.035 );
100+ border : 1px solid rgba (255 , 255 , 255 , 0.05 );
101+ }
102+
103+ .popup-card__label {
104+ display : block;
105+ margin-bottom : 4px ;
106+ font-size : 11px ;
107+ font-weight : 700 ;
108+ text-transform : uppercase;
109+ letter-spacing : 0.08em ;
110+ color : rgba (170 , 196 , 201 , 0.72 );
111+ }
112+
113+ .popup-card__value {
114+ display : block;
115+ font-size : 13px ;
116+ line-height : 1.45 ;
117+ color : # e7f3f1 ;
118+ }
119+
120+ .popup-card__description {
121+ border-top : 1px solid rgba (94 , 234 , 212 , 0.12 );
122+ padding-top : 12px ;
123+ font-size : 13px ;
124+ line-height : 1.5 ;
125+ color : rgba (212 , 233 , 229 , 0.82 );
126+ }
127+
128+ .popup-card__cta {
129+ display : inline-flex;
130+ align-items : center;
131+ justify-content : center;
132+ width : 100% ;
133+ margin-top : 4px ;
134+ border-radius : 16px ;
135+ padding : 12px 14px ;
136+ text-decoration : none;
137+ font-weight : 700 ;
138+ color : # 071014 ;
139+ background : linear-gradient (135deg , # 7be4d8, # 48cae4 );
140+ box-shadow :
141+ 0 10px 24px rgba (72 , 202 , 228 , 0.18 ),
142+ 0 0 24px rgba (123 , 228 , 216 , 0.16 );
143+ transition :
144+ transform 0.18s ease,
145+ box-shadow 0.18s ease,
146+ filter 0.18s ease;
147+ }
148+
149+ .popup-card__cta : hover {
150+ transform : translateY (-1px );
151+ filter : brightness (1.03 );
152+ box-shadow :
153+ 0 14px 28px rgba (72 , 202 , 228 , 0.24 ),
154+ 0 0 30px rgba (123 , 228 , 216 , 0.2 );
155+ }
156+
157+ .map-area-popup {
158+ display : flex;
159+ flex-direction : column;
160+ gap : 6px ;
161+ padding : 2px 2px 0 ;
162+ }
163+
164+ .map-area-popup strong {
165+ font-size : 14px ;
166+ color : # eafffb ;
167+ }
168+
169+ .map-area-popup span {
170+ font-size : 13px ;
171+ line-height : 1.45 ;
172+ color : rgba (227 , 244 , 241 , 0.8 );
173+ }
174+
175+ /* =========================
176+ CLUSTER CUSTOM
177+ ========================= */
178+
179+ .insu-cluster-wrapper {
180+ background : transparent !important ;
181+ border : none !important ;
182+ }
183+
184+ .insu-cluster {
185+ position : relative;
186+ width : 56px ;
187+ height : 56px ;
188+ display : flex;
189+ align-items : center;
190+ justify-content : center;
191+ }
192+
193+ .insu-cluster__outer ,
194+ .insu-cluster__middle ,
195+ .insu-cluster__inner {
196+ position : absolute;
197+ border-radius : 999px ;
198+ inset : 0 ;
199+ }
200+
201+ .insu-cluster__outer {
202+ background : radial-gradient (
203+ circle,
204+ rgba (45 , 212 , 191 , 0.18 ) 0% ,
205+ rgba (45 , 212 , 191 , 0.08 ) 45% ,
206+ rgba (45 , 212 , 191 , 0 ) 75%
207+ );
208+ transform : scale (1.18 );
209+ filter : blur (3px );
210+ }
211+
212+ .insu-cluster__middle {
213+ inset : 4px ;
214+ border : 1px solid rgba (125 , 228 , 216 , 0.34 );
215+ background : linear-gradient (
216+ 180deg ,
217+ rgba (14 , 33 , 38 , 0.92 ),
218+ rgba (8 , 18 , 22 , 0.92 )
219+ );
220+ box-shadow :
221+ 0 0 18px rgba (45 , 212 , 191 , 0.18 ),
222+ inset 0 0 20px rgba (45 , 212 , 191 , 0.08 );
223+ }
224+
225+ .insu-cluster__inner {
226+ inset : 10px ;
227+ display : flex;
228+ align-items : center;
229+ justify-content : center;
230+ background : linear-gradient (135deg , # 2dd4bf, # 48cae4 );
231+ border : 2px solid rgba (255 , 255 , 255 , 0.88 );
232+ box-shadow :
233+ 0 0 18px rgba (72 , 202 , 228 , 0.35 ),
234+ 0 0 28px rgba (45 , 212 , 191 , 0.26 );
235+ }
236+
237+ .insu-cluster__inner span {
238+ color : # 031014 ;
239+ font-size : 15px ;
240+ font-weight : 900 ;
241+ line-height : 1 ;
242+ }
243+
244+ .cluster-sm {
245+ transform : scale (0.94 );
246+ }
247+
248+ .cluster-md {
249+ transform : scale (1 );
250+ }
251+
252+ .cluster-lg {
253+ transform : scale (1.08 );
254+ }
255+
256+ /* =========================
257+ SAGOME / CONFINI
258+ ========================= */
259+
260+ .leaflet-interactive {
261+ transition :
262+ stroke 0.18s ease,
263+ fill-opacity 0.18s ease,
264+ opacity 0.18s ease;
265+ }
266+
267+ .leaflet-overlay-pane path : hover {
268+ stroke : # 7be4d8 ;
269+ opacity : 1 !important ;
270+ fill-opacity : 0.14 !important ;
271+ filter : drop-shadow (0 0 6px rgba (43 , 217 , 187 , 0.22 ));
272+ }
0 commit comments