server_photo_s85js/public/css/map.css
2026-08-11 08:45:04 +02:00

305 lines
6 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ===============================
MAPPA GLOBALE
=============================== */
/* La mappa occupa tutto lo schermo SOTTO lheader */
.global-map {
position: fixed;
left: 0;
right: 0;
top: calc(var(--header-h, 60px) + var(--safe-top, 0px)); /* niente hard-code */
bottom: 0;
z-index: 50;
display: none; /* chiusa di default */
}
/* Quando è aperta, visibile */
.global-map.open {
display: block;
}
/* La Leaflet container deve riempire il contenitore */
.global-map,
.global-map .leaflet-container {
width: 100%;
height: 100%;
}
/* Nasconde la gallery quando la mappa è aperta */
.gallery.hidden {
display: none;
}
/* ===============================
MARKER FOTO
=============================== */
.photo-marker {
width: 48px;
height: 48px;
border-radius: 10px;
overflow: hidden;
position: relative;
box-shadow: 0 2px 6px rgba(0,0,0,0.25);
background: #fff;
}
.photo-marker img {
width: 100%;
height: 100%;
object-fit: cover;
}
/* ===============================
CLUSTER
=============================== */
.photo-cluster {
width: 56px;
height: 56px;
position: relative;
border-radius: 12px;
overflow: visible;
}
.cluster-back {
position: absolute;
top: 6px;
left: 6px;
width: 48px;
height: 48px;
border-radius: 10px;
object-fit: cover;
opacity: 0.5;
filter: blur(1px);
transform: scale(0.95);
}
.cluster-front {
position: absolute;
top: 0;
left: 0;
width: 48px;
height: 48px;
border-radius: 10px;
object-fit: cover;
box-shadow: 0 2px 6px rgba(0,0,0,0.35);
}
/* ===============================
MARKER CLUSTER
=============================== */
.marker-cluster-wrapper { background: transparent; border: 0; }
.gp-cluster {
position: relative;
border-radius: 50%;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0,0,0,0.35);
border: 3px solid rgba(255,255,255,0.85);
transition: width .12s, height .12s, font-size .12s;
}
.gp-cluster .cluster-collage { position:absolute; inset:0; display:grid; grid-template-columns: repeat(2,1fr); grid-template-rows: repeat(2,1fr); }
.gp-cluster .cluster-collage div img { width:100%; height:100%; object-fit:cover; display:block; }
.gp-cluster .gp-count {
position:absolute; right:6px; bottom:6px;
background: rgba(0,0,0,0.55); padding:4px 7px; border-radius:12px;
color:#fff; font-weight:700; font-size:12px;
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
.gp-cluster.cluster-sm .gp-count { font-size:11px; }
.gp-cluster.cluster-md .gp-count { font-size:13px; }
.gp-cluster.cluster-lg .gp-count { font-size:15px; }
.gp-cluster.cluster-xl .gp-count { font-size:17px; }
/* =========================================================
MODALITÀ ACTIVITIES — override minimale
========================================================= */
/* Mappa globale attività */
body.activities .global-map {
border-top: 3px solid #007bff;
}
/* Marker attività (icona/mappa) */
body.activities .activity-marker {
width: 42px;
height: 42px;
border-radius: 50%;
background: #eef4ff;
border: 2px solid #007bff;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
box-shadow: none;
}
body.activities .activity-marker img {
width: 70%;
height: 70%;
object-fit: contain;
filter: grayscale(40%);
}
/* Cluster attività (semplice, non collage) */
body.activities .activity-cluster {
width: 48px;
height: 48px;
border-radius: 50%;
background: #dce6ff;
border: 3px solid #007bff;
display: flex;
align-items: center;
justify-content: center;
color: #0033aa;
font-weight: 700;
font-size: 14px;
box-shadow: none;
}
/* Nascondi collage foto nei cluster */
body.activities .cluster-back,
body.activities .cluster-front,
body.activities .cluster-collage {
display: none !important;
}
/* Nascondi marker foto */
body.activities .photo-marker {
display: none !important;
}
/* Nascondi cluster foto */
body.activities .photo-cluster,
body.activities .gp-cluster {
display: none !important;
}
/* ===============================
MAPPA ATTIVITÀ
=============================== */
.activity-cluster {
width: 48px;
height: 48px;
display: flex;
align-items: center;
justify-content: center;
background: #2b8cff;
color: #fff;
border: 3px solid rgba(255, 255, 255, 0.9);
border-radius: 50%;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
font-size: 15px;
font-weight: 700;
}
.activity-start-marker {
width: 42px;
height: 42px;
display: flex;
align-items: center;
justify-content: center;
background: #ffffff;
border: 3px solid #2b8cff;
border-radius: 50%;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
font-size: 20px;
}
.activity-marker-run {
border-color: #2b8cff;
}
.activity-marker-bike {
border-color: #3cb44b;
}
.activity-marker-walk {
border-color: #f58231;
}
.activity-marker-generic {
border-color: #911eb4;
}
.map-toggle-routes {
position: absolute;
top: 12px;
left: 56px;
z-index: 1000;
min-height: 36px;
padding: 7px 12px;
display: inline-flex;
align-items: center;
justify-content: center;
background: #fff;
color: #111;
border: 1px solid #cfcfcf;
border-radius: 18px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
cursor: pointer;
font-size: 14px;
font-weight: 600;
}
.map-toggle-routes.active {
background: #2b8cff;
color: #fff;
border-color: #2b8cff;
}
.activity-map-popup {
min-width: 180px;
}
.activity-map-popup strong {
display: block;
margin-bottom: 4px;
}
.activity-popup-open {
margin-top: 8px;
padding: 6px 10px;
background: #2b8cff;
color: #fff;
border: 0;
border-radius: 8px;
cursor: pointer;
font-size: 13px;
font-weight: 600;
}
.activity-popup-open:hover {
background: #126fd1;
}