/* 主畫面 App 模式的附件檢視層(public/file-viewer.js) */
.file-viewer { position:fixed; inset:0; z-index:1000; display:flex; flex-direction:column; background:#25282A; color:#fff; }
.file-viewer[hidden] { display:none; }
html.file-viewer-open, html.file-viewer-open body { overflow:hidden; }
.file-viewer-bar {
  display:flex; align-items:center; gap:8px; flex:none;
  padding:calc(8px + env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 8px max(10px, env(safe-area-inset-left));
  background:#25282A; border-bottom:1px solid rgba(181,227,216,.25);
}
.file-viewer-title { flex:1; min-width:0; font-size:14px; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.file-viewer-back, .file-viewer-share {
  flex:none; min-height:44px; padding:0 14px; border:0; border-radius:10px;
  font:inherit; font-size:15px; font-weight:700; cursor:pointer;
}
.file-viewer-back { background:#B5E3D8; color:#173f36; }
.file-viewer-share { background:#fff; color:#25282A; }
.file-viewer-share:disabled { opacity:.45; cursor:default; }
.file-viewer-back:focus-visible, .file-viewer-share:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.file-viewer-body {
  flex:1; min-height:0; overflow:auto; -webkit-overflow-scrolling:touch;
  display:flex; align-items:flex-start; justify-content:center;
  padding:8px 8px calc(8px + env(safe-area-inset-bottom));
}
.file-viewer-image { display:block; max-width:100%; height:auto; margin:auto; background:#fff; }
.file-viewer-pages { display:grid; gap:8px; justify-items:center; width:100%; }
.file-viewer-page { display:block; max-width:100%; height:auto; background:#fff; }
.file-viewer-message { margin:auto; max-width:360px; padding:24px 16px; text-align:center; display:grid; gap:8px; }
.file-viewer-message p { margin:0; font-size:16px; white-space:pre-line; overflow-wrap:anywhere; }
.file-viewer-message small { color:#B5E3D8; font-size:13px; }
@media (max-width:380px) {
  .file-viewer-back, .file-viewer-share { padding:0 10px; font-size:14px; }
}
