/* Main Map Container */
#cp-map-wrapper {
    overflow: hidden; 
    background: #eee;
    border-radius: 0; 
    position: relative;
}

/* --- Slide-Out Sidebar --- */
#cp-map-sidebar {
    position: absolute;
    top: 0; bottom: 0; right: 0; /* Full Height */
    width: 400px; 
    max-width: 90%;
    
    background: #fff;
    z-index: 99;
    
    /* Transition Setup */
    transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    
    /* Default: Closed (Off Screen) */
    transform: translateX(100%); 
    
    display: flex;
    flex-direction: column;
    box-shadow: -5px 0 20px rgba(0,0,0,0.1);
}

/* State: Open */
#cp-map-sidebar.is-open {
    transform: translateX(0);
}

/* State: Minimized (Strip View) */
/* Slides right, leaving only 60px visible */
#cp-map-sidebar.is-minimized {
    transform: translateX(calc(100% - 60px));
}

/* Content Area */
#cp-sidebar-content {
    flex: 1;
    overflow-y: auto;
    padding: 0; 
    transition: opacity 0.2s;
}

/* Hide content when minimized so it doesn't look weird in the strip */
#cp-map-sidebar.is-minimized #cp-sidebar-content {
    opacity: 0;
    pointer-events: none;
}

/* Ensure the injected card fits perfectly */
#cp-sidebar-content .event-card {
    box-shadow: none;
    border-radius: 0;
    max-width: 100%;
    height: 100%;
}

/* --- Control Buttons Strip --- */
.cp-sidebar-controls {
    position: absolute;
    top: 15px;
    left: 12px; /* Fixed strip area on the left edge of panel */
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 100;
}

/* Shared Button Styles */
#cp-map-close,
#cp-map-toggle {
    background: rgba(255, 255, 255, 0.95);
    color: #333;
    border: 1px solid #e0e0e0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 24px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    box-shadow: 0 2px 5px rgba(0,0,0,0.08);
}

#cp-map-close:hover,
#cp-map-toggle:hover {
    background: #fff;
    transform: scale(1.1);
    box-shadow: 0 4px 8px rgba(0,0,0,0.12);
}

/* Toggle Icon Animation */
#cp-map-toggle svg {
    transition: transform 0.3s;
}

/* Rotate arrow 180deg when minimized */
#cp-map-sidebar.is-minimized #cp-map-toggle svg {
    transform: rotate(180deg);
}

/* --- InfoWindow (Hover Card) --- */
.cp-map-hover {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 4px;
}
.hover-logo { width: 34px; height: auto; }
.hover-info { display: flex; flex-direction: column; }
.hover-date { font-size: 10px; font-weight: 700; color: #888; text-transform: uppercase; margin-bottom: 2px; }
.hover-title { margin: 0; font-size: 13px; font-weight: 700; color: #222; line-height: 1.3; }

/* Google Maps Overrides */
.gm-style-iw { padding: 0 !important; overflow: hidden !important; border-radius: 8px !important; box-shadow: 0 4px 15px rgba(0,0,0,0.15) !important; }
.gm-style-iw-d { overflow: hidden !important; padding: 0 !important; }
.gm-style-iw button { display: none !important; } /* Hide default close btn */