/* 文件浏览页专属样式。表格、复选框列、行内操作、sha 截断、批量栏、分页器。 */ .files-table th.col-sel { width: 2.4em; text-align: center; } .files-table td.col-sel { text-align: center; } .files-table th.col-name { min-width: 28%; } .files-table th.col-size { width: 9em; } .files-table th.col-src { width: 6em; } .files-table th.col-time { width: 11em; } .files-table th.col-pdf { width: 13em; } .files-table th.col-act { width: 9em; text-align: right; } .files-table td.col-act { text-align: right; white-space: nowrap; } .files-table td.col-name .fname { font-weight: 600; word-break: break-all; } .files-table td.col-name .sha { display: block; margin-top: 0.15em; color: var(--text-dim); } .files-table td.col-act .btn { padding: 0.3em 0.8em; font-size: 0.85em; margin-left: 0.3em; } .files-table tbody tr.sel { background: var(--primary-soft); } .files-table tbody tr.sel:hover td { background: var(--primary-soft); } /* 关联到已软删 PDF 任务的行:淡化背景提示 */ .files-table tbody tr.row-pdf-deleted td { background: var(--danger-soft); } .files-table tbody tr.row-pdf-deleted:hover td { background: var(--danger-soft); } .files-table input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; accent-color: var(--primary); } .sha-short { cursor: pointer; } .sha-short:hover { color: var(--primary); } /* PDF 任务列:角色徽标 + 状态徽标堆叠 */ .pdf-cell { display: flex; flex-direction: column; gap: 0.2em; font-size: 0.82em; } .pdf-cell .pdf-roles { display: flex; flex-wrap: wrap; gap: 0.3em; align-items: center; } .pdf-cell .role-tag { display: inline-block; padding: 0.05em 0.5em; border-radius: 8px; font-size: 0.78em; background: var(--surface-2); color: var(--text-dim); } .pdf-cell .role-tag.source { background: var(--warn-soft); color: var(--warn); } .pdf-cell .role-tag.output { background: var(--success-soft); color: var(--success); } .pdf-cell .del-mark { color: var(--danger); font-size: 0.78em; } .pdf-cell .pdf-act { display: flex; gap: 0.3em; flex-wrap: wrap; } .pdf-cell .pdf-act .btn { padding: 0.2em 0.6em; font-size: 0.8em; } .row-removed { opacity: 0; transition: opacity 0.25s; } .toolbar-spacer { flex: 1; } .page-size { display: inline-flex; align-items: center; gap: 0.4em; font-size: 0.88em; color: var(--text-dim); } .page-size select { padding: 0.25em 0.5em; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); color: var(--text); font-size: 0.88em; cursor: pointer; } .batchbar { display: flex; align-items: center; gap: 0.6em; flex-wrap: wrap; padding: 0.6em 0.9em; margin: 0 0 0.8em; background: var(--primary-soft); border: 1px solid var(--primary); border-radius: var(--radius); } .batchbar.hidden { display: none; } .batchbar-info { font-size: 0.9em; color: var(--text); } .batchbar-info b { color: var(--primary); } .batchbar .btn { padding: 0.35em 0.9em; font-size: 0.85em; } .pager { display: flex; align-items: center; gap: 0.4em; justify-content: center; margin: 1.5em 0 0; flex-wrap: wrap; } .pager.hidden { display: none; } .pager .btn { padding: 0.3em 0.8em; font-size: 0.85em; min-width: 2.4em; } .pager .btn.is-current { background: var(--primary); border-color: var(--primary); color: #fff; } .pager .btn[disabled] { opacity: 0.4; cursor: not-allowed; } .pager .pager-ellipsis { padding: 0 0.3em; color: var(--text-dim); } .pager .pager-info { font-size: 0.82em; color: var(--text-dim); margin-left: 0.6em; } @media (max-width: 640px) { .files-table th, .files-table td { padding: 0.5em 0.4em; } .files-table th.col-src, .files-table td.col-src { display: none; } .files-table th.col-time, .files-table td.col-time { font-size: 0.78em; } .files-table th.col-pdf, .files-table td.col-pdf { font-size: 0.78em; } .batchbar { font-size: 0.85em; } }