:root { --bd-accent: #0d6efd; }

body { background: #f6f8fb; }

.navbar-brand { letter-spacing: -.01em; }

/* KPI cards */
.kpi .k { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: #6c757d; }
.kpi .v { font-size: 1.55rem; font-weight: 650; line-height: 1.1; margin-top: .15rem; }

/* funnel bars */
.fstage { margin-bottom: .55rem; }
.fconv { color: #6c757d; font-size: .78rem; margin: 0 0 .15rem .15rem; }
.fbar {
  background: linear-gradient(90deg, var(--bd-accent), #6ea8ff);
  color: #fff; border-radius: .55rem; padding: .5rem .8rem;
  display: flex; justify-content: space-between; align-items: center;
  font-weight: 600; min-width: 120px;
}
.fbar .val { font-variant-numeric: tabular-nums; }
.fcps { color: #6c757d; font-size: .78rem; margin-left: .5rem; white-space: nowrap; }
.frow { display: flex; align-items: center; }

/* month column charts (Progress) */
.colchart {
  display: flex; align-items: flex-end; gap: 4px;
  overflow-x: auto; padding-top: .25rem; border-bottom: 1px solid #e6eaf0;
}
.col-item { flex: 1 0 40px; min-width: 0; display: flex; flex-direction: column; align-items: center; }
.col-stack {
  height: 200px; width: 100%; display: flex; flex-direction: column;
  justify-content: flex-end; align-items: center;
}
.col-fill {
  width: 70%; max-width: 38px; min-height: 2px;
  background: linear-gradient(180deg, #6ea8ff, var(--bd-accent));
  border-radius: 5px 5px 0 0;
}
.col-fill.green { background: linear-gradient(180deg, #4cc38a, #198754); }
.col-num { font-size: .62rem; font-weight: 600; color: #343a40; margin-bottom: 3px;
           white-space: nowrap; font-variant-numeric: tabular-nums; }
.col-lab { font-size: .6rem; color: #6c757d; margin-top: .35rem; white-space: nowrap;
           font-variant-numeric: tabular-nums; }

/* tables */
.tbl-num td, .tbl-num th { font-variant-numeric: tabular-nums; }
.tbl-num td:not(:first-child), .tbl-num th:not(:first-child) { text-align: right; }
td.hl { color: #198754; font-weight: 600; }
td.org { color: #b8860b; }
.scroll-x { overflow: auto; max-height: 72vh; }
.scroll-x thead th { position: sticky; top: 0; background: #fff; z-index: 1; }

.section-title { font-size: .95rem; font-weight: 650; color: #343a40; margin: 1.4rem 0 .6rem; }
.note { color: #6c757d; font-size: .8rem; }
