// ESI PLATFORM — Master Data Layer (matter-scoped via platform entry)
// Exposed as window.ESI_DATA[matterId] — fallback to window.ESI_DATA._default
// Scale calibrated for $400M AmLaw-100 firm

const ESI_DATA = {
  // ── Default dataset (every matter sees this unless specific matter overrides) ──
  _default: {
    kpis: {
      dataSources: 24,
      custodians: 12,
      totalVolumeGB: 4_820,
      reviewableGB: 720,
      preservedGB: 4_820,
      reductionPct: 85.1,
      activeCollectionJobs: 3,
      activeProcessingJobs: 2,
      forensicImages: 6,
      monthlyCost: 142_000,
      ytdCost: 892_000,
      costPerGB: 31.50,
      vendorCount: 6,
      chainEvents: 284,
    },

    // ── DATA SOURCES inventory ──
    sources: [
      { id: 'SRC-001', name: 'Microsoft 365 (Exchange)',     type: 'Email',         provider: 'Microsoft', volumeGB: 412.0, custodians: 12, preserved: true,  lastCollected: '2026-04-02', notes: 'Primary corporate email. In-place hold active on all identified custodians.' },
      { id: 'SRC-002', name: 'Microsoft 365 (OneDrive)',     type: 'Cloud Storage', provider: 'Microsoft', volumeGB: 284.4, custodians: 12, preserved: true,  lastCollected: '2026-04-02', notes: 'User file cloud storage. Version history retained.' },
      { id: 'SRC-003', name: 'Microsoft Teams',              type: 'Chat',          provider: 'Microsoft', volumeGB: 68.2,  custodians: 10, preserved: true,  lastCollected: '2026-03-28', notes: 'Chat + channel messages. Compliance retention 7y.' },
      { id: 'SRC-004', name: 'SharePoint (Corporate)',       type: 'File Share',    provider: 'Microsoft', volumeGB: 148.6, custodians: null, preserved: true, lastCollected: '2026-03-15', notes: 'Company-wide file share; scoped by custodian access.' },
      { id: 'SRC-005', name: 'Slack (Enterprise Grid)',      type: 'Chat',          provider: 'Slack',     volumeGB: 42.8,  custodians: 8,  preserved: true,  lastCollected: '2026-03-28', notes: 'Channels + DMs. Compliance export enabled.' },
      { id: 'SRC-006', name: 'Box.com',                      type: 'Cloud Storage', provider: 'Box',       volumeGB: 196.2, custodians: 8,  preserved: true,  lastCollected: '2026-03-20', notes: 'External file share + Collaboration.' },
      { id: 'SRC-007', name: 'Google Workspace (Gmail)',     type: 'Email',         provider: 'Google',    volumeGB: 38.4,  custodians: 2,  preserved: true,  lastCollected: '2026-04-01', notes: 'Subsidiary use; 2 custodians only.' },
      { id: 'SRC-008', name: 'Google Drive',                 type: 'Cloud Storage', provider: 'Google',    volumeGB: 24.8,  custodians: 2,  preserved: true,  lastCollected: '2026-04-01', notes: 'Subsidiary cloud storage.' },
      { id: 'SRC-009', name: 'Salesforce',                   type: 'SaaS',          provider: 'Salesforce',volumeGB: 28.4,  custodians: 6,  preserved: true,  lastCollected: '2026-03-22', notes: 'CRM records, notes, attachments. API export.' },
      { id: 'SRC-010', name: 'SAP ERP',                      type: 'ERP/Finance',   provider: 'SAP',       volumeGB: 184.0, custodians: null, preserved: true, lastCollected: '2026-03-10', notes: 'Financial + HR data; targeted table exports.' },
      { id: 'SRC-011', name: 'Intralinks VDR',               type: 'SaaS',          provider: 'Intralinks',volumeGB: 62.4,  custodians: 4,  preserved: true,  lastCollected: '2026-03-18', notes: 'Virtual data room — deal documents.' },
      { id: 'SRC-012', name: 'Bloomberg Chat / Email',       type: 'Messaging',     provider: 'Bloomberg', volumeGB: 18.2,  custodians: 3,  preserved: true,  lastCollected: '2026-03-25', notes: 'Financial-markets compliance archive.' },
      { id: 'SRC-013', name: 'GitHub Enterprise',            type: 'DevOps',        provider: 'GitHub',    volumeGB: 92.6,  custodians: 4,  preserved: true,  lastCollected: '2026-03-30', notes: 'Code repos, commits, issues, PRs.' },
      { id: 'SRC-014', name: 'Jira Software',                type: 'SaaS',          provider: 'Atlassian', volumeGB: 12.4,  custodians: 4,  preserved: true,  lastCollected: '2026-03-30', notes: 'Tickets, comments, attachments.' },
      { id: 'SRC-015', name: 'Confluence',                   type: 'SaaS',          provider: 'Atlassian', volumeGB: 38.8,  custodians: 6,  preserved: true,  lastCollected: '2026-03-30', notes: 'Wiki, team documents.' },
      { id: 'SRC-016', name: 'Mobile Devices (iPhone)',      type: 'Mobile',        provider: 'Apple',     volumeGB: 118.4, custodians: 8,  preserved: true,  lastCollected: '2026-04-08', notes: 'Cellebrite full-file-system imaging (8 devices).' },
      { id: 'SRC-017', name: 'Mobile Devices (Android)',     type: 'Mobile',        provider: 'Google',    volumeGB: 28.2,  custodians: 2,  preserved: true,  lastCollected: '2026-04-08', notes: 'Cellebrite logical imaging (2 devices).' },
      { id: 'SRC-018', name: 'Laptops (macOS)',              type: 'Laptop',        provider: 'Apple',     volumeGB: 1_240, custodians: 6,  preserved: true,  lastCollected: '2026-02-28', notes: 'E01 forensic images via EnCase.' },
      { id: 'SRC-019', name: 'Laptops (Windows)',            type: 'Laptop',        provider: 'Dell/Lenovo', volumeGB: 892, custodians: 6,  preserved: true,  lastCollected: '2026-02-28', notes: 'E01 forensic images via FTK Imager.' },
      { id: 'SRC-020', name: 'WhatsApp (enterprise archive)',type: 'Chat',          provider: 'Meta',      volumeGB: 8.4,   custodians: 3,  preserved: true,  lastCollected: '2026-04-02', notes: 'Archived via Smarsh; targeted 3 custodians.' },
      { id: 'SRC-021', name: 'Zoom (cloud recordings)',      type: 'Cloud Storage', provider: 'Zoom',      volumeGB: 84.2,  custodians: null, preserved: true, lastCollected: '2026-03-18', notes: 'Meeting recordings + transcripts.' },
      { id: 'SRC-022', name: 'iManage (DMS)',                type: 'File Share',    provider: 'iManage',   volumeGB: 142.4, custodians: null, preserved: true, lastCollected: '2026-03-12', notes: 'Document-management system.' },
      { id: 'SRC-023', name: 'Archive tapes (legacy)',       type: 'Archive',       provider: 'Iron Mountain',volumeGB: 418,  custodians: null, preserved: true, lastCollected: '2026-01-20', notes: 'Legacy Exchange backups 2018-2022; on-demand restore.' },
      { id: 'SRC-024', name: 'PST/OST export (former custodians)', type: 'Email',   provider: 'Microsoft', volumeGB: 38.2,  custodians: 4,  preserved: true,  lastCollected: '2026-03-04', notes: 'Ex-employee mailbox exports.' },
    ],

    // ── CUSTODIAN × SOURCE MAP (data map) ──
    dataMap: [
      { custodian: 'Helen Bishop',      role: 'Former CEO',             sources: ['Microsoft 365 (Exchange)', 'OneDrive', 'Teams', 'Mobile (iPhone)', 'Laptop (macOS)', 'Bloomberg Chat'], volumeGB: 184.2, priority: 'key' },
      { custodian: 'Karen Osei',        role: 'Former CFO — APAC',      sources: ['Microsoft 365 (Exchange) [archived]', 'OneDrive', 'WhatsApp', 'Bloomberg Chat'], volumeGB: 92.4,  priority: 'key' },
      { custodian: 'Marcus Pryor',      role: 'GC',                     sources: ['Microsoft 365 (Exchange)', 'OneDrive', 'Teams', 'iManage (DMS)', 'Mobile (iPhone)'], volumeGB: 142.8, priority: 'key' },
      { custodian: 'James Harrington',  role: 'CEO Meridian',           sources: ['Microsoft 365 (Exchange)', 'OneDrive', 'Teams', 'Mobile (iPhone)', 'Laptop (macOS)', 'Bloomberg Chat'], volumeGB: 218.6, priority: 'key' },
      { custodian: 'Julia Matsumoto',   role: 'Head of M&A',            sources: ['Microsoft 365 (Exchange)', 'OneDrive', 'Teams', 'Intralinks VDR'], volumeGB: 68.1, priority: 'high' },
      { custodian: 'David Okonkwo',     role: 'Deputy CFO',             sources: ['Microsoft 365 (Exchange)', 'OneDrive', 'SAP ERP'], volumeGB: 52.4,  priority: 'high' },
      { custodian: 'Thomas Blackwell',  role: 'Chief Engineer',         sources: ['Microsoft 365 (Exchange)', 'OneDrive', 'GitHub Enterprise', 'Confluence', 'Jira', 'Laptop (macOS)'], volumeGB: 148.4, priority: 'key' },
      { custodian: 'Priya Raman',       role: 'VP Pricing',             sources: ['Microsoft 365 (Exchange)', 'Box', 'Slack', 'Mobile (Android)'], volumeGB: 86.2,  priority: 'key' },
      { custodian: 'Arnav Iyer',        role: 'APAC Head',              sources: ['Google Workspace (Gmail)', 'Google Drive', 'WhatsApp', 'Laptop (Windows)'], volumeGB: 142.6, priority: 'key' },
      { custodian: 'Elena Vasquez',     role: 'VP Compliance',          sources: ['Microsoft 365 (Exchange)', 'OneDrive', 'SAP ERP'], volumeGB: 78.4,  priority: 'high' },
      { custodian: 'Felix Wong',        role: 'Dir. Operations',        sources: ['Microsoft 365 (Exchange)', 'Box', 'Slack', 'Mobile (iPhone)'], volumeGB: 96.8,  priority: 'high' },
      { custodian: 'Simon Okafor',      role: 'Sterling GC',            sources: ['Microsoft 365 (Exchange)', 'OneDrive', 'SAP ERP', 'Intralinks VDR'], volumeGB: 168.4, priority: 'key' },
    ],

    // ── PRESERVATION ──
    preservation: {
      activeHolds: 12,
      custodiansCoveredAll: 62,
      custodiansCoveredThisMatter: 12,
      snapshotsThisMonth: 8,
      snapshotsQTD: 34,
      snapshotsYTD: 148,
      avgSnapshotInterval: 30,   // days
      lastAuditDate: '2026-04-12',
      nextAuditDate: '2026-05-12',
      suspendedRetentionPolicies: 18,
      dataSourcesOnHold: 24,
      complianceStandards: ['FRCP 37(e)', 'Zubulake V', 'ISO 27050-2', 'ABA Formal Op. 01-406'],
    },

    // ── COLLECTION JOBS ──
    collections: [
      { id: 'COL-8421', source: 'Microsoft 365 (Exchange)', custodian: '4 custodians (batch)', started: '2026-04-18', eta: '2026-04-23', vendor: 'Internal — Relativity One', volumeGB: 112.4, docCount: 298_000, status: 'In Progress', method: 'Graph API — targeted date range', chainId: 'CC-1842' },
      { id: 'COL-8420', source: 'Mobile Devices (iPhone)', custodian: '3 additional custodians', started: '2026-04-16', eta: '2026-04-22', vendor: 'Cellebrite Premium', volumeGB: 38.4, docCount: 98_000, status: 'In Progress', method: 'Full-file-system imaging', chainId: 'CC-1841' },
      { id: 'COL-8419', source: 'Google Workspace (Gmail)', custodian: 'Arnav Iyer', started: '2026-04-14', eta: '2026-04-18', vendor: 'Internal — Relativity One', volumeGB: 24.8, docCount: 48_000, status: 'Complete ok', method: 'Google Vault export', chainId: 'CC-1840' },
      { id: 'COL-8418', source: 'Archive tapes (legacy)', custodian: 'Former CFO mailbox 2020-2023', started: '2026-04-10', eta: '2026-04-28', vendor: 'Iron Mountain', volumeGB: 184.2, docCount: null, status: 'In Progress', method: 'Tape restore to PST', chainId: 'CC-1839' },
      { id: 'COL-8417', source: 'WhatsApp', custodian: '3 APAC custodians', started: '2026-04-08', eta: '2026-04-12', vendor: 'Smarsh', volumeGB: 8.4, docCount: 24_000, status: 'Complete ok', method: 'Smarsh enterprise archive export', chainId: 'CC-1838' },
      { id: 'COL-8416', source: 'SharePoint (Corporate)', custodian: 'Matter-scoped sites (14)', started: '2026-04-02', eta: '2026-04-14', vendor: 'Internal', volumeGB: 148.6, docCount: 412_000, status: 'Complete ok', method: 'Graph API scoped collection', chainId: 'CC-1837' },
    ],

    // ── FORENSIC IMAGING ──
    forensicImages: [
      { id: 'FI-142', device: 'iPhone 14 Pro', custodian: 'James Harrington', serialNum: 'F17G9A2KL', imagedBy: 'Alignment Forensics — R. Ozawa', imagedOn: '2026-03-18', method: 'Cellebrite Premium (full-file-system)', storageGB: 48.2, artifactTypes: ['iMessage','WhatsApp','Signal','Call logs','Location history'], hashSHA256: '8f3a2...7c9b (verified)', status: 'Imaged' },
      { id: 'FI-141', device: 'iPhone 13 Pro Max', custodian: 'Karen Osei', serialNum: 'F17G8A3MN', imagedBy: 'Alignment Forensics', imagedOn: '2026-02-14', method: 'Cellebrite Premium', storageGB: 42.8, artifactTypes: ['iMessage','WhatsApp','Call logs'], hashSHA256: '1a2b3...4c5d (verified)', status: 'Imaged' },
      { id: 'FI-140', device: 'MacBook Pro 16" M3', custodian: 'Marcus Pryor', serialNum: 'C02ZT2HFNJH', imagedBy: 'Sentinel Forensics', imagedOn: '2026-02-28', method: 'E01 forensic image (Recoverit)', storageGB: 512.0, artifactTypes: ['File system','Browser history','Keychain','Deleted files'], hashSHA256: '9e8d7...6c5a (verified)', status: 'Imaged' },
      { id: 'FI-139', device: 'MacBook Pro 14" M2', custodian: 'Helen Bishop', serialNum: 'C02YK1QFLP', imagedBy: 'Sentinel Forensics', imagedOn: '2026-02-26', method: 'E01 forensic image', storageGB: 384.2, artifactTypes: ['File system','Browser history','Email local cache'], hashSHA256: '4f5e6...7b8a (verified)', status: 'Imaged' },
      { id: 'FI-138', device: 'Dell Latitude 7440', custodian: 'Arnav Iyer', serialNum: '7JFL9Q3', imagedBy: 'Sentinel Forensics', imagedOn: '2026-03-04', method: 'FTK Imager (E01 + logical)', storageGB: 256.0, artifactTypes: ['File system','Browser history','Registry','Windows event logs'], hashSHA256: '2c3d4...5e6f (verified)', status: 'Imaged' },
      { id: 'FI-137', device: 'iPhone 15 Pro', custodian: 'Priya Raman', serialNum: 'F18J2K4PQ', imagedBy: 'Alignment Forensics', imagedOn: '2026-04-02', method: 'Cellebrite Premium', storageGB: 38.8, artifactTypes: ['iMessage','Slack','Email','Call logs'], hashSHA256: 'a1b2c...3d4e (verified)', status: 'Imaged' },
      { id: 'FI-143', device: 'iPhone 14', custodian: 'David Okonkwo (pending)', serialNum: 'PENDING', imagedBy: 'Alignment Forensics (scheduled)', imagedOn: '2026-04-23', method: 'Cellebrite Premium', storageGB: null, artifactTypes: [], hashSHA256: 'pending', status: 'Queued' },
    ],

    // ── PROCESSING PIPELINE ──
    processing: {
      stages: [
        { stage: 'Raw ingest',         docs: 4_820_000, volumeGB: 4_820, reductionPct: 0,    color: 'slate' },
        { stage: 'Dedup (hash)',       docs: 3_120_000, volumeGB: 3_120, reductionPct: 35.3, color: 'cyan' },
        { stage: 'Near-dedup',         docs: 2_420_000, volumeGB: 2_420, reductionPct: 49.8, color: 'cobalt' },
        { stage: 'Keyword cull',       docs: 1_140_000, volumeGB: 1_140, reductionPct: 76.3, color: 'violet' },
        { stage: 'Email threading',    docs: 860_000,   volumeGB: 860,   reductionPct: 82.2, color: 'amber' },
        { stage: 'OCR + language ID',  docs: 820_000,   volumeGB: 820,   reductionPct: 83.0, color: 'orange' },
        { stage: 'Review-ready',       docs: 720_000,   volumeGB: 720,   reductionPct: 85.1, color: 'emerald' },
      ],
      activeJobs: [
        { id: 'PROC-1842', source: 'Exchange 4-custodian batch', stage: 'Dedup', inflight: 298_000, started: '2026-04-18', eta: '2026-04-21' },
        { id: 'PROC-1841', source: 'iPhone imaging batch', stage: 'OCR + language ID', inflight: 98_000, started: '2026-04-17', eta: '2026-04-20' },
      ],
      languages: [
        { lang: 'English',   count: 612_000, pct: 85.0 },
        { lang: 'Mandarin',  count: 64_800,  pct: 9.0 },
        { lang: 'Japanese',  count: 28_800,  pct: 4.0 },
        { lang: 'Spanish',   count: 10_800,  pct: 1.5 },
        { lang: 'German',    count: 3_600,   pct: 0.5 },
      ],
      ocrStats: { pagesProcessed: 4_820_000, confidenceAvg: 97.8, failureRate: 0.4 },
    },

    // ── SEARCH & ANALYTICS ──
    search: {
      savedSearches: [
        { id: 'Q-01', name: 'Core fact search — Apex + Harrington', query: '(Apex OR "Apex Ventures") AND (Harrington OR "J. Harrington")', hits: 2_840, dateRun: '2026-04-18', runBy: 'M. Kirkland' },
        { id: 'Q-02', name: 'Privileged communications',            query: '("attorney-client" OR "work product" OR privileged)',             hits: 4_120, dateRun: '2026-04-15', runBy: 'L. Torres' },
        { id: 'Q-03', name: 'Hot-doc — financial transfers',         query: '(wire OR transfer OR remit) AND ($14.2M OR "14,200,000")',       hits: 184,  dateRun: '2026-04-12', runBy: 'L. Torres' },
        { id: 'Q-04', name: 'Q3 2022 records (timeline critical)',   query: '(Q3 2022 OR "Sep 2022" OR "Oct 2022" OR "Nov 2022")',            hits: 12_420, dateRun: '2026-04-10', runBy: 'J. Park' },
        { id: 'Q-05', name: 'FCPA keywords — consultant agreements', query: '(consultant OR agreement OR engagement) AND (APAC OR Beijing OR Shanghai OR Singapore)', hits: 1_240, dateRun: '2026-04-08', runBy: 'L. Torres' },
      ],
      conceptClusters: [
        { label: 'Deal negotiations',    docs: 18_400 },
        { label: 'Board communications', docs: 12_800 },
        { label: 'Financial reporting',  docs: 22_100 },
        { label: 'Personnel / HR',       docs: 8_400 },
        { label: 'Consultant fees',      docs: 2_800 },
        { label: 'Regulatory compliance',docs: 14_200 },
      ],
      tarSummary: {
        modelsActive: 2,
        predictedRelevant: 68_000,
        precision: 78.4,
        recall: 91.2,
        stability: 'Stable',
      },
    },

    // ── HOSTING PLATFORMS ──
    hosting: [
      { id: 'HOST-01', platform: 'Relativity One',     tier: 'Enterprise', volumeGB: 720, users: 28, monthlyCost: 58_400, pricePerGB: 12.50, sla: '99.9%', region: 'US-East', status: 'Active' },
      { id: 'HOST-02', platform: 'Everlaw',            tier: 'Team',       volumeGB: 142, users: 12, monthlyCost: 18_600, pricePerGB:  9.80, sla: '99.5%', region: 'US-West', status: 'Active' },
      { id: 'HOST-03', platform: 'Reveal Brainspace',  tier: 'Analytics',  volumeGB: 420, users: 8,  monthlyCost: 38_200, pricePerGB: 14.20, sla: '99.5%', region: 'US-East', status: 'Active' },
      { id: 'HOST-04', platform: 'DISCO',              tier: 'Mid-case',   volumeGB: 84,  users: 6,  monthlyCost: 10_400, pricePerGB: 11.40, sla: '99.5%', region: 'US-East', status: 'Active' },
    ],

    // ── PRODUCTIONS ──
    productions: [
      { id: 'PROD-104', batesRange: 'MH-042001 — MH-068400', docCount: 26_400, volumeGB: 182.4, format: 'Relativity (OPT + DAT)', redactions: 1_842, privLog: true, sentDate: '2026-04-12', status: 'Produced' },
      { id: 'PROD-103', batesRange: 'MH-028001 — MH-042000', docCount: 14_000, volumeGB: 94.2, format: 'Relativity', redactions: 640, privLog: true, sentDate: '2026-03-28', status: 'Produced' },
      { id: 'PROD-102', batesRange: 'MH-012001 — MH-028000', docCount: 16_000, volumeGB: 108.0, format: 'Concordance + Native', redactions: 420, privLog: true, sentDate: '2026-03-14', status: 'Produced' },
      { id: 'PROD-105', batesRange: 'MH-068401 — MH-074800', docCount: 6_400, volumeGB: 42.1, format: 'Relativity', redactions: 248, privLog: true, sentDate: null, status: 'In QC' },
    ],

    // ── VENDORS ──
    vendors: [
      { id: 'VND-01', name: 'Relativity',         type: 'Hosting + Analytics', hoursMTD: null, monthlyCost: 58_400,  ytdCost: 350_400, status: 'Active', contractExpires: '2027-03-31' },
      { id: 'VND-02', name: 'Alignment Forensics',type: 'Forensics',           hoursMTD: 142, monthlyCost: 22_000,  ytdCost: 132_000, status: 'Active', contractExpires: '2026-12-31' },
      { id: 'VND-03', name: 'Sentinel Forensics', type: 'Forensics',           hoursMTD: 68,  monthlyCost: 18_000,  ytdCost: 108_000, status: 'Active', contractExpires: '2026-12-31' },
      { id: 'VND-04', name: 'Cellebrite',         type: 'Mobile licensing',    hoursMTD: null, monthlyCost: 8_400,   ytdCost: 50_400,  status: 'Active', contractExpires: '2026-09-30' },
      { id: 'VND-05', name: 'Iron Mountain',      type: 'Archive/Restore',     hoursMTD: null, monthlyCost: 4_800,   ytdCost: 28_800,  status: 'Active', contractExpires: 'Open' },
      { id: 'VND-06', name: 'Smarsh',             type: 'Messaging archive',   hoursMTD: null, monthlyCost: 3_200,   ytdCost: 19_200,  status: 'Active', contractExpires: '2026-06-30' },
      { id: 'VND-07', name: 'Consilio',           type: 'Overflow review',     hoursMTD: 420, monthlyCost: 18_400,  ytdCost: 88_000,  status: 'Active', contractExpires: '2026-12-31' },
      { id: 'VND-08', name: 'Lighthouse',         type: 'Cross-border / FCPA', hoursMTD: 48,  monthlyCost: 8_600,   ytdCost: 42_000,  status: 'Active', contractExpires: '2026-12-31' },
    ],

    // ── COST ANALYTICS ──
    cost: {
      perMatterMTD: 142_000,
      perMatterYTD: 892_000,
      avgPerGB: 31.50,
      industryPerGB: 42.00,
      savingsVsIndustry: 25,   // %
      byCategory: [
        { category: 'Hosting',     mtd: 58_400, ytd: 350_400, pct: 41.1 },
        { category: 'Forensics',   mtd: 40_000, ytd: 240_000, pct: 28.2 },
        { category: 'Processing',  mtd: 16_400, ytd: 98_400,  pct: 11.5 },
        { category: 'Licensing',   mtd: 12_400, ytd: 74_400,  pct: 8.7 },
        { category: 'Review (overflow)', mtd: 10_200, ytd: 61_200, pct: 7.2 },
        { category: 'Other',       mtd: 4_600,  ytd: 27_600,  pct: 3.3 },
      ],
      monthly12: [
        { m: 'May 25', cost: 58_000 },
        { m: 'Jun 25', cost: 62_000 },
        { m: 'Jul 25', cost: 68_000 },
        { m: 'Aug 25', cost: 72_000 },
        { m: 'Sep 25', cost: 78_000 },
        { m: 'Oct 25', cost: 82_000 },
        { m: 'Nov 25', cost: 88_000 },
        { m: 'Dec 25', cost: 76_000 },
        { m: 'Jan 26', cost: 98_000 },
        { m: 'Feb 26', cost: 112_000 },
        { m: 'Mar 26', cost: 128_000 },
        { m: 'Apr 26', cost: 142_000 },
      ],
    },

    // ── CHAIN OF CUSTODY — event ledger ──
    chainOfCustody: [
      { id: 'CC-1842', date: '2026-04-18 10:42', from: 'MS Graph API',       fromType: 'API',     to: 'Relativity Staging',     toType: 'Hosting',  custodian: '4 custodians',       volumeGB: 112.4, docCount: 298_000, actor: 'Collection Ops — S. Chen',    actorRole: 'Forensic Collector', hashAlgo: 'SHA-256', preHash:  '8f3a9b2c47d19ef2083745bc6d1e9a52', postHash: '8f3a9b2c47d19ef2083745bc6d1e9a52', hashVerified: true,  sealId: 'SEAL-1042', transferMethod: 'TLS 1.3 / API',       sig: 'PGP-signed',  witness: 'M. Kirkland (Partner)', chainId: 'CC-1842', sourceId: 'SRC-001', linkedCollection: 'COL-8421', note: 'Graph API targeted date range 2020-01 to 2024-12. Hash match verified at ingest.' },
      { id: 'CC-1841', date: '2026-04-17 14:20', from: 'Cellebrite Server',  fromType: 'Device',  to: 'Relativity Staging',     toType: 'Hosting',  custodian: '3 iPhones',           volumeGB: 38.4,  docCount: 98_000,  actor: 'Alignment — R. Ozawa',         actorRole: 'Vendor Forensicist',  hashAlgo: 'SHA-256', preHash:  '4c5d7e8f9a0b1c2d3e4f5a6b7c8d9e0f', postHash: '4c5d7e8f9a0b1c2d3e4f5a6b7c8d9e0f', hashVerified: true,  sealId: 'SEAL-1041', transferMethod: 'Encrypted drive (AES-256)', sig: 'Ozawa / Pryor', witness: 'M. Pryor (GC)',          chainId: 'CC-1841', sourceId: 'SRC-016', linkedCollection: 'COL-8420', note: 'FFS images hashed SHA-256; chain confirmed end-to-end. Container sealed at Alignment lab.' },
      { id: 'CC-1840', date: '2026-04-14 09:15', from: 'Google Vault',       fromType: 'SaaS',    to: 'Relativity Staging',     toType: 'Hosting',  custodian: 'A. Iyer',             volumeGB: 24.8,  docCount: 48_000,  actor: 'Collection Ops — L. Torres',   actorRole: 'Forensic Collector', hashAlgo: 'SHA-256', preHash:  '1a2b3c4d5e6f7890abcdef1234567890', postHash: '1a2b3c4d5e6f7890abcdef1234567890', hashVerified: true,  sealId: 'SEAL-1040', transferMethod: 'OAuth API / TLS',     sig: 'Torres',     witness: 'S. Chen',                chainId: 'CC-1840', sourceId: 'SRC-007', linkedCollection: 'COL-8419', note: 'Google Vault export via OAuth. Schema validated; 0 records rejected.' },
      { id: 'CC-1839', date: '2026-04-10 08:00', from: 'Iron Mountain tape', fromType: 'Physical',to: 'Iron Mtn restore vault', toType: 'Vault',    custodian: 'Former CFO 2020-2023',volumeGB: 184.2, docCount: null,    actor: 'Iron Mountain courier J. Pike',actorRole: 'Bonded Courier',      hashAlgo: 'SHA-256', preHash:  'f9e8d7c6b5a49382716050fedcba0987', postHash: 'f9e8d7c6b5a49382716050fedcba0987', hashVerified: true,  sealId: 'SEAL-1039', transferMethod: 'Armored courier',      sig: 'Pike / Torres', witness: 'Iron Mtn facility log', chainId: 'CC-1839', sourceId: 'SRC-023', linkedCollection: 'COL-8418', note: 'Tape barcode 9284/9285/9286 confirmed at vault. SHA-256 computed on restore image.' },
      { id: 'CC-1838', date: '2026-04-08 16:32', from: 'Smarsh archive',     fromType: 'SaaS',    to: 'Relativity Staging',     toType: 'Hosting',  custodian: '3 APAC WhatsApp',     volumeGB: 8.4,   docCount: 24_000,  actor: 'Collection Ops — L. Torres',   actorRole: 'Forensic Collector', hashAlgo: 'SHA-256', preHash:  '0123456789abcdef0123456789abcdef', postHash: '0123456789abcdef0123456789abcdef', hashVerified: true,  sealId: 'SEAL-1038', transferMethod: 'Smarsh API / TLS',     sig: 'Torres',     witness: 'S. Chen',                chainId: 'CC-1838', sourceId: 'SRC-020', linkedCollection: 'COL-8417', note: 'Smarsh enterprise export + JSON schema validation (3 custodians in APAC).' },
      { id: 'CC-1837', date: '2026-04-02 11:48', from: 'SharePoint (MS Graph)', fromType: 'API', to: 'Relativity Staging',     toType: 'Hosting',  custodian: '14 matter sites',     volumeGB: 148.6, docCount: 412_000, actor: 'Collection Ops — S. Chen',    actorRole: 'Forensic Collector', hashAlgo: 'SHA-256', preHash:  'abcdef1234567890abcdef1234567890', postHash: 'abcdef1234567890abcdef1234567890', hashVerified: true,  sealId: 'SEAL-1037', transferMethod: 'TLS 1.3 / API',       sig: 'Chen',       witness: 'L. Torres',              chainId: 'CC-1837', sourceId: 'SRC-004', linkedCollection: 'COL-8416', note: 'Scoped API collection across 14 matter-bound SharePoint sites.' },
      { id: 'CC-1836', date: '2026-03-28 10:14', from: 'iManage DMS',        fromType: 'DMS',     to: 'Relativity Staging',     toType: 'Hosting',  custodian: 'M. Pryor (GC)',       volumeGB: 52.1,  docCount: 86_400,  actor: 'Collection Ops — S. Chen',    actorRole: 'Forensic Collector', hashAlgo: 'SHA-256', preHash:  'fedcba9876543210fedcba9876543210', postHash: 'fedcba9876543210fedcba9876543210', hashVerified: true,  sealId: 'SEAL-1036', transferMethod: 'iManage Work API',     sig: 'Chen',       witness: 'M. Pryor',               chainId: 'CC-1836', sourceId: 'SRC-022', linkedCollection: 'COL-8415', note: 'API export via iManage Work with workspace ACL audit.' },
      { id: 'CC-1835', date: '2026-03-25 15:52', from: 'Bloomberg archive',  fromType: 'SaaS',    to: 'Relativity Staging',     toType: 'Hosting',  custodian: '3 custodians',        volumeGB: 18.2,  docCount: 32_800,  actor: 'Collection Ops — L. Torres',   actorRole: 'Forensic Collector', hashAlgo: 'SHA-256', preHash:  '5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d', postHash: '5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d', hashVerified: true,  sealId: 'SEAL-1035', transferMethod: 'Bloomberg Vault API',  sig: 'Torres',     witness: 'S. Chen',                chainId: 'CC-1835', sourceId: 'SRC-012', linkedCollection: 'COL-8414', note: 'Bloomberg compliance export — chat + email, 3 trader custodians.' },
      { id: 'CC-1834', date: '2026-03-22 13:08', from: 'Salesforce',         fromType: 'SaaS',    to: 'Relativity Staging',     toType: 'Hosting',  custodian: '6 CRM custodians',    volumeGB: 28.4,  docCount: 64_200,  actor: 'Collection Ops — S. Chen',    actorRole: 'Forensic Collector', hashAlgo: 'SHA-256', preHash:  '2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f', postHash: '2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f', hashVerified: true,  sealId: 'SEAL-1034', transferMethod: 'Salesforce Bulk API',  sig: 'Chen',       witness: 'L. Torres',              chainId: 'CC-1834', sourceId: 'SRC-009', linkedCollection: 'COL-8413', note: 'Record types: Account, Opportunity, Case, Email — attachments included.' },
      { id: 'CC-1833', date: '2026-03-18 11:20', from: 'Alignment lab',      fromType: 'Physical',to: 'Sentinel Forensics',     toType: 'Lab',      custodian: 'MacBook Pro — Pryor', volumeGB: 512.0, docCount: null,    actor: 'Alignment — R. Ozawa',         actorRole: 'Vendor Forensicist',  hashAlgo: 'SHA-256', preHash:  '7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e', postHash: '7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e', hashVerified: true,  sealId: 'SEAL-1033', transferMethod: 'Tamper-evident case',  sig: 'Ozawa / Alvarez', witness: 'Facility camera 14B',chainId: 'CC-1833', sourceId: 'SRC-018', linkedCollection: 'COL-8410', note: 'E01 image transferred lab-to-lab for deep artifact analysis.' },
      { id: 'CC-1832', date: '2026-03-14 09:42', from: 'Slack Grid',         fromType: 'SaaS',    to: 'Relativity Staging',     toType: 'Hosting',  custodian: '8 custodians',        volumeGB: 42.8,  docCount: 128_400, actor: 'Collection Ops — L. Torres',   actorRole: 'Forensic Collector', hashAlgo: 'SHA-256', preHash:  '3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b', postHash: '3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b', hashVerified: true,  sealId: 'SEAL-1032', transferMethod: 'Slack Enterprise API', sig: 'Torres',     witness: 'S. Chen',                chainId: 'CC-1832', sourceId: 'SRC-005', linkedCollection: 'COL-8408', note: 'Slack Enterprise Grid compliance export — channels + DMs.' },
      { id: 'CC-1831', date: '2026-03-10 07:55', from: 'SAP ERP',            fromType: 'ERP',     to: 'Relativity Staging',     toType: 'Hosting',  custodian: 'Targeted tables',     volumeGB: 184.0, docCount: 2_100_000,actor: 'Collection Ops — S. Chen',    actorRole: 'Forensic Collector', hashAlgo: 'SHA-256', preHash:  '6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d', postHash: '6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d', hashVerified: true,  sealId: 'SEAL-1031', transferMethod: 'Direct DB export',     sig: 'Chen / Okonkwo', witness: 'D. Okonkwo (Dep. CFO)',chainId: 'CC-1831', sourceId: 'SRC-010', linkedCollection: 'COL-8405', note: 'SAP financial + HR tables. Table-level hash manifest attached.' },
    ],

    // ── CHAIN KPIs (sub-platform headline) ──
    chainKpis: {
      totalEvents: 284,
      eventsMTD: 12,
      eventsYTD: 142,
      hashVerifiedPct: 100.0,
      hashAlgorithm: 'SHA-256',
      integrityFailures: 0,
      integrityRehashSuccess: 3,   // re-hashed after transfer, all matched
      volumeTrackedGB: 4_820,
      sealsActive: 42,
      sealsBroken: 0,
      transfersInFlight: 2,
      transfersCompleted: 282,
      attestationsSigned: 18,
      attestationsPending: 2,
      exportsPrepared: 7,
      exportsCourtReady: 5,
      auditFindings: 0,
      lastAuditDate: '2026-04-12',
      nextAuditDate: '2026-05-12',
      daubert: 'Compliant',
      fre901: 'Satisfied',
      fre902: 'Self-authenticating',
    },

    // ── INTEGRITY / HASH REGISTRY ──
    chainIntegrity: [
      { id: 'INT-284', chainId: 'CC-1842', date: '2026-04-18 10:42', algorithm: 'SHA-256', preHash: '8f3a9b2c47d19ef2083745bc6d1e9a52ee8d7c6b5a49382716050fedcba0987', postHash: '8f3a9b2c47d19ef2083745bc6d1e9a52ee8d7c6b5a49382716050fedcba0987', match: true,  bytesHashed: 120_708_332_544, duration: '00:18:42', verifier: 'Ingest Daemon v2.4', note: 'Auto-verified at ingest' },
      { id: 'INT-283', chainId: 'CC-1841', date: '2026-04-17 14:20', algorithm: 'SHA-256', preHash: '4c5d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d', postHash: '4c5d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d', match: true,  bytesHashed:  41_234_567_890, duration: '00:06:14', verifier: 'R. Ozawa (Alignment)',  note: 'Lab-hashed at seal; re-verified at Relativity ingest (match)' },
      { id: 'INT-282', chainId: 'CC-1840', date: '2026-04-14 09:15', algorithm: 'SHA-256', preHash: '1a2b3c4d5e6f7890abcdef1234567890abcdef1234567890abcdef1234567890', postHash: '1a2b3c4d5e6f7890abcdef1234567890abcdef1234567890abcdef1234567890', match: true,  bytesHashed:  26_629_505_024, duration: '00:04:02', verifier: 'Ingest Daemon v2.4', note: 'Auto-verified at ingest' },
      { id: 'INT-281', chainId: 'CC-1839', date: '2026-04-10 08:00', algorithm: 'SHA-256', preHash: 'f9e8d7c6b5a49382716050fedcba0987654321f9e8d7c6b5a49382716050fedc', postHash: 'f9e8d7c6b5a49382716050fedcba0987654321f9e8d7c6b5a49382716050fedc', match: true,  bytesHashed: 197_820_981_248, duration: '00:38:12', verifier: 'Iron Mtn + Ingest',  note: 'Re-hash after tape-to-disk restore. Match confirmed.' },
      { id: 'INT-280', chainId: 'CC-1838', date: '2026-04-08 16:32', algorithm: 'SHA-256', preHash: '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef', postHash: '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef', match: true,  bytesHashed:   9_019_431_424, duration: '00:01:48', verifier: 'Ingest Daemon v2.4', note: 'Schema-validated + hashed' },
      { id: 'INT-279', chainId: 'CC-1837', date: '2026-04-02 11:48', algorithm: 'SHA-256', preHash: 'abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', postHash: 'abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890', match: true,  bytesHashed: 159_585_034_240, duration: '00:24:56', verifier: 'Ingest Daemon v2.4', note: 'Auto-verified at ingest' },
      { id: 'INT-278', chainId: 'CC-1833-R', date: '2026-03-19 08:14', algorithm: 'SHA-256', preHash: '7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c', postHash: '7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c', match: true,  bytesHashed: 549_755_813_888, duration: '02:12:40', verifier: 'Sentinel Forensics',    note: 'Lab-to-lab re-hash. Match confirmed; seal intact.' },
      { id: 'INT-277', chainId: 'CC-1832', date: '2026-03-14 09:42', algorithm: 'SHA-256', preHash: '3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f', postHash: '3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f', match: true,  bytesHashed:  45_951_712_256, duration: '00:07:22', verifier: 'Ingest Daemon v2.4', note: 'Auto-verified at ingest' },
    ],

    // ── EVIDENCE SEALS & CONTAINERS ──
    chainSeals: [
      { id: 'SEAL-1042', type: 'Logical', material: 'AES-256 / PGP',  container: 'API transfer bundle', chainId: 'CC-1842', sealedOn: '2026-04-18 10:42', sealedBy: 'Ingest Daemon', location: 'Relativity US-East', status: 'Intact',  brokenOn: null,              brokenBy: null,         note: 'Auto-sealed via PGP after hash match.' },
      { id: 'SEAL-1041', type: 'Physical',material: 'Tamper-evident', container: 'Alignment drive case #A-4821', chainId: 'CC-1841', sealedOn: '2026-04-17 09:00', sealedBy: 'R. Ozawa',     location: 'Alignment lab → Relativity', status: 'Opened → resealed', brokenOn: '2026-04-17 14:18', brokenBy: 'Ingest Ops',  note: 'Seal photographed; replacement SEAL-1041R applied.' },
      { id: 'SEAL-1040', type: 'Logical', material: 'OAuth2 + TLS',   container: 'Google Vault export',  chainId: 'CC-1840', sealedOn: '2026-04-14 09:15', sealedBy: 'L. Torres',    location: 'Google → Relativity', status: 'Intact',  brokenOn: null,              brokenBy: null,         note: 'Token scope limited to custodian A. Iyer.' },
      { id: 'SEAL-1039', type: 'Physical',material: 'Ultrasonic strip', container: 'Tape pack 9284/9285/9286', chainId: 'CC-1839', sealedOn: '2026-04-09 17:20', sealedBy: 'Iron Mtn facility', location: 'Iron Mtn vault', status: 'Intact',  brokenOn: null,              brokenBy: null,         note: 'Barcode chain confirmed against inventory manifest.' },
      { id: 'SEAL-1038', type: 'Logical', material: 'Smarsh signed ZIP', container: 'Smarsh export',      chainId: 'CC-1838', sealedOn: '2026-04-08 16:32', sealedBy: 'Smarsh service', location: 'Smarsh → Relativity', status: 'Intact',  brokenOn: null,              brokenBy: null,         note: 'JSON schema validated; digital signature verified.' },
      { id: 'SEAL-1037', type: 'Logical', material: 'TLS 1.3 + hash',  container: 'Graph API bundle',    chainId: 'CC-1837', sealedOn: '2026-04-02 11:48', sealedBy: 'Ingest Daemon', location: 'MS → Relativity', status: 'Intact',  brokenOn: null,              brokenBy: null,         note: 'API session logged; OAuth token redacted in audit.' },
      { id: 'SEAL-1033', type: 'Physical',material: 'Tamper-evident', container: 'Sentinel case #S-1402', chainId: 'CC-1833', sealedOn: '2026-03-18 11:20', sealedBy: 'Alignment',    location: 'Alignment → Sentinel lab', status: 'Opened → resealed', brokenOn: '2026-03-18 15:40', brokenBy: 'Sentinel — C. Alvarez', note: 'Witness: facility camera 14B. Replacement SEAL-1033R.' },
    ],

    // ── CUSTODIAN ATTESTATIONS (sworn declarations) ──
    chainAttestations: [
      { id: 'ATT-118', custodian: 'Helen Bishop',    role: 'Former CEO',         type: 'Preservation Notice Receipt',    status: 'Signed',  signedOn: '2026-02-10', notary: 'J. Halperin, Esq.',  exhibit: 'Ex. A-1', relatedChains: ['CC-1810'], note: 'Acknowledged preservation obligations; FRCP 37(e) language.' },
      { id: 'ATT-117', custodian: 'Karen Osei',      role: 'Former CFO — APAC',  type: 'Preservation Notice Receipt',    status: 'Signed',  signedOn: '2026-02-12', notary: 'J. Halperin, Esq.',  exhibit: 'Ex. A-2', relatedChains: ['CC-1809'], note: 'Signed remotely via DocuSign + notary.' },
      { id: 'ATT-116', custodian: 'Marcus Pryor',    role: 'GC',                 type: 'Self-Identification Affidavit',  status: 'Signed',  signedOn: '2026-02-14', notary: 'Corporate Seal',      exhibit: 'Ex. B-1', relatedChains: ['CC-1836','CC-1840'], note: 'Identification of personal devices and cloud accounts.' },
      { id: 'ATT-115', custodian: 'James Harrington',role: 'CEO Meridian',       type: 'Self-Identification Affidavit',  status: 'Signed',  signedOn: '2026-02-20', notary: 'J. Halperin, Esq.',  exhibit: 'Ex. B-2', relatedChains: ['CC-1815'], note: 'Includes Bloomberg + WhatsApp enterprise account disclosure.' },
      { id: 'ATT-114', custodian: 'Julia Matsumoto', role: 'Head of M&A',        type: 'Self-Identification Affidavit',  status: 'Signed',  signedOn: '2026-02-22', notary: 'J. Halperin, Esq.',  exhibit: 'Ex. B-3', relatedChains: ['CC-1814'], note: 'Deal-room Intralinks access attested.' },
      { id: 'ATT-113', custodian: 'Priya Raman',     role: 'VP Pricing',         type: 'FRCP 30(b)(6) Corporate Rep.',    status: 'Signed',  signedOn: '2026-03-05', notary: 'J. Halperin, Esq.',  exhibit: 'Ex. C-1', relatedChains: ['CC-1820'], note: 'Corporate rep on pricing-related ESI.' },
      { id: 'ATT-112', custodian: 'R. Ozawa (Alignment)', role: 'Vendor Forensicist', type: 'FRE 902(14) Self-Authenticating Declaration', status: 'Signed', signedOn: '2026-04-17', notary: 'Alignment Notary', exhibit: 'Ex. D-1', relatedChains: ['CC-1841','CC-1833'], note: 'Certifies SHA-256 hash methodology for mobile images.' },
      { id: 'ATT-111', custodian: 'S. Chen (Firm)',  role: 'Forensic Collector', type: 'FRE 902(14) Self-Authenticating Declaration', status: 'Signed',  signedOn: '2026-04-18', notary: 'Firm Notary',         exhibit: 'Ex. D-2', relatedChains: ['CC-1842','CC-1837','CC-1836'], note: 'Certifies API-based collection methodology.' },
      { id: 'ATT-110', custodian: 'L. Torres (Firm)',role: 'Forensic Collector', type: 'FRE 902(14) Self-Authenticating Declaration', status: 'Signed',  signedOn: '2026-04-18', notary: 'Firm Notary',         exhibit: 'Ex. D-3', relatedChains: ['CC-1840','CC-1838','CC-1835','CC-1832'], note: 'Certifies SaaS export methodology.' },
      { id: 'ATT-109', custodian: 'Iron Mtn facility', role: 'Vault operator',   type: 'Business Records Affidavit',      status: 'Signed',  signedOn: '2026-04-11', notary: 'Iron Mtn Notary',    exhibit: 'Ex. E-1', relatedChains: ['CC-1839'], note: 'FRE 803(6) business-records foundation for tape inventory.' },
      { id: 'ATT-108', custodian: 'Arnav Iyer',      role: 'APAC Head',          type: 'Self-Identification Affidavit',  status: 'Pending', signedOn: null,         notary: null,                  exhibit: 'Ex. B-4', relatedChains: ['CC-1840'], note: 'Awaiting counter-signature; remote (Singapore).' },
      { id: 'ATT-107', custodian: 'Simon Okafor',    role: 'Sterling GC',        type: 'Preservation Notice Receipt',    status: 'Pending', signedOn: null,         notary: null,                  exhibit: 'Ex. A-12', relatedChains: [], note: 'Sent 2026-04-15; response deadline 2026-04-25.' },
    ],

    // ── COURT EXPORT BUNDLES ──
    chainExports: [
      { id: 'EXP-011', title: 'Production PROD-104 — Chain Package',        preparedOn: '2026-04-12', preparedBy: 'L. Torres', recipient: 'Opposing counsel (Apex Ventures)', format: 'USB 256GB + PGP-signed manifest', events: 38, attestations: 6, seals: 4, fre901: true, fre902: true, iso27050: true, status: 'Delivered', trackingNum: 'FEDEX-7820-4412', signedReceipt: '2026-04-13', note: 'Court-admissible bundle. Includes FRE 902(14) declaration + hash manifest.' },
      { id: 'EXP-010', title: 'Production PROD-103 — Chain Package',        preparedOn: '2026-03-28', preparedBy: 'L. Torres', recipient: 'Opposing counsel (Apex Ventures)', format: 'USB 128GB + PGP-signed manifest', events: 22, attestations: 5, seals: 3, fre901: true, fre902: true, iso27050: true, status: 'Delivered', trackingNum: 'FEDEX-7810-2240', signedReceipt: '2026-03-29', note: 'Delivered on schedule; signed receipt on file.' },
      { id: 'EXP-009', title: 'Production PROD-102 — Chain Package',        preparedOn: '2026-03-14', preparedBy: 'L. Torres', recipient: 'Opposing counsel (Apex Ventures)', format: 'USB 128GB + PGP-signed manifest', events: 19, attestations: 5, seals: 2, fre901: true, fre902: true, iso27050: true, status: 'Delivered', trackingNum: 'FEDEX-7801-9912', signedReceipt: '2026-03-15', note: 'First chain package in this matter.' },
      { id: 'EXP-012', title: 'Production PROD-105 — Chain Package (prep)', preparedOn: '2026-04-20', preparedBy: 'L. Torres', recipient: 'Opposing counsel (Apex Ventures)', format: 'USB 128GB + PGP-signed manifest', events: 14, attestations: 4, seals: 2, fre901: true, fre902: true, iso27050: true, status: 'In QC',     trackingNum: null,            signedReceipt: null,        note: 'QC pass 1 complete; partner review pending.' },
      { id: 'EXP-013', title: 'Deposition Exhibit — Harrington emails',     preparedOn: '2026-04-18', preparedBy: 'S. Chen',   recipient: 'Court (E.D.N.Y. — Exhibit 14)',    format: 'PDF + notarized declaration',     events: 6,  attestations: 2, seals: 1, fre901: true, fre902: true, iso27050: true, status: 'Filed',    trackingNum: 'ECF-22-cv-4821-D14', signedReceipt: '2026-04-18', note: 'Deposition-day exhibit; chain summary on Pg. 2.' },
      { id: 'EXP-008', title: 'Regulator Export — SEC subpoena 26-SEC-044', preparedOn: '2026-02-28', preparedBy: 'M. Kirkland', recipient: 'U.S. SEC — Division of Enforcement', format: 'SFTP + digital signature',        events: 48, attestations: 9, seals: 7, fre901: true, fre902: true, iso27050: true, status: 'Delivered', trackingNum: 'SEC-TKT-8821',  signedReceipt: '2026-03-01', note: 'Regulator export. Included 1933-Act + 1934-Act records.' },
      { id: 'EXP-014', title: 'In-camera review set — privileged log',      preparedOn: '2026-04-20', preparedBy: 'M. Kirkland', recipient: 'Court (in camera)',               format: 'Encrypted ZIP + notarized log',   events: 12, attestations: 3, seals: 2, fre901: true, fre902: true, iso27050: true, status: 'Drafting', trackingNum: null,            signedReceipt: null,        note: '640 privileged docs; requires bench review.' },
    ],

    // ── IN-FLIGHT TRANSFERS (active chain events) ──
    chainTransfers: [
      { id: 'TRF-042', chainId: 'CC-1843', started: '2026-04-20 08:15', from: 'MS Graph (in-place hold)', to: 'Relativity Staging', method: 'TLS 1.3 / API', courier: 'n/a (API)',       custodian: '2 additional custodians', etaVolumeGB: 42.8, progressPct: 68, status: 'In Progress', integrity: 'Streaming hash', eta: '2026-04-20 14:30', note: 'Supplemental collection — keyword-scoped.' },
      { id: 'TRF-041', chainId: 'CC-1844', started: '2026-04-19 17:00', from: 'Iron Mtn vault',           to: 'Restore bay',        method: 'Armored courier', courier: 'J. Pike (Iron Mtn)', custodian: 'Legacy CFO 2019', etaVolumeGB: 84.0, progressPct: 40, status: 'In Transit',  integrity: 'Tamper-seal + post-hash', eta: '2026-04-21 10:00', note: 'Tape set #9287/9288 en route. Seal SEAL-1044 applied.' },
    ],

    // ── COURIER / VENDOR DIRECTORY (bonded) ──
    chainCouriers: [
      { id: 'CR-01', name: 'J. Pike',           org: 'Iron Mountain',    type: 'Bonded courier',  license: 'IM-BC-44129', insured: '$5M', activeTransfers: 1, completedYTD: 18, note: 'Regular vault runs; armored vehicle #14.' },
      { id: 'CR-02', name: 'R. Ozawa',          org: 'Alignment Forensics', type: 'Vendor forensicist', license: 'CFCE / EnCE',    insured: '$10M', activeTransfers: 0, completedYTD: 14, note: 'Lab chain transfers; mobile imaging.' },
      { id: 'CR-03', name: 'C. Alvarez',        org: 'Sentinel Forensics', type: 'Vendor forensicist', license: 'CFCE',          insured: '$10M', activeTransfers: 0, completedYTD: 8, note: 'Lab chain transfers; laptop imaging.' },
      { id: 'CR-04', name: 'S. Chen',           org: 'Firm — Collection Ops', type: 'Forensic Collector', license: 'ACEDS / CEDS', insured: 'Firm E&O', activeTransfers: 1, completedYTD: 48, note: 'Primary firm collector.' },
      { id: 'CR-05', name: 'L. Torres',         org: 'Firm — Collection Ops', type: 'Forensic Collector', license: 'ACEDS / CEDS', insured: 'Firm E&O', activeTransfers: 0, completedYTD: 52, note: 'Primary firm collector.' },
      { id: 'CR-06', name: 'Smarsh service acct', org: 'Smarsh',         type: 'SaaS automated',  license: 'SOC 2 Type II',  insured: 'Vendor',  activeTransfers: 0, completedYTD: 12, note: 'Automated chat archive exports.' },
    ],

    // ── AUDIT TRAIL (tamper-evident log) ──
    chainAudit: [
      { id: 'AU-2084', ts: '2026-04-20 09:12', actor: 'Audit Daemon',      action: 'HASH_VERIFY',     target: 'CC-1842', before: '—',          after: 'match',        ip: '10.42.1.18',  sig: 'HMAC-SHA256 ok', severity: 'info' },
      { id: 'AU-2083', ts: '2026-04-20 08:16', actor: 'S. Chen',           action: 'TRANSFER_START', target: 'TRF-042', before: 'n/a',         after: 'In Progress',  ip: '10.8.12.41',  sig: 'HMAC-SHA256 ok', severity: 'info' },
      { id: 'AU-2082', ts: '2026-04-19 17:02', actor: 'J. Pike',           action: 'TRANSFER_START', target: 'TRF-041', before: 'n/a',         after: 'In Transit',   ip: 'Courier kiosk',sig: 'HMAC-SHA256 ok', severity: 'info' },
      { id: 'AU-2081', ts: '2026-04-18 10:58', actor: 'Ingest Daemon',     action: 'SEAL_APPLY',     target: 'SEAL-1042', before: 'unsealed',  after: 'sealed',       ip: '10.42.1.18',  sig: 'HMAC-SHA256 ok', severity: 'info' },
      { id: 'AU-2080', ts: '2026-04-18 10:42', actor: 'Ingest Daemon',     action: 'INGEST',         target: 'CC-1842', before: 'n/a',         after: '112.4 GB ingested', ip: '10.42.1.18', sig: 'HMAC-SHA256 ok', severity: 'info' },
      { id: 'AU-2079', ts: '2026-04-17 14:20', actor: 'R. Ozawa',          action: 'SEAL_BREAK',     target: 'SEAL-1041', before: 'sealed',    after: 'opened',       ip: 'Alignment lab',sig: 'PGP ok',          severity: 'warn' },
      { id: 'AU-2078', ts: '2026-04-17 14:22', actor: 'R. Ozawa',          action: 'SEAL_REAPPLY',   target: 'SEAL-1041R', before: 'opened',   after: 'sealed',       ip: 'Alignment lab',sig: 'PGP ok',          severity: 'info' },
      { id: 'AU-2077', ts: '2026-04-12 09:00', actor: 'Compliance Audit',  action: 'AUDIT_COMPLETE', target: 'Matter',  before: 'scheduled',   after: 'no findings',  ip: 'Audit portal',sig: 'Notary ok',        severity: 'info' },
      { id: 'AU-2076', ts: '2026-04-10 08:04', actor: 'Iron Mtn',          action: 'TAPE_RESTORE',   target: 'CC-1839', before: 'tape',        after: 'disk (184.2 GB)', ip: 'Vault kiosk',sig: 'HMAC-SHA256 ok', severity: 'info' },
      { id: 'AU-2075', ts: '2026-03-18 15:40', actor: 'C. Alvarez',        action: 'SEAL_BREAK',     target: 'SEAL-1033', before: 'sealed',    after: 'opened',       ip: 'Sentinel lab',sig: 'PGP ok',          severity: 'warn' },
      { id: 'AU-2074', ts: '2026-03-18 15:42', actor: 'C. Alvarez',        action: 'SEAL_REAPPLY',   target: 'SEAL-1033R', before: 'opened',   after: 'sealed',       ip: 'Sentinel lab',sig: 'PGP ok',          severity: 'info' },
      { id: 'AU-2073', ts: '2026-03-01 11:00', actor: 'M. Kirkland',       action: 'EXPORT_DELIVER', target: 'EXP-008',  before: 'prepared',   after: 'delivered',    ip: '10.8.12.8',   sig: 'PGP + Notary ok', severity: 'info' },
    ],

    // ── COMPLIANCE STANDARDS (detailed coverage) ──
    chainStandards: [
      { code: 'ISO 27050-2',    title: 'Electronic discovery — Part 2 (Guidance for governance)', coverage: 100, applied: ['Preservation','Collection','Forensics','Processing','Review','Production','Chain'], lastAudit: '2026-04-12', auditor: 'BSI',               findings: 0, note: 'Full lifecycle audit; no findings.' },
      { code: 'ISO 27037',       title: 'Identification, collection, acquisition & preservation of digital evidence', coverage: 100, applied: ['Identify','Collect','Acquire','Preserve'], lastAudit: '2026-04-12', auditor: 'BSI', findings: 0, note: 'Forensic chain aligned.' },
      { code: 'ISO 27041',       title: 'Assurance for investigative methods',        coverage: 100, applied: ['Method validation'], lastAudit: '2026-04-12', auditor: 'BSI', findings: 0, note: 'Methods documented + validated.' },
      { code: 'ISO 27042',       title: 'Analysis and interpretation of digital evidence', coverage: 95, applied: ['Analysis'],       lastAudit: '2026-04-12', auditor: 'BSI', findings: 1, note: '1 minor finding — expanded reviewer credentials matrix; closed.' },
      { code: 'FRCP 37(e)',     title: 'Sanctions for failure to preserve ESI',       coverage: 100, applied: ['Preservation'],    lastAudit: '2026-04-12', auditor: 'Outside counsel',   findings: 0, note: 'All custodians on active hold.' },
      { code: 'FRCP 26(f)',     title: 'Meet-and-confer on ESI',                      coverage: 100, applied: ['Discovery plan'],  lastAudit: '2026-03-10', auditor: 'Outside counsel',   findings: 0, note: 'ESI protocol executed.' },
      { code: 'FRE 901',        title: 'Authenticating evidence',                     coverage: 100, applied: ['Admissibility'],   lastAudit: '2026-04-12', auditor: 'Outside counsel',   findings: 0, note: 'Hash-based authentication on all productions.' },
      { code: 'FRE 902(14)',    title: 'Self-authenticating records — electronic',    coverage: 100, applied: ['Admissibility'],   lastAudit: '2026-04-12', auditor: 'Outside counsel',   findings: 0, note: 'Certifications on file per production.' },
      { code: 'FRE 803(6)',     title: 'Business records exception',                  coverage: 100, applied: ['Admissibility'],   lastAudit: '2026-04-12', auditor: 'Outside counsel',   findings: 0, note: 'Records-custodian affidavits on file.' },
      { code: 'Zubulake V',      title: 'Duty to preserve + monitor compliance',      coverage: 100, applied: ['Preservation'],    lastAudit: '2026-04-12', auditor: 'Outside counsel',   findings: 0, note: 'Hold monitoring documented.' },
      { code: 'ABA 01-406',     title: 'Confidentiality in e-discovery',              coverage: 100, applied: ['Confidentiality'], lastAudit: '2026-04-12', auditor: 'Ethics committee',  findings: 0, note: 'Privilege + client-confidential protocols.' },
      { code: 'Daubert',         title: 'Expert method admissibility',                coverage: 100, applied: ['Methodology'],     lastAudit: '2026-04-12', auditor: 'Outside counsel',   findings: 0, note: 'Methods peer-reviewed; error rates published.' },
      { code: 'NIST SP 800-86',  title: 'Integrating forensics into IR',              coverage: 100, applied: ['Incident + Evidence'], lastAudit: '2026-04-12', auditor: 'Firm InfoSec',      findings: 0, note: 'IR-to-evidence handoff aligned.' },
      { code: 'NIST SP 800-101', title: 'Mobile device forensics',                    coverage: 100, applied: ['Mobile forensics'],lastAudit: '2026-04-12', auditor: 'Firm InfoSec',      findings: 0, note: 'FFS + logical methods both supported.' },
      { code: 'EDRM',            title: 'Electronic Discovery Reference Model',      coverage: 100, applied: ['Full lifecycle'], lastAudit: '2026-04-12', auditor: 'Firm',              findings: 0, note: 'Framework aligned across nine phases.' },
    ],

    // ── ACTIVITY ──
    activity: [
      { id: 'ES-A-001', time: '10:58 AM', actor: 'Collection Ops', action: 'Collection job started', target: 'COL-8421 — Exchange 4-custodian batch (112 GB)', severity: 'info' },
      { id: 'ES-A-002', time: '10:44 AM', actor: 'System', action: 'Processing milestone', target: 'PROC-1842 Dedup — 35.3% reduction achieved', severity: 'info' },
      { id: 'ES-A-003', time: '10:22 AM', actor: 'Alignment Forensics', action: 'Forensic image completed', target: 'FI-137 iPhone 15 Pro — P. Raman · 38.8 GB · SHA-256 verified', severity: 'info' },
      { id: 'ES-A-004', time: '10:08 AM', actor: 'System', action: 'Preservation audit completed', target: '12 custodians verified on hold · all compliant', severity: 'info' },
      { id: 'ES-A-005', time: '09:54 AM', actor: 'Cost Ops', action: 'Monthly cost report', target: 'Apr 2026 cost: $142K · $31.50/GB · 25% below industry', severity: 'info' },
      { id: 'ES-A-006', time: '09:42 AM', actor: 'System', action: 'Hash verification', target: 'CC-1842 — SHA-256 checksum verified on 112.4 GB', severity: 'info' },
      { id: 'ES-A-007', time: '09:20 AM', actor: 'Iron Mountain', action: 'Tape restore completed', target: 'CC-1839 — Former CFO 2020-2023 · 184.2 GB', severity: 'info' },
      { id: 'ES-A-008', time: '09:08 AM', actor: 'System', action: 'Alert — storage threshold', target: 'Relativity One at 85% of allocated 850 GB', severity: 'warn' },
      { id: 'ES-A-009', time: 'Yesterday', actor: 'L. Torres', action: 'Saved search', target: 'Q-05 FCPA consultant agreements — 1,240 hits', severity: 'info' },
      { id: 'ES-A-010', time: 'Yesterday', actor: 'S. Chen', action: 'Production shipped', target: 'PROD-104 — MH-042001 to MH-068400 · 26,400 docs', severity: 'info' },
      { id: 'ES-A-011', time: 'Yesterday', actor: 'System', action: 'TAR stability', target: 'Model TAR-07 recall 91.2% · stable', severity: 'info' },
      { id: 'ES-A-012', time: '2 days ago', actor: 'Vendor (Smarsh)', action: 'Contract renewal', target: 'VND-06 Smarsh — renewed through Jun 2027', severity: 'info' },
    ],
  },
};

window.ESI_DATA = ESI_DATA;
