.module-layout {
    margin-top: 40px;
}

.module-highlight,
.module-card,
.module-sidebar-widget {
    min-width: 0;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.module-highlight {
    margin: 40px 0;
    padding: 30px;
    border-left: 5px solid var(--accent-teal);
}

.module-card {
    height: 100%;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.module-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.module-category {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 20px;
    background: var(--light-teal);
    color: var(--primary-blue);
    font-size: 0.8rem;
    font-weight: 700;
}

.module-date,
.module-list-date {
    color: #718096;
    font-size: 0.9rem;
}

.module-title {
    color: var(--primary-blue);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.module-description,
.module-sidebar-widget a,
.module-list-item span {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.module-download-link {
    display: inline-block;
    padding: 9px 16px;
    border-radius: 6px;
    background: var(--accent-teal);
    color: #fff;
    font-weight: 600;
    transition: background 0.3s ease;
}

.module-download-link:hover {
    background: #0b7c72;
    color: #fff;
}

.module-section-title {
    margin: 30px 0 20px;
    padding-left: 15px;
    border-left: 5px solid var(--accent-teal);
    color: var(--primary-blue);
    font-weight: 700;
}

.module-filter-buttons {
    gap: 10px;
}

.module-filter {
    padding: 8px 16px;
    border: 1px solid var(--accent-teal);
    border-radius: 20px;
    color: var(--accent-teal);
    font-weight: 600;
}

.module-filter:hover,
.module-filter.active {
    background: var(--accent-teal);
    color: #fff;
}

.module-sidebar-widget {
    margin-bottom: 24px;
    padding: 24px;
}

.module-sidebar-title {
    padding-bottom: 10px;
    border-bottom: 2px solid var(--accent-teal);
    color: var(--primary-blue);
    font-weight: 700;
}

.module-list-item {
    padding: 12px 0;
    border-bottom: 1px solid var(--light-gray);
}

.module-list-item:last-child {
    border-bottom: 0;
}

.module-empty-state {
    margin: 0 auto 40px;
    padding: 64px 24px;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    text-align: center;
}

@media (max-width: 1023px) {
    .module-layout {
        display: block;
    }

    .module-layout aside {
        margin-top: 32px;
    }
}

@media (max-width: 640px) {
    .module-highlight,
    .module-sidebar-widget {
        padding: 20px;
    }
}
