.file-viewer { width: min(1100px, 100vw); max-width: 100vw; height: 94dvh; max-height: 100dvh; padding: 0; border: 1px solid var(--ui-line, #ddd); border-radius: var(--ui-radius, 12px); color: var(--ui-ink, #17221d); background: var(--ui-paper, #fff); }
.file-viewer[open] { display: flex; flex-direction: column; }
.file-viewer::backdrop { background: #101a14b3; }
.file-viewer header { display: flex; align-items: center; gap: 12px; padding: 12px; border-bottom: 1px solid var(--ui-line, #ddd); }
.file-viewer header strong { flex: 1; overflow: hidden; text-overflow: ellipsis; }
.file-viewer header button, .file-viewer header a { min-height: 44px; padding: 8px 12px; flex-shrink: 0; }
.file-viewer-status { margin: 0; padding: 8px 16px; font-size: .875rem; }
.file-viewer-status:empty { display: none; }
.file-viewer-content { flex: 1; min-height: 0; overflow: auto; }
.file-viewer-content img { display: block; width: 100%; max-width: none; height: auto; object-fit: contain; }
.file-viewer-content iframe { width: 100%; height: 100%; border: 0; background: #fff; }
@media(max-width: 600px) { .file-viewer { height: 100dvh; border-radius: 0; } .file-viewer header { flex-wrap: wrap; padding-top: max(8px, env(safe-area-inset-top)); gap: 6px; } .file-viewer header strong { min-width: 25%; font-size: .875rem; } }

.file-viewer [hidden] { display: none !important; }
