/* ============================================================
   NIVAC – Carbon Program (Soil Test)
   Brand palette: forest-green primary, earth-olive accent
   ============================================================ */

:root {
  --cp-dark:    #132a13;   /* sidebar / footer deep green  */
  --cp-primary: #1b5e20;   /* header / key elements        */
  --cp-mid:     #2e7d32;   /* hover, badges                */
  --cp-accent:  #4caf50;   /* border highlight, scrollbar  */
  --cp-light:   #e8f5e9;   /* th background, card tints    */
  --cp-text:    #1b2e1b;   /* body text                    */
  --cp-gold:    #f9a825;   /* warning accent               */
}

/* ── Body ──────────────────────────────────────────────── */
body {
  background: #f2f7f2;
  color: var(--cp-text);
}

/* ── Typography helpers ────────────────────────────────── */
td {
  font-weight: 400;
  font-family: 'Barlow', sans-serif;
  font-size: 13.5px;
}

th {
  font-family: 'News Cycle', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--cp-primary);
  background: var(--cp-light);
  border-top: 2px solid var(--cp-accent) !important;
}

/* ── Layout helpers ────────────────────────────────────── */
.no-padding   { padding: 0; }
.padding-10   { padding: 10px; }
.padding-20   { padding: 20px; }

.font-color-fff    { color: #fff; }
.font-color-green  { color: var(--cp-mid); }
.font-color-red    { color: #c62828; }

/* Scrollable table wrapper — use instead of fixed-height divs */
.table-div-scroll {
  overflow-x: auto;
}

/* ── Header bar ────────────────────────────────────────── */
.admin-header {
  background: linear-gradient(135deg, var(--cp-primary) 0%, var(--cp-mid) 60%, #33691e 100%);
  border-bottom: 3px solid var(--cp-accent);
  min-height: 66px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}

/* ── Sidebar ───────────────────────────────────────────── */
.admin-menu {
  background: var(--cp-dark);
  border-right: 3px solid var(--cp-accent);
  /* height/overflow controlled by flex parent (.admin-body) */
}

/* ── Page headings ─────────────────────────────────────── */
.heading {
  font-family: 'Josefin Sans', sans-serif;
  color: var(--cp-primary);
}

/* ── Footer ────────────────────────────────────────────── */
.footer {
  background: var(--cp-dark);
  color: #c8e6c9;
  min-height: 46px;
  border-top: 2px solid var(--cp-accent);
  font-size: 12px;
}

/* ── Bootstrap card tweaks ─────────────────────────────── */
.card {
  border-radius: 6px;
  border-color: #d0e8d0;
  box-shadow: 0 1px 4px rgba(27,94,32,0.08);
}

.card-header {
  background: #f0f9f0;
  border-bottom: 1px solid #c8e6c9;
  font-size: 14px;
}

/* ── Navbar links ──────────────────────────────────────── */
.navbar-nav .nav-link {
  color: #c8e6c9 !important;
  font-size: 14px;
}

.navbar-nav .nav-link:hover { color: #fff !important; }

.dropdown-menu {
  border: 1px solid var(--cp-accent);
}

.dropdown-item:hover {
  background: var(--cp-light);
  color: var(--cp-primary);
}

/* ── Table ─────────────────────────────────────────────── */
.table-bordered { border-color: #c8e6c9; }

.table-striped tbody tr:nth-of-type(odd) { background: #f0f9f0; }

.table-hover tbody tr:hover { background: #dcedc8; }

/* ── Alerts ────────────────────────────────────────────── */
.alert-success { background: #e8f5e9; border-color: var(--cp-accent); color: var(--cp-primary); }
.alert-light   { background: #f0f9f0; border-color: #c8e6c9; }

/* ── Buttons ───────────────────────────────────────────── */
.btn-success          { background: var(--cp-mid); border-color: var(--cp-mid); color: #fff !important; }
.btn-success:hover    { background: var(--cp-primary); border-color: var(--cp-primary); color: #fff !important; }
.btn-outline-success  { color: var(--cp-mid); border-color: var(--cp-mid); }
.btn-outline-success:hover { background: var(--cp-mid); color: #fff; }

/* Warning buttons: yellow bg needs dark text for contrast */
.btn-warning,
.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active { color: #212529 !important; background-color: #f9a825; border-color: #f9a825; }
.btn-warning:hover  { background-color: #e69100; border-color: #e69100; }
.btn-outline-warning       { color: #e65100; border-color: #f9a825; }
.btn-outline-warning:hover { background-color: #f9a825; color: #212529; }

/* ── Progress bar ──────────────────────────────────────── */
.progress-bar.bg-success { background: var(--cp-mid) !important; }

/* ── Bootstrap 4 → 5 badge compatibility ───────────────── */
/* BS5 removed badge-* color classes; restore them here     */
.badge {
  color: #fff;   /* ensure all badges default to white text */
}
.badge-success   { background-color: var(--cp-mid)  !important; color: #fff    !important; }
.badge-primary   { background-color: #1976d2         !important; color: #fff    !important; }
.badge-info      { background-color: #0288d1         !important; color: #fff    !important; }
.badge-warning   { background-color: #f9a825         !important; color: #212529 !important; }
.badge-danger    { background-color: #c62828         !important; color: #fff    !important; }
.badge-secondary { background-color: #546e7a         !important; color: #fff    !important; }
.badge-dark      { background-color: #37474f         !important; color: #fff    !important; }
.badge-light     { background-color: #f5f5f5         !important; color: #212529 !important; }

/* ── Bootstrap 4 → 5 thead-light compatibility ─────────── */
.thead-light th {
  background-color: #f8f9fa !important;
  color: #495057 !important;
  border-color: #dee2e6 !important;
}

/* ── Bootstrap 4 → 5 border-left utility compatibility ─── */
.border-left-success { border-left: 4px solid var(--cp-mid)  !important; }
.border-left-info    { border-left: 4px solid #1976d2         !important; }
.border-left-warning { border-left: 4px solid #f9a825         !important; }
.border-left-primary { border-left: 4px solid #1565c0         !important; }
.border-left-danger  { border-left: 4px solid #c62828         !important; }
.border-left-secondary { border-left: 4px solid #546e7a       !important; }

/* ── Bootstrap 4 → 5 spacing shims (mr-* / ml-*) ───────── */
.mr-1 { margin-right: 0.25rem !important; }
.mr-2 { margin-right: 0.5rem  !important; }
.mr-3 { margin-right: 1rem    !important; }
.ml-1 { margin-left:  0.25rem !important; }
.ml-2 { margin-left:  0.5rem  !important; }
.ml-3 { margin-left:  1rem    !important; }
.ml-auto { margin-left: auto  !important; }
.mr-auto { margin-right: auto !important; }
.pr-3 { padding-right: 1rem   !important; }
.pl-3 { padding-left:  1rem   !important; }

/* ── Bootstrap 4 → 5 text utility shims ────────────────── */
.text-xs { font-size: 0.7rem; }
.font-weight-bold   { font-weight: 700 !important; }
.font-weight-600    { font-weight: 600 !important; }
.text-capitalize    { text-transform: capitalize !important; }
.text-uppercase     { text-transform: uppercase  !important; }

/* ── Bootstrap 4 h-100 / d-flex shims ──────────────────── */
.h-100 { height: 100% !important; }

/* ── Scrollbar ─────────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #e8f5e9; border-radius: 6px; }
::-webkit-scrollbar-thumb { background: var(--cp-accent); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--cp-mid); }

/* ── Pagination ────────────────────────────────────────── */
.pagination {
  margin-bottom: 0;
}
.pagination .page-link {
  color: var(--cp-primary);
  border-color: #c8e6c9;
  font-size: 13px;
  padding: 4px 10px;
}
.pagination .page-link:hover {
  background: var(--cp-light);
  border-color: var(--cp-accent);
  color: var(--cp-mid);
}
.pagination .page-item.active .page-link {
  background: var(--cp-mid);
  border-color: var(--cp-mid);
  color: #fff;
}
.pagination .page-item.disabled .page-link {
  color: #aaa;
  border-color: #e0e0e0;
}

/* ── Role badge in header ──────────────────────────────── */
.role-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  background: rgba(255,255,255,0.2);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.4);
}
