 
/* Custom styles to overwrite Bootstrap defaults */
/* Alternate row colors for DataTables odd rows*/
table.table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) > * {
  box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.05); /* Example: light gray */
}

/* Photos grid tile styles */
.photo-tile { position: relative; display: block; overflow: hidden; padding: .15rem; }
.photo-tile img { display: block; width: 100%; height: 140px; object-fit: cover; border-radius: 0.25rem; }

/* caption always visible under image */
.photo-tile .caption { display: block; margin-top: .25rem; font-size: .9rem; color: #212529; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Map badge: subtle, small and non-intrusive */
.map-badge { font-size: 0.75rem; padding: .18rem; background: rgba(0,0,0,0.65); color: #fff; border-radius: .25rem; }
.map-badge svg { width: 14px; height: 14px; display: block; }

/* focus style for keyboard users */
.photo-tile:focus { outline: none; box-shadow: 0 0 0 3px rgba(13,110,253,0.25); border-radius: .25rem; }

/* mobile-first tweaks */
@media (max-width: 576px) {
  .photo-tile img { height: 160px; }
  .photo-tile .caption { font-size: .95rem; }
  .map-badge { padding: .22rem; }
}

/* badges container and year badge */
.badges-container { gap: .25rem; }
.year-badge { background: rgba(0,0,0,0.65); color: #fff; padding: .12rem .4rem; border-radius: .25rem; font-size: .85rem; line-height: 1; min-height: 18px; display: inline-flex; align-items: center; }
.year-badge::after { content: ''; display: inline-block; width: 0; }