/* ========================================================== SOCIOWIRE MARKERS — ANCHOR STABLE (NO SHIFT) Root = 0x0 on the exact geo point. Bubble/Card are ABSOLUTE above the anchor. ========================================================== */ /* Root anchored by MapLibre at the geo point */ .post-pin { position: relative; width: 0; height: 0; pointer-events: none; /* children clickable */ transform: translate3d(0, 0, 0); } .post-pin * { pointer-events: auto; box-sizing: border-box; } /* ========================= COMPACT ========================= */ .post-pin--compact .post-pin-bubble { position: absolute; left: 0; top: 0; transform: translate(-50%, calc(-100% - 12px)); display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 999px; background: rgba(6, 40, 80, 0.95); border: 1px solid rgba(80, 180, 255, 0.9); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); max-width: 180px; } .post-pin-dot { width: 10px; height: 10px; border-radius: 999px; background: #ff8a00; margin-right: 6px; flex-shrink: 0; } .post-pin-text { color: #e8f5ff; font-size: 11px; font-weight: 500; max-width: 160px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* little pointer tip */ .post-pin--compact .post-pin-pointer-small { position: absolute; left: 0; top: 0; transform: translate(-50%, -100%); width: 0; height: 0; border-left: 7px solid transparent; border-right: 7px solid transparent; border-top: 9px solid rgba(6, 40, 80, 0.95); filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.6)); } /* ========================= EXPANDED ========================= */ .post-pin--expanded { z-index: 999999; } .post-pin--expanded .post-card { position: absolute; left: 0; top: 0; transform: translate(-50%, calc(-100% - 14px)); min-width: 260px; max-width: 320px; background: rgba(8, 20, 40, 0.97); border-radius: 14px; padding: 10px 12px; box-shadow: 0 6px 18px rgba(0, 0, 0, 0.8); border: 1px solid rgba(90, 190, 255, 0.9); color: #e8f5ff; } /* header : catégorie + heure/date */ .post-card-header { display: flex; justify-content: space-between; align-items: center; font-size: 11px; margin-bottom: 6px; } .post-card-cat { font-weight: 600; color: #8fc5ff; } .post-card-time { color: #9eb7ff; } /* corps : media + texte */ .post-card-main { display: flex; flex-direction: row; gap: 8px; margin-bottom: 6px; } .post-card-media { width: 72px; height: 72px; border-radius: 10px; background: radial-gradient(circle at 30% 30%, #4a9dff, #07152b); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .post-card-media-label { font-size: 9px; text-align: center; color: #e8f5ff; } .post-card-info { flex: 1; min-width: 0; } .post-card-title { font-size: 13px; font-weight: 600; margin-bottom: 2px; } .post-card-meta { font-size: 10px; color: #9eb7ff; margin-bottom: 4px; } .post-card-body { font-size: 11px; color: #c7e3ff; max-height: 70px; overflow: hidden; } /* footer boutons */ .post-card-footer { display: flex; gap: 6px; margin-bottom: 6px; flex-wrap: wrap; } .post-card-btn { border: none; border-radius: 999px; padding: 3px 8px; font-size: 10px; background: rgba(5, 35, 70, 0.95); color: #e8f5ff; cursor: pointer; } .post-card-comments { font-size: 10px; color: #9eb7ff; padding: 4px 6px; border-radius: 8px; background: rgba(3, 14, 32, 0.95); } /* pointer under expanded card */ .post-pin--expanded .post-card-pointer { position: absolute; left: 0; top: 0; transform: translate(-50%, -100%); width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-top: 11px solid rgba(8, 20, 40, 0.97); filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.8)); }