/* SPDX-FileCopyrightText: 2026 Uwe Jugel */
/* SPDX-License-Identifier: AGPL-3.0-or-later */
.media-viewer {
    --media-viewer-frame-max: 1280px;
    box-sizing: border-box;
    display: flex;
    width: min(calc(var(--media-viewer-frame-max) + 32px), calc(100vw - 16px));
    height: min(calc(var(--media-viewer-frame-max) * 0.75 + 132px), calc(100dvh - 16px));
    max-width: none;
    max-height: none;
    flex-direction: column;
    padding: 12px;
    border: 1px solid var(--border-strong);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
}

.media-viewer::backdrop { background: rgb(5 8 14 / 78%); }
.media-viewer-header, .media-viewer-footer { display: flex; align-items: center; gap: 12px; }
.media-viewer-header { justify-content: space-between; }
.media-viewer-count, .media-viewer-caption { margin: 0; color: var(--text-secondary); }
.media-viewer-count { font: 0.72rem/1.4 var(--mono); }
.media-viewer-caption { flex: 1; text-align: center; font-size: 0.85rem; }
.media-viewer-stage {
    position: relative;
    display: grid;
    grid-template: minmax(0, 1fr) / minmax(0, 1fr);
    width: min(var(--media-viewer-frame-max), 100%);
    min-height: 0;
    max-height: calc(var(--media-viewer-frame-max) * 0.75);
    flex: 1;
    place-items: center;
    margin: 8px auto;
}
.media-viewer-stage img, .media-viewer-stage video {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.media-viewer.is-fit .media-viewer-stage img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.media-viewer-stage img.pixelated { image-rendering: pixelated; }
.media-viewer-close, .media-viewer-nav {
    display: inline-grid;
    min-width: 36px;
    min-height: 36px;
    place-items: center;
    padding: 4px 9px;
    border: 1px solid var(--border-strong);
    border-radius: 4px;
    background: var(--surface-2);
    color: var(--text);
    font: inherit;
    cursor: pointer;
}
.media-viewer-close { font-size: 1.25rem; line-height: 1; }
.media-viewer-nav:disabled { opacity: 0.45; cursor: default; }
.media-viewer-trigger {
    margin-top: 5px;
    padding: 3px 7px;
    border: 1px solid var(--border);
    border-radius: 3px;
    background: var(--surface-2);
    color: var(--text-secondary);
    font: 0.7rem/1.35 var(--mono);
    cursor: pointer;
}
.media-viewer-trigger[hidden] { display: none; }

@media (max-width: 480px) {
    .media-viewer { width: calc(100vw - 16px); height: calc(100dvh - 16px); padding: 8px; }
    .media-viewer-header, .media-viewer-footer { gap: 6px; }
    .media-viewer-nav { min-width: 34px; }
}
