/* Admin Dashboard — shares the same header, nav, and Bootstrap theming as
   every other standalone page (account.html, templates.html) and the editor
   itself: /styles.css is loaded directly (see admin-dashboard.html) instead
   of duplicating .tv-topbar/.tv-brand-mark/.tv-btn-* locally, which is
   exactly how this page's header drifted out of visual sync before. Only
   the body-scroll override (styles.css sets `overflow:hidden;height:100dvh`
   for the single-page canvas editor, which would break scrolling here) and
   this page's own dashboard-specific rules live below. */

body {
  overflow: auto !important;
  height: auto !important;
  min-height: 100dvh;
  font-variant-numeric: tabular-nums;
}

:root {
  --accent: #693bff;
  --accent-soft: #ede9ff;
  --good: #1a9e6b;
  --bad: #d13438;
  --warn: #b5790a;
}

/* Summary cards: colored left border keyed to each metric via --accent-tint
   (set inline per card in admin-dashboard.js), Bootstrap .card for everything else. */
.dash-card {
  border-left: 3px solid var(--accent-tint, var(--accent));
}
.dash-card-label {
  font-size: .72rem; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; color: var(--tv-ink-soft);
}
.dash-card-value { font-size: 1.9rem; font-weight: 700; letter-spacing: -.02em; line-height: 1; }
.dash-card-sub { font-size: .78rem; color: var(--tv-ink-soft); }

/* Table tweaks not covered by Bootstrap's .table */
.dash-table th { font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--tv-ink-soft); white-space: nowrap; }
.dash-table td { font-size: .85rem; vertical-align: middle; white-space: nowrap; }
.dash-table td.dash-cell-wrap { white-space: normal; max-width: 320px; }
.dash-table td.dash-cell-muted { color: var(--tv-ink-soft); }
.dash-empty-row td { color: var(--tv-ink-soft); text-align: center; padding: 24px 16px; }

.dash-link { color: var(--tv-accent); font-weight: 600; text-decoration: none; }
.dash-link:hover { text-decoration: underline; }
