// Sample data for ClarionVote. Real names, illustrative numbers.

const POLITICIANS = {
  aoc: {
    id: "aoc",
    name: "Alexandria Ocasio-Cortez",
    short: "Ocasio-Cortez",
    party: "Democrat",
    office: "U.S. Representative",
    state: "NY",
    district: "14",
    chamber: "House",
    photo: "https://unitedstates.github.io/images/congress/450x550/O000172.jpg",
    twitter: "RepAOC",
    facebook: "repaoc",
    instagram: "repaoc",
    youtube: "@repaoc",
    website: "ocasio-cortez.house.gov",
    phone: "202-225-3965",
    address: "229 Cannon House Office Building, Washington, DC 20515",
    since: 2019,
    years: 6,
    loyalty: 93,
    missed: 4.1,
    raised: "12.4M",
    raisedExact: 12_412_337,
    conflicts: 0,
    bio_one_line: "Bronx-born, served in restaurants before unseating a 10-term incumbent in 2018.",
    cycles: 4,

    smallDollar: 71, // percent
    pacShare: 4,    // percent from PACs

    career: [
      { year: 2019, end: null, role: "U.S. Representative", where: "NY-14 · 118th–119th Congress", kind: "office", detail: "Currently serving 4th term. Member, House Financial Services & Oversight committees." },
      { year: 2018, end: 2018, role: "Won Democratic primary", where: "NY-14 · defeated Joe Crowley", kind: "campaign", result: "Win · 57.5%", detail: "Unseated 10-term incumbent in stunning upset." },
      { year: 2017, end: 2018, role: "Campaign launch", where: "Justice Democrats slate", kind: "campaign", detail: "First federal run." },
      { year: 2011, end: 2018, role: "Bartender, server", where: "Coffee Shop & Flats Fix · NYC", kind: "professional", detail: "Worked in restaurants while organizing for Bernie Sanders 2016 campaign." },
      { year: 2008, end: 2011, role: "Boston University", where: "B.A. International Relations & Economics", kind: "education", detail: "Cum laude. John Quincy Adams Scholarship." },
      { year: 2007, end: 2008, role: "Intern", where: "Sen. Ted Kennedy's office", kind: "professional", detail: "Boston immigration casework." },
    ],

    fundraisingHistory: [
      { cycle: "2024",  raised: 12.4, smallDollar: 71, pacShare: 4,  status: "Final" },
      { cycle: "2022",  raised: 8.7,  smallDollar: 76, pacShare: 3,  status: "Final" },
      { cycle: "2020",  raised: 17.3, smallDollar: 79, pacShare: 2,  status: "Final" },
      { cycle: "2018",  raised: 2.0,  smallDollar: 67, pacShare: 1,  status: "Final · upset win" },
    ],

    careerStats: {
      lifetimeRaised: 40.4,
      cyclesRun: 4,
      electionsWon: 4,
      electionsLost: 0,
      officesHeld: 1,
    },

    promises: [
      {
        text: "I will not accept corporate PAC money.",
        source: { what: "Campaign launch, May 2018", href: "#", date: "2018-05-15" },
        status: "kept",
        issues: ["Economy"],
        evidence: [
          { what: "FEC filings 2018–2024 show $0 from corporate PACs", href: "#" },
          { what: "OpenSecrets PAC analysis", href: "#" },
        ],
      },
      {
        text: "Introduce a Green New Deal framework in Congress.",
        source: { what: "Campaign platform, October 2018", href: "#", date: "2018-10-01" },
        status: "kept",
        issues: ["Environment"],
        evidence: [
          { what: "H.Res. 109 — Recognizing the duty of the Federal Government to create a Green New Deal", href: "#" },
        ],
      },
      {
        text: "Push for Medicare for All as a primary legislative goal.",
        source: { what: "Town hall, June 2019", href: "#", date: "2019-06-12" },
        status: "in-progress",
        issues: ["Healthcare"],
        evidence: [
          { what: "Cosponsor of H.R. 3421 (Medicare for All Act)", href: "#" },
          { what: "Floor speech, March 2023", href: "#" },
        ],
      },
      {
        text: "Cancel a meaningful portion of federal student debt.",
        source: { what: "Twitter, August 2022", href: "#", date: "2022-08-24" },
        status: "in-progress",
        issues: ["Education"],
        evidence: [
          { what: "Cosponsor of H.R. 6800 (Student Loan Forgiveness for Frontline Health Workers Act)", href: "#" },
        ],
      },
      {
        text: "Federal jobs guarantee for every American who wants to work.",
        source: { what: "Campaign platform, October 2018", href: "#", date: "2018-10-01" },
        status: "stalled",
        issues: ["Labor", "Economy"],
        evidence: [
          { what: "No standalone legislation introduced this Congress", href: "#" },
        ],
      },
    ],

    votes: [
      { bill: "H.R. 7024", title: "Tax Relief for American Families & Workers Act", date: "2024-01-31", position: "Nay", outcome: "Passed" },
      { bill: "H.R. 815", title: "Israel Security Supplemental Appropriations", date: "2024-04-20", position: "Nay", outcome: "Passed" },
      { bill: "H.Res. 1112", title: "Condemning antisemitism on college campuses", date: "2024-05-09", position: "Present", outcome: "Passed" },
      { bill: "H.R. 6090", title: "Antisemitism Awareness Act", date: "2024-05-01", position: "Nay", outcome: "Passed" },
      { bill: "H.R. 8038", title: "21st Century Peace through Strength Act", date: "2024-04-20", position: "Yea", outcome: "Passed" },
      { bill: "H.R. 2670", title: "National Defense Authorization Act, FY24", date: "2023-12-14", position: "Nay", outcome: "Passed" },
      { bill: "H.R. 4366", title: "Continuing Appropriations Act", date: "2024-03-22", position: "Yea", outcome: "Passed" },
      { bill: "H.R. 3746", title: "Fiscal Responsibility Act of 2023", date: "2023-06-01", position: "Nay", outcome: "Passed" },
    ],

    topDonors: [
      { name: "University of California", employer: "Education", amount: "$85,200" },
      { name: "Alphabet Inc.", employer: "Tech", amount: "$62,100" },
      { name: "Amazon.com", employer: "Tech", amount: "$51,800" },
      { name: "Kaiser Permanente", employer: "Healthcare", amount: "$48,650" },
      { name: "New York University", employer: "Education", amount: "$41,200" },
    ],
    topIndustries: [
      { name: "Retired", amount: "$1,842,019" },
      { name: "Education", amount: "$612,440" },
      { name: "Lawyers & Law Firms", amount: "$418,209" },
      { name: "Health Professionals", amount: "$381,776" },
      { name: "Non-Profits", amount: "$214,830" },
    ],

    trades: { total: 0, lateFilings: 0, overlaps: 0, list: [] },

    lobbying: {
      total: "$148M",
      committees: ["Financial Services", "Oversight & Accountability"],
      firms: [
        { name: "Brownstein Hyatt Farber Schreck", issues: "Banking, Crypto", spend: "$8.4M" },
        { name: "Akin Gump Strauss Hauer & Feld", issues: "Tech, Finance", spend: "$6.9M" },
        { name: "BGR Government Affairs", issues: "Pharma, Defense", spend: "$5.2M" },
      ],
      revolvingDoor: [
        { name: "Saikat Chakrabarti", was: "Chief of Staff (2019)", now: "Founder, New Consensus" },
      ],
    },

    ratings: [
      { group: "NRA", category: "Gun rights", score: "F", issues: ["Gun Rights"] },
      { group: "ACLU", category: "Civil liberties", score: "93%", issues: ["Civil Rights"] },
      { group: "League of Conservation Voters", category: "Environment", score: "97%", issues: ["Environment"] },
      { group: "U.S. Chamber of Commerce", category: "Business", score: "18%", issues: ["Economy", "Tax Policy"] },
      { group: "AFL-CIO", category: "Labor", score: "95%", issues: ["Labor"] },
      { group: "NARAL", category: "Reproductive", score: "100%", issues: ["Healthcare", "Civil Rights"] },
    ],

    investigations: [],
    fec: [],
  },

  cruz: {
    id: "cruz",
    name: "Ted Cruz",
    short: "Cruz",
    party: "Republican",
    office: "U.S. Senator",
    state: "TX",
    chamber: "Senate",
    photo: "https://unitedstates.github.io/images/congress/450x550/C001098.jpg",
    twitter: "SenTedCruz",
    facebook: "SenatorTedCruz",
    instagram: "sentedcruz",
    youtube: "@SenTedCruz",
    website: "cruz.senate.gov",
    phone: "202-224-5922",
    address: "127A Russell Senate Office Building, Washington, DC 20510",
    since: 2013,
    years: 13,
    loyalty: 87,
    missed: 11.2,
    raised: "34.6M",
    conflicts: 4,
    smallDollar: 38,
    pacShare: 19,
    cycles: 2,

    career: [
      { year: 2013, end: null, role: "U.S. Senator", where: "Texas · 113th–119th Congress", kind: "office", detail: "Currently serving 3rd term. Senate Judiciary, Commerce, Foreign Relations committees." },
      { year: 2016, end: 2016, role: "Ran for U.S. President", where: "Republican primary", kind: "campaign", result: "Loss · 2nd place to Trump", detail: "Suspended campaign May 2016 after Indiana primary." },
      { year: 2012, end: 2012, role: "Won U.S. Senate seat", where: "Defeated David Dewhurst in primary, Paul Sadler in general", kind: "campaign", result: "Win · primary runoff +14, general +16" },
      { year: 2008, end: 2008, role: "Lost AG primary", where: "Texas Attorney General · Republican primary", kind: "campaign", result: "Loss · 3rd place", detail: "Dropped out before primary." },
      { year: 2003, end: 2008, role: "Solicitor General of Texas", where: "Appointed by AG Greg Abbott", kind: "office", detail: "Argued nine cases before the U.S. Supreme Court." },
      { year: 2001, end: 2003, role: "Director of Policy Planning", where: "U.S. Federal Trade Commission · Bush administration", kind: "office" },
      { year: 1999, end: 2001, role: "Associate Deputy AG", where: "U.S. Department of Justice · Bush–Cheney transition", kind: "office" },
      { year: 1995, end: 1996, role: "Law clerk", where: "Chief Justice William Rehnquist · U.S. Supreme Court", kind: "professional" },
      { year: 1992, end: 1995, role: "Harvard Law School", where: "J.D., magna cum laude", kind: "education", detail: "Primary editor, Harvard Law Review." },
      { year: 1988, end: 1992, role: "Princeton University", where: "A.B., Public Policy", kind: "education", detail: "Whig-Cliosophic Society American Debate champion." },
    ],

    fundraisingHistory: [
      { cycle: "2024", raised: 34.6, smallDollar: 38, pacShare: 19, status: "Reelection" },
      { cycle: "2018", raised: 41.5, smallDollar: 32, pacShare: 21, status: "Final · narrow win vs Beto" },
      { cycle: "2016", raised: 92.4, smallDollar: 21, pacShare: 8,  status: "Presidential primary · loss" },
      { cycle: "2012", raised: 14.6, smallDollar: 26, pacShare: 17, status: "Final · open seat win" },
    ],

    careerStats: {
      lifetimeRaised: 183.1,
      cyclesRun: 4,
      electionsWon: 3,
      electionsLost: 2,
      officesHeld: 4,
    },

    promises: [
      {
        text: "Will never raise the debt ceiling.",
        source: { what: "Senate floor speech, April 2013", href: "#", date: "2013-04-15" },
        status: "reversed",
        issues: ["Economy", "Tax Policy"],
        evidence: [
          { what: "Original statement: 'I will not vote to raise the debt ceiling under this administration'", href: "#" },
        ],
        vote: {
          bill: "S. 2938", title: "Bipartisan Budget Act of 2019 (raised debt ceiling)",
          position: "Yea", date: "2019-07-31",
          impact: "Voted Yea on legislation that suspended the debt limit for two years.",
        },
      },
      {
        text: "Repeal Obamacare on day one.",
        source: { what: "Campaign trail, October 2016", href: "#", date: "2016-10-19" },
        status: "broken",
        issues: ["Healthcare"],
        evidence: [
          { what: "Voted Yea on Obamacare repeal attempts that failed (2017, 2021)", href: "#" },
          { what: "Despite control of Senate in 2017, repeal effort failed by one vote", href: "#" },
          { what: "No legislative path forward since", href: "#" },
        ],
      },
      {
        text: "Protect Social Security and Medicare benefits from cuts.",
        source: { what: "Town hall, March 2018", href: "#", date: "2018-03-09" },
        status: "reversed",
        issues: ["Healthcare", "Economy"],
        evidence: [
          { what: "Original statement: 'I will never vote to cut Social Security benefits'", href: "#" },
        ],
        vote: {
          bill: "S.AMDT. 4271", title: "Amendment to study Social Security solvency via benefit adjustments",
          position: "Yea", date: "2023-09-14",
          impact: "Voted to advance a proposal that would reduce future scheduled benefits by 12% for new enrollees.",
        },
      },
      {
        text: "Complete construction of the border wall.",
        source: { what: "Senate website, January 2017", href: "#", date: "2017-01-20" },
        status: "in-progress",
        issues: ["Immigration"],
        evidence: [
          { what: "Cosponsor of S. 1543 — Build the Wall, Enforce the Law Act", href: "#" },
          { what: "Voted Yea on S. 1273 Border Act 2024", href: "#" },
        ],
      },
      {
        text: "Defund Planned Parenthood.",
        source: { what: "Campaign platform, 2016", href: "#", date: "2016-06-01" },
        status: "stalled",
        issues: ["Healthcare", "Civil Rights"],
        evidence: [
          { what: "Multiple amendments introduced, none reached final passage", href: "#" },
        ],
      },
    ],

    votes: [
      { bill: "S. 2938",   title: "Bipartisan Budget Act of 2019",      date: "2019-07-31", position: "Yea", outcome: "Passed" },
      { bill: "S.AMDT. 4271", title: "Social Security solvency adjustment", date: "2023-09-14", position: "Yea", outcome: "Tabled" },
      { bill: "S. 1273",   title: "Border Act of 2024",                 date: "2024-05-23", position: "Nay", outcome: "Failed" },
      { bill: "S. 47",     title: "John D. Dingell Conservation Act",   date: "2019-02-12", position: "Nay", outcome: "Passed" },
      { bill: "S. 4361",   title: "Right to IVF Act",                   date: "2024-06-13", position: "Nay", outcome: "Failed" },
    ],

    topDonors: [
      { name: "Goldman Sachs",         employer: "Finance",       amount: "$96,400" },
      { name: "Akin Gump Strauss",     employer: "Lobbying",      amount: "$74,800" },
      { name: "Energy Transfer LP",    employer: "Oil & Gas",     amount: "$62,500" },
      { name: "Susquehanna Int'l",     employer: "Finance",       amount: "$58,100" },
      { name: "Cracker Barrel",        employer: "Restaurants",   amount: "$41,900" },
    ],
    topIndustries: [
      { name: "Oil & Gas",             amount: "$1,184,200" },
      { name: "Securities & Investment", amount: "$842,300" },
      { name: "Lawyers & Law Firms",   amount: "$612,400" },
      { name: "Real Estate",           amount: "$498,180" },
      { name: "Retired",               amount: "$402,950" },
    ],
    ratings: [
      { group: "NRA",                          category: "Gun rights",       score: "A+",  issues: ["Gun Rights"] },
      { group: "ACLU",                         category: "Civil liberties",  score: "0%",  issues: ["Civil Rights"] },
      { group: "League of Conservation Voters",category: "Environment",      score: "3%",  issues: ["Environment"] },
      { group: "U.S. Chamber of Commerce",     category: "Business",         score: "83%", issues: ["Economy", "Tax Policy"] },
      { group: "AFL-CIO",                      category: "Labor",            score: "12%", issues: ["Labor"] },
      { group: "Heritage Action",              category: "Conservative",     score: "94%", issues: ["Tax Policy", "Economy"] },
    ],
  },

  fetterman: {
    id: "fetterman",
    name: "John Fetterman",
    short: "Fetterman",
    party: "Democrat",
    office: "U.S. Senator",
    state: "PA",
    chamber: "Senate",
    photo: "https://unitedstates.github.io/images/congress/450x550/F000479.jpg",
    twitter: "SenFettermanPA",
    facebook: "SenatorFetterman",
    instagram: "senfetterman",
    youtube: "@SenFettermanPA",
    website: "fetterman.senate.gov",
    phone: "202-224-4254",
    address: "B40C Dirksen Senate Office Building, Washington, DC 20510",
    since: 2023,
    years: 3,
    loyalty: 78,
    missed: 5.2,
    raised: "76.1M",
    conflicts: 1,
    smallDollar: 64,
    pacShare: 6,
    cycles: 1,

    career: [
      { year: 2023, end: null, role: "U.S. Senator", where: "Pennsylvania · 118th–119th Congress", kind: "office", detail: "1st term. Senate Banking, Agriculture, Homeland Security committees." },
      { year: 2022, end: 2022, role: "Won U.S. Senate seat", where: "Defeated Mehmet Oz in general · Conor Lamb in primary", kind: "campaign", result: "Win · +4.9 in general" },
      { year: 2019, end: 2023, role: "Lieutenant Governor", where: "Pennsylvania · Wolf administration", kind: "office", detail: "Cannabis legalization tour of all 67 counties." },
      { year: 2016, end: 2016, role: "Lost U.S. Senate primary", where: "Pennsylvania · Democratic primary", kind: "campaign", result: "Loss · 3rd place", detail: "Lost to Katie McGinty." },
      { year: 2005, end: 2019, role: "Mayor", where: "Braddock, PA · 3 terms", kind: "office", detail: "Elected at 35 by ONE vote in primary. Reelected 2009, 2013." },
      { year: 2001, end: 2005, role: "Founded GED tutoring program", where: "Braddock, PA", kind: "professional", detail: "AmeriCorps placement led to permanent move to Braddock." },
      { year: 1999, end: 2001, role: "Harvard Kennedy School", where: "Master in Public Policy", kind: "education" },
      { year: 1991, end: 1995, role: "Albright College", where: "B.A. Finance", kind: "education" },
    ],

    fundraisingHistory: [
      { cycle: "2022", raised: 76.1, smallDollar: 64, pacShare: 6, status: "Final · win vs Oz" },
      { cycle: "2016", raised: 1.8,  smallDollar: 71, pacShare: 0, status: "Primary loss" },
    ],

    careerStats: {
      lifetimeRaised: 77.9,
      cyclesRun: 2,
      electionsWon: 1,
      electionsLost: 1,
      officesHeld: 3,
    },

    promises: [
      {
        text: "Codify Roe v Wade into federal law.",
        source: { what: "Campaign website, August 2022", href: "#", date: "2022-08-01" },
        status: "in-progress",
        issues: ["Healthcare", "Civil Rights"],
        evidence: [
          { what: "Cosponsor of S. 4361 (Right to IVF Act)", href: "#" },
          { what: "Cosponsor of Women's Health Protection Act", href: "#" },
        ],
      },
      {
        text: "Raise the federal minimum wage to $15/hour.",
        source: { what: "Debate, October 2022", href: "#", date: "2022-10-25" },
        status: "stalled",
        issues: ["Labor", "Economy"],
        evidence: [
          { what: "Cosponsor of Raise the Wage Act — no Senate vote since introduction", href: "#" },
        ],
      },
      {
        text: "Pro-union — will not support right-to-work legislation.",
        source: { what: "AFL-CIO endorsement event, September 2022", href: "#", date: "2022-09-08" },
        status: "kept",
        issues: ["Labor"],
        evidence: [
          { what: "Voted Nay on every right-to-work amendment offered this Congress", href: "#" },
        ],
      },
      {
        text: "Will not vote to cut Social Security benefits.",
        source: { what: "Senate floor, March 2023", href: "#", date: "2023-03-02" },
        status: "kept",
        issues: ["Healthcare", "Economy"],
        evidence: [
          { what: "Voted Nay on S.AMDT. 4271 (Social Security solvency adjustment)", href: "#" },
        ],
      },
    ],

    votes: [
      { bill: "S. 47",     title: "John D. Dingell Conservation Act",   date: "2019-02-12", position: "Yea", outcome: "Passed" },
      { bill: "S. 4361",   title: "Right to IVF Act",                   date: "2024-06-13", position: "Yea", outcome: "Failed" },
      { bill: "S. 1273",   title: "Border Act of 2024",                 date: "2024-05-23", position: "Yea", outcome: "Failed" },
    ],

    ratings: [
      { group: "NRA",                          category: "Gun rights",       score: "F",   issues: ["Gun Rights"] },
      { group: "ACLU",                         category: "Civil liberties",  score: "88%", issues: ["Civil Rights"] },
      { group: "League of Conservation Voters",category: "Environment",      score: "84%", issues: ["Environment"] },
      { group: "U.S. Chamber of Commerce",     category: "Business",         score: "22%", issues: ["Economy", "Tax Policy"] },
      { group: "AFL-CIO",                      category: "Labor",            score: "92%", issues: ["Labor"] },
    ],
  },

  schumer: {
    id: "schumer",
    name: "Chuck Schumer",
    short: "Schumer",
    party: "Democrat",
    office: "U.S. Senator",
    state: "NY",
    chamber: "Senate",
    photo: "https://unitedstates.github.io/images/congress/450x550/S000148.jpg",
    since: 1999,
    years: 27,
    loyalty: 96,
    missed: 1.8,
    raised: "44.2M",
    conflicts: 1,
    smallDollar: 12,
    pacShare: 24,
  },

  gillibrand: {
    id: "gillibrand",
    name: "Kirsten Gillibrand",
    short: "Gillibrand",
    party: "Democrat",
    office: "U.S. Senator",
    state: "NY",
    chamber: "Senate",
    photo: "https://unitedstates.github.io/images/congress/450x550/G000555.jpg",
    since: 2009,
    years: 17,
    loyalty: 94,
    missed: 2.1,
    raised: "21.8M",
    conflicts: 0,
    smallDollar: 19,
    pacShare: 17,
  },

  sanders: {
    id: "sanders",
    name: "Bernie Sanders",
    short: "Sanders",
    party: "Independent",
    office: "U.S. Senator",
    state: "VT",
    chamber: "Senate",
    photo: "https://unitedstates.github.io/images/congress/450x550/S000033.jpg",
    since: 2007,
    years: 19,
    loyalty: 65,
    missed: 2.1,
    raised: "108.4M",
    conflicts: 0,
    smallDollar: 72,
    pacShare: 1,
    cycles: 3,
    promises: [
      { text: "Pass Medicare for All.", source: { what: "2016 presidential campaign", date: "2015-04-30", href: "#" }, status: "in-progress", issues: ["Healthcare"], evidence: [{ what: "Lead sponsor of S. 1655 Medicare for All Act", href: "#" }] },
      { text: "Free public-college tuition.", source: { what: "Campaign platform 2016", date: "2015-05-19", href: "#" }, status: "stalled", issues: ["Education"], evidence: [{ what: "College for All Act introduced; no Senate vote since", href: "#" }] },
      { text: "Raise federal minimum wage to $15.", source: { what: "Senate floor, 2017", date: "2017-04-26", href: "#" }, status: "in-progress", issues: ["Labor", "Economy"], evidence: [{ what: "Sponsor of Raise the Wage Act", href: "#" }] },
      { text: "Will not take corporate PAC money.", source: { what: "2016 campaign", date: "2016-01-01", href: "#" }, status: "kept", issues: ["Economy"], evidence: [{ what: "Zero corporate PAC contributions in FEC filings", href: "#" }] },
    ],
    ratings: [
      { group: "NRA", category: "Gun rights", score: "F", issues: ["Gun Rights"] },
      { group: "ACLU", category: "Civil liberties", score: "93%", issues: ["Civil Rights"] },
      { group: "League of Conservation Voters", category: "Environment", score: "98%", issues: ["Environment"] },
      { group: "U.S. Chamber of Commerce", category: "Business", score: "9%", issues: ["Economy", "Tax Policy"] },
      { group: "AFL-CIO", category: "Labor", score: "98%", issues: ["Labor"] },
    ],
  },

  warren: {
    id: "warren",
    name: "Elizabeth Warren",
    short: "Warren",
    party: "Democrat",
    office: "U.S. Senator",
    state: "MA",
    chamber: "Senate",
    photo: "https://unitedstates.github.io/images/congress/450x550/W000817.jpg",
    since: 2013,
    years: 13,
    loyalty: 91,
    missed: 1.6,
    raised: "42.3M",
    conflicts: 0,
    smallDollar: 58,
    pacShare: 3,
    cycles: 2,
    promises: [
      { text: "Cancel student loan debt up to $50K per borrower.", source: { what: "Op-ed, 2019", date: "2019-04-22", href: "#" }, status: "in-progress", issues: ["Education"], evidence: [{ what: "Cosponsor of Student Loan Forgiveness Act; advocated for executive action", href: "#" }] },
      { text: "Break up Big Tech monopolies.", source: { what: "Medium post, 2019", date: "2019-03-08", href: "#" }, status: "stalled", issues: ["Economy"], evidence: [{ what: "Cosponsor of bills on antitrust enforcement; no major legislation enacted", href: "#" }] },
      { text: "2-cent wealth tax on fortunes above $50M.", source: { what: "Campaign 2020", date: "2019-01-24", href: "#" }, status: "stalled", issues: ["Tax Policy", "Economy"], evidence: [{ what: "Ultra-Millionaire Tax Act introduced; no vote", href: "#" }] },
      { text: "Will not accept money from federal lobbyists.", source: { what: "Campaign launch 2019", date: "2019-02-09", href: "#" }, status: "kept", issues: ["Economy"], evidence: [{ what: "FEC filings confirm no lobbyist bundling", href: "#" }] },
    ],
    ratings: [
      { group: "NRA", category: "Gun rights", score: "F", issues: ["Gun Rights"] },
      { group: "ACLU", category: "Civil liberties", score: "91%", issues: ["Civil Rights"] },
      { group: "League of Conservation Voters", category: "Environment", score: "96%", issues: ["Environment"] },
      { group: "U.S. Chamber of Commerce", category: "Business", score: "16%", issues: ["Economy", "Tax Policy"] },
      { group: "AFL-CIO", category: "Labor", score: "94%", issues: ["Labor"] },
    ],
  },

  // ─── Primary candidates (3+ candidate race demo) ─────────────────────
  "alice-brown": {
    id: "alice-brown", name: "Alice Brown", short: "Brown",
    party: "Republican", office: "U.S. House (primary candidate)",
    state: "NY", district: "11", photo: null,
    raised: "212K", cycles: 1, candidate: true, smallDollar: 44, pacShare: 6,
    background: "State assembly member, Staten Island. Former NYPD detective.",
    topIndustries: [
      { name: "Law Enforcement",  amount: "$48,200" },
      { name: "Real Estate",      amount: "$32,400" },
      { name: "Construction",     amount: "$19,800" },
    ],
  },
  "robert-white": {
    id: "robert-white", name: "Robert White", short: "White",
    party: "Republican", office: "U.S. House (primary candidate)",
    state: "NY", district: "11", photo: null,
    raised: "486K", cycles: 1, candidate: true, smallDollar: 12, pacShare: 22,
    background: "Real-estate developer. First-time candidate.",
    topIndustries: [
      { name: "Real Estate",      amount: "$148,900" },
      { name: "Finance",          amount: "$72,600" },
      { name: "Construction",     amount: "$41,200" },
    ],
  },
  "carol-green": {
    id: "carol-green", name: "Carol Green", short: "Green",
    party: "Republican", office: "U.S. House (primary candidate)",
    state: "NY", district: "11", photo: null,
    raised: "84K", cycles: 1, candidate: true, smallDollar: 71, pacShare: 0,
    background: "Public-school principal, Bay Ridge. Grassroots campaign.",
    topIndustries: [
      { name: "Education",        amount: "$14,200" },
      { name: "Retired",          amount: "$11,800" },
      { name: "Non-Profits",      amount: "$6,400" },
    ],
  },
  "dan-black": {
    id: "dan-black", name: "Dan Black", short: "Black",
    party: "Republican", office: "U.S. House (primary candidate)",
    state: "NY", district: "11", photo: null,
    raised: "1.2M", cycles: 1, candidate: true, smallDollar: 8, pacShare: 31,
    background: "Hedge-fund principal. Self-funding $800K of his campaign.",
    topIndustries: [
      { name: "Securities & Investment", amount: "$412,000" },
      { name: "Self-funded",      amount: "$800,000" },
      { name: "Real Estate",      amount: "$98,400" },
    ],
  },

  // ─── Candidates (challengers / first-timers) ─────────────────────────
  // Same data shape as sitting members but with sparse data — the card
  // gracefully hides tabs that have no content.
  "marisol-vega": {
    id: "marisol-vega",
    name: "Marisol Vega",
    short: "Vega",
    party: "Republican",
    office: "U.S. Representative (candidate)",
    state: "NY",
    district: "14",
    photo: null,
    twitter: "vegaforny14",
    website: "vegaforcongress.com",
    raised: "428K",
    cycles: 1,
    candidate: true,
    background: "Small-business owner (Vega Construction, Bronx). First-time candidate. No prior elected office.",
    endorsements: ["NY GOP Bronx County", "Crime Victims United"],
    issuesStated: ["Public safety", "Small-business tax relief", "Bail-reform repeal"],
    smallDollar: 32,
    pacShare: 11,
    topDonors: [
      { name: "Vega Construction LLC", employer: "Construction", amount: "$8,400" },
      { name: "Bronx Real Estate Board", employer: "Real Estate", amount: "$6,500" },
      { name: "PBA of New York City",  employer: "Law Enforcement", amount: "$5,800" },
    ],
    topIndustries: [
      { name: "Real Estate",      amount: "$112,400" },
      { name: "Construction",     amount: "$78,200" },
      { name: "Law Enforcement",  amount: "$24,600" },
    ],
  },

  "daniel-krupa": {
    id: "daniel-krupa",
    name: "Daniel Krupa",
    short: "Krupa",
    party: "Republican",
    office: "NY State Senate (candidate)",
    state: "NY",
    district: "27",
    photo: null,
    website: "krupaforsenate.org",
    raised: "92K",
    cycles: 1,
    candidate: true,
    background: "Defense attorney, Manhattan. Ran for City Council in 2021 (lost).",
    issuesStated: ["Public safety", "Subway crime", "Housing affordability"],
    smallDollar: 41,
    pacShare: 2,
    topDonors: [
      { name: "Krupa Law PC",        employer: "Legal", amount: "$4,200" },
      { name: "Stuyvesant Town Tenants Assn.", employer: "Civic", amount: "$1,800" },
    ],
    topIndustries: [
      { name: "Lawyers & Law Firms", amount: "$34,200" },
      { name: "Real Estate",         amount: "$18,400" },
    ],
  },

  "caleb-reyes": {
    id: "caleb-reyes",
    name: "Caleb Reyes",
    short: "Reyes",
    party: "Independent",
    office: "NY State Assembly (candidate)",
    state: "NY",
    district: "74",
    photo: null,
    website: "calebreyes.nyc",
    raised: "12K",
    cycles: 1,
    candidate: true,
    background: "Community organizer, East Village. Tenant-rights advocate.",
    issuesStated: ["Rent stabilization", "MTA accessibility", "Climate adaptation"],
    smallDollar: 88,
    pacShare: 0,
    topDonors: [
      { name: "Met Council on Housing", employer: "Nonprofit", amount: "$800" },
    ],
    topIndustries: [
      { name: "Non-Profits",   amount: "$5,100" },
      { name: "Retired",       amount: "$3,400" },
    ],
  },
};

// Local NY-14 representatives for "Who Represents Me"
const STATE_REPS = [
  {
    id: "kavanagh",
    name: "Brian Kavanagh",
    short: "Kavanagh",
    party: "Democrat",
    office: "State Senator",
    state: "NY",
    district: "27",
    photo: null,
    since: 2017,
    years: 9,
    loyalty: 91,
    missed: 0.4,
    raised: "412K",
  },
  {
    id: "epstein",
    name: "Harvey Epstein",
    short: "Epstein",
    party: "Democrat",
    office: "State Assembly",
    state: "NY",
    district: "74",
    photo: null,
    since: 2018,
    years: 8,
    loyalty: 88,
    missed: 1.2,
    raised: "186K",
  },
];

// Conflict flags (detail for AOC's accountability tab — even though count is 0 we still show empty state)
const CONFLICTS_AOC = [];

const CONFLICTS_CRUZ = [
  {
    title: "Senate Banking Committee member; spouse holds Goldman Sachs equity",
    severity: "Material",
    evidence: ["Senate Financial Disclosure (2023)", "Committee assignments roster"],
    summary: "Senator's spouse, a managing director at Goldman Sachs, holds firm equity reportable above $1M. Senator serves on Senate Banking, Housing, and Urban Affairs.",
  },
  {
    title: "Voted on energy bill while holding individual oil & gas stocks",
    severity: "Disclosed",
    evidence: ["S.AMDT. 2137 (2023)", "STOCK Act PTR 2023-04-18"],
    summary: "Held positions in EOG Resources and ConocoPhillips disclosed within 45-day window. Voted on amendment to S.AMDT. 2137.",
  },
];

// Shared donors for Fetterman vs Cruz (illustrative)
const SHARED_DONORS = [
  { name: "Microsoft Corp.",        employer: "Tech",        a: "$14,800", b: "$11,200", issues: ["Economy", "Civil Rights"] },
  { name: "Comcast Corp.",          employer: "Telecom",     a: "$12,500", b: "$18,400", issues: ["Economy"] },
  { name: "American Crystal Sugar", employer: "Agriculture", a: "$10,000", b: "$15,000", issues: ["Economy", "Tax Policy"] },
  { name: "AT&T Inc.",              employer: "Telecom",     a: "$9,400",  b: "$22,100", issues: ["Economy"] },
  { name: "FedEx Corp.",            employer: "Logistics",   a: "$8,800",  b: "$13,700", issues: ["Economy", "Labor"] },
  { name: "Lockheed Martin",        employer: "Defense",     a: "$7,500",  b: "$19,800", issues: ["Defense"] },
  { name: "Pfizer Inc.",            employer: "Pharma",      a: "$7,200",  b: "$16,500", issues: ["Healthcare"] },
  { name: "JPMorgan Chase",         employer: "Finance",     a: "$6,800",  b: "$24,300", issues: ["Economy", "Tax Policy"] },
  { name: "Berkshire Hathaway",     employer: "Conglom.",    a: "$6,500",  b: "$8,200",  issues: ["Economy"] },
  { name: "Walmart Stores",         employer: "Retail",      a: "$5,400",  b: "$14,200", issues: ["Economy", "Labor"] },
  { name: "Honeywell International", employer: "Industrial", a: "$5,000",  b: "$12,800", issues: ["Defense", "Economy"] },
  { name: "Cigna Corp.",            employer: "Insurance",   a: "$4,800",  b: "$11,400", issues: ["Healthcare"] },
];

const SHARED_RATINGS = [
  { group: "NRA",                          category: "Gun rights",       a: "F",   b: "A+", issues: ["Gun Rights"] },
  { group: "ACLU",                         category: "Civil liberties",  a: "88%", b: "0%", issues: ["Civil Rights"] },
  { group: "U.S. Chamber of Commerce",     category: "Business",         a: "22%", b: "83%", issues: ["Economy", "Tax Policy"] },
  { group: "League of Conservation Voters",category: "Environment",      a: "84%", b: "3%",  issues: ["Environment"] },
  { group: "AFL-CIO",                      category: "Labor",            a: "92%", b: "12%", issues: ["Labor"] },
  { group: "Heritage Action",              category: "Conservative",     a: "8%",  b: "94%", issues: ["Tax Policy", "Economy"] },
];

const SHARED_VOTES = {
  total: 847,
  agreed: 312,
  rate: 36.8,
  disagreements: [
    { bill: "S. 47",    billRef: "s47",    title: "John D. Dingell Conservation Act",                                 a: "Yea", b: "Nay", issues: ["Environment"] },
    { bill: "S. 4361",  billRef: "s4361",  title: "Right to IVF Act",                                                  a: "Yea", b: "Nay", issues: ["Healthcare", "Civil Rights"] },
    { bill: "H.R. 1",   billRef: "hr1",    title: "Lower Energy Costs Act",                                            a: "Nay", b: "Yea", issues: ["Environment", "Economy"] },
    { bill: "S. 1273",  billRef: "s1273",  title: "Border Act of 2024",                                                a: "Yea", b: "Nay", issues: ["Immigration"] },
    { bill: "H.R. 3935",billRef: "hr3935", title: "Securing Growth & Robust Leadership in Aviation Act",               a: "Yea", b: "Yea", issues: ["Economy"] },
  ],
};

const ISSUES = [
  "Gun Rights", "Healthcare", "Environment", "Immigration", "Economy",
  "Civil Rights", "Education", "Defense", "Labor", "Tax Policy",
];

// Rich info for each interest group. Used by ratings rows on the politician
// card + VS mode so the user knows what each group does and how the score is built.
const RATING_GROUPS = {
  "NRA": {
    full: "National Rifle Association",
    one: "Gun-rights advocacy organization.",
    scale: "A+ to F · highest = strongest alignment with NRA-graded firearms legislation",
    method: "Letter grade from voting record on firearms bills + NRA questionnaire responses.",
    href: "#",
  },
  "ACLU": {
    full: "American Civil Liberties Union",
    one: "Civil-liberties advocacy organization.",
    scale: "0–100% · higher = more votes aligned with ACLU's free-speech, due-process, and privacy positions",
    method: "Score from votes on ACLU-tracked civil-liberties bills.",
    href: "#",
  },
  "League of Conservation Voters": {
    full: "League of Conservation Voters (LCV)",
    one: "Environmental-policy advocacy group.",
    scale: "0–100% · higher = more votes aligned with LCV-endorsed environmental positions",
    method: "Annual scorecard from votes on environmental bills LCV deems significant.",
    href: "#",
  },
  "U.S. Chamber of Commerce": {
    full: "U.S. Chamber of Commerce",
    one: "Lobbying group representing American business interests.",
    scale: "0–100% · higher = more votes aligned with Chamber-endorsed business positions",
    method: "Scorecard from votes on bills the Chamber's federal affairs office tracks.",
    href: "#",
  },
  "AFL-CIO": {
    full: "American Federation of Labor and Congress of Industrial Organizations",
    one: "The largest federation of labor unions in the U.S.",
    scale: "0–100% · higher = more votes aligned with union-endorsed labor positions",
    method: "Score from votes on AFL-CIO-tracked labor and wage bills.",
    href: "#",
  },
  "NARAL": {
    full: "NARAL Pro-Choice America",
    one: "Reproductive-rights advocacy organization.",
    scale: "0–100% · higher = more votes aligned with NARAL's reproductive-rights positions",
    method: "Scorecard from votes on reproductive-rights legislation.",
    href: "#",
  },
  "Heritage Action": {
    full: "Heritage Action for America",
    one: "Conservative policy advocacy arm of the Heritage Foundation.",
    scale: "0–100% · higher = more votes aligned with Heritage's small-government conservative positions",
    method: "Score from votes Heritage Action flags as key conservative tests.",
    href: "#",
  },
};

// trending / featured politicians on home
const FEATURED = ["aoc", "fetterman", "cruz", "schumer"];

// ─── Ballot lookup — what's on the voter's ballot for the next election ──
const BALLOT = {
  address: "160 Cooper St, Bronx, NY 10464",
  zip: "10464",
  district: "NY-14",
  election: { name: "General Election", date: "2026-11-03", state: "New York" },
  precinct: "Bronx County · ED 074",
  logistics: {
    polling: {
      name: "PS 175 — City Island School",
      address: "200 City Island Ave, Bronx, NY 10464",
      hours: "6:00 AM – 9:00 PM",
      mapHint: "0.4 mi from your address",
    },
    registrationDeadline: "2026-10-09",
    earlyVotingStart: "2026-10-24",
    earlyVotingEnd: "2026-11-01",
    mailRequestDeadline: "2026-10-26",
    mailReceivedBy: "2026-11-10",
    dropOffLocations: [
      { name: "Bronx County BOE",     address: "1780 Grand Concourse, Bronx, NY 10457" },
      { name: "Pelham Bay Library",   address: "3060 Middletown Rd, Bronx, NY 10461" },
      { name: "Westchester Sq. BOE",  address: "1 East Tremont Ave, Bronx, NY 10460" },
    ],
  },
  races: [
    {
      id: "us-house-ny14",
      title: "U.S. House of Representatives",
      jurisdiction: "New York · District 14",
      kind: "federal",
      term: "2 years",
      candidates: [
        { id: "aoc",          role: "Incumbent",  meta: "Serving since 2019 · 4th term sought" },
        { id: "marisol-vega", role: "Challenger", meta: "Small-business owner · first run" },
      ],
    },
    {
      id: "ny-senate-27",
      title: "NY State Senate",
      jurisdiction: "New York · District 27",
      kind: "state",
      term: "2 years",
      candidates: [
        { id: "kavanagh",     role: "Incumbent",  meta: "Serving since 2017" },
        { id: "daniel-krupa", role: "Challenger", meta: "Defense attorney · prev. council run" },
      ],
    },
    {
      id: "ny-assembly-74",
      title: "NY State Assembly",
      jurisdiction: "New York · District 74",
      kind: "state",
      term: "2 years",
      candidates: [
        { id: "epstein",     role: "Incumbent",   meta: "Serving since 2018" },
        { id: "caleb-reyes", role: "Challenger",  meta: "Tenant-rights advocate · Independent" },
      ],
    },
    {
      id: "ny-prop-1",
      title: "Proposal 1 — Equal Rights Amendment",
      jurisdiction: "New York · Statewide",
      kind: "proposition",
      term: null,
      yesNoOnly: true,
      summary: "Adds the New York State Equal Rights Amendment, protecting against discrimination based on ethnicity, national origin, age, disability, sex, sexual orientation, gender identity and expression, pregnancy outcomes, and reproductive healthcare and autonomy.",
      yesMeans: "You support adding these categories to the state constitution.",
      noMeans:  "You oppose adding these categories to the state constitution.",
      sourceLabel: "NY State Board of Elections · Proposal text",
    },
    {
      id: "ny-house-11-rep-primary",
      title: "Republican Primary — U.S. House",
      jurisdiction: "New York · District 11",
      kind: "primary",
      term: "2 years",
      electionDate: "2026-06-23",
      candidates: [
        { id: "alice-brown", role: "Candidate", meta: "State assemblymember · ex-NYPD" },
        { id: "robert-white", role: "Candidate", meta: "Real-estate developer · 1st run" },
        { id: "carol-green", role: "Candidate", meta: "School principal · grassroots" },
        { id: "dan-black", role: "Candidate", meta: "Hedge-fund · self-funded $800K" },
      ],
    },
  ],
};

// ─── Bills coming up this week (floor schedule) ─────────────────────────
const UPCOMING_BILLS = [
  { bill: "H.R. 2847", title: "Education Freedom Act",        chamber: "House",  date: "2026-05-26", status: "Floor vote scheduled", issues: ["Education"] },
  { bill: "S. 4128",  title: "Border Enforcement & Asylum Reform Act", chamber: "Senate", date: "2026-05-27", status: "Cloture motion", issues: ["Immigration"] },
  { bill: "H.R. 6201", title: "Affordable Insulin Now Act",   chamber: "House",  date: "2026-05-28", status: "Floor vote scheduled", issues: ["Healthcare"] },
  { bill: "S. 3155",  title: "AI Accountability Act",         chamber: "Senate", date: "2026-05-29", status: "Committee markup",     issues: ["Economy", "Civil Rights"] },
];

// ─── Active legal proceedings involving politicians ─────────────────────
const ACTIVE_LEGAL = [
  { type: "FEC enforcement", who: "Robert White", summary: "Open Matter Under Review re: undisclosed in-kind contributions from real-estate LLC", filed: "2025-11-14", status: "MUR pending", severity: "open" },
  { type: "House Ethics inquiry", who: "Ted Cruz", summary: "Preliminary review of campaign-fund payments to spouse's consulting firm", filed: "2024-09-02", status: "Preliminary review", severity: "open" },
  { type: "Federal indictment",   who: "Dan Black", summary: "Securities fraud charges from prior hedge-fund activity; criminal trial scheduled", filed: "2025-03-18", status: "Trial · Sept 2026", severity: "active" },
];

// ─── Foreign Lobbying (FARA filings + foreign-connected PACs) ───────────
const FOREIGN_LOBBYING = [
  { country: "Saudi Arabia", flag: "🇸🇦", firm: "BGR Government Affairs",       spend: "$2.4M",  committee: "Senate Foreign Relations",        politicianIds: ["cruz"] },
  { country: "Japan",         flag: "🇯🇵", firm: "Akin Gump Strauss Hauer & Feld", spend: "$1.8M", committee: "Senate Finance",                  politicianIds: ["cruz", "fetterman"] },
  { country: "Israel",        flag: "🇮🇱", firm: "Mercury Public Affairs",       spend: "$1.4M",  committee: "Senate Foreign Relations",        politicianIds: ["cruz"] },
  { country: "Qatar",         flag: "🇶🇦", firm: "Squire Patton Boggs",          spend: "$2.1M",  committee: "Senate Armed Services",            politicianIds: ["cruz"] },
  { country: "United Arab Emirates", flag: "🇦🇪", firm: "Akin Gump",             spend: "$1.2M",  committee: "House Financial Services",         politicianIds: ["aoc"] },
  { country: "South Korea",   flag: "🇰🇷", firm: "BGR Government Affairs",       spend: "$0.9M",  committee: "House Financial Services",         politicianIds: ["aoc"] },
  { country: "Taiwan",        flag: "🇹🇼", firm: "BGR Government Affairs",       spend: "$0.7M",  committee: "Senate Banking",                   politicianIds: ["fetterman"] },
];

const FOREIGN_PACS = [
  { pac: "Siemens Corp PAC",            parent: "Siemens AG",            country: "Germany",      flag: "🇩🇪", amount: "$15,000", politicianIds: ["cruz"] },
  { pac: "Samsung Electronics America PAC", parent: "Samsung",          country: "South Korea",  flag: "🇰🇷", amount: "$8,500",  politicianIds: ["cruz"] },
  { pac: "BAE Systems USA PAC",          parent: "BAE Systems plc",      country: "U.K.",         flag: "🇬🇧", amount: "$12,800", politicianIds: ["cruz"] },
  { pac: "Bayer Corp PAC",               parent: "Bayer AG",             country: "Germany",      flag: "🇩🇪", amount: "$6,200",  politicianIds: ["fetterman"] },
  { pac: "Toyota Motor North America PAC", parent: "Toyota Motor Corp", country: "Japan",        flag: "🇯🇵", amount: "$4,400",  politicianIds: ["fetterman"] },
];

// ─── Transparency scorecards (per jurisdiction) ─────────────────────────
const TRANSPARENCY_SCORECARDS = {
  "city-braddock-pa": {
    jurisdiction: "City of Braddock, PA",
    items: [
      { name: "Council member names and contact info", ok: true },
      { name: "Meeting agendas",                       ok: true },
      { name: "Meeting minutes with votes",            ok: false },
      { name: "Campaign finance filings",              ok: false },
      { name: "Financial disclosures",                 ok: false },
      { name: "Salary information",                    ok: false },
      { name: "Budget documents",                      ok: false },
    ],
  },
  "ny-state-assembly": {
    jurisdiction: "New York State Assembly",
    items: [
      { name: "Member rosters and contact info",     ok: true },
      { name: "Voting records (published online)",   ok: true },
      { name: "Bill text & status",                  ok: true },
      { name: "Financial disclosures",               ok: true },
      { name: "Lobbying disclosures",                ok: true },
      { name: "Committee minutes with votes",        ok: false },
      { name: "Itemized expense reports",            ok: false },
    ],
  },
};

window.CV_DATA = { POLITICIANS, STATE_REPS, CONFLICTS_AOC, CONFLICTS_CRUZ, SHARED_DONORS, SHARED_RATINGS, SHARED_VOTES, FEATURED, ISSUES, RATING_GROUPS, BALLOT, UPCOMING_BILLS, ACTIVE_LEGAL, FOREIGN_LOBBYING, FOREIGN_PACS, TRANSPARENCY_SCORECARDS };
