.page-header {
        background: linear-gradient(135deg, rgba(138, 100, 179, 0.1), rgba(163, 130, 199, 0.2));
        border-radius: 20px;
        padding: 40px 20px;
        text-align: center;
        margin-bottom: 40px;
        border: 1px solid rgba(138, 100, 179, 0.1);
    }
    
    .filter-card {
        background: #FDFBFF;
        border-radius: 16px;
        border: 1px solid rgba(138, 100, 179, 0.15);
        position: sticky;
        top: 100px;
        z-index: 10;
    }
    
    .filter-title {
        color: #8A64B3;
        font-weight: 700;
        border-bottom: 2px solid rgba(138, 100, 179, 0.1);
        padding-bottom: 15px;
        margin-bottom: 15px;
    }
    
    .form-check-input:checked {
        background-color: #8A64B3;
        border-color: #8A64B3;
    }
    
    .price-input {
        border-radius: 10px;
        border: 1px solid rgba(138, 100, 179, 0.2);
        padding: 8px 12px;
        width: 100%;
    }
    .price-input:focus {
        outline: none;
        border-color: #8A64B3;
        box-shadow: 0 0 0 0.2rem rgba(138, 100, 179, 0.25);
    }
    
    .badge-category { background-color: rgba(138, 100, 179, 0.15); color: #8A64B3; font-weight: 600; }
    .badge-online { background-color: rgba(25, 135, 84, 0.15); color: #198754; font-weight: 600; }
    .badge-classroom { background-color: rgba(13, 202, 240, 0.15); color: #0dcaf0; font-weight: 600; }
    .badge-free { background-color: rgba(220, 53, 69, 0.15); color: #dc3545; font-weight: 600; }
    
    .course-card {
        border-radius: 16px;
        border: 1px solid rgba(138, 100, 179, 0.12) !important;
        transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        background: #FDFBFF;
        display: flex;
        flex-direction: column;
        height: 100%;
        overflow: hidden;
        position: relative;
        z-index: 1;
    }
    .course-card:hover {
        transform: translateY(-10px);
        box-shadow: 0 15px 30px rgba(138, 100, 179, 0.2) !important;
        z-index: 2;
    }
    .img-wrapper {
        overflow: hidden;
        border-top-left-radius: 16px;
        border-top-right-radius: 16px;
        aspect-ratio: 1 / 1;
        background: #f8f9fa;
    }
    .course-card img {
        object-fit: cover;
        width: 100%;
        height: 100%;
        display: block;
        transition: transform 0.5s ease;
    }
    .course-card:hover img {
        transform: scale(1.08);
    }
    .card-title-clamp {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
        min-height: 2.8em;
    }

    .custom-select-wrapper {
        position: relative;
        min-width: 180px;
    }
    .custom-select-btn {
        background-color: #FDFBFF;
        border: 0;
        border-radius: 50rem;
        padding: 10px 20px;
        color: #4A4A4A;
        font-weight: 500;
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        box-shadow: 0 .125rem .25rem rgba(0,0,0,.075);
        transition: all 0.3s ease;
    }
    .custom-select-btn:focus, .custom-select-btn[aria-expanded="true"] {
        box-shadow: 0 0 0 0.2rem rgba(138, 100, 179, 0.25);
        outline: none;
    }
    .custom-select-btn::after {
        content: '\f078';
        font-family: 'Font Awesome 6 Free';
        font-weight: 900;
        font-size: 0.8rem;
        color: #8A64B3;
        margin-left: 10px;
        transition: transform 0.3s ease;
    }
    .custom-select-btn[aria-expanded="true"]::after {
        transform: rotate(180deg);
    }
    .custom-dropdown-menu {
        border: 1px solid rgba(138, 100, 179, 0.1);
        border-radius: 16px;
        padding: 8px;
        box-shadow: 0 10px 30px rgba(138, 100, 179, 0.15);
        animation: dropFadeIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }
    .custom-dropdown-menu .dropdown-item {
        border-radius: 10px;
        padding: 8px 15px;
        color: #4A4A4A;
        font-weight: 500;
        transition: all 0.2s ease;
        margin-bottom: 2px;
    }
    .custom-dropdown-menu .dropdown-item:last-child {
        margin-bottom: 0;
    }
    .custom-dropdown-menu .dropdown-item:hover, .custom-dropdown-menu .dropdown-item:focus {
        background-color: rgba(138, 100, 179, 0.08);
        color: #8A64B3;
    }
    .custom-dropdown-menu .dropdown-item.active {
        background-color: #8A64B3;
        color: white;
    }
    @keyframes dropFadeIn {
        from { opacity: 0; transform: translateY(-10px); }
        to { opacity: 1; transform: translateY(0); }
    }

    /* Skeleton Loading CSS */
    @keyframes shimmer {
        0% { background-position: -1000px 0; }
        100% { background-position: 1000px 0; }
    }
    .skeleton-box {
        background: #f6f7f8;
        background-image: linear-gradient(90deg, #f6f7f8 0px, #edeef1 160px, #f6f7f8 320px);
        background-size: 1000px 100%;
        animation: shimmer 2s infinite linear forwards;
    }
    .skeleton-card {
        border-radius: 16px;
        border: 1px solid rgba(138, 100, 179, 0.12);
        background: #FDFBFF;
        height: 100%;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
    .skel-img { height: 0; padding-bottom: 75%; width: 100%; } 
    .skel-badge { height: 22px; width: 70px; border-radius: 50rem; margin-bottom: 12px; }
    .skel-title { height: 20px; width: 90%; margin-bottom: 8px; border-radius: 4px; }
    .skel-title-short { height: 20px; width: 60%; margin-bottom: 15px; border-radius: 4px; }
    .skel-price-old { height: 14px; width: 30%; margin-bottom: 5px; border-radius: 4px; }
    .skel-price-new { height: 24px; width: 50%; border-radius: 4px; }
    .skel-btn { height: 38px; width: 100%; border-radius: 50rem; margin-top: 15px; }

    @media (max-width: 991.98px) {
        .filter-card {
            position: relative;
            top: 0;
            margin-bottom: 20px;
            z-index: 10;
        }
    }

    @media (max-width: 575.98px) {
        .course-card .card-body { padding: 0.75rem; }
        .course-card .card-title { font-size: 0.9rem; line-height: 1.4; margin-bottom: 0.5rem; }
        .badge { font-size: 0.65rem; padding: 0.35em 0.5em; }
        .price-old { font-size: 0.7rem !important; }
        .price-new { font-size: 0.95rem !important; }
        .course-card .btn { font-size: 0.8rem; padding: 0.4rem 0.5rem; }
        
        .skel-badge { height: 18px; width: 50px; }
        .skel-title { height: 16px; }
        .skel-title-short { height: 16px; }
        .skel-btn { height: 32px; }
    }
