.carmen-map-container{border-radius:var(--carmen-radius-lg);background:var(--carmen-surface-primary);border:1px solid var(--carmen-neutral-300);width:100%;height:clamp(400px,50vh,600px);box-shadow:var(--carmen-shadow-md);position:relative;overflow:hidden}.carmen-map{border-radius:var(--carmen-radius-lg);width:100%;height:100%}.carmen-map-loading{background:var(--carmen-surface-primary);z-index:10;justify-content:center;align-items:center;gap:var(--carmen-space-4);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.carmen-map-error{min-height:400px;padding:var(--carmen-space-8);background:var(--carmen-surface-secondary);border-radius:var(--carmen-radius-lg);border:1px solid var(--carmen-neutral-300);justify-content:center;align-items:center;display:flex}.carmen-map-error p{color:var(--carmen-text-secondary);font-size:var(--carmen-text-lg);text-align:center}.carmen-map-marker{cursor:pointer;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.carmen-map-marker-inner{background:var(--carmen-primary);border:3px solid var(--carmen-neutral-0);border-radius:50% 50% 50% 0;width:32px;height:32px;transition:all .2s;position:relative;transform:rotate(-45deg);box-shadow:0 2px 8px #0000004d}.carmen-map-marker-inner:before{content:"";background:var(--carmen-neutral-0);border-radius:50%;width:12px;height:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.carmen-map-marker:hover .carmen-map-marker-inner{background:var(--carmen-primary-dark);transform:rotate(-45deg)scale(1.15);box-shadow:0 4px 12px #0006}.carmen-map-popup .mapboxgl-popup-content{background:var(--carmen-surface-primary);border:1px solid var(--carmen-neutral-300);border-radius:var(--carmen-radius-md);box-shadow:var(--carmen-shadow-lg);min-width:250px;padding:0}.carmen-map-popup .mapboxgl-popup-tip{border-top-color:var(--carmen-surface-primary)}.carmen-map-popup-content{padding:var(--carmen-space-4)}.carmen-map-popup-title{color:var(--carmen-text-primary);font-family:var(--carmen-font-primary);font-size:var(--carmen-text-lg);font-weight:var(--carmen-font-bold);margin:0 0 var(--carmen-space-2) 0;line-height:var(--carmen-line-height-tight)}.carmen-map-popup-date{color:var(--carmen-primary);font-size:var(--carmen-text-sm);font-weight:var(--carmen-font-semibold);margin:0 0 var(--carmen-space-1) 0}.carmen-map-popup-location{color:var(--carmen-text-secondary);font-size:var(--carmen-text-sm);align-items:center;gap:var(--carmen-space-1);margin:0;display:flex}.carmen-map-popup-location:before{content:"📍";font-size:var(--carmen-text-base)}.carmen-map-popup-history{color:var(--carmen-text-primary);font-size:var(--carmen-text-sm);margin:var(--carmen-space-2) 0 0 0;line-height:var(--carmen-line-height-relaxed)}.carmen-map-grouped-list{margin:var(--carmen-space-3) 0 0 0;padding:0;list-style:none}.carmen-map-grouped-item{padding:var(--carmen-space-2) 0;border-top:1px solid var(--carmen-neutral-200)}.carmen-map-grouped-item:first-child{border-top:none;padding-top:0}.carmen-map-grouped-item:last-child{padding-bottom:0}.carmen-map-grouped-item-header{align-items:center;gap:var(--carmen-space-2);display:flex}.carmen-map-grouped-dot{border:1px solid var(--carmen-neutral-0);border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:0 1px 2px #00000026}.carmen-map-grouped-name{color:var(--carmen-text-primary);font-size:var(--carmen-text-sm);font-weight:var(--carmen-font-semibold);line-height:var(--carmen-line-height-tight)}.carmen-map-grouped-history{margin:var(--carmen-space-1) 0 0 calc(10px + var(--carmen-space-2));color:var(--carmen-text-secondary);font-size:var(--carmen-text-xs);line-height:var(--carmen-line-height-relaxed)}.carmen-map-popup .mapboxgl-popup-close-button{color:var(--carmen-text-secondary);font-size:var(--carmen-text-xl);padding:var(--carmen-space-2);justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.carmen-map-popup .mapboxgl-popup-close-button:hover{color:var(--carmen-primary);background:var(--carmen-surface-secondary);border-radius:var(--carmen-radius-sm)}.mapboxgl-ctrl-attrib{opacity:.7;background:var(--carmen-surface-primary)!important;color:var(--carmen-text-secondary)!important;font-size:var(--carmen-text-xs)!important}.mapboxgl-ctrl-attrib a{color:var(--carmen-primary)!important}.mapboxgl-ctrl-group{background:var(--carmen-surface-primary)!important;border-radius:var(--carmen-radius-md)!important;box-shadow:var(--carmen-shadow-md)!important;border:1px solid var(--carmen-neutral-300)!important}.mapboxgl-ctrl-group button{background:var(--carmen-surface-primary)!important;color:var(--carmen-text-primary)!important;border:none!important;width:36px!important;height:36px!important}.mapboxgl-ctrl-group button:hover{background:var(--carmen-surface-secondary)!important}.mapboxgl-ctrl-group button+button{border-top:1px solid var(--carmen-neutral-300)!important}@media (max-width:768px){.carmen-map-container{border-radius:var(--carmen-radius-md);height:clamp(300px,40vh,400px)}.carmen-map-marker,.carmen-map-marker-inner{width:28px;height:28px}.carmen-map-marker-inner:before{width:10px;height:10px}.carmen-map-popup .mapboxgl-popup-content{min-width:220px}.carmen-map-popup-title{font-size:var(--carmen-text-base)}.carmen-map-popup-date,.carmen-map-popup-location{font-size:var(--carmen-text-xs)}}.carmen-map-marker:focus{outline:2px solid var(--carmen-primary);outline-offset:2px}.carmen-map-loading .carmen-loading-spinner{border-color:var(--carmen-neutral-300);border-top-color:var(--carmen-primary)}.carmen-map-legend{margin-top:var(--carmen-space-6);padding:var(--carmen-space-4);background:var(--carmen-surface-secondary);border-radius:var(--carmen-radius-md);border:1px solid var(--carmen-neutral-300)}.carmen-map-legend-title{font-family:var(--carmen-font-primary);font-size:var(--carmen-text-lg);font-weight:var(--carmen-font-bold);color:var(--carmen-text-primary);margin:0 0 var(--carmen-space-3) 0;line-height:var(--carmen-line-height-tight)}.carmen-map-legend-list{gap:var(--carmen-space-2);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:0;padding:0;list-style:none;display:grid}.carmen-map-legend-item{align-items:center;gap:var(--carmen-space-2);padding:var(--carmen-space-2);display:flex}.carmen-map-legend-marker{border:2px solid var(--carmen-neutral-0);border-radius:50%;flex-shrink:0;width:16px;height:16px;box-shadow:0 1px 3px #0003}.carmen-map-legend-label{color:var(--carmen-text-primary);font-size:var(--carmen-text-sm);font-weight:var(--carmen-font-semibold)}@media (max-width:768px){.carmen-map-legend{margin-top:var(--carmen-space-4);padding:var(--carmen-space-3)}.carmen-map-legend-list{grid-template-columns:1fr}.carmen-map-legend-title{font-size:var(--carmen-text-base)}}
