:root {
  --green-primary: #2ecc71;
  --green-dark: #1a5c35;
  --green-darker: #14432a;
  --green-sidebar: #1b6b3a;
  --green-light: #d5f5e3;
  --green-accent: #27ae60;
  --green-hover: #239b56;
}

html {
  font-size: 15px;
}

body {
  margin: 0;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  background-color: #f0faf4;
}

/* Sidebar */
#sidebar {
  background: linear-gradient(180deg, var(--green-darker) 0%, var(--green-sidebar) 100%) !important;
}

#sidebar .nav-link:hover {
  background-color: rgba(255, 255, 255, 0.12);
  border-radius: 6px;
}

#sidebar .nav-link.active {
  background-color: rgba(255, 255, 255, 0.18);
  border-radius: 6px;
}

#sidebar .border-bottom {
  border-color: rgba(255, 255, 255, 0.15) !important;
}

/* Sidebar section headers */
.sidebar-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  margin: 2px 0;
  color: #8fdfb0;
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-decoration: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s;
}

.sidebar-section-header:hover {
  background-color: rgba(255, 255, 255, 0.1);
  color: #b8f0d0;
}

.sidebar-section-header[aria-expanded="false"] .sidebar-chevron {
  transform: rotate(-90deg);
}

.sidebar-chevron {
  font-size: 0.75rem;
  transition: transform 0.25s ease;
}

/* Sidebar links */
.sidebar-link {
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 0.9rem;
  padding: 6px 12px !important;
  border-radius: 6px;
  transition: background-color 0.2s, color 0.2s;
}

.sidebar-link:hover {
  color: #fff !important;
  background-color: rgba(255, 255, 255, 0.12);
}

.sidebar-brand {
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

/* Top navbar */
.navbar.bg-white {
  border-bottom-color: var(--green-light) !important;
}

/* Buttons */
.btn-primary {
  background-color: var(--green-primary) !important;
  border-color: var(--green-primary) !important;
  color: #fff !important;
}
.btn-primary:hover {
  background-color: var(--green-hover) !important;
  border-color: var(--green-hover) !important;
}

.btn-outline-primary {
  color: var(--green-accent) !important;
  border-color: var(--green-accent) !important;
}
.btn-outline-primary:hover {
  background-color: var(--green-accent) !important;
  color: #fff !important;
}

/* Tables */
.table-dark {
  background-color: var(--green-dark) !important;
  --bs-table-bg: var(--green-dark) !important;
}

.table-dark th {
  background-color: var(--green-dark) !important;
  border-color: rgba(255,255,255,0.1) !important;
}

.table th {
  font-weight: 600;
  white-space: nowrap;
}

/* Cards */
.card {
  border-radius: 8px;
  border-color: #c8e6c9;
}

.card-header {
  background-color: var(--green-light) !important;
  border-bottom-color: #c8e6c9 !important;
  color: var(--green-dark);
}

.btn {
  border-radius: 6px;
}

/* Alert success */
.alert-success {
  background-color: var(--green-light) !important;
  border-color: #a9dfbf !important;
  color: var(--green-dark) !important;
}

/* Login page */
.card.shadow .btn-primary {
  background: linear-gradient(135deg, var(--green-primary), var(--green-accent)) !important;
  border: none !important;
}

/* Dashboard cards border overrides */
.card.border-primary {
  border-color: var(--green-primary) !important;
}
.card.border-primary .text-primary,
.text-primary {
  color: var(--green-accent) !important;
}

/* Badge overrides */
.badge.bg-primary {
  background-color: var(--green-accent) !important;
}
.badge.bg-info {
  background-color: #48c9b0 !important;
}

/* Pagination / active states */
.page-item.active .page-link {
  background-color: var(--green-primary);
  border-color: var(--green-primary);
}

/* Links */
a {
  color: var(--green-accent);
}
a:hover {
  color: var(--green-hover);
}

/* Sidebar brand icon */
#sidebar h5 .bi-buildings {
  color: var(--green-primary);
}

/* Form focus */
.form-control:focus, .form-select:focus {
  border-color: var(--green-primary);
  box-shadow: 0 0 0 0.2rem rgba(46, 204, 113, 0.25);
}
