.photo-upload {
 grid-column: 1 / -1;
 min-width: 0;
 margin: 0;
 border: 1px solid var(--line, var(--border));
 border-radius: 12px;
 padding: 12px;
 background: var(--surface, var(--card));
}
.photo-upload legend { padding: 0 5px; font-weight: 700; }
.photo-upload p { margin: 0 0 8px; }
.photo-upload small { display: block; margin-top: 8px; color: var(--muted); }
.photo-upload input[hidden] { display: none; }
.photo-thumbnails { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 8px; }
.photo-thumbnails:not(:empty) { margin-bottom: 10px; }
.photo-thumbnails img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 7px; }
.photo-thumbnails button { width: 100%; margin-top: 4px; padding: 6px; font-size: 11px; }
.photo-actions, .photo-navigation { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.photo-actions button, .photo-navigation button { font-size: 12px; padding: 8px 10px; }
.photo-dialog { width: min(740px, 94vw); max-width: 94vw; max-height: 92dvh; }
.photo-dialog .photo-album img { display: block; width: 100%; max-height: 48dvh; object-fit: contain; margin: 10px 0; }
.photo-navigation { justify-content: space-between; }
.photo-dialog form { margin: 14px 0; }
.photo-dialog [data-close] { margin-top: 10px; }
.photo-error:empty { display: none; }
.photo-error:not(:empty) { margin: 8px 0; }
.photo-link { margin-top: 8px; padding: 6px 10px; font-size: 11px; }
