body.ictus-file-viewer-open { height: 100%; overflow: hidden !important; overscroll-behavior: none; }
.ictus-file-viewer { position: fixed; inset: 0; z-index: 2060; display: grid; width: 100vw; height: 100vh; height: 100dvh; place-items: center; padding: 24px; overflow: hidden; color: #f8fafc; outline: 0; }
.ictus-file-viewer__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(3, 12, 26, .88); cursor: zoom-out; }
.ictus-file-viewer__dialog { position: relative; display: grid; grid-template-rows: auto minmax(0, 1fr); width: min(1500px, 100%); height: min(900px, calc(100vh - 48px)); height: min(900px, calc(100dvh - 48px)); min-height: 0; overflow: hidden; border: 1px solid rgba(255, 255, 255, .13); border-radius: 18px; background: #071426; box-shadow: 0 28px 80px rgba(0, 0, 0, .48); }
.ictus-file-viewer__header { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 14px 16px; border-bottom: 1px solid rgba(255, 255, 255, .12); background: #0b1c32; }
.ictus-file-viewer__file-icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 11px; background: rgba(var(--ictus-cyan-rgb), .16); color: var(--ictus-cyan-light, #81d8e8); font-size: 1.25rem; }
.ictus-file-viewer__heading { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.ictus-file-viewer__heading strong { overflow: hidden; color: #fff; font-size: .96rem; text-overflow: ellipsis; white-space: nowrap; }
.ictus-file-viewer__heading small { color: #a9b7ca; font-size: .75rem; }
.ictus-file-viewer__actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.ictus-file-viewer__actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; border-color: rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .08); color: #fff; }
.ictus-file-viewer__actions .btn:hover, .ictus-file-viewer__actions .btn:focus-visible { border-color: var(--ictus-cyan-light, #81d8e8); background: rgba(var(--ictus-cyan-rgb), .2); color: #fff; }
.ictus-file-viewer__close { width: 42px; padding: 0; }
.ictus-file-viewer__stage { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr) 64px; min-height: 0; overflow: hidden; background-image: radial-gradient(circle at 50% 35%, rgba(30, 67, 105, .45), transparent 56%); background-color: #030b16; }
.ictus-file-viewer__content { position: relative; display: grid; min-width: 0; min-height: 0; place-items: center; padding: 0; overflow: hidden; }
.ictus-file-viewer__content > img { position: absolute; inset: 24px 8px; display: block; width: calc(100% - 16px); height: calc(100% - 48px); max-width: none; max-height: none; object-fit: contain; border-radius: 5px; box-shadow: 0 12px 42px rgba(0, 0, 0, .4); }
.ictus-file-viewer__content > img.is-loading { visibility: hidden; }
.ictus-file-viewer__content > video { position: absolute; inset: 24px 8px; width: calc(100% - 16px); height: calc(100% - 48px); max-height: 100%; object-fit: contain; background: #030b16; }
.ictus-file-viewer__loading { display: inline-flex; align-items: center; gap: 10px; color: #c8d4e4; font-size: .86rem; }
.ictus-file-viewer__loading .spinner-border { width: 1.25rem; height: 1.25rem; border-width: 2px; }
.ictus-file-viewer__nav { align-self: center; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 54px; margin: 10px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 13px; background: rgba(12, 31, 52, .84); color: #fff; font-size: 1.25rem; }
.ictus-file-viewer__nav:hover:not(:disabled), .ictus-file-viewer__nav:focus-visible { border-color: var(--ictus-cyan-light, #81d8e8); background: #123454; outline: 2px solid rgba(var(--ictus-cyan-rgb), .4); }
.ictus-file-viewer__nav:disabled { opacity: .25; }
.ictus-file-viewer__nav--previous { grid-column: 1; }
.ictus-file-viewer__nav--next { grid-column: 3; }
.ictus-file-viewer__content { grid-column: 2; grid-row: 1; }
.ictus-file-viewer__stage.ictus-file-viewer__stage--single { grid-template-columns: 0 minmax(0, 1fr) 0; }
.ictus-file-viewer__fallback { display: grid; justify-items: center; max-width: 440px; padding: 32px; text-align: center; color: #b7c5d8; }
.ictus-file-viewer__fallback > i { margin-bottom: 16px; color: var(--ictus-cyan-light, #81d8e8); font-size: 3.2rem; }
.ictus-file-viewer__fallback strong { color: #fff; font-size: 1.05rem; }
.ictus-file-viewer__fallback p { margin: 8px 0 20px; font-size: .86rem; line-height: 1.55; }
.ictus-file-viewer__fallback .btn { display: inline-flex; align-items: center; gap: 8px; }
@media (max-width: 767.98px) {
  .ictus-file-viewer { padding: 0; }
  .ictus-file-viewer__dialog { width: 100%; height: 100%; border: 0; border-radius: 0; }
  .ictus-file-viewer__header { padding: 10px 12px; }
  .ictus-file-viewer__file-icon { display: none; }
  .ictus-file-viewer__heading strong { font-size: .88rem; }
  .ictus-file-viewer__external { width: 42px; padding: 0; }
  .ictus-file-viewer__external span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .ictus-file-viewer__stage { grid-template-columns: 48px minmax(0, 1fr) 48px; }
  .ictus-file-viewer__content { padding: 0; }
  .ictus-file-viewer__content > img { inset: 12px 4px; width: calc(100% - 8px); height: calc(100% - 24px); }
  .ictus-file-viewer__content > video { inset: 12px 4px; width: calc(100% - 8px); height: calc(100% - 24px); }
  .ictus-file-viewer__nav { width: 38px; height: 48px; margin: 5px; }
}
