/* Effet Soft Primary */
    .bg-primary-soft { 
        background-color: rgba(172, 13, 13, 0.1); 
        color: var(--primary-color); 
    }
    
    .bg-primary { 
        background-color: var(--primary-color) !important; 
    }
    .text-primary { 
        color: var(--primary-color) !important; 
    }

    /* Hover sur les chaînes */
    .channel-item:hover .rounded-circle {
        transform: translateY(-5px);
        border-color: var(--primary-color) !important;
        box-shadow: var(--shadow-app);
    }

    /* Timeline & Accordéon */
    .v-line {
        position: absolute;
        right: -1px;
        top: 25px;
        bottom: -15px;
        width: 2px;
        background: var(--border-color);
        z-index: 1;
    }
    .is-live .v-line { 
        background: var(--primary-color); 
    }
    
    .accordion-button:not(.collapsed) { 
        background-color: rgba(172, 13, 13, 0.05); 
        color: var(--primary-color); 
        font-family: var(--font-main);
    }
    
    .accordion-button {
        font-family: var(--font-main);
        border-radius: var(--radius-card) !important;
    }

    /* Style des items en direct */
    .bg-light-primary { 
        background-color: rgba(172, 13, 13, 0.03); 
        border-left: 4px solid var(--primary-color); 
    }
    
    .program-item {
        transition: var(--transition);
    }
    
    .program-item:hover { 
        background-color: var(--bg-light); 
    }
    
    .cursor-pointer:hover {
        color: var(--primary-color) !important;
    }

    /* Animation du badge "EN DIRECT" */
    .pulse-tiny {
        font-size: 8px;
        padding: 3px 6px;
        animation: pulse-red 2s infinite;
        background-color: var(--primary-color) !important;
        border-radius: var(--radius-btn);
    }

    @keyframes pulse-red {
        0% { opacity: 1; box-shadow: 0 0 0 0 rgba(172, 13, 13, 0.4); }
        70% { opacity: 0.8; box-shadow: 0 0 0 5px rgba(172, 13, 13, 0); }
        100% { opacity: 1; box-shadow: 0 0 0 0 rgba(172, 13, 13, 0); }
    }

    .card {
        border-radius: var(--radius-card);
        border: 1px solid var(--border-color);
    }

    /* Container de défilement des chaînes */
    .channel-container-wrapper {
        position: relative;
        width: 100vw;
        left: 50%;
        right: 50%;
        margin-left: -50vw;
        margin-right: -50vw;
        background-color: var(--white);
        border-bottom: 1px solid var(--border-color);
        overflow: hidden;
    }

    .channel-container-wrapper::before,
    .channel-container-wrapper::after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        width: 100px;
        z-index: 2;
        pointer-events: none;
    }
    .channel-container-wrapper::before {
        left: 0;
        background: linear-gradient(to right, var(--white), transparent);
    }
    .channel-container-wrapper::after {
        right: 0;
        background: linear-gradient(to left, var(--white), transparent);
    }

    .channel-scroll-inner {
        display: flex;
        overflow-x: auto;
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        padding: 20px calc((100vw - 1100px) / 2); 
        gap: 25px;
    }

    @media (max-width: 992px) {
        .channel-scroll-inner {
            padding: 20px 20px;
        }
    }

    .channel-item {
        scroll-snap-align: center;
        flex: 0 0 auto;
        transition: var(--transition);
    }

    .hide-scrollbar {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
    .hide-scrollbar::-webkit-scrollbar {
        display: none;
    }