/* Content-first viewer, scoped so upload confirmation and other overlays stay unchanged. */
#fileModal.file-viewer-modal {
  --fv-paper:var(--paper,#fff);--fv-ink:var(--ink,#1e293b);--fv-muted:var(--muted,#64748b);
  --fv-line:var(--line,#dbe3e9);--fv-brand:var(--brand,#297565);--fv-on-brand:#fff;
  --fv-soft:color-mix(in srgb,var(--fv-ink) 5%,var(--fv-paper));
  display:flex;align-items:center!important;justify-content:center;padding:24px!important;
  background:rgba(8,16,25,.72)!important;backdrop-filter:none!important;touch-action:auto!important;
  color:var(--fv-ink)!important;animation:none!important;
}
html[data-theme="slate-mint"] #fileModal.file-viewer-modal {--fv-paper:var(--sm-panel,#f7fbfb);--fv-ink:var(--sm-ink,#193a40);--fv-muted:var(--sm-muted,#58767b);--fv-line:var(--sm-line,#bdd0d2);--fv-brand:var(--sm-mint,#16846d)}
html[data-theme="dark"] #fileModal.file-viewer-modal,html[data-theme="classic"] #fileModal.file-viewer-modal{--fv-on-brand:#10212b}
html[data-theme] #fileModal.file-viewer-modal[hidden],#fileModal.file-viewer-modal [hidden]{display:none!important}
#fileModal.file-viewer-modal *,#fileModal.file-viewer-modal *::before,#fileModal.file-viewer-modal *::after{box-sizing:border-box}
html[data-theme] #fileModal.file-viewer-modal .file-viewer-panel {
  display:flex!important;flex-direction:column;gap:0;width:min(1120px,100%)!important;max-width:none!important;
  height:min(860px,calc(100dvh - 48px))!important;max-height:calc(100dvh - 48px)!important;min-height:0;
  padding:0!important;margin:0;border:1px solid var(--fv-line)!important;border-radius:20px!important;
  background:var(--fv-paper)!important;color:var(--fv-ink)!important;box-shadow:0 20px 70px #0003!important;overflow:hidden;animation:none!important;
}
html[data-theme] #fileModal.file-viewer-modal .file-viewer-header {
  display:flex;align-items:center;gap:12px;flex:0 0 auto;min-height:80px!important;margin:0;padding:12px 20px!important;
  border:0;border-bottom:1px solid var(--fv-line)!important;background:var(--fv-paper)!important;color:var(--fv-ink)!important;
}
#fileModal.file-viewer-modal .file-viewer-header::before{display:none!important}
#fileModal.file-viewer-modal .file-viewer-heading{flex:1;min-width:0}
html[data-theme] #fileModal.file-viewer-modal :is(h3,strong,small,span,output){-webkit-text-fill-color:currentColor!important}
html[data-theme] #fileModal.file-viewer-modal .file-modal-kicker{display:flex;align-items:center;gap:10px;margin:0 0 2px;color:var(--fv-muted)!important;font-size:10px;line-height:1.4;font-weight:500;letter-spacing:0}
html[data-theme] #fileModal.file-viewer-modal h3{max-width:none!important;margin:0;color:var(--fv-ink)!important;font-size:15px;line-height:1.65;font-weight:650;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;unicode-bidi:plaintext;text-align:start}
html[data-theme] #fileModal.file-viewer-modal #fileModalMeta{display:block;margin-top:1px;font-size:11px;line-height:1.5;color:var(--fv-muted)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:ltr;text-align:right}
html[data-theme] #fileModal.file-viewer-modal .file-detail-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:0!important;border-radius:12px!important;background:var(--fv-soft)!important;color:var(--fv-brand)!important;box-shadow:none!important}
#fileModal.file-viewer-modal svg{display:block;flex:0 0 auto;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html[data-theme] #fileModal.file-viewer-modal :is(button,a.file-action){font:inherit;text-decoration:none;cursor:pointer;box-shadow:none!important;transform:none!important;filter:none!important;transition:background .15s ease;}
html[data-theme] #fileModal.file-viewer-modal :is(.fv-tool,.close-btn){display:grid;place-items:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:10px;border:1px solid transparent!important;border-radius:10px!important;background:transparent!important;color:var(--fv-ink)!important}
html[data-theme] #fileModal.file-viewer-modal :is(button,a):focus-visible{outline:2px solid var(--fv-brand)!important;outline-offset:-3px}
html[data-theme] #fileModal.file-viewer-modal :is(.fv-tool,.close-btn):hover{background:var(--fv-soft)!important;color:var(--fv-brand)!important}
html[data-theme] #fileModal.file-viewer-modal button:disabled{opacity:.35;cursor:default}
#fileModal.file-viewer-modal #fileViewerCounter{padding:1px 7px;border:1px solid var(--fv-line);border-radius:5px;color:var(--fv-ink);font-variant-numeric:tabular-nums;font-size:10px}
html[data-theme] #fileModal.file-viewer-modal .file-viewer-stage{position:relative;display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden!important;margin:0;padding:0!important;background:var(--fv-soft)!important;touch-action:auto!important}
html[data-theme] #fileModal.file-viewer-modal #filePreview{position:relative;display:flex;align-items:center;justify-content:center;flex:1 1 auto;width:100%;height:100%;min-height:0!important;max-height:none!important;margin:0;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:hidden!important;touch-action:auto!important}
html[data-theme] #fileModal.file-viewer-modal #filePreview[aria-busy="true"]::after{z-index:4;width:28px;height:28px;border:2px solid var(--fv-line);border-top-color:var(--fv-brand);box-shadow:0 0 0 8px var(--fv-paper)}
#fileModal.file-viewer-modal .fv-image-viewport{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;direction:ltr;overflow:hidden;touch-action:none;user-select:none}
#fileModal.file-viewer-modal .fv-image-viewport[data-zoomed="true"]{cursor:grab}
#fileModal.file-viewer-modal .fv-image-viewport[data-zoomed="true"]:active{cursor:grabbing}
html[data-theme] #fileModal.file-viewer-modal .file-preview-image{display:block;flex-shrink:0;max-width:none!important;max-height:none!important;object-fit:contain;transform-origin:center;pointer-events:none;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}
html[data-theme] #fileModal.file-viewer-modal .file-preview-media{display:block;width:100%;height:100%;max-width:100%;max-height:100%!important;object-fit:contain;border:0!important;border-radius:0!important;box-shadow:none!important;background:#10141b}
html[data-theme] #fileModal.file-viewer-modal .file-preview-document{width:100%;height:100%!important;max-height:none;border:0;border-radius:0;background:#fff;box-shadow:none!important}
html[data-theme] #fileModal.file-viewer-modal .fv-tools{display:flex;align-items:center;justify-content:center;align-self:center;gap:2px;flex:0 0 auto;margin:10px 12px;padding:3px 6px;border:1px solid var(--fv-line);border-radius:12px;background:var(--fv-paper);color:var(--fv-ink);direction:ltr;box-shadow:none}
#fileModal.file-viewer-modal .fv-zoom{min-width:46px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums}
#fileModal.file-viewer-modal .fv-tool-divider{height:24px;width:1px;margin:0 5px;background:var(--fv-line)}
html[data-theme] #fileModal.file-viewer-modal :is(.fv-previous,.fv-next){position:absolute;top:50%;z-index:3;transform:translateY(-50%)!important;border:1px solid var(--fv-line)!important;border-radius:50%!important;background:var(--fv-paper)!important}
#fileModal.file-viewer-modal .fv-previous{right:16px}
#fileModal.file-viewer-modal .fv-next{left:16px}
html[data-theme] #fileModal.file-viewer-modal .fv-thumbnails{display:flex;justify-content:safe center;flex:0 0 auto;gap:8px;max-width:100%;margin:0;padding:8px 20px;overflow-x:auto;overflow-y:hidden;border-top:1px solid var(--fv-line);background:var(--fv-paper);overscroll-behavior:contain;touch-action:pan-x;scrollbar-width:thin}
html[data-theme] #fileModal.file-viewer-modal .fv-thumbnail{position:relative;display:grid;place-items:center;flex:0 0 56px;width:56px;height:48px;min-height:48px;padding:3px;border:2px solid transparent!important;border-radius:8px!important;background:var(--fv-soft)!important;color:var(--fv-muted)!important;overflow:hidden}
#fileModal.file-viewer-modal .fv-thumbnail>img{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);object-fit:cover;border-radius:4px}
html[data-theme] #fileModal.file-viewer-modal .fv-thumbnail[aria-current="true"]{border-color:var(--fv-brand)!important}
html[data-theme] #fileModal.file-viewer-modal .file-viewer-details{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;gap:8px;padding:9px 20px;border-top:1px solid var(--fv-line)!important;background:var(--fv-paper)!important;color:var(--fv-muted)!important;font-size:11px;line-height:1.7}
#fileModal.file-viewer-modal #fileViewerStatus{color:var(--fv-ink);flex-shrink:0}
#fileModal.file-viewer-modal #fileViewerHint{color:var(--fv-muted);font-size:11px}
html[data-theme] #fileModal.file-viewer-modal .file-viewer-footer{display:flex;flex:0 0 auto;justify-content:flex-end;gap:10px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--fv-line)!important;background:var(--fv-paper)!important}
html[data-theme] #fileModal.file-viewer-modal .file-viewer-footer .file-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;width:auto;min-width:130px;min-height:44px;padding:9px 18px;border:1px solid var(--fv-line)!important;border-radius:10px!important;background:var(--fv-paper)!important;color:var(--fv-ink)!important;font-size:13px;font-weight:600}
html[data-theme] #fileModal.file-viewer-modal #downloadFile{background:var(--fv-brand)!important;color:var(--fv-on-brand)!important;border-color:var(--fv-brand)!important;min-width:160px}
html[data-theme] #fileModal.file-viewer-modal #downloadFile :is(span,svg){color:var(--fv-on-brand)!important;-webkit-text-fill-color:var(--fv-on-brand)!important}
#fileModal.file-viewer-modal.file-modal-audio-mode #downloadFile span:last-child{display:inline}
html[data-theme] #fileModal.file-viewer-modal .file-preview-empty{display:flex;flex-direction:column;align-items:center;gap:12px;min-height:0;max-width:420px;padding:24px;color:var(--fv-muted)!important;font-size:14px;text-align:center;line-height:1.9}
html[data-theme] #fileModal.file-viewer-modal .file-preview-empty strong{color:var(--fv-ink)!important;font-size:17px}
html[data-theme] #fileModal.file-viewer-modal .file-preview-empty-icon{display:grid;place-items:center;width:64px;height:64px;border:0;border-radius:18px;background:var(--fv-paper)!important;color:var(--fv-brand)!important;box-shadow:none}
html[data-theme] #fileModal.file-viewer-modal .fv-retry{min-height:44px;margin-top:4px;padding:8px 16px;border:1px solid var(--fv-line)!important;border-radius:9px;background:var(--fv-paper)!important;color:var(--fv-ink)!important}
html[data-theme] #fileModal.file-viewer-modal .file-modal-audio-preview{width:min(580px,calc(100% - 32px));margin:16px;padding:24px;border:1px solid var(--fv-line);border-radius:16px;background:var(--fv-paper)!important;color:var(--fv-ink)!important;box-shadow:none}
html[data-theme] #fileModal.file-viewer-modal .file-modal-audio-preview .waveform-player{width:100%;max-width:100%;margin:0;padding:0;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--fv-ink)!important}
html[data-theme] #fileModal.file-viewer-modal .file-modal-audio-preview .waveform-play{width:44px!important;height:44px!important;min-width:44px;min-height:44px;border:0!important;border-radius:50%;background:var(--fv-brand)!important;color:var(--fv-on-brand)!important}
html[data-theme] #fileModal.file-viewer-modal .file-modal-audio-preview .waveform-time{color:var(--fv-muted)!important;font-size:12px!important}
#fileModal.file-viewer-modal .file-modal-audio-preview audio[controls]{width:100%;max-width:100%}
#fileModal.file-viewer-modal .fv-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
html[data-theme] #fileModal.file-viewer-modal.fv-expanded{padding:0!important}
html[data-theme] #fileModal.file-viewer-modal.fv-expanded .file-viewer-panel,
html[data-theme] #fileModal.file-viewer-modal .file-viewer-panel:fullscreen{width:100%!important;height:100dvh!important;max-height:100dvh!important;border:0!important;border-radius:0!important}
@media(max-width:700px){
  html[data-theme] #fileModal.file-viewer-modal{padding:0!important}
  html[data-theme] #fileModal.file-viewer-modal .file-viewer-panel{width:100%!important;height:100dvh!important;max-height:100dvh!important;border:0!important;border-radius:0!important}
  html[data-theme] #fileModal.file-viewer-modal .file-viewer-header{gap:8px;min-height:72px!important;padding:calc(10px + env(safe-area-inset-top)) 12px 10px!important}
  html[data-theme] #fileModal.file-viewer-modal .file-detail-icon{display:none}
  html[data-theme] #fileModal.file-viewer-modal h3{font-size:13px}
  html[data-theme] #fileModal.file-viewer-modal .file-viewer-footer{gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
  html[data-theme] #fileModal.file-viewer-modal .file-viewer-footer .file-action{flex:1;min-width:0!important;min-height:48px}
  html[data-theme] #fileModal.file-viewer-modal .file-viewer-details{flex-direction:column;align-items:flex-start;gap:1px;padding:7px 12px}
  #fileModal.file-viewer-modal #fileViewerHint{font-size:10px}
  html[data-theme] #fileModal.file-viewer-modal .fv-thumbnails{padding:8px 12px}
  #fileModal.file-viewer-modal .fv-previous{right:8px}#fileModal.file-viewer-modal .fv-next{left:8px}
}
@media(max-height:460px){
  html[data-theme] #fileModal.file-viewer-modal .file-viewer-header{min-height:54px!important;padding-block:5px!important}
  #fileModal.file-viewer-modal .fv-thumbnails,#fileModal.file-viewer-modal .file-viewer-details{display:none!important}
  html[data-theme] #fileModal.file-viewer-modal .fv-tools{position:absolute;bottom:4px;left:50%;margin:0;transform:translateX(-50%);z-index:4}
  html[data-theme] #fileModal.file-viewer-modal .file-viewer-footer{padding-block:5px}
}
@media(prefers-reduced-motion:reduce){#fileModal.file-viewer-modal *{animation:none!important;transition:none!important}}

/* Compact chrome: content first, details remain available to assistive technology. */
html[data-theme] #fileModal.file-viewer-modal .file-viewer-header{min-height:56px!important;padding:6px 12px!important;gap:6px}
html[data-theme] #fileModal.file-viewer-modal :is(.file-modal-kicker,.file-detail-icon,#fileViewerHint){display:none!important}
html[data-theme] #fileModal.file-viewer-modal :is(#fileModalMeta,.file-viewer-details){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);border:0!important}
html[data-theme] #fileModal.file-viewer-modal .file-viewer-footer{padding:6px 12px calc(6px + env(safe-area-inset-bottom));gap:8px}
html[data-theme] #fileModal.file-viewer-modal .file-viewer-footer .file-action{min-width:0;min-height:44px;padding:6px 14px;font-size:12px}
html[data-theme] #fileModal.file-viewer-modal #downloadFile{min-width:0}
html[data-theme] #fileModal.file-viewer-modal .fv-tools{margin:4px 8px;padding:0 4px;border:0}
html[data-theme] #fileModal.file-viewer-modal .fv-thumbnails{padding:4px 12px}

/* One glass toolbar, over the image rather than a second footer. */
html[data-theme] #fileModal.file-viewer-modal .fv-controlbar{
  position:absolute;z-index:5;inset:auto auto max(12px,env(safe-area-inset-bottom)) 50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:2px;width:max-content;max-width:calc(100% - 16px);padding:4px;
  border:1px solid #ffffff52;border-radius:16px;background:#182632;color:#f5faff;
  box-shadow:0 4px 20px #0005;direction:ltr;
}
@supports(backdrop-filter:blur(16px)){
  html[data-theme] #fileModal.file-viewer-modal .fv-controlbar{background:rgba(18,31,42,.86);backdrop-filter:blur(16px) saturate(120%);-webkit-backdrop-filter:blur(16px) saturate(120%)}
}
html[data-theme] #fileModal.file-viewer-modal .fv-controlbar .fv-tools{position:static;transform:none;gap:0;margin:0;padding:0;border:0;background:transparent;color:inherit}
html[data-theme] #fileModal.file-viewer-modal .fv-controlbar :is(.fv-tool,#downloadFile){flex:0 0 44px;width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;padding:10px;background:transparent!important;color:#f5faff!important;border:0!important;border-radius:11px!important;box-shadow:none!important}
html[data-theme] #fileModal.file-viewer-modal .fv-controlbar :is(.fv-tool,#downloadFile):hover{background:#ffffff26!important}
html[data-theme] #fileModal.file-viewer-modal .fv-controlbar :is(.fv-tool,#downloadFile):focus-visible{outline:2px solid #fff!important;outline-offset:-3px}
html[data-theme] #fileModal.file-viewer-modal .fv-controlbar .fv-zoom{min-width:34px;color:inherit}
html[data-theme] #fileModal.file-viewer-modal .fv-controlbar .fv-tool-divider{margin:0 4px;background:#ffffff40}
html[data-theme] #fileModal.file-viewer-modal .fv-controlbar #downloadFile{display:grid;place-items:center;border-inline-start:1px solid #ffffff40!important;text-decoration:none}
html[data-theme] #fileModal.file-viewer-modal:not([data-kind="image"]) .fv-controlbar{position:relative;inset:auto;transform:none;align-self:center;margin:8px 0 max(8px,env(safe-area-inset-bottom));flex:0 0 auto}
@media(prefers-reduced-transparency:reduce){html[data-theme] #fileModal.file-viewer-modal .fv-controlbar{background:#182632;backdrop-filter:none}}
