.archive-context-menu {
    position: fixed;
    top: clamp(.5rem, var(--archive-context-menu-top), calc(100dvh - 24rem));
    left: clamp(.5rem, var(--archive-context-menu-left), calc(100% - var(--archive-modal-sidebar-space) - 21.5rem));
    z-index: 21;
    display: grid;
    width: min(19.5rem, calc(100% - var(--archive-modal-sidebar-space) - 1rem));
    max-height: min(30rem, calc(100dvh - 1rem));
    overflow-y: auto;
    overscroll-behavior: contain;
    color: var(--archive-text);
    background: var(--archive-surface);
    border: 1px solid var(--archive-border);
    border-radius: var(--dfms-surface-radius, .9rem);
    box-shadow: 0 1.25rem 2.8rem rgb(15 23 42 / 28%);
}

.archive-context-menu__separator {
    height: 1px;
    margin: .18rem .55rem;
    background: var(--archive-border);
    opacity: .8;
}
.archive-context-menu button { display: flex; align-items: center; width: 100%; min-height: 2.5rem; padding: .46rem .75rem; color: var(--archive-text); background: transparent; border: 0; font: inherit; font-size: .79rem; line-height: 1.45; text-align: right; cursor: pointer; }
.archive-context-menu button:hover {
    color: var(--archive-primary);
    background: var(--archive-primary-soft);
}

.archive-context-menu button:focus-visible {
    color: var(--archive-primary);
    background: var(--archive-primary-soft);
    outline: 2px solid var(--archive-primary);
    outline-offset: -2px;
}
.archive-context-menu button.archive-context-menu__danger { color: var(--dfms-danger, #dc2626); }
.archive-context-menu button.archive-context-menu__danger:hover,
.archive-context-menu button.archive-context-menu__danger:focus-visible { color: var(--dfms-danger, #dc2626); background: rgb(220 38 38 / 10%); }

@media (max-width: 37.5rem) {
    .archive-context-menu {
        top: clamp(
            max(.5rem, env(safe-area-inset-top, 0px)),
            var(--archive-context-menu-top),
            calc(100dvh - 25.5rem - env(safe-area-inset-bottom, 0px))
        );
        right: max(.5rem, env(safe-area-inset-right, 0px));
        left: max(.5rem, env(safe-area-inset-left, 0px));
        width: auto;
        max-height: min(
            25rem,
            calc(
                100dvh
                - env(safe-area-inset-top, 0px)
                - env(safe-area-inset-bottom, 0px)
                - 1rem
            )
        );
    }
}
