/**
 * WPDM PDF Viewer — Modern UI overrides for PDF.js
 *
 * Layered on top of pdfjs/web/viewer.css. Avoid renaming pdf.js IDs/classes;
 * we only restyle them. Component-scoped via #outerContainer where possible
 * so this never leaks into the host page.
 */

:root {
    --pdfv-primary: #6366f1;
    --pdfv-primary-hover: #4f46e5;
    --pdfv-primary-light: #eef2ff;
    --pdfv-secondary: #64748b;
    --pdfv-success: #10b981;
    --pdfv-danger: #ef4444;
    --pdfv-bg: #f8fafc;
    --pdfv-bg-toolbar: #ffffff;
    --pdfv-bg-sidebar: #f8fafc;
    --pdfv-bg-elevated: #ffffff;
    --pdfv-bg-hover: #f1f5f9;
    --pdfv-bg-viewer: #e5e7eb;
    --pdfv-border: #e2e8f0;
    --pdfv-border-strong: #cbd5e1;
    --pdfv-text: #1e293b;
    --pdfv-text-muted: #64748b;
    --pdfv-text-subtle: #94a3b8;
    --pdfv-radius: 8px;
    --pdfv-radius-sm: 6px;
    --pdfv-radius-lg: 12px;
    --pdfv-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --pdfv-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.08), 0 1px 2px -1px rgb(0 0 0 / 0.08);
    --pdfv-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.08), 0 2px 4px -2px rgb(0 0 0 / 0.08);
    --pdfv-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10);
    --pdfv-transition: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --pdfv-toolbar-height: 48px;
    --pdfv-sidebar-width: 240px;
}

@media (prefers-color-scheme: dark) {
    :root:not(.pdfv-light) {
        --pdfv-bg: #0f172a;
        --pdfv-bg-toolbar: #1e293b;
        --pdfv-bg-sidebar: #0f172a;
        --pdfv-bg-elevated: #1e293b;
        --pdfv-bg-hover: #334155;
        --pdfv-bg-viewer: #0a0f1c;
        --pdfv-border: rgba(255, 255, 255, 0.08);
        --pdfv-border-strong: rgba(255, 255, 255, 0.16);
        --pdfv-text: #f1f5f9;
        --pdfv-text-muted: #cbd5e1;
        --pdfv-text-subtle: #94a3b8;
        --pdfv-primary-light: rgba(99, 102, 241, 0.15);
    }
}

.pdfv-dark {
    --pdfv-bg: #0f172a;
    --pdfv-bg-toolbar: #1e293b;
    --pdfv-bg-sidebar: #0f172a;
    --pdfv-bg-elevated: #1e293b;
    --pdfv-bg-hover: #334155;
    --pdfv-bg-viewer: #0a0f1c;
    --pdfv-border: rgba(255, 255, 255, 0.08);
    --pdfv-border-strong: rgba(255, 255, 255, 0.16);
    --pdfv-text: #f1f5f9;
    --pdfv-text-muted: #cbd5e1;
    --pdfv-text-subtle: #94a3b8;
    --pdfv-primary-light: rgba(99, 102, 241, 0.15);
}

/* ============================================================
   Base layout
   ============================================================ */
html, body { height: 100%; margin: 0; }
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    color: var(--pdfv-text);
    background: var(--pdfv-bg);
}

#outerContainer { color: var(--pdfv-text); }
#viewerContainer { background: var(--pdfv-bg-viewer); }

/* ============================================================
   Toolbar
   ============================================================ */
#outerContainer .toolbar {
    background: var(--pdfv-bg-toolbar);
    border-bottom: 1px solid var(--pdfv-border);
    box-shadow: var(--pdfv-shadow-sm);
    height: var(--pdfv-toolbar-height);
    z-index: 9999;
}

#outerContainer #toolbarContainer {
    background: transparent;
    border: 0;
    box-shadow: none;
    height: var(--pdfv-toolbar-height);
    padding: 0;
}

#outerContainer #toolbarViewer {
    height: var(--pdfv-toolbar-height);
    padding: 0 12px;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

#outerContainer #toolbarViewerLeft,
#outerContainer #toolbarViewerRight,
#outerContainer #toolbarViewerMiddle {
    display: flex;
    align-items: center;
    gap: 4px;
    position: static;
}

#outerContainer #toolbarViewerMiddle {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

/* ============================================================
   Toolbar buttons (modernized .btn overrides)
   ============================================================ */
#outerContainer .toolbar .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 32px;
    min-width: 32px;
    padding: 0 10px;
    margin: 0 !important;
    background: transparent;
    color: var(--pdfv-text-muted);
    border: 1px solid transparent;
    border-radius: var(--pdfv-radius-sm);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: var(--pdfv-transition);
    box-shadow: none;
}

#outerContainer .toolbar .btn:hover:not(:disabled) {
    background: var(--pdfv-bg-hover);
    color: var(--pdfv-text);
}

#outerContainer .toolbar .btn:focus-visible {
    outline: 2px solid var(--pdfv-primary);
    outline-offset: 1px;
}

#outerContainer .toolbar .btn:disabled,
#outerContainer .toolbar .btn[disabled] {
    opacity: 0.4;
    cursor: not-allowed;
}

#outerContainer .toolbar .btn i {
    font-size: 14px;
    line-height: 1;
}

#outerContainer .toolbar .btn-primary,
#outerContainer .toolbar .btn-secondary,
#outerContainer .toolbar .btn-info,
#outerContainer .toolbar .btn-link {
    background: transparent;
    color: var(--pdfv-text-muted);
    border-color: transparent;
}

#outerContainer .toolbar .btn-primary.active,
#outerContainer .toolbar .btn.toggled,
#outerContainer .toolbar .btn[aria-expanded="true"] {
    background: var(--pdfv-primary-light);
    color: var(--pdfv-primary);
}

#outerContainer .toolbar .ml-3 { margin-left: 8px !important; }
#outerContainer .toolbar .mr-1 { margin-right: 4px !important; }

#outerContainer .toolbarButtonSpacer {
    width: 1px;
    height: 24px;
    background: var(--pdfv-border);
    margin: 0 6px;
}

/* Page number input */
#outerContainer #pageNumber {
    height: 30px !important;
    width: 50px !important;
    padding: 0 6px !important;
    margin: 0 4px;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-align: center;
    background: var(--pdfv-bg) !important;
    border: 1px solid var(--pdfv-border) !important;
    border-radius: var(--pdfv-radius-sm) !important;
    color: var(--pdfv-text) !important;
    transition: var(--pdfv-transition);
    box-shadow: none !important;
}

#outerContainer #pageNumber:focus {
    border-color: var(--pdfv-primary) !important;
    box-shadow: 0 0 0 3px var(--pdfv-primary-light) !important;
    outline: none;
}

#outerContainer #numPages {
    font-size: 12px !important;
    color: var(--pdfv-text-muted) !important;
    line-height: 30px !important;
    padding: 0 4px !important;
    margin: 0 !important;
}

/* Zoom select */
#outerContainer #scaleSelectContainer { margin-left: 6px; }
#outerContainer #scaleSelect {
    height: 30px !important;
    padding: 0 24px 0 8px !important;
    font-size: 12px !important;
    background: var(--pdfv-bg) !important;
    border: 1px solid var(--pdfv-border) !important;
    border-radius: var(--pdfv-radius-sm) !important;
    color: var(--pdfv-text) !important;
    cursor: pointer;
    transition: var(--pdfv-transition);
}
#outerContainer #scaleSelect:hover { border-color: var(--pdfv-border-strong) !important; }
#outerContainer #scaleSelect:focus {
    border-color: var(--pdfv-primary) !important;
    box-shadow: 0 0 0 3px var(--pdfv-primary-light) !important;
    outline: none;
}

/* ============================================================
   Sidebar
   ============================================================ */
#outerContainer #sidebarContainer {
    top: var(--pdfv-toolbar-height);
    background: var(--pdfv-bg-sidebar);
    border-right: 1px solid var(--pdfv-border);
    border-top: 1px solid rgba(0,0,0, 0.1) !important;
    width: var(--pdfv-sidebar-width);
    box-shadow: none;
    z-index: 9998;
}

[dir="ltr"] #outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode){
    left: 0 !important;
}

#outerContainer #toolbarSidebar {
    background: var(--pdfv-bg-toolbar);
    border-bottom: 1px solid var(--pdfv-border);
    height: 44px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: none;
}

#outerContainer #toolbarSidebarLeft,
#outerContainer #toolbarSidebarRight { display: flex; align-items: center; gap: 2px; }

/* Tab group: convert pdf.js's "splitToolbarButton" into segmented pill */
#outerContainer #sidebarViewButtons {
    display: inline-flex;
    align-items: center;
    background: var(--pdfv-bg-hover);
    border-radius: var(--pdfv-radius-sm);
    padding: 3px;
    gap: 2px;
    border: 0;
    box-shadow: none;
}

/* Individual sidebar tab buttons — icon only, hide text labels */
#outerContainer #sidebarViewButtons .toolbarButton {
    width: 30px;
    height: 28px;
    min-width: 30px;
    padding: 0;
    margin: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent !important;
    border: 0 !important;
    border-radius: var(--pdfv-radius-sm) !important;
    color: var(--pdfv-text-muted);
    transition: var(--pdfv-transition);
    box-shadow: none !important;
    position: relative;
    overflow: hidden;
}

#outerContainer #sidebarViewButtons .toolbarButton::before {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
    font-weight: 900;
    font-size: 13px;
    line-height: 1;
    display: block;
}
#outerContainer #viewThumbnail::before    { content: "\f00a"; } /* th-large */
#outerContainer #viewOutline::before      { content: "\f0ca"; } /* list-ul */
#outerContainer #viewAttachments::before  { content: "\f0c6"; } /* paperclip */
#outerContainer #viewLayers::before       { content: "\f5fd"; } /* layer-group */

/* Hide pdf.js default background images & text labels in sidebar tabs */
#outerContainer #sidebarViewButtons .toolbarButton > span,
#outerContainer #sidebarViewButtons .toolbarButton::after { display: none !important; }
#outerContainer #sidebarViewButtons .toolbarButton {
    background-image: none !important;
}

#outerContainer #sidebarViewButtons .toolbarButton:hover {
    background: rgba(0, 0, 0, 0.04) !important;
    color: var(--pdfv-text);
}
#outerContainer #sidebarViewButtons .toolbarButton.toggled {
    background: var(--pdfv-bg-elevated) !important;
    color: var(--pdfv-primary);
    box-shadow: var(--pdfv-shadow-sm) !important;
}

@media (prefers-color-scheme: dark) {
    :root:not(.pdfv-light) #outerContainer #sidebarViewButtons .toolbarButton:hover {
        background: rgba(255, 255, 255, 0.06) !important;
    }
}
.pdfv-dark #outerContainer #sidebarViewButtons .toolbarButton:hover {
    background: rgba(255, 255, 255, 0.06) !important;
}

/* Right-side outline option (find-current) */
#outerContainer #toolbarSidebarRight .toolbarButton {
    width: 30px;
    height: 28px;
    min-width: 30px;
    padding: 0;
    border-radius: var(--pdfv-radius-sm) !important;
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    color: var(--pdfv-text-muted);
    box-shadow: none !important;
}
#outerContainer #toolbarSidebarRight .toolbarButton > span { display: none !important; }
#outerContainer #toolbarSidebarRight .toolbarButton::before {
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
    font-weight: 900;
    font-size: 12px;
}
#outerContainer #currentOutlineItem::before { content: "\f3c5"; } /* map-marker */
#outerContainer #toolbarSidebarRight .toolbarButton:hover:not(:disabled) {
    background: var(--pdfv-bg-hover) !important;
    color: var(--pdfv-text);
}

/* Sidebar content area */
#outerContainer #sidebarContent {
    background: var(--pdfv-bg-sidebar);
    top: 44px;
    padding: 0;
    box-sizing: border-box;
    box-shadow: 0 5px 5px rgba(0,0,0,0.1);
}

#outerContainer #sidebarContent::-webkit-scrollbar { width: 8px; }
#outerContainer #sidebarContent::-webkit-scrollbar-thumb {
    background: var(--pdfv-border-strong);
    border-radius: 4px;
}
#outerContainer #sidebarContent::-webkit-scrollbar-thumb:hover { background: var(--pdfv-text-subtle); }
#outerContainer #sidebarContent::-webkit-scrollbar-track { background: transparent; }

/* Thumbnail grid */
#outerContainer #thumbnailView {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 0 !important;
    width: 100% !important;
}
#outerContainer .thumbnail {
    margin: 0 !important;
    padding: 0 !important;
    border-radius: var(--pdfv-radius-sm);
    overflow: hidden;
    transition: var(--pdfv-transition);
    width: auto !important;
    border: 2px solid transparent;
}
#outerContainer .thumbnail .thumbnailImage {
    border: 1px solid var(--pdfv-border) !important;
    border-radius: 3px;
    box-shadow: var(--pdfv-shadow-sm);
    transition: var(--pdfv-transition);
    background-clip: content-box;
    background-color: #fff;
}
#outerContainer .thumbnail:hover .thumbnailImage {
    box-shadow: var(--pdfv-shadow-md);
    border-color: var(--pdfv-border-strong) !important;
}
#outerContainer .thumbnail.selected .thumbnailImage,
#outerContainer .thumbnail .thumbnailSelectionRing.selected {
    border-color: var(--pdfv-primary) !important;
    box-shadow: 0 0 0 2px var(--pdfv-primary-light), var(--pdfv-shadow-md);
}
#outerContainer .thumbnail .pageNumber,
#outerContainer .thumbnail::after {
    color: var(--pdfv-text-muted);
    font-size: 11px;
    font-weight: 500;
    margin-top: 6px;
    text-align: center;
    display: block;
}
#outerContainer .thumbnail.selected .pageNumber { color: var(--pdfv-primary); font-weight: 600; }

/* Outline / attachments / layers tree views */
#outerContainer #outlineView,
#outerContainer #attachmentsView,
#outerContainer #layersView {
    padding: 4px;
    font-size: 13px;
    color: var(--pdfv-text);
}
#outerContainer .treeItem > a,
#outerContainer .treeItem > .treeItemToggler + a {
    color: var(--pdfv-text);
    border-radius: var(--pdfv-radius-sm);
    padding: 6px 8px;
    transition: var(--pdfv-transition);
    text-decoration: none;
    display: block;
}
#outerContainer .treeItem > a:hover {
    background: var(--pdfv-bg-hover);
    color: var(--pdfv-text);
}
#outerContainer .treeItem.selected > a {
    background: var(--pdfv-primary-light);
    color: var(--pdfv-primary);
}
#outerContainer .treeItemToggler::before {
    color: var(--pdfv-text-subtle);
}

/* Sidebar resizer */
#outerContainer #sidebarResizer {
    width: 4px;
    background: transparent;
    transition: background 150ms ease;
    cursor: col-resize;
}
#outerContainer #sidebarResizer:hover,
#outerContainer.sidebarResizing #sidebarResizer {
    background: var(--pdfv-primary);
}

/* Main container offset for sidebar */
#outerContainer.sidebarOpen #mainContainer { margin-left: var(--pdfv-sidebar-width); }
#outerContainer #mainContainer { transition: margin-left 200ms cubic-bezier(0.4, 0, 0.2, 1); }

/* ============================================================
   Viewer container & scrollbars
   ============================================================ */
#outerContainer #viewerContainer {
    top: var(--pdfv-toolbar-height);
    background: var(--pdfv-bg-viewer);
}

#outerContainer #viewerContainer::-webkit-scrollbar { width: 12px; height: 12px; }
#outerContainer #viewerContainer::-webkit-scrollbar-thumb {
    background: var(--pdfv-border-strong);
    border-radius: 6px;
    border: 3px solid var(--pdfv-bg-viewer);
}
#outerContainer #viewerContainer::-webkit-scrollbar-thumb:hover { background: var(--pdfv-text-subtle); }
#outerContainer #viewerContainer::-webkit-scrollbar-track { background: transparent; }

/* Page shadows */
.pdfViewer .page {
    box-shadow: var(--pdfv-shadow-md);
    border-radius: 2px;
    border: 0 !important;
    margin: 12px auto !important;
}

/* ============================================================
   Loading bar
   ============================================================ */
#outerContainer #loadingBar {
    background: transparent;
    border: 0;
    height: 3px;
    bottom: -3px;
}
#outerContainer #loadingBar .progress {
    background: var(--pdfv-primary);
    box-shadow: 0 0 8px rgba(99, 102, 241, 0.4);
}
#outerContainer #loadingBar .progress.indeterminate {
    background: linear-gradient(90deg, transparent, var(--pdfv-primary), transparent);
}

/* ============================================================
   Findbar
   ============================================================ */
#outerContainer #findbar {
    top: var(--pdfv-toolbar-height) !important;
    background: var(--pdfv-bg-elevated);
    border: 1px solid var(--pdfv-border);
    border-radius: var(--pdfv-radius);
    box-shadow: var(--pdfv-shadow-lg);
    padding: 12px;
    margin-top: 8px;
}

#outerContainer #findbar::after,
#outerContainer #findbar::before { display: none; }

#outerContainer #findInput {
    height: 32px;
    padding: 0 10px;
    background: var(--pdfv-bg);
    border: 1px solid var(--pdfv-border);
    border-radius: var(--pdfv-radius-sm);
    color: var(--pdfv-text);
    font-size: 13px;
    transition: var(--pdfv-transition);
}
#outerContainer #findInput:focus {
    border-color: var(--pdfv-primary);
    box-shadow: 0 0 0 3px var(--pdfv-primary-light);
    outline: none;
}

#outerContainer #findbar .toolbarButton,
#outerContainer #findbar .toolbarLabel {
    color: var(--pdfv-text-muted);
}

/* ============================================================
   Secondary toolbar (overflow menu)
   ============================================================ */
#outerContainer #secondaryToolbar {
    top: var(--pdfv-toolbar-height) !important;
    background: var(--pdfv-bg-elevated);
    border: 1px solid var(--pdfv-border);
    border-radius: var(--pdfv-radius);
    box-shadow: var(--pdfv-shadow-lg);
    padding: 6px;
    margin-top: 8px;
    min-width: 220px;
}

#outerContainer #secondaryToolbar::after,
#outerContainer #secondaryToolbar::before { display: none; }

#outerContainer .secondaryToolbarButton {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 34px;
    padding: 8px 12px 8px 36px;
    margin: 1px 0;
    border: 0;
    border-radius: var(--pdfv-radius-sm);
    color: var(--pdfv-text);
    background: transparent;
    background-image: none !important;
    text-align: left;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: var(--pdfv-transition);
    position: relative;
    box-sizing: border-box;
}

#outerContainer .secondaryToolbarButton > span,
#outerContainer .secondaryToolbarButton > .secondaryToolbarLabel {
    flex: 1;
    line-height: 1.2;
    text-align: left;
    margin: 0;
    padding: 0;
    color: inherit;
}

#outerContainer .secondaryToolbarButton::before {
    content: "";
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome", sans-serif;
    font-weight: 900;
    font-size: 13px;
    line-height: 1;
    color: var(--pdfv-text-muted);
}

#outerContainer .secondaryToolbarButton:hover { background: var(--pdfv-bg-hover); color: var(--pdfv-text); }
#outerContainer .secondaryToolbarButton:hover::before { color: var(--pdfv-text); }
#outerContainer .secondaryToolbarButton.toggled {
    background: var(--pdfv-primary-light);
    color: var(--pdfv-primary);
}
#outerContainer .secondaryToolbarButton.toggled::before { color: var(--pdfv-primary); }
#outerContainer .secondaryToolbarButton:disabled,
#outerContainer .secondaryToolbarButton[disabled] { opacity: 0.4; cursor: not-allowed; }

/* Per-button FontAwesome glyphs */
#outerContainer #secondaryPresentationMode::before { content: "\f31e"; } /* expand */
#outerContainer #secondaryOpenFile::before         { content: "\f07c"; } /* folder-open */
#outerContainer #secondaryPrint::before            { content: "\f02f"; } /* print */
#outerContainer #secondaryDownload::before         { content: "\f019"; } /* download */
#outerContainer #secondaryViewBookmark::before     { content: "\f0c1"; } /* link */
#outerContainer #firstPage::before                 { content: "\f102"; } /* angle-double-up */
#outerContainer #lastPage::before                  { content: "\f103"; } /* angle-double-down */
#outerContainer #pageRotateCw::before              { content: "\f2f9"; } /* redo-alt */
#outerContainer #pageRotateCcw::before             { content: "\f2ea"; } /* undo-alt */
#outerContainer #cursorSelectTool::before          { content: "\f246"; } /* i-cursor */
#outerContainer #cursorHandTool::before            { content: "\f256"; } /* hand-paper */
#outerContainer #scrollPage::before                { content: "\f15c"; } /* file-alt */
#outerContainer #scrollVertical::before            { content: "\f338"; } /* arrows-alt-v */
#outerContainer #scrollHorizontal::before          { content: "\f337"; } /* arrows-alt-h */
#outerContainer #scrollWrapped::before             { content: "\f7a4"; } /* grip-lines */
#outerContainer #spreadNone::before                { content: "\f15b"; } /* file */
#outerContainer #spreadOdd::before                 { content: "\f24d"; } /* clone */
#outerContainer #spreadEven::before                { content: "\f0c5"; } /* copy */
#outerContainer #documentProperties::before        { content: "\f05a"; } /* info-circle */

#outerContainer .horizontalToolbarSeparator {
    height: 1px;
    background: var(--pdfv-border);
    margin: 4px 0;
}

#outerContainer .verticalToolbarSeparator {
    width: 1px;
    background: var(--pdfv-border);
    height: 24px;
    margin: 0 4px;
}

/* ============================================================
   Dialogs (password, document properties, print)
   ============================================================ */
#outerContainer dialog {
    background: var(--pdfv-bg-elevated);
    color: var(--pdfv-text);
    border: 1px solid var(--pdfv-border);
    border-radius: var(--pdfv-radius-lg);
    box-shadow: var(--pdfv-shadow-lg);
    padding: 24px;
    min-width: 320px;
}
#outerContainer dialog::backdrop { background: rgb(0 0 0 / 0.5); }

#outerContainer dialog .row { margin-bottom: 12px; }
#outerContainer dialog input[type="password"],
#outerContainer dialog input[type="text"] {
    width: 100%;
    height: 38px;
    padding: 0 12px;
    background: var(--pdfv-bg);
    border: 1px solid var(--pdfv-border);
    border-radius: var(--pdfv-radius-sm);
    color: var(--pdfv-text);
    font-size: 14px;
    transition: var(--pdfv-transition);
}
#outerContainer dialog input:focus {
    border-color: var(--pdfv-primary);
    box-shadow: 0 0 0 3px var(--pdfv-primary-light);
    outline: none;
}

#outerContainer dialog .dialogButton {
    height: 38px;
    padding: 0 16px;
    border-radius: var(--pdfv-radius-sm);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: var(--pdfv-transition);
    border: 1px solid var(--pdfv-border);
    background: var(--pdfv-bg);
    color: var(--pdfv-text);
}
#outerContainer dialog .dialogButton:hover { background: var(--pdfv-bg-hover); }
#outerContainer dialog #passwordSubmit,
#outerContainer dialog #printCancel {
    background: var(--pdfv-primary);
    color: #fff;
    border-color: var(--pdfv-primary);
}
#outerContainer dialog #passwordSubmit:hover { background: var(--pdfv-primary-hover); border-color: var(--pdfv-primary-hover); }

#outerContainer dialog .buttonRow {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 16px;
    margin-bottom: 0;
}

/* ============================================================
   Error wrapper
   ============================================================ */
#outerContainer #errorWrapper {
    background: var(--pdfv-danger);
    border: 0;
    box-shadow: var(--pdfv-shadow-md);
    padding: 12px 16px;
    border-radius: 0;
}
#outerContainer #errorWrapper button {
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #fff;
    border-radius: var(--pdfv-radius-sm);
    padding: 4px 10px;
    transition: var(--pdfv-transition);
}
#outerContainer #errorWrapper button:hover { background: rgba(255, 255, 255, 0.3); }
#outerContainer #errorMoreInfo {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--pdfv-radius-sm);
    color: #fff;
    padding: 8px;
}

/* ============================================================
   Permission denied screen
   ============================================================ */
.pdfv-message {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 24px;
    background: var(--pdfv-bg);
}
.pdfv-message__card {
    max-width: 480px;
    width: 100%;
    padding: 32px;
    background: var(--pdfv-bg-elevated);
    border: 1px solid var(--pdfv-border);
    border-radius: var(--pdfv-radius-lg);
    box-shadow: var(--pdfv-shadow-md);
    text-align: center;
}
.pdfv-message__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: rgba(239, 68, 68, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pdfv-danger);
}
.pdfv-message__title {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 600;
    color: var(--pdfv-text);
}
.pdfv-message__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--pdfv-text-muted);
}

/* ============================================================
   Password unlock screen (pre-viewer)
   ============================================================ */
.pdfv-unlock {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: var(--pdfv-bg);
}
.pdfv-unlock__card {
    width: 100%;
    max-width: 380px;
    padding: 32px;
    background: var(--pdfv-bg-elevated);
    border: 1px solid var(--pdfv-border);
    border-radius: var(--pdfv-radius-lg);
    box-shadow: var(--pdfv-shadow-md);
}
.pdfv-unlock__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: var(--pdfv-primary-light);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pdfv-primary);
}
.pdfv-unlock__title {
    margin: 0 0 6px;
    font-size: 18px;
    font-weight: 600;
    text-align: center;
    color: var(--pdfv-text);
}
.pdfv-unlock__subtitle {
    margin: 0 0 20px;
    font-size: 13px;
    text-align: center;
    color: var(--pdfv-text-muted);
}
.pdfv-unlock__input {
    width: 100%;
    height: 42px;
    padding: 0 14px;
    background: var(--pdfv-bg);
    border: 1px solid var(--pdfv-border);
    border-radius: var(--pdfv-radius-sm);
    color: var(--pdfv-text);
    font-size: 14px;
    margin-bottom: 12px;
    transition: var(--pdfv-transition);
    box-sizing: border-box;
}
.pdfv-unlock__input:focus {
    border-color: var(--pdfv-primary);
    box-shadow: 0 0 0 3px var(--pdfv-primary-light);
    outline: none;
}
.pdfv-unlock__btn {
    width: 100%;
    height: 42px;
    padding: 0 16px;
    background: var(--pdfv-primary);
    color: #fff;
    border: 0;
    border-radius: var(--pdfv-radius-sm);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--pdfv-transition);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.pdfv-unlock__btn:hover { background: var(--pdfv-primary-hover); }
.pdfv-unlock__btn:disabled { opacity: 0.6; cursor: not-allowed; }
.pdfv-unlock__error {
    margin-top: 12px;
    padding: 10px 12px;
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.2);
    border-radius: var(--pdfv-radius-sm);
    color: var(--pdfv-danger);
    font-size: 13px;
    text-align: center;
    display: none;
}
.pdfv-unlock__error.is-visible { display: block; }

/* ============================================================
   Mobile / small screens
   ============================================================ */
@media (max-width: 640px) {
    :root { --pdfv-toolbar-height: 44px; --pdfv-sidebar-width: 200px; }
    #outerContainer .toolbar .btn { padding: 0 8px; }
    #outerContainer #toolbarViewerMiddle { display: none; }
    #outerContainer.sidebarOpen #mainContainer { margin-left: 0; }
    #outerContainer #sidebarContainer { box-shadow: var(--pdfv-shadow-lg); }
}
