.interactive-map-preview-wrapper{position:relative;width:100%;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0000001a;background:#f8f9fa}.interactive-map-preview{cursor:pointer}.interactive-map-preview .leaflet-container{background:#e8f4f8;border-radius:12px}.map-preview-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fffffff2;z-index:1000;gap:16px}.map-preview-loading .spinner{width:40px;height:40px;border:4px solid #e0e0e0;border-top-color:#3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.map-preview-loading p{margin:0;color:#666;font-size:14px}.map-preview-error{display:flex;align-items:center;justify-content:center;background:#fff3cd;border:1px solid #ffc107;border-radius:12px;color:#856404;padding:20px}.map-preview-error p{margin:0}.map-preview-tooltip{background:#000000d9;color:#fff;border:none;border-radius:6px;padding:8px 12px;font-size:13px;box-shadow:0 2px 8px #0003}.map-preview-tooltip:before{border-top-color:#000000d9!important}.map-preview-tooltip strong{font-weight:600;display:block;margin-bottom:4px}.map-preview-legend{position:absolute;bottom:20px;right:20px;background:#fff;padding:12px;border-radius:8px;box-shadow:0 2px 8px #00000026;z-index:1000;min-width:180px}.legend-title{font-weight:600;font-size:13px;margin-bottom:8px;color:#2c3e50}.legend-items{display:flex;flex-direction:column;gap:6px}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#555}.legend-color{width:20px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.1)}.legend-hint{margin-top:10px;padding-top:8px;border-top:1px solid #e0e0e0;font-size:11px;color:#888;font-style:italic}@media (max-width: 768px){.map-preview-legend{bottom:10px;right:10px;left:10px;min-width:auto;padding:10px}.legend-items{flex-direction:row;flex-wrap:wrap;gap:8px}.legend-item{flex:1 1 45%;min-width:120px}.legend-title{margin-bottom:6px}.legend-hint{width:100%;text-align:center}}.interactive-map-preview .leaflet-interactive{transition:fill-opacity .2s ease;cursor:pointer}.interactive-map-preview .leaflet-interactive:hover{fill-opacity:.9!important}
