/* Shared document viewer, scoped to its native dialog. Existing area themes remain independent. */
.secure-document-dialog {
    --sdv-surface: var(--admin-surface, var(--card-bg, #fff));
    --sdv-bg: var(--admin-bg, var(--bg-light, #f1f5f9));
    --sdv-text: var(--text-dark, #1e293b);
    --sdv-muted: var(--text-light, #64748b);
    --sdv-border: var(--border-color, #e2e8f0);
    --sdv-accent: var(--accent-teal, #14b8a6);
    width: min(1120px, calc(100vw - 32px)); max-width: none;
    height: min(900px, calc(100dvh - 32px)); max-height: calc(100dvh - 32px);
    margin: auto; padding: 0; border: 1px solid var(--sdv-border); border-radius: 16px;
    color: var(--sdv-text); background: var(--sdv-surface);
    box-shadow: 0 24px 80px rgb(0 0 0 / .3); overflow: hidden;
    font: 15px/1.5 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.secure-document-dialog[open] { display: flex; flex-direction: column; }
.secure-document-dialog::backdrop { background: rgb(8 15 29 / .74); }
body.dark-mode .secure-document-dialog, html.dark-mode .secure-document-dialog,
[data-theme="dark"] .secure-document-dialog, .dark .secure-document-dialog,
.darkmode .secure-document-dialog, .dark-theme .secure-document-dialog {
    --sdv-surface: #1e293b; --sdv-bg: #0f172a; --sdv-text: #f1f5f9;
    --sdv-muted: #cbd5e1; --sdv-border: #334155;
    color-scheme: dark;
}
.secure-document-dialog * { box-sizing: border-box; }
.secure-document-dialog [hidden] { display: none !important; }
.secure-document-dialog[data-preview-state="loading"] .sdv-stage { visibility: hidden; }
.secure-document-dialog[data-preview-state="error"] .sdv-stage { display: none; }
.secure-document-dialog[data-preview-state="ready"] .sdv-stage { visibility: visible; }
.secure-document-dialog .sdv-header, .secure-document-dialog .sdv-files,
.secure-document-dialog .sdv-pages, .secure-document-dialog .sdv-footer { background: var(--sdv-surface); color: var(--sdv-text); }
.secure-document-dialog .sdv-expand { margin-left: auto; }
.secure-document-dialog .sdv-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; border-bottom: 1px solid var(--sdv-border); flex: 0 0 auto; }
.secure-document-dialog .sdv-heading { min-width: 0; }
.secure-document-dialog h2 { margin: 0; font-size: 19px; line-height: 1.35; color: var(--sdv-text); overflow-wrap: anywhere; }
.secure-document-dialog .sdv-file-name { margin: 4px 0 0; color: var(--sdv-muted); font-size: 13px; overflow-wrap: anywhere; }
.secure-document-dialog button, .secure-document-dialog .sdv-actions a {
    display: inline-flex; align-items: center; justify-content: center; min-height: 36px;
    padding: 6px 12px; margin: 0; border: 1px solid var(--sdv-border); border-radius: 8px;
    background: var(--sdv-surface); color: var(--sdv-text); font: inherit; font-size: 13px;
    text-decoration: none; cursor: pointer; flex-shrink: 0;
}
.secure-document-dialog button:hover:not(:disabled), .secure-document-dialog .sdv-actions a:hover { border-color: var(--sdv-accent); }
.secure-document-dialog button:focus-visible, .secure-document-dialog a:focus-visible, .secure-document-dialog .sdv-content:focus-visible { outline: 2px solid var(--sdv-accent); outline-offset: 2px; }
.secure-document-dialog button:disabled { opacity: .4; cursor: default; }
.secure-document-dialog .sdv-close { font-weight: 600; }
.secure-document-dialog .sdv-files, .secure-document-dialog .sdv-pages { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; flex: 0 0 auto; gap: 12px; padding: 8px 12px; border-bottom: 1px solid var(--sdv-border); }
.secure-document-dialog .sdv-zoom { display: inline-flex; gap: 4px; align-items: center; }
.secure-document-dialog .sdv-page-count, .secure-document-dialog .sdv-file-count { text-align: center; font-size: 13px; min-width: 72px; }
.secure-document-dialog .sdv-content { position: relative; flex: 1 1 auto; min-height: 0; overflow: auto; padding: 16px; background: var(--sdv-bg); overscroll-behavior: contain; }
.secure-document-dialog .sdv-content > .sdv-status { position: absolute; top: 16px; left: 16px; right: 16px; z-index: 1; }
.secure-document-dialog .sdv-status { margin: 20px auto; max-width: 580px; text-align: center; color: var(--sdv-muted); }
.secure-document-dialog .sdv-error { padding: 16px; border: 1px solid #ef4444; border-radius: 8px; color: var(--sdv-text); }
.secure-document-dialog .sdv-stage { width: 100%; max-width: 1200px; margin: auto; text-align: center; }
.secure-document-dialog canvas, .secure-document-dialog img, .secure-document-dialog video { display: block; width: auto; max-width: 100%; height: auto; margin: 0 auto; user-select: none; -webkit-user-select: none; }
.secure-document-dialog canvas { max-height: none; max-width: none; background: #fff; box-shadow: 0 2px 10px rgb(0 0 0 / .12); }
.secure-document-dialog .sdv-pdf-page { position: relative; margin: 0 auto 16px; background: #fff; color: #475569; box-shadow: 0 2px 10px rgb(0 0 0 / .12); overflow-anchor: none; }
.secure-document-dialog .sdv-pdf-page canvas { position: absolute; inset: 0; margin: 0; box-shadow: none; }
.secure-document-dialog .sdv-page-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; margin: 0; padding: 20px; color: #475569; font-size: 13px; }
.secure-document-dialog .sdv-document-page { scroll-margin-top: 16px; }
.secure-document-dialog video { max-height: 62dvh; }
.secure-document-dialog audio { width: min(100%, 600px); }
.secure-document-dialog .sdv-footer { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 20px; border-top: 1px solid var(--sdv-border); color: var(--sdv-muted); font-size: 12px; }
.secure-document-dialog .sdv-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.secure-document-dialog.secure-document-embedded { display: flex; flex-direction: column; position: relative; width: 100%; height: 82vh; min-height: 420px; max-height: 1100px; margin: 0; box-shadow: none; }
.secure-document-dialog.sdv-expanded { position: fixed; inset: 0; width: 100%; max-width: 100vw; height: 100vh; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; }
.secure-document-dialog.sdv-expanded .sdv-stage { max-width: none; }
.secure-document-dialog.sdv-expanded video { max-height: calc(100dvh - 200px); }
.secure-document-dialog.viewer-container { background: var(--sdv-surface); border-color: var(--sdv-border); }
.secure-public-viewer { min-width: 0; width: 100%; min-height: 420px; }
.viewer-container.secure-public-viewer { padding: 0; height: 82vh; overflow: hidden; }
.secure-document-dialog.secure-document-embedded.sdv-expanded { position: fixed; inset: 0; width: 100vw; height: 100dvh; min-height: 0; max-height: 100dvh; z-index: 100000; border-radius: 0; }
html.secure-document-embedded-open { overflow: hidden; }
.handbook-preview-row > td { padding: 12px !important; }
.hb-page .manual-handbook-page .handbook-table { table-layout: fixed; min-width: 0; width: 100%; }
.hb-page .manual-handbook-page .handbook-table > :is(thead,tbody) > tr > :is(th,td) { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 600px) {
    .hb-page .manual-handbook-page .handbook-table > thead { display: none; }
    .hb-page .manual-handbook-page .handbook-table > tbody > tr { display: flex; flex-wrap: wrap; }
    .hb-page .manual-handbook-page .handbook-table > tbody > tr > td { flex: 1 1 140px; min-width: 0; padding: 10px; }
    .hb-page .manual-handbook-page .handbook-table > tbody > tr.handbook-preview-row > td { flex-basis: 100%; width: 100%; }
}
.secure-document-dialog .sdv-document-preview { text-align: left; padding: 20px; border: 1px solid var(--sdv-border); border-radius: 8px; background: var(--sdv-surface); color: var(--sdv-text); }
.secure-document-dialog .sdv-document-preview h3 { color: var(--sdv-text); font-weight: 600; font-size: 18px; line-height: 1.4; margin: 20px 0 12px; }
.secure-document-dialog .sdv-document-preview p { color: inherit; white-space: pre-wrap; overflow-wrap: anywhere; margin: 10px 0; }
.secure-document-dialog .sdv-document-preview pre { margin: 0; padding: 12px; color: var(--sdv-text); background: var(--sdv-bg); border: 1px solid var(--sdv-border); white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; }
.secure-document-dialog .sdv-preview-notice { padding: 12px; background: var(--sdv-bg); border-left: 3px solid var(--sdv-accent); font-size: 13px; }
.secure-document-dialog .sdv-preview-table { max-width: 100%; overflow: auto; margin: 12px 0; }
.secure-document-dialog .sdv-preview-table table { border-collapse: collapse; width: max-content; min-width: 100%; background: transparent; color: inherit; }
.secure-document-dialog .sdv-preview-table td { padding: 8px; min-width: 80px; max-width: 320px; border: 1px solid var(--sdv-border); white-space: pre-wrap; overflow-wrap: anywhere; color: inherit; background: transparent; }
html.secure-document-open { overflow: hidden; }
.secure-document-standalone { margin: 0; padding: 24px; background: #f8fafc; color: #1e293b; font: 16px/1.6 system-ui, sans-serif; }
.secure-document-standalone.dark-mode { background: #0f172a; color: #f1f5f9; }
.secure-document-standalone > main { max-width: 800px; margin: 8vh auto; padding: 24px; border: 1px solid #94a3b8; border-radius: 16px; }
.secure-document-standalone h1 { font-size: 24px; overflow-wrap: anywhere; }
.secure-document-standalone main button, .secure-document-standalone main a { display: inline-block; padding: 10px 16px; border: 1px solid #14b8a6; border-radius: 8px; color: inherit; background: transparent; font: inherit; cursor: pointer; }
.viewer-container.secure-document-launch { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 230px; height: auto; padding: 32px 20px; text-align: center; }
.viewer-container.secure-document-launch > i { font-size: 36px; }
.viewer-container.secure-document-launch h3, .viewer-container.secure-document-launch p { margin: 0; }
@media (max-width: 560px) {
    .secure-document-dialog { width: calc(100vw - 12px); height: calc(100dvh - 12px); max-height: calc(100dvh - 12px); border-radius: 12px; }
    .secure-document-dialog .sdv-header { padding: 12px; gap: 8px; }
    .secure-document-dialog h2 { font-size: 16px; }
    .secure-document-dialog .sdv-content { padding: 8px; }
    .secure-document-dialog .sdv-files, .secure-document-dialog .sdv-pages { gap: 6px; }
    .secure-document-dialog button { padding: 6px 8px; font-size: 12px; }
    .secure-document-dialog .sdv-footer { padding: 8px 12px; }
}
@media print { html.secure-document-open body > * { display: none !important; } }
@media print { .secure-document-embedded { display: none !important; } }
