.tr { transition: all 0.2s ease; cursor: pointer; display: flex; align-items: stretch; width: 100%; min-width: fit-content; &:hover { // hover 作用到每个 td,避免 odd 行背景覆盖 .td { background: rgba(66, 133, 244, 0.08); } .odd { background: rgba(66, 133, 244, 0.08); } } } .th { height: 48px; background: var(--bg-log-info-card); top: 0; font-size: 0.8em; font-weight: 600; user-select: none; text-transform: uppercase; letter-spacing: 0.5px; color: var(--color-text-secondary); border-bottom: 2px solid var(--color-separator); position: sticky; z-index: 20; padding: 0 8px; white-space: nowrap; overflow: hidden; flex-shrink: 0; // Ensure fixed width is respected &:hover { color: var(--color-text-highlight); } } .headerText { overflow: hidden; text-overflow: ellipsis; } .cellText { overflow: hidden; text-overflow: ellipsis; width: 100%; } .sortIconContainer { margin-left: 4px; flex-shrink: 0; display: flex; align-items: center; } .rotate180 { transform: rotate(180deg); } .btnSection { button { margin-right: 15px; } } .break { word-wrap: break-word; word-break: break-all; align-items: center; text-align: left; } .td { padding: 0 8px; font-size: 0.875em; cursor: pointer; vertical-align: middle; white-space: nowrap; border-bottom: 1px solid var(--color-separator); transition: color 0.15s ease; box-sizing: border-box; flex-shrink: 0; // Ensure fixed width is respected &:hover { color: var(--color-text-highlight); } font-family: var(--font-normal); } .overlay { background: #444; } .modal { background-color: var(--bg-modal); } .table { border-collapse: separate; border-spacing: 0; width: 100%; background: transparent; @media (max-width: 768px) { display: none; } } .tableWrapper { margin-top: 0; border-radius: 12px; overflow: hidden; background: transparent; box-shadow: none; @media (max-width: 768px) { background: transparent; box-shadow: none; } } .theadWrapper { width: 100%; overflow: hidden; background: var(--bg-log-info-card); border-top-left-radius: 12px; border-top-right-radius: 12px; } .cardsView { display: none; @media (max-width: 768px) { display: block; padding: 0 4px; } } .mobileSortToolbar { display: flex; align-items: center; gap: 12px; padding: 0; margin-bottom: 12px; } .sortSelectWrapper { display: flex; align-items: center; gap: 10px; flex: 1; background: var(--color-bg-card); padding: 8px 12px; border-radius: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); color: var(--color-focus-blue); position: relative; border: 1px solid var(--color-bg-card-border, rgba(0, 0, 0, 0.05)); select { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 2; } .selectedValue { flex: 1; display: flex; align-items: center; gap: 8px; font-size: 0.95rem; font-weight: 600; color: var(--color-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } } .selectArrow { opacity: 0.5; color: var(--color-text-secondary); flex-shrink: 0; } .sortDirBtn { background: var(--color-bg-card); border: 1px solid var(--color-bg-card-border, rgba(0, 0, 0, 0.05)); color: var(--color-focus-blue); display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 12px; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06); transition: all 0.2s ease; &:active { transform: scale(0.95); background: var(--color-bg-secondary); } } .table thead tr:first-child th:first-child { border-top-left-radius: 12px; } .table thead tr:first-child th:last-child { border-top-right-radius: 12px; } .table tbody tr:last-child td:first-child { border-bottom-left-radius: 12px; } .table tbody tr:last-child td:last-child { border-bottom-right-radius: 12px; } .td.odd { background: var(--color-row-odd); } /* download upload td cells */ .center { min-width: 7em; text-align: center; } .sortIconContainer { display: inline-flex; align-items: center; justify-content: center; margin-left: 4px; width: 16px; height: 16px; opacity: 0.7; } .rotate180 { transform: rotate(180deg); }