body.dark-mode {
  --bg: #0b0f12;
  --bg-deep: #14191d;
  --panel: rgba(19, 24, 28, 0.9);
  --panel-strong: #171d22;
  --text: #f7f1e8;
  --muted: #c6b9ad;
  --border: rgba(247, 241, 232, 0.16);
  --accent: #ffad7a;
  --accent-soft: #3d2a21;
  --secondary: #9edfe5;
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.48);
  --archive-bg: #0b0f12;
  --archive-panel: rgba(24, 30, 35, 0.94);
  --archive-panel-solid: #182026;
  --archive-ink: #fff7ed;
  --archive-muted: #cdbfb1;
  --archive-border: rgba(255, 247, 237, 0.17);
  --archive-warm: #ffb182;
  --archive-cool: #9edfe5;
  --archive-gold: #f4cc7a;
  --archive-shadow: 0 26px 70px rgba(0, 0, 0, 0.52);
  --ticket-paper: linear-gradient(135deg, #1b2228 0%, #11171c 100%);
  --ticket-ink: var(--archive-ink);
  --ticket-muted: var(--archive-muted);
  --ticket-stamp: var(--archive-warm);
  --ticket-shadow: 0 24px 70px rgba(0, 0, 0, 0.5);
  --ticket-perf: rgba(255, 247, 237, 0.24);
  background:
    radial-gradient(circle at top left, rgba(255, 177, 130, 0.13), transparent 28%),
    radial-gradient(circle at top right, rgba(158, 223, 229, 0.1), transparent 24%),
    linear-gradient(180deg, var(--bg) 0%, #10161a 46%, var(--bg-deep) 100%);
}

body.dark-mode .tabs,
body.dark-mode .app-state,
body.dark-mode #insights-view,
body.dark-mode #venues-view,
body.dark-mode #timeline-view,
body.dark-mode #raw-view,
body.dark-mode .metric-card,
body.dark-mode .insight-card,
body.dark-mode .venue-card,
body.dark-mode .hall-row,
body.dark-mode .timeline-item,
body.dark-mode .raw-table-wrap,
body.dark-mode .timeline-stat-card {
  background: var(--panel);
  border-color: var(--border);
  color: var(--text);
}

body.dark-mode .ticket-card {
  border-color: var(--archive-border);
  color: var(--ticket-ink);
}

body.dark-mode .timeline-style-toggle button.is-active {
  background: var(--text);
  color: var(--bg);
}

body.dark-mode .archive-badge,
body.dark-mode .ticket-badge {
  border-color: var(--archive-border);
  background: rgba(255, 255, 255, 0.04);
}
