.location-gallery { width: 100%; align-self: start; }
.location-photo-thumbnails { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 10px; background: var(--paper); }
.location-photo-thumbnail { aspect-ratio: 1; padding: 0; border: 2px solid transparent; border-radius: 9px; overflow: hidden; background: #e5ebe7; cursor: pointer; }
.location-photo-thumbnail.active { border-color: var(--coral); }
.detail-card .photo .location-photo-thumbnail img { width: 100%; height: 100%; object-fit: cover; }

.admin-photo-grid,
.upload-photo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; width: 100%; }
.admin-photo-item,
.upload-photo-grid figure { position: relative; min-width: 0; margin: 0; padding: 8px; border: 1px solid var(--line); border-radius: 12px; background: #edf2ef; }
.admin-photo-item a { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 8px; background: white; }
.admin-photo-item img,
.upload-photo-grid img,
.report-photo-grid img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }
.admin-photo-item label { display: block; margin-top: 8px; font-weight: 700; }
.admin-photo-item:has(input:checked) { opacity: .45; }
.upload-photo-grid:empty { display: none; }
.upload-photo-grid figcaption { margin-top: 6px; color: var(--muted); font-size: .85rem; }
.remove-upload-photo { position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: rgba(23,60,50,.9); color: white; font-size: 24px; line-height: 1; cursor: pointer; box-shadow: 0 3px 10px rgba(0,0,0,.2); }
.report-photo-grid { max-width: 850px; margin: 20px 0; }

@media (max-width: 600px) {
    .admin-photo-grid,
    .upload-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
