/* ==========================================================================
   Legal Evidence Portal — Dark Mode
   Activated by html.dark class. Overrides brand.css tokens and
   hardcoded colours in legal.css / legal-nav.css / legal-court.css /
   components.css for a professional dark aesthetic.
   ========================================================================== */

/* ---------- Token overrides ---------- */

html.dark {
  --bg-primary: #0f172a;
  --bg-surface: #1e293b;
  --bg-accent: #f1f5f9;
  --bg-accent-soft: #cbd5e1;
  --text-primary: #f1f5f9;
  --text-secondary: #94a3b8;
  --text-tertiary: #64748b;
  --text-inverse: #0f172a;
  --accent-warm: #d4a017;
  --accent-warm-hover: #e8b82a;
  --accent-link: #7cb8d4;
  --accent-link-hover: #a3d0e8;
  --border: rgba(255, 255, 255, 0.08);
  --border-strong: rgba(255, 255, 255, 0.15);

  color-scheme: dark;
}

/* ---------- Nav ---------- */

html.dark .site-nav {
  background: rgba(15, 23, 42, 0.92);
}

/* ---------- Sidebar ---------- */

html.dark .legal-sidebar {
  background: var(--bg-primary);
}

html.dark .sidebar-link.active {
  background: rgba(212, 160, 23, 0.08);
}

/* ---------- Mobile bottom nav ---------- */

html.dark .mobile-nav {
  background: var(--bg-primary);
}

/* ---------- Status badges (keep semantic colours, darken backgrounds) ---------- */

html.dark .badge-void {
  background: #422006;
  color: #fbbf24;
  border-color: #92400e;
}

html.dark .badge-voidable {
  background: #3b2f04;
  color: #facc15;
  border-color: #854d0e;
}

html.dark .badge-stayed {
  background: #1e293b;
  color: #94a3b8;
  border-color: #334155;
}

html.dark .badge-pending {
  background: #172554;
  color: #60a5fa;
  border-color: #1e40af;
}

html.dark .badge-concluded {
  background: #1e293b;
  color: #94a3b8;
  border-color: #334155;
}

html.dark .badge-locked,
html.dark .badge-verified {
  background: #052e16;
  color: #4ade80;
  border-color: #166534;
}

html.dark .badge-mhcm {
  background: #450a0a;
  color: #f87171;
  border-color: #991b1b;
}

/* ---------- Order table row highlights ---------- */

html.dark .order-table tr.order-void td {
  background: rgba(251, 191, 36, 0.06);
}

html.dark .order-table tr.order-voidable td {
  background: rgba(250, 204, 21, 0.04);
}

html.dark .order-table tr.order-institutional td {
  background: rgba(251, 146, 60, 0.06);
}

/* ---------- MHCM day tag ---------- */

html.dark .mhcm-day {
  color: #f87171;
  background: #450a0a;
  border-color: #991b1b;
}

/* ---------- Case card hover ---------- */

html.dark .case-card:hover {
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

/* ---------- Matrix table filled cells ---------- */

html.dark .matrix-table td.matrix-filled {
  background: var(--accent-warm);
  opacity: 0.9;
}

/* ---------- Search results dropdown ---------- */

html.dark .search-results {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

/* ---------- Side panel ---------- */

html.dark .legal-panel {
  box-shadow: -4px 0 20px rgba(0, 0, 0, 0.3);
}

/* ---------- Filter button active state ---------- */

html.dark .filter-btn.active {
  background: var(--accent-link);
  color: #0f172a;
  border-color: var(--accent-link);
}

/* ---------- Scrollbar (webkit) ---------- */

html.dark ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

html.dark ::-webkit-scrollbar-track {
  background: var(--bg-primary);
}

html.dark ::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 4px;
}

html.dark ::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.2);
}

/* ---------- Selection ---------- */

html.dark ::selection {
  background: rgba(212, 160, 23, 0.3);
  color: #f1f5f9;
}

/* ---------- Focus ring ---------- */

html.dark :focus-visible {
  outline-color: var(--accent-warm);
}

/* ---------- Court style overrides ---------- */

html.dark .court-heading {
  border-bottom-color: var(--text-secondary);
}

html.dark .doc-title-block {
  border-top-color: var(--border);
  border-bottom-color: var(--border);
}

html.dark .register th {
  border-bottom-color: var(--text-secondary);
}

/* ---------- Collapsible sidebar additions ---------- */

html.dark .sidebar-search {
  background: var(--bg-surface);
  border-color: var(--border);
  color: var(--text-primary);
}

html.dark .sidebar-search:focus {
  border-color: var(--accent-warm);
  box-shadow: 0 0 0 2px rgba(212, 160, 23, 0.2);
}

html.dark .sidebar-search-key {
  background: var(--bg-primary);
  border-color: var(--border);
}

html.dark .sidebar-summary:hover {
  background: rgba(255, 255, 255, 0.04);
}

html.dark .sidebar-divider {
  background: rgba(255, 255, 255, 0.06);
}

html.dark .sidebar-progress-bar {
  background: rgba(255, 255, 255, 0.06);
}

/* ---------- Theme-color meta (handled by JS) ---------- */

/* ---------- Print: always revert to light ---------- */

@media print {
  html.dark {
    --bg-primary: #fff;
    --bg-surface: #f5f4f0;
    --text-primary: #000;
    --text-secondary: #333;
    --border: #ccc;
  }
}
