.map-page { padding-top: 128px; padding-bottom: 60px; display: grid; gap: 24px; }
.map-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.map-head .sec-head { margin-bottom: 0; }
.map-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.map-panel { position: relative; height: calc(100vh - 340px); min-height: 520px; background: #0d2b4f; }
#map { position: absolute; inset: 0; background: #0d2b4f; }
.map-coords { position: absolute; top: 12px; right: 12px; z-index: 500; padding: 6px 10px; border-radius: 6px; font-size: 11.5px; color: var(--ink-hi); background: rgba(0,0,0,0.75); border: 1px solid var(--line-1); backdrop-filter: blur(8px); pointer-events: none; }
.map-coords:empty { display: none; }
.map-hint { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 500; pointer-events: none; padding: 7px 14px; border-radius: 6px; font-size: 12px; color: var(--ink-mid); background: rgba(0,0,0,0.75); border: 1px solid var(--line-1); backdrop-filter: blur(8px); white-space: nowrap; max-width: 92%; overflow: hidden; text-overflow: ellipsis; }

/* Leaflet aux couleurs du site */
.leaflet-container { font-family: var(--sans); }
.leaflet-bar { border: 1px solid var(--line-1) !important; border-radius: var(--r-sm) !important; overflow: hidden; box-shadow: 0 10px 30px -15px #000 !important; }
.leaflet-bar a { background: rgba(0,0,0,0.85) !important; color: var(--ink-hi) !important; border-bottom: 1px solid var(--line-0) !important; width: 34px !important; height: 34px !important; line-height: 34px !important; }
.leaflet-bar a:hover { background: rgba(255,255,255,0.08) !important; }
.leaflet-bar a.leaflet-disabled { color: #555 !important; }
.leaflet-control-attribution { background: rgba(0,0,0,0.7) !important; color: var(--ink-meta) !important; font-size: 10px !important; border-radius: 6px 0 0 0; }
.leaflet-control-attribution a { color: var(--ink-hi) !important; }
.leaflet-popup-content-wrapper { background: #0e0e0e; color: var(--ink-body); border: 1px solid var(--line-1); border-radius: var(--r); box-shadow: inset 0 1px #ffffff0f, 0 20px 40px -20px #000; }
.leaflet-popup-tip { background: #0e0e0e; }
.leaflet-popup-content { margin: 12px 14px; font-size: 13px; }
.leaflet-popup-content b { font-size: 15px; font-weight: 600; color: var(--ink-hi); display: block; margin-bottom: 2px; }
.leaflet-popup-close-button { color: var(--ink-meta) !important; }

/* ---------- Blips (sprites FiveM) ---------- */
.blip-pin { width: 32px; height: 32px; position: relative; }
.blip-pin img { width: 32px; height: 32px; display: block; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.8)); transition: transform .15s; }
.blip-pin:hover img { transform: scale(1.15); }
.blip-label { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 3px; padding: 3px 8px; border-radius: 6px; font-size: 11.5px; font-weight: 600; color: #fff; background: rgba(0,0,0,0.85); border: 1px solid var(--line-1); white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity .15s; }
.blip-pin:hover .blip-label, .blip-main .blip-label, .blip-selected .blip-label { opacity: 1; }
.blip-main img { width: 38px; height: 38px; margin: -3px; }
.blip-main::before { content: ""; position: absolute; inset: -6px; border-radius: 50%; background: var(--accent-2); opacity: .3; animation: pulse 1.8s ease-out infinite; z-index: -1; }
@keyframes pulse { 0% { transform: scale(.6); opacity: .6; } 100% { transform: scale(1.8); opacity: 0; } }

@media (max-width: 820px) { .map-panel { height: 70vh; min-height: 420px; } }
