/* ========================================
   CivicAlert – Custom styles
   ======================================== */

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background-color: #f8f9fa;
}

/* Map */
#map {
  height: 520px;
  border-radius: .5rem;
  box-shadow: 0 2px 12px rgba(0,0,0,.12);
}

#map-report {
  height: 380px;
  border-radius: .5rem;
  cursor: crosshair;
  border: 2px solid #dee2e6;
}

#map-report.map-ready {
  border-color: #0d6efd;
}

/* Category color badges */
.cat-badge {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .82rem;
  padding: .25rem .65rem;
  border-radius: 20px;
  font-weight: 500;
}

/* Report card */
.report-card {
  transition: transform .15s, box-shadow .15s;
  border: none;
  box-shadow: 0 1px 6px rgba(0,0,0,.08);
}

.report-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(0,0,0,.13);
}

/* Photo thumbnails */
.photo-thumb {
  width: 100px;
  height: 80px;
  object-fit: cover;
  border-radius: .375rem;
  cursor: pointer;
  transition: opacity .15s;
}

.photo-thumb:hover {
  opacity: .85;
}

/* Upload preview */
#photo-preview {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .5rem;
}

#photo-preview img {
  width: 90px;
  height: 72px;
  object-fit: cover;
  border-radius: .375rem;
  border: 2px solid #dee2e6;
}

/* Stat cards */
.stat-card {
  border: none;
  border-radius: .75rem;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
}

.stat-card .stat-icon {
  font-size: 2.5rem;
  opacity: .85;
}

/* Leaflet popup overrides */
.leaflet-popup-content-wrapper {
  border-radius: .5rem !important;
  box-shadow: 0 4px 16px rgba(0,0,0,.18) !important;
}

.leaflet-popup-content {
  margin: 12px 16px !important;
  min-width: 180px;
}

/* Status filter tabs */
.status-tabs .nav-link {
  border-radius: 20px;
  padding: .3rem 1rem;
  font-size: .88rem;
}

/* Admin sidebar */
.admin-sidebar {
  min-height: calc(100vh - 70px);
  background: #212529;
}

.admin-sidebar .nav-link {
  color: rgba(255,255,255,.75);
  border-radius: .375rem;
  padding: .6rem 1rem;
  margin-bottom: .15rem;
  transition: background .15s;
}

.admin-sidebar .nav-link:hover,
.admin-sidebar .nav-link.active {
  background: rgba(255,255,255,.12);
  color: #fff;
}

/* Responsive adjustments */
@media (max-width: 576px) {
  #map { height: 300px; }
  #map-report { height: 260px; }
}
