.file-name-ellipsis { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-block; vertical-align: bottom; } @media (min-width: 992px) { .file-name-ellipsis { max-width: 180px; } } .file-action-btn { min-width: 32px; min-height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 5px; opacity: 0; pointer-events: none; transition: opacity 0.15s; } .card:hover > .card-footer .file-action-btn { opacity: 1; pointer-events: auto; } .card-footer.bg-white.border-0.d-flex.justify-content-center.gap-2 { min-height: 40px; } .card.file-card { cursor: pointer; } .card.file-card .file-action-btn { cursor: pointer; } #fileGrid.table-mode { padding: 0; } #fileGrid.table-mode table { width: 100%; border-collapse: collapse; background: #fff; } #fileGrid.table-mode th, #fileGrid.table-mode td { padding: 0.5rem 1rem; border-bottom: 1px solid #e9ecef; text-align: left; font-size: 0.95rem; vertical-align: middle; } #fileGrid.table-mode th { background: #f8f9fa; color: #6c757d; font-weight: 500; } #fileGrid.table-mode tr:hover td { background-color: rgba(22, 118, 123, 0.08); transition: background 0.15s; } #fileGrid.table-mode .file-icon { width: 40px; text-align: center; } #fileGrid.table-mode .file-actions { min-width: 90px; text-align: right; } #fileGrid.table-mode .file-action-btn { opacity: 1; pointer-events: auto; min-width: 28px; min-height: 28px; font-size: 0.875rem; margin-left: 0.25rem; } /* Disable text selection for file grid and table rows/cards */ #fileGrid, #fileGrid * { user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; } #fileGrid .card.file-card { cursor: pointer; } #fileGrid.table-mode tr { cursor: pointer; }