/* 结果与普通上传预览预留稳定空间。完整显示原图/视频，不影响裁剪器或文件本身。 */
:is(.zib-app, .nude2-app) { --media-slot-bg: #f4f5f8; }
body.dark-theme :is(.zib-app, .nude2-app) { --media-slot-bg: #292b30; }
:is(.zib-app, .nude2-app) :is(img, video)[data-zib-media-slot="result"] {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 640px !important;
    /* 部分旧模板内联 height:auto/max-height；统一预览框，元数据晚到也不改变占位高度。 */
    height: clamp(220px, 60vw, 480px) !important;
    max-height: 480px !important;
    object-fit: contain !important;
    background: var(--media-slot-bg) !important;
    vertical-align: middle;
}
:is(.zib-app, .nude2-app) img.preview-img,
:is(.zib-app, .nude2-app) img.nude3-source-preview {
    box-sizing: border-box;
    width: 100%;
    height: 180px;
    max-height: 180px;
    object-fit: contain;
    background: var(--media-slot-bg);
}
/* 不让主题的 transition:all 在图片出现时对宽高做补间动画。 */
:is(.zib-app, .nude2-app) [data-zib-media-slot],
:is(.zib-app, .nude2-app) img.preview-img { transition-property: opacity, border-color, box-shadow; }
