.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
thead tr{border-bottom:1px solid var(--border)}
th{padding:10px 16px;text-align:left;font-size:.6875rem;font-weight:500;color:var(--text-tertiary);
text-transform:uppercase;letter-spacing:.08em;background:var(--surface-raised)}
td{padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:.875rem}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--accent-light)}
.name-cell{display:flex;align-items:center;gap:10px}
.file-icon{width:26px;height:26px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.file-icon svg{opacity:.35}
.file-icon.is-folder svg{opacity:.6;color:var(--accent)}
a.folder,a.file{color:var(--text-primary);text-decoration:none;transition:color .15s}
a.folder:hover,a.file:hover{color:var(--accent)}
.size,.date{color:var(--text-tertiary);font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.hash{font-family:'DM Mono',monospace;font-size:.65rem;color:var(--text-tertiary);margin:2px 0;word-break:break-all;line-height:1.5}
.hash-label{font-weight:500;color:var(--text-secondary);margin-right:4px}
.actions{display:flex;gap:6px;align-items:center}
.empty{text-align:center;padding:80px 24px;color:var(--text-tertiary)}
.empty-icon{margin-bottom:16px;opacity:.25}
.empty p{font-size:.875rem}
.lock-badge{display:inline-flex;align-items:center;gap:3px;font-size:.65rem;color:var(--warning);
background:var(--warning-light);border:1px solid rgba(180,83,9,.18);border-radius:4px;padding:2px 5px;margin-left:6px}
