    /* Info Panel Component */
/* Info Panel Component Styles */
@layer components.infopanel {
    .info-panel {
        inline-size: 25.3rem;
        background: light-dark(oklch(100% 0 0 / 0.98), oklch(13% 0.01 250 / 0.98));
        backdrop-filter: blur(0.625rem);
        -webkit-backdrop-filter: blur(0.625rem);
        border-inline-end: 0.0625rem solid var(--border-color);
        display: flex;
        flex-direction: column;
        overflow-y: auto;
        overflow-x: hidden;
        scrollbar-gutter: stable;
        box-shadow: var(--shadow-lg);
        position: relative;
        transition: margin-inline-start var(--transition-base);
        z-index: var(--z-overlay);
        margin-inline-start: 0;
        flex-shrink: 0;

        &.collapsed {
            margin-inline-start: -25rem;

            & .toggle-icon {
                transform: rotate(180deg);
            }
        }

        & .info-header {
            padding: var(--space-lg);
            background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-hover) 100%);
            color: white;
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: var(--space-2);

            & h2 {
                font-family: var(--font-display);
                font-size: var(--font-size-xl);
                font-weight: 700;
                margin-block-end: 0;
                color: white;
                letter-spacing: 0.01em;
            }

            & .date-display {
                font-size: var(--font-size-sm);
                opacity: 0.9;
                color: white;
            }
        }
        
        /* View Toggle Button */
        & .view-toggle-btn {
            position: static;
            margin-top: var(--space-2);
            align-self: center;
            display: flex;
            align-items: center;
            gap: var(--space-2);
            padding: var(--space-2) var(--space-3);
            background: rgba(255, 255, 255, 0.95);
            border: 2px solid rgba(255, 255, 255, 1);
            border-radius: var(--radius-full);
            color: var(--primary-color);
            font-size: var(--text-sm);
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s ease;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
            z-index: 10;
            
            &:hover {
                background: rgba(255, 255, 255, 1);
                transform: translateY(-1px);
                box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
            }
            
            & .toggle-text {
                white-space: nowrap;
            }
            
            & .toggle-arrow {
                transition: transform 0.2s ease;
                flex-shrink: 0;
            }
            
            &:hover .toggle-arrow {
                transform: translateX(3px);
            }
        }

        & .filter-section {
            padding: var(--space-lg);
            background: var(--light);
            border-block-end: 0.0625rem solid var(--border-color);

            & .search-input {
                inline-size: 90%;
                padding-block: 0.75rem;
                padding-inline: var(--space-md);
                border: 0.125rem solid var(--border-color);
                border-radius: var(--radius-md);
                font-size: var(--font-size-base);
                transition: all var(--transition-base);
                background: var(--bg-primary);
                margin-block-end: 1rem;

                &:focus {
                    outline: none;
                    border-color: var(--primary-color);
                    box-shadow: 0 0 0 0.1875rem rgba(99, 102, 241, 0.1);
                }
            }

            & .holiday-type-filters {
                display: flex;
                gap: 1rem;
                flex-wrap: wrap;
            }
        }

        & .stats-container {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: var(--space-md);
            padding: var(--space-lg);
            background: var(--bg-primary);
            border-block-end: 0.0625rem solid var(--border-color);

            & .stat-card {
                text-align: center;
                padding: var(--space-md);
                background: var(--light);
                border-radius: var(--radius-md);
                transition: transform var(--transition-base), box-shadow var(--transition-base);

                &:hover {
                    transform: translateY(-0.125rem);
                    box-shadow: var(--shadow-md);
                }

                & .stat-value {
                    font-family: var(--font-display);
                    font-size: var(--font-size-xl);
                    font-weight: 800;
                    color: var(--primary-color);
                    letter-spacing: 0.02em;
                }

                & .stat-label {
                    font-size: var(--font-size-xs);
                    color: var(--text-secondary);
                    text-transform: uppercase;
                    letter-spacing: 0.05em;
                    margin-block-start: var(--space-xs);
                }
            }
        }

        & .holiday-list {
            flex: 1;
            padding: var(--space-md);
            overflow-y: auto;

            & .holiday-card {
                background: var(--bg-primary);
                border: 0.0625rem solid var(--border-color);
                border-radius: var(--radius-md);
                padding: var(--space-md);
                margin-block-end: 0.75rem;
                cursor: pointer;
                transition: all var(--transition-base);
                position: relative;

                &:hover {
                    transform: translateX(0.25rem);
                    box-shadow: var(--shadow-md);
                    border-color: var(--primary-light);
                }
                
                & .hide-btn {
                    position: absolute;
                    inset-block-start: 0.5rem;
                    inset-inline-end: 0.5rem;
                    background: var(--bg-primary);
                    border: 1px solid var(--border-color);
                    border-radius: 50%;
                    inline-size: 2rem;
                    block-size: 2rem;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    cursor: pointer;
                    font-size: 1.2rem;
                    line-height: 1;
                    color: var(--text-secondary);
                    opacity: 0.5;
                    transition: opacity var(--transition-base), background-color var(--transition-base);
                    z-index: 1;
                    padding: 0.25rem;
                    
                    & svg {
                        inline-size: 100%;
                        block-size: 100%;
                    }
                    
                    &:hover {
                        background: var(--danger-color);
                        color: white;
                        border-color: var(--danger-color);
                    }
                }
                
                &:hover .hide-btn {
                    opacity: 1;
                }

                &.timeline-today {
                    border-inline-start: 0.25rem solid var(--danger-color);
                    background: linear-gradient(90deg, oklch(63% 0.24 27 / 0.1) 0%, var(--bg-primary) 100%);
                }

                &.timeline-soon {
                    border-inline-start: 0.25rem solid var(--warning-color);
                    background: linear-gradient(90deg, oklch(70% 0.20 75 / 0.1) 0%, var(--bg-primary) 100%);
                }

                &.timeline-week {
                    border-inline-start: 0.25rem solid #3b82f6;
                    background: linear-gradient(90deg, rgba(59, 130, 246, 0.1) 0%, var(--bg-primary) 100%);
                }

                & .holiday-header {
                    display: flex;
                    align-items: center;
                    gap: 0.75rem;
                    margin-block-end: var(--space-sm);

                    & .country-flag {
                        font-size: 1.5rem;
                    }

                    & .holiday-name {
                        font-weight: 600;
                        color: var(--text-primary, #333);
                        flex: 1;
                    }
                }

                & .holiday-details {
                    display: flex;
                    justify-content: space-between;
                    font-size: var(--font-size-sm);
                    color: var(--text-secondary, #666);
                    
                    & .country-name {
                        font-weight: 500;
                        color: var(--text-secondary, #666);
                    }
                    
                    & .holiday-date {
                        opacity: 0.8;
                        color: var(--text-secondary, #666);
                    }
                }
                
                & .holiday-types {
                    display: flex;
                    gap: var(--space-xs);
                    margin-block-start: var(--space-xs);
                    flex-wrap: wrap;
                    
                    & .type-badge {
                        display: inline-block;
                        padding: 0.125rem 0.375rem;
                        border-radius: var(--radius-sm);
                        font-size: 0.625rem;
                        font-weight: 500;
                        text-transform: uppercase;
                        letter-spacing: 0.03em;
                        
                        &.type-national {
                            background: light-dark(oklch(65% 0.20 27 / 0.15), oklch(65% 0.20 27 / 0.25));
                            color: light-dark(oklch(50% 0.22 27), oklch(75% 0.18 27));
                        }
                        
                        &.type-regional {
                            background: light-dark(oklch(62% 0.22 240 / 0.15), oklch(62% 0.22 240 / 0.25));
                            color: light-dark(oklch(48% 0.24 240), oklch(72% 0.20 240));
                        }
                        
                        &.type-cultural,
                        &.type-traditional {
                            background: light-dark(oklch(66% 0.20 275 / 0.15), oklch(66% 0.20 275 / 0.25));
                            color: light-dark(oklch(52% 0.22 275), oklch(76% 0.18 275));
                        }
                    }
                }
            }

            & .no-holidays {
                text-align: center;
                padding-block: var(--space-xl);
                padding-inline: var(--space-md);
                color: var(--text-secondary);
                font-style: italic;
            }
        }
    }

    /* Panel Toggle Button */
    .panel-toggle {
        position: absolute;
        inset-inline-start: 25rem;
        inset-block-start: 50%;
        transform: translateY(-50%);
        inline-size: 2.1875rem;
        block-size: 4.375rem;
        background: var(--bg-primary);
        border: 0.0625rem solid var(--border-color);
        border-inline-start: none;
        border-start-end-radius: var(--radius-md);
        border-end-end-radius: var(--radius-md);
        display: flex;
        align-items: center;
        justify-content: center;
        transition: inset-inline-start var(--transition-base);
        z-index: calc(var(--z-overlay) + 1);
        box-shadow: 0.125rem 0 0.5rem rgba(0, 0, 0, 0.1);

        &:hover {
            background: var(--light);
            transform: translateY(-50%) scale(1.05);
        }

        & .toggle-icon {
            font-size: 1.25rem;
            color: var(--primary-color);
            font-weight: bold;
            transition: transform var(--transition-base);
            display: block;
        }
    }
    
    /* Map Filter Container */
    .map-filter-container {
        margin-top: 0.75rem;
        padding-top: 0.75rem;
        border-top: 1px solid var(--border-color);
    }
 
    
    /* Mobile Responsive Styles */
    @media (max-width: 768px) {
        .info-panel {
            inline-size: 100%;
            position: fixed; /* Use fixed positioning */
            inset-block-end: 0;
            inset-inline: 0;
            block-size: 50vh; /* Fixed height for info panel */
            transform: translateY(calc(50vh - 4rem)); /* Adjusted for footer */
            border-inline-end: none;
            border-block-start: 1px solid var(--border-color);
            z-index: 20; /* Lower z-index to not cover the map */
            display: flex;
            flex-direction: column;
            overflow: hidden;
            /* Enable smooth touch scrolling */
            -webkit-overflow-scrolling: touch;
            /* Prevent accidental text selection during swipe */
            -webkit-user-select: none;
            user-select: none;
            /* Enable proper touch handling */
            touch-action: pan-y;
            
            &.expanded {
                transform: translateY(0);
            }
            
            &.collapsed {
                transform: translateY(calc(50vh - 4rem)); /* Adjusted for footer */
                margin-inline-start: 0;
            }
            
            & .info-header {
                padding: var(--space-md);
                cursor: pointer;
                flex-shrink: 0;
                position: relative;
                flex-direction: column;
                gap: var(--space-2);
                /* Enable text selection in header */
                -webkit-user-select: text;
                user-select: text;
                /* Ensure header is interactive */
                pointer-events: auto;
                /* Add touch-specific handling */
                touch-action: manipulation;
                
                & .view-toggle-btn {
                    position: static;
                    transform: none;
                    margin: 0;
                    width: fit-content;
                    align-self: center;
                    font-size: var(--text-xs);
                    padding: var(--space-1) var(--space-2);
                }
                
                & h2 {
                    font-size: var(--font-size-lg);
                }
                
                /* Add drag handle indicator */
                &::before {
                    content: '';
                    position: absolute;
                    inset-block-start: 0.5rem;
                    inset-inline: 50%;
                    transform: translateX(-50%);
                    inline-size: 3rem;
                    block-size: 0.25rem;
                    background: var(--border-strong);
                    border-radius: var(--radius-full);
                    /* Ensure drag handle is touchable */
                    pointer-events: none;
                    z-index: 1;
                }
            }
            
            /* Single scrolling container for all content */
            & .filter-section,
            & .stats-container,
            & .holiday-list {
                flex-shrink: 0;
            }
            
            & .filter-section {
                padding: var(--space-md);
                border-block-end: none;
            }
            
            & .stats-container {
                padding: var(--space-md);
                padding-block-start: 0;
                grid-template-columns: repeat(3, 1fr);
                gap: var(--space-sm);
                
                & .stat-card {
                    padding: var(--space-sm);
                    
                    & .stat-value {
                        font-size: var(--font-size-lg);
                    }
                    
                    & .stat-label {
                        font-size: 0.625rem;
                    }
                }
            }
            
            & .holiday-list {
                flex: 1;
                padding: var(--space-sm);
                padding-block-start: 0;
                overflow-y: visible;
                min-block-size: auto;
            }
            
            /* Override desktop scrolling - make entire panel scroll as one */
            overflow-y: auto;
            overflow-x: hidden;
            -webkit-overflow-scrolling: touch;
            /* Prevent scroll momentum from interfering with drag */
            scroll-behavior: smooth;
            /* Ensure the panel is above map but below modals */
            isolation: isolate;
        }
        
        .panel-toggle {
            display: none;
        }
    }
    
    @media (max-width: 480px) {
        .info-panel {
            & .stats-container {
                grid-template-columns: 1fr;
                
                & .stat-card {
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    
                    & .stat-value {
                        font-size: var(--font-size-base);
                    }
                }
            }
        }
    }
}
    