:root {
  --cit-primary: #0d47a1;
  --cit-accent: #ffc107;
}

body { background: #f4f6f9; }

.flash-toast {
  position: fixed;
  top: 15px;
  right: 15px;
  z-index: 2000;
  min-width: 280px;
  max-width: 90vw;
}

/* ---------- Public site ---------- */
.hero-section {
  background: linear-gradient(135deg, var(--cit-primary), #1565c0);
  color: #fff;
  padding: 90px 0 70px;
}
.hero-section h1 { font-weight: 700; }
.service-card, .job-card, .stat-card {
  border: none;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
  transition: transform .15s ease, box-shadow .15s ease;
  height: 100%;
}
.service-card:hover, .job-card:hover { transform: translateY(-4px); box-shadow: 0 8px 20px rgba(0,0,0,.1); }
.icon-circle {
  width: 60px; height: 60px; border-radius: 50%;
  background: rgba(13,71,161,.1); color: var(--cit-primary);
  display:flex; align-items:center; justify-content:center; font-size: 1.6rem;
}
.map-frame { border-radius: 12px; overflow: hidden; border:0; width:100%; height:320px; }

/* ---------- Dashboard layout ---------- */
.app-body { display: flex; min-height: calc(100vh - 56px); }
.sidebar { width: 260px; flex-shrink: 0; }
.main-content { flex: 1; padding: 24px; min-width: 0; }

@media (min-width: 992px) {
  .sidebar { position: sticky; top: 56px; height: calc(100vh - 56px); overflow-y: auto; }
}

.nav-pills .nav-link { color:#333; border-radius:8px; }
.nav-pills .nav-link.active { background: var(--cit-primary); color:#fff; }
.nav-pills .nav-link:hover:not(.active) { background:#eef2f8; }

.stat-card { padding: 20px; }
.stat-card .value { font-size: 1.8rem; font-weight:700; }

table.dt-table th { white-space: nowrap; }

.avatar-lg { width:110px; height:110px; object-fit:cover; border-radius:50%; }

@media (max-width: 991.98px) {
  .main-content { padding: 16px; }
}
