.docviewer {
    max-width: 100%;
    border: 0;
    border-radius: 0.75rem;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    margin-bottom: 1rem;
}

.docviewer .docviewer-stage {
    overflow: auto;
    padding: 0;
    transition: height 0.16s ease;
    touch-action: pan-y pinch-zoom;
}

.docviewer .docviewer-stage:focus-visible {
    outline: 2px solid var(--bs-primary, #0d6efd);
    outline-offset: -2px;
}

.docviewer .docviewer-body {
    order: 1;
}

.docviewer .docviewer-controls {
    order: 2;
    position: static !important;
    z-index: auto;
    gap: 0.75rem;
}

.docviewer .docviewer-controls .bi {
    font-size: 1.15em;
}

.docviewer .docviewer-controls .btn-outline-secondary:hover,
.docviewer .docviewer-controls .btn-outline-secondary:focus-visible {
    background-color: transparent;
    color: #000;
    border-color: #000;
}

[data-bs-theme="dark"] .docviewer .docviewer-controls .btn-outline-secondary:hover,
[data-bs-theme="dark"] .docviewer .docviewer-controls .btn-outline-secondary:focus-visible {
    color: #fff;
    border-color: #fff;
}

.docviewer .js-docviewer-canvas {
    display: block;
    margin: auto;
    flex-shrink: 0;
    background: #fff;
}

.docviewer .js-docviewer-indicator {
    min-width: 0;
    text-align: left;
    white-space: nowrap;
}

.docviewer:fullscreen {
    width: 100vw !important;
    height: 100vh;
    max-width: none;
    border-radius: 0;
}

.docviewer:fullscreen .docviewer-stage {
    padding: 0;
}

.docviewer.docviewer-pseudo-fullscreen {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    width: 100vw !important;
    height: 100dvh;
    max-width: none;
    border-radius: 0;
    margin: 0;
    background: var(--bs-body-bg, #fff);
}

.docviewer.docviewer-pseudo-fullscreen .docviewer-stage {
    padding: 0;
}

.docviewer:fullscreen .docviewer-controls .bi,
.docviewer.docviewer-pseudo-fullscreen .docviewer-controls .bi {
    font-size: 1.4em;
}

body.docviewer-no-scroll {
    overflow: hidden;
}

@media (max-width: 576px) {
    .docviewer .docviewer-controls {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        row-gap: 0.5rem;
    }

    .docviewer .docviewer-controls .btn-group,
    .docviewer .docviewer-controls .d-flex {
        justify-content: center;
        width: auto;
        flex-wrap: nowrap;
        min-height: 2rem;
    }

    .docviewer .js-docviewer-indicator {
        min-width: 0;
    }
}
