This commit is contained in:
Ludwig Lehnert
2026-10-03 13:58:22 +00:00
parent 3075d951ba
commit 98b08f6e57
431 changed files with 210848 additions and 60 deletions
+87
View File
@@ -160,3 +160,90 @@ progress { width: 100%; }
.access-level-caption { font-size: .72rem; }
}
.content:focus { outline: none; }
#document-worker-progress { width: 100%; height: 1rem; accent-color: #555; }
.document-worker-table { max-height: 28rem; overflow: auto; }
.document-worker-table table { min-width: 720px; }
.document-worker-table .path { min-width: 230px; }
.document-worker-table thead { position: sticky; top: 0; background: #fff; }
/* Document browsing shares the admin UI's typography and controls. */
.portal-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 2rem; border-bottom: 1px solid #aaa; background: #eee; }
.portal-brand { font-weight: bold; color: #111; text-decoration: none; }
.portal-header > div { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.portal-header #session-user { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-main { max-width: 1600px; margin: auto; padding: 1.5rem 2rem 3rem; }
.portal-search { display: grid; grid-template-columns: minmax(0,1fr) 190px auto; gap: .6rem; margin-bottom: 1.5rem; }
.portal-search input { padding: .65rem; }
.portal-workspace { display: grid; grid-template-columns: 220px minmax(0,1fr); align-items: start; gap: 1.5rem; }
.portal-filters { display: grid; gap: 1rem; padding: 1rem; border: 1px solid #aaa; }
.portal-filters h2 { margin: 0; }
.portal-results { min-width: 0; }
.portal-results-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.portal-results-head p { margin: 0; }
.portal-view-options { display: flex; gap: .3rem; }
.portal-view-options button[aria-pressed="true"] { background: #ddd; border-color: #111; font-weight: bold; }
.document-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 1rem; }
.document-card { min-width: 0; border: 1px solid #aaa; background: #fff; overflow: hidden; }
.document-open { display: block; width: 100%; padding: 0; border: 0; background: #fff; text-align: left; white-space: normal; }
.document-thumbnail { display: flex; height: 210px; align-items: center; justify-content: center; background: #f5f5f5; border-bottom: 1px solid #ccc; overflow: hidden; }
.document-thumbnail img { width: 100%; height: 100%; object-fit: contain; }
.document-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; color: #666; }
.document-placeholder .action-icon { width: 48px; height: 48px; stroke-width: 1; }
.document-description { padding: .8rem; }
.document-description h2 { font-size: 1rem; margin: 0 0 .3rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-path { font-size: .8rem; color: #666; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-excerpt { height: 3.6em; overflow: hidden; font-size: .85rem; margin: .6rem 0 0; overflow-wrap: anywhere; }
mark { background: #fff0a0; color: #111; }
.document-card footer { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .6rem .8rem; border-top: 1px solid #ccc; }
.document-card footer > span { min-width: 0; font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-card footer small { display: block; color: #666; }
.document-list { grid-template-columns: 1fr; }
.document-list .document-card { display: flex; align-items: center; }
.document-list .document-open { display: flex; align-items: center; min-width: 0; flex: 1; }
.document-list .document-thumbnail { width: 80px; height: 100px; flex-shrink: 0; border: 0; border-right: 1px solid #ccc; }
.document-list .document-description { min-width: 0; }
.document-list footer { flex-shrink: 0; border: 0; }
.document-list .document-excerpt { height: 1.4em; }
.portal-empty { grid-column: 1/-1; padding: 2rem; border: 1px solid #aaa; text-align: center; color: #666; }
.portal-empty h2 { color: #111; }
.portal-pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.5rem; }
.document-dialog { width: min(1150px,calc(100vw - 2rem)); height: min(850px,calc(100dvh - 2rem)); padding: 0; border: 1px solid #aaa; color: #111; background: #fff; }
.document-dialog:has(.document-placeholder) { height: fit-content; }
.document-dialog:has(.document-placeholder) .document-detail { height: auto; }
.document-dialog::backdrop { background: #0006; }
.document-dialog-head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding: 1rem; border-bottom: 1px solid #aaa; }
.document-dialog-head > div:first-child { min-width: 0; }
.document-dialog-head h2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-bottom: .3rem; }
.document-dialog-head p { font-size: .85rem; overflow-wrap: anywhere; margin-bottom: 0; }
.document-detail { height: calc(100% - 95px); min-height: 0; }
.document-preview { padding: 1rem; overflow: auto; background: #f5f5f5; }
.document-preview img { display: block; width: 100%; height: auto; }
.document-dialog.pdf-dialog { width: 100vw; height: 100dvh; max-width: 100vw; max-height: 100dvh; margin: 0; border: 0; }
.document-dialog.pdf-dialog[open] { display: flex; flex-direction: column; }
.pdf-dialog .document-dialog-head { flex-shrink: 0; padding: .6rem 1rem; }
.pdf-dialog .document-detail { flex: 1; height: auto; overflow: hidden; }
.pdf-dialog .document-preview { height: 100%; padding: 0; overflow: hidden; }
#document-pdf-viewer { display: block; width: 100%; height: 100%; border: 0; }
@media (max-width: 950px) {
.portal-workspace { grid-template-columns: 1fr; gap: 1rem; }
.portal-filters { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .6rem; }
.portal-filters h2 { display: none; }
.portal-filters button { grid-column: 1/-1; }
}
@media (max-width: 600px) {
.portal-header, .portal-main { padding: 1rem; }
.portal-header { align-items: start; }
.portal-header > div { justify-content: flex-end; flex-wrap: wrap; gap: .5rem; }
.portal-header #session-user { max-width: 150px; }
.portal-search { grid-template-columns: minmax(0,1fr) auto; }
.portal-query { grid-column: 1/-1; }
.portal-filters { grid-template-columns: 1fr; }
.document-grid { grid-template-columns: 1fr; }
.document-thumbnail { height: 240px; }
.document-list .document-card { flex-wrap: wrap; }
.document-list footer { width: 100%; border-top: 1px solid #ccc; }
.document-detail { display: block; height: auto; }
.document-dialog { overflow: auto; }
.document-dialog-head { gap: .5rem; }
.document-dialog-head .row-actions { flex-wrap: nowrap; }
}