/* ══════════════════════════ ADMIN VIZ — ECharts + Tabulator ══════════════════════════ */

.admin-viz-charts {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 10px;
}

.admin-viz-charts--stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.admin-viz-tensions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.admin-viz-panel--wide {
  width: 100%;
}

.admin-viz-charts .admin-viz-panel--wide,
.admin-viz-tensions .admin-viz-panel--wide,
.admin-viz-charts--stack .admin-viz-panel--wide {
  grid-column: 1 / -1;
}

.admin-viz-split {
  display: grid;
  grid-template-columns: minmax(280px, 2fr) minmax(320px, 3fr);
  gap: 14px;
  align-items: start;
}

.admin-viz-split__chart {
  min-width: 0;
}

.admin-viz-split__table {
  min-width: 0;
}

.admin-viz-chart {
  width: 100%;
  min-height: 280px;
  height: clamp(240px, 32vh, 340px);
}

.admin-viz-chart--donut {
  min-height: 260px;
}

.admin-viz-chart--funnel {
  min-height: 320px;
  height: clamp(300px, 48vh, 480px);
}

.admin-viz-chart--tension {
  min-height: clamp(280px, 40vh, 420px);
  height: clamp(280px, 40vh, 420px);
}

.admin-viz-chart--ranked {
  min-height: 180px;
  height: calc(var(--bar-count, 6) * 38px + 72px);
  max-height: 520px;
}

.admin-viz-table {
  width: 100%;
  min-height: 200px;
}

.admin-metric-grid--gate {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-metric-card--accept .admin-metric-value {
  color: var(--accent-positive);
}

.admin-metric-card--reject .admin-metric-value {
  color: #c45c26;
}

/* ─── Tabulator thème ink / paper (admin recherche) */
.admin-response-times .tabulator,
.admin-parcours-funnel .tabulator {
  font-family: var(--font-body);
  font-size: 0.74rem;
  border: 1px solid var(--border);
  background: var(--paper);
  color: var(--ink);
}

.admin-response-times .tabulator .tabulator-header,
.admin-parcours-funnel .tabulator .tabulator-header {
  background: var(--paper-warm);
  border-bottom: 1px solid var(--border);
  font-weight: 800;
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-faint);
}

.admin-response-times .tabulator .tabulator-col,
.admin-parcours-funnel .tabulator .tabulator-col {
  border-right: 1px solid var(--border);
}

.admin-response-times .tabulator .tabulator-row,
.admin-parcours-funnel .tabulator .tabulator-row {
  border-bottom: 1px solid var(--border);
  min-height: 36px;
}

.admin-response-times .tabulator .tabulator-row.tabulator-row-even,
.admin-parcours-funnel .tabulator .tabulator-row.tabulator-row-even {
  background: rgba(21, 17, 14, 0.02);
}

.admin-response-times .tabulator .tabulator-row:hover,
.admin-parcours-funnel .tabulator .tabulator-row:hover {
  background: var(--accent-soft);
}

.admin-response-times .tabulator .tabulator-footer,
.admin-parcours-funnel .tabulator .tabulator-footer {
  background: var(--paper-warm);
  border-top: 1px solid var(--border);
  font-size: 0.68rem;
  color: var(--text-dim);
}

.admin-response-times .tabulator .tabulator-page,
.admin-parcours-funnel .tabulator .tabulator-page {
  border: 1px solid var(--border);
  background: var(--paper);
  color: var(--ink);
}

.admin-response-times .tabulator .tabulator-page.active,
.admin-parcours-funnel .tabulator .tabulator-page.active {
  border-color: var(--seam);
  color: var(--seam);
  font-weight: 800;
}

@media (max-width: 900px) {
  .admin-viz-charts {
    grid-template-columns: 1fr;
  }

  .admin-viz-split {
    grid-template-columns: 1fr;
  }

  .admin-metric-grid--gate {
    grid-template-columns: 1fr;
  }
}
