/* ====== Card Styling ====== */
.card {
  border: none;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.card-header {
  background: #ff5722;
  color: white;
  border-radius: 12px 12px 0 0 !important;
  padding: 20px 25px;
}

.card-header h3 {
  font-weight: 600;
  margin: 0;
}

/* ====== Common Table Styling (applies to all 3 tables) ====== */
#allVisitorsTable,
#scheduledVisitorsTable,
#childVisitorTable,
#visitorTable {
  border: none;
  font-size: 14px;
}

#allVisitorsTable thead th,
#scheduledVisitorsTable thead th,
#childVisitorTable thead th,
#visitorTable thead th {
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  border: none;
  padding: 15px 12px;
  font-weight: 900;
  color: #495057;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 0.5px;
  border-bottom: 2px solid #dee2e6;
}

#allVisitorsTable tbody tr,
#scheduledVisitorsTable tbody tr,
#childVisitorTable tbody tr,
#visitorTable tbody tr {
  transition: all 0.2s ease;
  border: none;
}

#allVisitorsTable tbody tr:hover,
#scheduledVisitorsTable tbody tr:hover,
#childVisitorTable tbody tr:hover,
#visitorTable tbody tr:hover {
  background: linear-gradient(135deg, #f8f9ff 0%, #f0f4ff 100%);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

#allVisitorsTable tbody td,
#scheduledVisitorsTable tbody td,
#childVisitorTable tbody td,
#visitorTable tbody td {
  padding: 15px 12px;
  border: none;
  border-bottom: 1px solid #f0f0f0;
  vertical-align: middle;
  color: #495057;
}

#allVisitorsTable tbody tr:last-child td,
#scheduledVisitorsTable tbody tr:last-child td,
#childVisitorTable tbody tr:last-child td,
#visitorTable tbody tr:last-child td {
  border-bottom: none;
}

/* ====== Status Badges ====== */
.status-approved {
  background: #28a745;
  color: white;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.status-rejected {
  background: #dc3545;
  color: white;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.status-pending {
  background: #ffc107;
  color: white;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ====== Buttons ====== */
.btn-primary {
  background: #f59e0b;
  border: none;
  border-radius: 6px;
  padding: 6px 10px;
  transition: all 0.2s ease;
}

.btn-primary:hover {
  background: #f59e0b;
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(0, 123, 255, 0.3);
}

/* ====== Empty State ====== */
.empty-state {
  padding: 40px 20px;
  text-align: center;
  color: #6c757d;
}

.empty-state i {
  font-size: 32px;
  margin-bottom: 15px;
  color: #dee2e6;
}

/* ====== Text/Badge Elements ====== */
.org-name {
  font-weight: 600;
  color: #495057;
}

.visitor-count {
  background: #e9ecef;
  color: #495057;
  padding: 3px 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 600;
}

.visit-date {
  color: #6c757d;
  font-size: 12px;
}

@media (min-width: 1400px) {
  .container,
  .container-lg,
  .container-md,
  .container-sm,
  .container-xl,
  .container-xxl {
    max-width: 1700px !important;
  }
}
