.filename a:hover color: #0f766e; text-decoration: underline;
.grid-card background: #fefefe; border: 1px solid #e2edec; border-radius: 20px; padding: 1.2rem 1rem; transition: all 0.2s ease; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02); text-align: center;
// Build grid cards function buildGrid() const gridContainer = document.getElementById('grid-view'); if (!gridContainer) return; gridContainer.innerHTML = ''; fileItems.forEach(item => const icon, display, link = getIconAndLink(item); const card = document.createElement('div'); card.className = 'grid-card'; const iconDiv = document.createElement('div'); iconDiv.className = 'grid-icon'; iconDiv.textContent = icon; const nameDiv = document.createElement('div'); nameDiv.className = 'grid-filename'; const anchor = document.createElement('a'); anchor.href = link; anchor.textContent = display; nameDiv.appendChild(anchor); const metaDiv = document.createElement('div'); metaDiv.className = 'grid-meta'; if (item.isDir && !item.isParent) metaDiv.textContent = `📁 directory • modified $formatDate(item.lastModified)`; else if (item.isParent) metaDiv.textContent = `⬆️ up to parent folder • $formatDate(item.lastModified)`; else metaDiv.textContent = `📘 EPUB • $item.size • $formatDate(item.lastModified)`; card.appendChild(iconDiv); card.appendChild(nameDiv); card.appendChild(metaDiv); gridContainer.appendChild(card); );