/* Dateivorschau im CRM (03.11.2026): ruhiges Fenster über der Seite, Seiten auf neutraler Fläche, eine Leiste oben. */
html.dv-open, html.dv-open body { overflow: hidden; }
dialog.dv {
    width: min(1040px, calc(100vw - 48px));
    height: calc(100dvh - 48px);
    max-width: none; max-height: none;
    margin: auto; padding: 0;
    display: flex; flex-direction: column;
    /* Opaque like all pop-ups (Liquid: --lq-pop), the page must not shine through. */
    background: var(--lq-pop, var(--card)) !important; color: var(--text);
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
    border: 1px solid var(--border); border-radius: var(--r-mittel, 9px);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    font-family: var(--app-font);
}
dialog.dv:not([open]) { display: none; }
dialog.dv::backdrop { background: rgba(10, 13, 19, .55); }
html.liquid dialog.dv { border-radius: var(--lq-r-dialog, 6px); border-color: var(--lq-kante, var(--border)); }

.dv-bar {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 10px 12px 10px 20px; min-height: 56px; box-sizing: border-box;
    border-bottom: 1px solid var(--border); flex: none;
}
.dv-title { min-width: 0; display: flex; align-items: baseline; gap: 12px; }
.dv-title strong { font-size: 14px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dv-info { font-size: 12px; color: var(--muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.dv-tools { display: flex; align-items: center; gap: 6px; flex: none; }
.dv-zoom { display: flex; align-items: center; gap: 2px; margin-right: 6px; }
.dv-zoom[hidden] { display: none; }

.dv-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 36px; padding: 0 12px; box-sizing: border-box;
    background: transparent; color: var(--text);
    border: 1px solid var(--border); border-radius: var(--radius);
    font: inherit; font-size: 13px; cursor: pointer;
}
html.liquid .dv-btn { border-radius: var(--lq-r-knopf, var(--radius)); }
.dv-btn:hover:not(:disabled) { background: var(--surface-2); }
.dv-btn:disabled { opacity: .45; cursor: default; }
.dv-btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.dv-icon { width: 36px; padding: 0; }
.dv-zoom .dv-btn { border-color: transparent; min-height: 32px; }
.dv-zoom .dv-icon { width: 32px; }
.dv-level { min-width: 58px; padding: 0 6px; color: var(--muted); font-variant-numeric: tabular-nums; }
.dv-primary { background: var(--brand); border-color: var(--brand); color: var(--on-brand); }
.dv-primary:hover:not(:disabled) { background: var(--brand-hover); }

.dv-body {
    flex: 1; min-height: 0; overflow: auto; outline: none;
    background: var(--surface-2);
    -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
}
body.dark-mode .dv-body { background: #1b1d20; }
.dv-pages { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 24px; width: max-content; min-width: 100%; box-sizing: border-box; }
.dv-page { background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); flex: none; }
body.dark-mode .dv-page { box-shadow: none; }
.dv-page canvas { display: block; width: 100%; height: 100%; }
.dv-image { display: block; max-width: calc(100% - 48px); max-height: calc(100% - 48px); margin: 24px auto; object-fit: contain; background: #fff; }
.dv-note { display: grid; place-items: center; align-content: center; gap: 16px; min-height: 100%; margin: 0; padding: 24px; box-sizing: border-box; color: var(--muted); font-size: 13px; text-align: center; }
.dv-note p { margin: 0; max-width: 360px; }

@media (max-width: 700px) {
    dialog.dv { width: 100vw; height: 100dvh; border: 0; border-radius: 0 !important; }
    .dv-bar { padding: calc(8px + env(safe-area-inset-top)) 8px 8px 16px; min-height: 56px; gap: 8px; }
    .dv-title { flex-direction: column; gap: 0; }
    .dv-btn { min-height: 44px; }
    .dv-icon { width: 44px; }
    .dv-tools .dv-btn[data-dv="save"] { width: 44px; padding: 0; }
    .dv-tools .dv-btn[data-dv="save"] span { display: none; }
    .dv-zoom { display: none !important; }
    .dv-pages { padding: 8px 8px calc(16px + env(safe-area-inset-bottom)); gap: 8px; }
    .dv-image { max-width: calc(100% - 16px); margin: 8px auto; }
}
