.photo-dialog { width: min(520px, calc(100vw - 24px)); border: 0; border-radius: 16px; padding: 20px; box-shadow: 0 22px 70px rgba(20, 32, 55, .28); }
.photo-dialog::backdrop { background: rgba(18, 26, 42, .56); }
.photo-dialog h2 { margin: 0 0 12px; }
.photo-dialog > img { display: block; width: 100%; max-height: 48vh; object-fit: contain; border-radius: 10px; background: #edf1f7; margin-bottom: 14px; }
.photo-dialog > label { display: grid; gap: 6px; margin-top: 10px; color: var(--muted); font-size: 13px; }
.photo-dialog input:not([type=checkbox]), .photo-dialog textarea { width: 100%; border: 1px solid var(--border); border-radius: 9px; padding: 9px 10px; font: inherit; }
.photo-dialog textarea { min-height: 72px; resize: vertical; }
.photo-dialog .checkbox-label { display: flex; align-items: center; }
.dialog-close { float: right; border: 0; background: transparent; font-size: 25px; cursor: pointer; }
.upload-progress { position: fixed; z-index: 100; right: 18px; bottom: 18px; width: min(360px, calc(100vw - 36px)); background: #fff; border: 1px solid var(--border); border-radius: 12px; padding: 13px; box-shadow: var(--shadow); }
.upload-progress strong { display: block; margin-bottom: 8px; }
.upload-progress progress { width: 100%; }
