/* Section: Card Usage Stats (AVICI-unique)
   KPI cards + period selector + Chart.js time series + period bar chart.
   Owned by shared/dashboard/sections/cardstats/. */

.section--cardstats {
  margin-top: 2rem;
}

.section--cardstats .section-title {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  margin-bottom: 0.25rem;
}

.section--cardstats .section-title .updated-stamp {
  font-size: 0.75rem;
  color: var(--text-muted);
  font-weight: normal;
}

.section--cardstats .section-desc {
  color: var(--text-secondary);
  font-size: 0.85rem;
  margin: 0 0 1rem 0;
}

/* ── Period tabs ───────────────────────────────────────── */

.cs-period-tabs {
  display: flex;
  gap: 0.4rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.cs-period-tab {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.4rem 0.9rem;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 600;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.cs-period-tab:hover { border-color: #22c55e; color: var(--text-primary); }
.cs-period-tab.active { background: rgba(34,197,94,0.15); border-color: #22c55e; color: #22c55e; }

/* ── KPI grid (4 cards) ────────────────────────────────── */

.cs-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

.cs-kpi-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.cs-kpi-card:hover { border-color: var(--accent); }

.cs-kpi-card.active {
  background: linear-gradient(135deg, rgba(212,175,55,0.08), rgba(212,175,55,0.02));
  border-color: rgba(212,175,55,0.5);
}

.cs-kpi-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  font-weight: 600;
}

.cs-kpi-sublabel { font-size: 0.7rem; color: var(--text-secondary); margin-top: 0.15rem; }

.cs-kpi-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
  margin-top: 0.4rem;
}

/* ── Chart ────────────────────────────────────────────── */

.cs-chart-wrap {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
}

.cs-chart-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.cs-chart-title { font-size: 1rem; font-weight: 600; color: var(--text-primary); margin: 0; }

.cs-chart-controls { display: flex; gap: 0.35rem; }

.cs-range-btn {
  background: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0.3rem 0.6rem;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 600;
}

.cs-range-btn.active { background: var(--accent); color: var(--bg, #0a0a0c); border-color: var(--accent); }

/* The canvas-box owns the height; Chart.js reads it and constrains
   the canvas to fit. ``position: relative`` is the canonical
   Chart.js-recommended shape so the canvas absolutely-positions
   inside without growing past the box. */
.cs-chart-canvas-box { position: relative; height: 280px; width: 100%; }
.cs-chart-canvas-box > canvas { position: absolute; inset: 0; }

/* ── Bar chart (period summary) — the previously-broken section ── */

.cs-bar-block {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem;
}

.cs-bar-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 0 0.75rem 0;
}

.cs-bar-row {
  display: grid;
  grid-template-columns: 40px 1fr 110px 60px;
  align-items: center;
  gap: 0.6rem;
  padding: 0.4rem 0;
}

@media (max-width: 600px) {
  .cs-bar-row { grid-template-columns: 36px 1fr 90px; }
  .cs-bar-row .cs-bar-pct { display: none; }
}

.cs-bar-label { font-size: 0.75rem; color: var(--text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }

.cs-bar-track {
  background: var(--bg-secondary);
  border-radius: 4px;
  overflow: hidden;
  height: 16px;
  position: relative;
}

.cs-bar-fill {
  background: linear-gradient(90deg, #22c55e 0%, #4ade80 100%);
  height: 100%;
  width: 0%;
  transition: width 0.6s ease-out;
  border-radius: 4px;
}

.cs-bar-value {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.cs-bar-pct {
  font-size: 0.75rem;
  color: var(--text-muted);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
