body.file-viewer-open{overflow:hidden}
.file-viewer[hidden]{display:none!important}
.file-viewer{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:12px;background:rgba(0,0,0,.85)}
.file-viewer-panel{width:min(1100px,100%);height:calc(100vh - 24px);height:min(900px,calc(100dvh - 24px));display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line,#777);border-radius:14px;background:var(--panel,#fff);color:var(--text,#222);box-shadow:0 20px 60px #0008}
.file-viewer-top,.file-viewer-bottom{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--panel,#fff)}
.file-viewer-top{border-bottom:1px solid var(--line,#ddd)}
.file-viewer-bottom{border-top:1px solid var(--line,#ddd);justify-content:space-between}
.file-viewer-title{flex:1;min-width:0;margin:0;font-size:15px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-viewer-counter{color:var(--muted,#555);font-size:13px;white-space:nowrap}
.file-viewer button{min-height:40px;padding:8px 12px;border:1px solid var(--line,#ddd);border-radius:9px;background:var(--soft,#f5f5f5);color:var(--text,#222);font:inherit;cursor:pointer}
.file-viewer button:disabled{opacity:.4;cursor:default}
.file-viewer button:focus-visible{outline:2px solid #FF0000;outline-offset:2px}
.file-viewer .file-viewer-close{border-color:#FF0000;background:#FF0000;color:#fff;font-weight:700}
.file-viewer-media{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:auto;background:#1e1e1e;color:#fff}
.file-viewer-media img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.file-viewer-media iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.file-viewer-loading{padding:20px;text-align:center}
.file-viewer-error{margin:0;padding:8px 14px;background:#fff0f0;color:#7f0000;font-size:13px}
.file-item{flex-wrap:wrap}.file-item>div{flex:1 1 100%}.file-item>img{width:100%;max-height:180px;object-fit:cover}.file-item>button{flex:1 1 120px}
.pdf-canvas-viewer{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;background:#666}
.pdf-canvas-toolbar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;padding:8px;background:var(--panel,#fff);color:var(--text,#222);border-bottom:1px solid var(--line,#ddd)}
.pdf-canvas-toolbar button{min-width:34px;min-height:34px;padding:5px 8px;font-weight:700}
.pdf-page-label{min-width:110px;text-align:center;font-size:13px;font-weight:700}
.pdf-zoom-label{min-width:85px;text-align:center;font-size:12px;color:var(--muted,#555)}
.pdf-canvas-stage{flex:1;min-height:0;overflow:auto;padding:16px;box-sizing:border-box;text-align:center;overscroll-behavior:contain}
.pdf-canvas-stage canvas{display:block;margin:0 auto;background:white;box-shadow:0 4px 24px #0007}
.pdf-canvas-error{max-width:520px;margin:25px auto;padding:16px;border-radius:10px;background:var(--panel,#fff);color:var(--text,#222);text-align:left}
@media(max-width:600px){.file-viewer{padding:0}.file-viewer-panel{width:100%;height:100vh;height:100dvh;border:0;border-radius:0}.file-viewer-top,.file-viewer-bottom{padding:8px;gap:6px}.file-viewer button{padding:7px 9px;font-size:13px}.file-viewer-title{font-size:13px}}
@media(max-width:600px){.pdf-canvas-toolbar{gap:4px;padding:5px}.pdf-page-label{min-width:95px}.pdf-zoom-label{min-width:60px}.pdf-canvas-stage{padding:9px}}
