Something went wrong. Try again.
find unattached blobs for removal
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234/* Sifter page + report + grid + cleanup styles */
.sifter-header { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 24px 0 8px; border-bottom: 2px solid var(--card-border); margin-bottom: 16px;}
.sifter-header h1 { margin: 0;}
.sifter-header-actions { display: flex; align-items: center; gap: 12px;}
.did-label { font-size: 0.85rem; overflow-wrap: anywhere;}
.logout-button { background: var(--navbar-bg); color: var(--text); border: 2px solid var(--card-border); min-height: 44px; padding: 8px 16px;}
.sifter-actions { padding: 24px 0; display: flex; flex-direction: column; gap: 12px; align-items: flex-start;}
.scan-button { font-size: 1.1rem; padding: 14px 32px;}
.resume-button { background: var(--navbar-bg); color: var(--text); border: 2px solid var(--card-border);}
/* scan progress */.scan-progress-list { list-style: none; padding: 0;}
.scan-progress-list li { padding: 6px 0;}
/* report */.report-head { display: flex; align-items: center; justify-content: space-between; gap: 12px;}
.rescan-button { background: var(--navbar-bg); color: var(--text); border: 2px solid var(--card-border); min-height: 44px;}
.headline-numbers { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 20px 0;}
.headline-number { border: 2px solid var(--card-border); border-radius: 8px; padding: 16px; display: flex; flex-direction: column; gap: 4px; background: var(--navbar-bg);}
.headline-value { font-size: 1.8rem; font-weight: 800;}
.headline-label { color: var(--text-muted); font-size: 0.9rem;}
.clean-state { border: 2px solid var(--card-border); border-radius: 8px; padding: 20px; margin: 16px 0; background: var(--navbar-bg);}
/* blob grid styles moved to ScanReport.css (shared by Orphans/Blobs held tabs) */
/* report tables + misc (informational sections) */.report-table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 0.9rem;}
.report-table th,.report-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--card-border);}
.report-table th { color: var(--text-muted); font-weight: 700;}
.report-table.compact th,.report-table.compact td { padding: 5px 8px; font-size: 0.85rem;}
.verify-link { margin-top: 24px;}
/* cleanup log */.cleanup-controls { display: flex; gap: 8px; flex-wrap: wrap;}
.cleanup-controls button { min-height: 44px; padding: 8px 16px;}
.pause-button,.stop-button,.done-button { background: var(--navbar-bg); color: var(--text); border: 2px solid var(--card-border);}
.stop-button { border-color: var(--error-text); color: var(--error-text);}
.cleanup-summary { border: 2px solid var(--card-border); border-radius: 8px; padding: 16px; margin: 16px 0; background: var(--navbar-bg);}
.cleanup-log-list { list-style: none; padding: 0; max-height: 480px; overflow-y: auto;}
.cleanup-entry { display: flex; align-items: baseline; gap: 12px; padding: 6px 4px; border-bottom: 1px solid var(--card-border); font-size: 0.9rem;}
.cleanup-status { flex: 0 0 180px; font-weight: 700;}
.cleanup-deleted .cleanup-status { color: var(--button-bg);}
.cleanup-still-present .cleanup-status,.cleanup-undeletable .cleanup-status { color: var(--error-text);}
.cleanup-cid { font-size: 0.85rem;}
.cleanup-detail { font-size: 0.8rem; flex: 1;}
.login-callback-container { padding: 48px 16px; text-align: center;}
@media (max-width: 600px) { .sifter-header { flex-direction: column; align-items: flex-start; } .cleanup-entry { flex-wrap: wrap; }}