const { useState } = React;


const LOGO = "data:image/png;base64,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";

const HEADSHOT = "data:image/jpeg;base64,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";

const COURSES = {
  seagate: {
    name: "The Seagate Country Club",
    where: "Delray Beach",
    par: 72,
    nines: ["Front nine", "Back nine"],
    tees: [
      { key: "black", label: "Black", yds: "black", si: "siGold", total: 6747, rs: "73.1/134" },
      { key: "gold", label: "Gold", yds: "gold", si: "siGold", total: 6386, rs: "71.8/132" },
      { key: "blue", label: "Blue", yds: "blue", si: "siBlue", total: 6127, rs: "70.8/130" },
    ],
    holes: [
      { h: 1, par: 4, black: 441, gold: 418, blue: 408, siGold: 5, siBlue: 10 },
      { h: 2, par: 5, black: 492, gold: 466, blue: 454, siGold: 7, siBlue: 2 },
      { h: 3, par: 3, black: 193, gold: 168, blue: 157, siGold: 15, siBlue: 16 },
      { h: 4, par: 4, black: 397, gold: 372, blue: 362, siGold: 13, siBlue: 18 },
      { h: 5, par: 4, black: 367, gold: 351, blue: 313, siGold: 11, siBlue: 14 },
      { h: 6, par: 5, black: 501, gold: 482, blue: 471, siGold: 9, siBlue: 12 },
      { h: 7, par: 4, black: 413, gold: 401, blue: 393, siGold: 1, siBlue: 4 },
      { h: 8, par: 3, black: 138, gold: 123, blue: 116, siGold: 17, siBlue: 6 },
      { h: 9, par: 4, black: 412, gold: 391, blue: 376, siGold: 3, siBlue: 8 },
      { h: 10, par: 5, black: 494, gold: 473, blue: 460, siGold: 16, siBlue: 3 },
      { h: 11, par: 4, black: 398, gold: 371, blue: 360, siGold: 4, siBlue: 9 },
      { h: 12, par: 3, black: 194, gold: 157, blue: 146, siGold: 18, siBlue: 15 },
      { h: 13, par: 4, black: 363, gold: 344, blue: 331, siGold: 14, siBlue: 7 },
      { h: 14, par: 4, black: 434, gold: 420, blue: 388, siGold: 2, siBlue: 11 },
      { h: 15, par: 3, black: 197, gold: 189, blue: 176, siGold: 10, siBlue: 13 },
      { h: 16, par: 4, black: 396, gold: 373, blue: 363, siGold: 6, siBlue: 1 },
      { h: 17, par: 4, black: 385, gold: 369, blue: 360, siGold: 12, siBlue: 17 },
      { h: 18, par: 5, black: 532, gold: 518, blue: 493, siGold: 8, siBlue: 5 },
    ],
  },
  brokensound: {
    name: "The Old Course at Broken Sound",
    where: "Boca Raton",
    par: 72,
    nines: ["Front nine", "Back nine"],
    tees: [{ key: "t2", label: "Tee 2", yds: "t2", si: "si", total: 6606, rs: "73.1/142" }],
    holes: [
      { h: 1, par: 5, t2: 540, si: 9 },
      { h: 2, par: 4, t2: 409, si: 1 },
      { h: 3, par: 3, t2: 145, si: 17 },
      { h: 4, par: 4, t2: 342, si: 15 },
      { h: 5, par: 4, t2: 420, si: 5 },
      { h: 6, par: 5, t2: 545, si: 7 },
      { h: 7, par: 4, t2: 290, si: 13 },
      { h: 8, par: 3, t2: 175, si: 11 },
      { h: 9, par: 4, t2: 405, si: 3 },
      { h: 10, par: 5, t2: 515, si: 6 },
      { h: 11, par: 4, t2: 350, si: 16 },
      { h: 12, par: 3, t2: 185, si: 14 },
      { h: 13, par: 4, t2: 415, si: 2 },
      { h: 14, par: 3, t2: 175, si: 12 },
      { h: 15, par: 4, t2: 415, si: 10 },
      { h: 16, par: 5, t2: 485, si: 18 },
      { h: 17, par: 4, t2: 405, si: 8 },
      { h: 18, par: 4, t2: 390, si: 4 },
    ],
  },
  addison: {
    name: "Addison Reserve — Salvation / Trepidation",
    where: "Delray Beach",
    par: 72,
    nines: ["Salvation", "Trepidation"],
    tees: [
      { key: "ar", label: "AR", yds: "ar", si: "si", total: 7131, rs: "74.1/138" },
      { key: "ari", label: "AR/I", yds: "ari", si: "si", total: 6715, rs: "72.2/135" },
    ],
    holes: [
      { h: 1, par: 4, ar: 396, ari: 396, si: 7 },
      { h: 2, par: 4, ar: 414, ari: 414, si: 3 },
      { h: 3, par: 5, ar: 606, ari: 542, si: 15 },
      { h: 4, par: 3, ar: 199, ari: 177, si: 13 },
      { h: 5, par: 4, ar: 435, ari: 393, si: 1 },
      { h: 6, par: 4, ar: 429, ari: 372, si: 9 },
      { h: 7, par: 3, ar: 216, ari: 191, si: 17 },
      { h: 8, par: 4, ar: 391, ari: 391, si: 11 },
      { h: 9, par: 5, ar: 568, ari: 568, si: 5 },
      { h: 10, par: 4, ar: 408, ari: 381, si: 8 },
      { h: 11, par: 4, ar: 439, ari: 394, si: 4 },
      { h: 12, par: 3, ar: 215, ari: 191, si: 10 },
      { h: 13, par: 5, ar: 540, ari: 514, si: 12 },
      { h: 14, par: 4, ar: 391, ari: 359, si: 2 },
      { h: 15, par: 4, ar: 326, ari: 326, si: 18 },
      { h: 16, par: 3, ar: 184, ari: 158, si: 14 },
      { h: 17, par: 5, ar: 531, ari: 531, si: 16 },
      { h: 18, par: 4, ar: 443, ari: 417, si: 6 },
    ],
  },
  addisonrs: {
    name: "Addison Reserve — Redemption / Salvation",
    where: "Delray Beach",
    par: 72,
    nines: ["Redemption", "Salvation"],
    tees: [{ key: "ari", label: "AR/I", yds: "ari", si: "si", total: 6642, rs: "72.0/136" }],
    holes: [
      { h: 1, par: 4, ari: 350, si: 5 },
      { h: 2, par: 4, ari: 396, si: 11 },
      { h: 3, par: 5, ari: 493, si: 13 },
      { h: 4, par: 3, ari: 162, si: 9 },
      { h: 5, par: 4, ari: 405, si: 1 },
      { h: 6, par: 5, ari: 480, si: 15 },
      { h: 7, par: 4, ari: 393, si: 3 },
      { h: 8, par: 3, ari: 196, si: 7 },
      { h: 9, par: 4, ari: 323, si: 17 },
      { h: 10, par: 4, ari: 396, si: 8 },
      { h: 11, par: 4, ari: 414, si: 4 },
      { h: 12, par: 5, ari: 542, si: 16 },
      { h: 13, par: 3, ari: 177, si: 14 },
      { h: 14, par: 4, ari: 393, si: 2 },
      { h: 15, par: 4, ari: 372, si: 10 },
      { h: 16, par: 3, ari: 191, si: 18 },
      { h: 17, par: 4, ari: 391, si: 12 },
      { h: 18, par: 5, ari: 568, si: 6 },
    ],
  },
  delraydunes: {
    name: "Delray Dunes G&CC",
    where: "Boynton Beach",
    par: 71,
    nines: ["Front nine", "Back nine"],
    tees: [
      { key: "dye", label: "Dye", yds: "dye", si: "si", total: 6896, rs: "74.0/132" },
      { key: "gold", label: "Gold", yds: "gold", si: "si", total: 6741, rs: "73.3/131" },
    ],
    holes: [
      { h: 1, par: 4, dye: 380, gold: 380, si: 2 },
      { h: 2, par: 4, dye: 440, gold: 411, si: 8 },
      { h: 3, par: 3, dye: 143, gold: 143, si: 18 },
      { h: 4, par: 5, dye: 552, gold: 552, si: 10 },
      { h: 5, par: 4, dye: 319, gold: 319, si: 16 },
      { h: 6, par: 4, dye: 450, gold: 450, si: 4 },
      { h: 7, par: 3, dye: 211, gold: 182, si: 14 },
      { h: 8, par: 4, dye: 273, gold: 273, si: 12 },
      { h: 9, par: 4, dye: 442, gold: 417, si: 6 },
      { h: 10, par: 4, dye: 398, gold: 398, si: 7 },
      { h: 11, par: 4, dye: 382, gold: 382, si: 11 },
      { h: 12, par: 5, dye: 652, gold: 592, si: 9 },
      { h: 13, par: 4, dye: 452, gold: 452, si: 1 },
      { h: 14, par: 3, dye: 248, gold: 236, si: 17 },
      { h: 15, par: 5, dye: 491, gold: 491, si: 15 },
      { h: 16, par: 4, dye: 466, gold: 466, si: 3 },
      { h: 17, par: 3, dye: 182, gold: 182, si: 13 },
      { h: 18, par: 4, dye: 415, gold: 415, si: 5 },
    ],
  },
  mizner: {
    name: "Mizner Country Club",
    where: "Delray Beach",
    par: 72,
    nines: ["Front nine", "Back nine"],
    tees: [
      { key: "black", label: "Black", yds: "black", si: "si", total: 6909, rs: "74.2/142" },
      { key: "blackgold", label: "Black/Gold", yds: "bg", si: "si", total: 6751, rs: "73.4/141" },
    ],
    holes: [
      { h: 1, par: 4, black: 395, bg: 395, si: 7 },
      { h: 2, par: 4, black: 420, bg: 420, si: 1 },
      { h: 3, par: 5, black: 546, bg: 512, si: 11 },
      { h: 4, par: 4, black: 358, bg: 358, si: 15 },
      { h: 5, par: 3, black: 213, bg: 205, si: 9 },
      { h: 6, par: 4, black: 449, bg: 449, si: 3 },
      { h: 7, par: 5, black: 498, bg: 498, si: 5 },
      { h: 8, par: 4, black: 312, bg: 312, si: 17 },
      { h: 9, par: 3, black: 184, bg: 138, si: 13 },
      { h: 10, par: 4, black: 362, bg: 362, si: 16 },
      { h: 11, par: 4, black: 470, bg: 450, si: 2 },
      { h: 12, par: 4, black: 428, bg: 428, si: 4 },
      { h: 13, par: 3, black: 157, bg: 157, si: 18 },
      { h: 14, par: 4, black: 436, bg: 436, si: 8 },
      { h: 15, par: 5, black: 515, bg: 515, si: 14 },
      { h: 16, par: 3, black: 223, bg: 190, si: 10 },
      { h: 17, par: 4, black: 381, bg: 381, si: 6 },
      { h: 18, par: 5, black: 562, bg: 545, si: 12 },
    ],
  },
  adios: {
    name: "Adios Golf Club",
    where: "Coconut Creek",
    par: 72,
    nines: ["Front nine", "Back nine"],
    tees: [
      { key: "black", label: "Black", yds: "black", si: "si", total: 6935, rs: "74.7/143" },
      { key: "blackgold", label: "Black/Gold", yds: "bg", si: "si", total: 6647, rs: "72.9/141" },
    ],
    holes: [
      { h: 1, par: 5, black: 517, bg: 517, si: 15 },
      { h: 2, par: 4, black: 454, bg: 417, si: 5 },
      { h: 3, par: 4, black: 395, bg: 395, si: 7 },
      { h: 4, par: 3, black: 170, bg: 170, si: 17 },
      { h: 5, par: 4, black: 388, bg: 338, si: 11 },
      { h: 6, par: 5, black: 555, bg: 516, si: 1 },
      { h: 7, par: 3, black: 212, bg: 196, si: 13 },
      { h: 8, par: 4, black: 399, bg: 399, si: 9 },
      { h: 9, par: 4, black: 455, bg: 441, si: 3 },
      { h: 10, par: 4, black: 305, bg: 284, si: 16 },
      { h: 11, par: 4, black: 435, bg: 408, si: 2 },
      { h: 12, par: 3, black: 171, bg: 171, si: 18 },
      { h: 13, par: 5, black: 542, bg: 542, si: 10 },
      { h: 14, par: 4, black: 428, bg: 392, si: 8 },
      { h: 15, par: 4, black: 429, bg: 418, si: 4 },
      { h: 16, par: 4, black: 338, bg: 338, si: 14 },
      { h: 17, par: 3, black: 182, bg: 182, si: 12 },
      { h: 18, par: 5, black: 560, bg: 523, si: 6 },
    ],
  },
  bocario: {
    name: "Boca Rio Golf Club",
    where: "Boca Raton",
    par: 72,
    nines: ["Front nine", "Back nine"],
    tees: [
      { key: "blue", label: "Blue", yds: "blue", si: "si", total: 7055, rs: "" },
      { key: "red", label: "Red", yds: "red", si: "si", total: 6677, rs: "" },
      { key: "white", label: "White", yds: "white", si: "si", total: 6236, rs: "" },
      { key: "gold", label: "Gold", yds: "gold", si: "si", total: 5439, rs: "" },
      { key: "green", label: "Green", yds: "green", si: "si", total: 4853, rs: "" },
    ],
    holes: [
      { h: 1, par: 5, blue: 487, red: 474, white: 446, gold: 431, green: 378, si: 11 },
      { h: 2, par: 4, blue: 421, red: 411, white: 388, gold: 266, green: 224, si: 3 },
      { h: 3, par: 3, blue: 190, red: 155, white: 143, gold: 131, green: 119, si: 17 },
      { h: 4, par: 4, blue: 363, red: 352, white: 309, gold: 284, green: 223, si: 13 },
      { h: 5, par: 4, blue: 400, red: 373, white: 356, gold: 339, green: 269, si: 7 },
      { h: 6, par: 3, blue: 185, red: 173, white: 153, gold: 125, green: 113, si: 15 },
      { h: 7, par: 4, blue: 456, red: 442, white: 411, gold: 325, green: 292, si: 1 },
      { h: 8, par: 5, blue: 542, red: 519, white: 506, gold: 437, green: 399, si: 5 },
      { h: 9, par: 4, blue: 412, red: 398, white: 372, gold: 335, green: 329, si: 9 },
      { h: 10, par: 5, blue: 585, red: 522, white: 492, gold: 426, green: 393, si: 10 },
      { h: 11, par: 4, blue: 465, red: 429, white: 407, gold: 362, green: 345, si: 4 },
      { h: 12, par: 4, blue: 353, red: 341, white: 320, gold: 300, green: 274, si: 14 },
      { h: 13, par: 3, blue: 218, red: 191, white: 171, gold: 135, green: 130, si: 18 },
      { h: 14, par: 4, blue: 410, red: 393, white: 363, gold: 320, green: 282, si: 6 },
      { h: 15, par: 4, blue: 442, red: 413, white: 400, gold: 325, green: 261, si: 2 },
      { h: 16, par: 5, blue: 528, red: 518, white: 477, gold: 430, green: 389, si: 12 },
      { h: 17, par: 3, blue: 177, red: 166, white: 138, gold: 123, green: 105, si: 16 },
      { h: 18, par: 4, blue: 421, red: 407, white: 384, gold: 345, green: 328, si: 8 },
    ],
  },
};

const MANUAL_JUNK = [
  { key: "sandie", label: "Sandie", sign: 1 },
  { key: "pin", label: "Pin", sign: 1 },
];


const C = {
  ink: "#1F2226",
  inkDeep: "#15181B",
  blue: "#5C8CA8",
  blueLt: "#8FB2C7",
  blueSoft: "#EDF3F7",
  copper: "#B5622F",
  copperSoft: "#FBF1EA",
  paper: "#FAFAF8",
  line: "rgba(92,140,168,0.30)",
  up: "#7CC49B",
  down: "#E29A89",
  mute: "#8A8F94",
};

const blankScores = () => Array.from({ length: 18 }, () => ["", "", "", ""]);
const blankCounts = () =>
  [0, 1, 2, 3].map(() => Object.fromEntries(MANUAL_JUNK.map((j) => [j.key, 0])));

function NassauTracker() {
  const [courseKey, setCourseKey] = useState("seagate");
  const course = COURSES[courseKey];
  const defaultTee = course.tees[Math.min(1, course.tees.length - 1)].key;

  const [names, setNames] = useState(["Player 1", "Player 2", "Player 3", "Player 4"]);
  const [tees, setTees] = useState([defaultTee, defaultTee, defaultTee, defaultTee]);
  const [hcps, setHcps] = useState(["0", "0", "0", "0"]);
  const [useStrokes, setUseStrokes] = useState(true);
  const [setupOpen, setSetupOpen] = useState(true);

  const [bets, setBets] = useState({ front: "25", back: "25", overall: "50" });
  const [scores, setScores] = useState(blankScores());
  const [openHole, setOpenHole] = useState(1);

  const [junkOn, setJunkOn] = useState(false);
  const [junkValue, setJunkValue] = useState("5");
  const [eagleDouble, setEagleDouble] = useState(true);
  const [junkMode, setJunkMode] = useState("all");
  const [counts, setCounts] = useState(blankCounts());
  const [copied, setCopied] = useState(false);

  const switchCourse = (key) => {
    const c = COURSES[key];
    const t = c.tees[Math.min(1, c.tees.length - 1)].key;
    setCourseKey(key);
    setTees([t, t, t, t]);
    setScores(blankScores());
    setCounts(blankCounts());
    setOpenHole(1);
  };

  const num = (v) => {
    const n = parseFloat(v);
    return isFinite(n) ? n : 0;
  };
  const money = (v) => `${v < 0 ? "-" : ""}$${Math.abs(v).toFixed(2)}`;
  const setAt = (arr, i, v) => {
    const next = [...arr];
    next[i] = v;
    return next;
  };

  const teeDef = (key) => course.tees.find((t) => t.key === key) || course.tees[0];
  const siFor = (hole, teeKey) => hole[teeDef(teeKey).si];
  const ydsFor = (hole, teeKey) => hole[teeDef(teeKey).yds];

  const setScore = (hi, pi, v) => {
    const next = scores.map((r) => [...r]);
    next[hi][pi] = String(v).replace(/[^0-9]/g, "").slice(0, 2);
    setScores(next);
  };

  const bump = (pi, key, d) => {
    const next = counts.map((c) => ({ ...c }));
    next[pi][key] = Math.max(0, next[pi][key] + d);
    setCounts(next);
  };

  const hcpNums = hcps.map(num);
  const lowest = Math.min(...hcpNums);
  const strokesGiven = hcpNums.map((h) => (useStrokes ? Math.round(h - lowest) : 0));
  const strokesOnHole = (pi, hole) => {
    const s = strokesGiven[pi];
    if (s <= 0) return 0;
    const si = siFor(hole, tees[pi]);
    return Math.floor(s / 18) + (si <= s % 18 ? 1 : 0);
  };

  const teamName = (t) =>
    t === "A" ? `${names[0]} & ${names[1]}` : `${names[2]} & ${names[3]}`;

  const holeInfo = course.holes.map((hole, hi) => {
    const nets = [0, 1, 2, 3].map((pi) => {
      const v = scores[hi][pi];
      if (v === "") return null;
      return num(v) - strokesOnHole(pi, hole);
    });
    const best = (a, b) => {
      const vals = [nets[a], nets[b]].filter((x) => x !== null);
      return vals.length ? Math.min(...vals) : null;
    };
    const netA = best(0, 1);
    const netB = best(2, 3);
    let winner = null;
    if (netA !== null && netB !== null)
      winner = netA < netB ? "A" : netB < netA ? "B" : "H";
    const complete = scores[hi].every((v) => v !== "");
    return { hole, nets, netA, netB, winner, complete };
  });

  const activeHoles = holeInfo.map((x) => x.winner);

  const simulate = (start, end) => {
    let diff = 0,
      lastPlayed = start - 1,
      spawnHole = null;
    for (let h = start; h <= end; h++) {
      const r = activeHoles[h - 1];
      if (r === null || r === undefined) break;
      lastPlayed = h;
      if (r === "A") diff++;
      else if (r === "B") diff--;
      if (spawnHole === null && Math.abs(diff) >= 2 && h < end) spawnHole = h + 1;
    }
    return { diff, lastPlayed, spawnHole };
  };

  const threads = [];
  const addSeg = (start, end, label, level, amount) => {
    const s = simulate(start, end);
    threads.push({ label, start, end, amount, level, diff: s.diff, lastPlayed: s.lastPlayed });
    if (s.spawnHole !== null) addSeg(s.spawnHole, end, label + " press", level + 1, amount);
  };
  addSeg(1, 9, course.nines[0], 0, num(bets.front));
  addSeg(10, 18, course.nines[1], 0, num(bets.back));
  addSeg(1, 18, "Overall 18", 0, num(bets.overall));

  let netA = 0;
  threads.forEach((t) => {
    if (t.diff > 0) netA += t.amount;
    else if (t.diff < 0) netA -= t.amount;
  });
  const nassauPer = [0, 1, 2, 3].map((i) => (i < 2 ? netA / 2 : -netA / 2));

  const autoJunk = [0, 1, 2, 3].map(() => ({ birdie: 0, eagle: 0 }));
  course.holes.forEach((hole, hi) => {
    scores[hi].forEach((v, pi) => {
      if (v === "") return;
      const g = num(v);
      if (g <= 0) return;
      if (g <= hole.par - 2) autoJunk[pi].eagle++;
      else if (g === hole.par - 1) autoJunk[pi].birdie++;
    });
  });

  const jv = num(junkValue);
  const junkPer = [0, 0, 0, 0];
  const junkDetail = [[], [], [], []];
  if (junkOn) {
    const apply = (pi, unit, n, label) => {
      if (!n) return;
      const payers =
        junkMode === "all" ? [0, 1, 2, 3].filter((x) => x !== pi) : pi < 2 ? [2, 3] : [0, 1];
      payers.forEach((px) => {
        junkPer[pi] += unit * n;
        junkPer[px] -= unit * n;
      });
      junkDetail[pi].push(`${n}× ${label}`);
    };
    [0, 1, 2, 3].forEach((pi) => {
      apply(pi, jv, autoJunk[pi].birdie, "Birdie");
      apply(pi, jv * (eagleDouble ? 2 : 1), autoJunk[pi].eagle, "Eagle");
      MANUAL_JUNK.forEach((j) => apply(pi, jv * j.sign, counts[pi][j.key], j.label));
    });
  }

  const totalPer = [0, 1, 2, 3].map((i) => nassauPer[i] + junkPer[i]);
  const grossTotal = (pi) =>
    scores.reduce((sum, row) => sum + (row[pi] === "" ? 0 : num(row[pi])), 0);
  const holesEntered = (pi) => scores.filter((row) => row[pi] !== "").length;
  const parThrees = course.holes.filter((h) => h.par === 3).map((h) => h.h);

  const buildSummary = () => {
    const L = [];
    const today = new Date().toLocaleDateString(undefined, {
      weekday: "long", month: "long", day: "numeric", year: "numeric",
    });
    L.push("NASSAU — " + course.name);
    L.push(course.where + " · " + today);
    L.push("");
    L.push("TEAM 1: " + names[0] + " & " + names[1]);
    L.push("TEAM 2: " + names[2] + " & " + names[3]);
    if (useStrokes) {
      L.push("");
      L.push("Strokes given:");
      [0, 1, 2, 3].forEach((i) => {
        L.push("  " + names[i] + " — " +
          (strokesGiven[i] === 0 ? "scratch" : strokesGiven[i] + " off the " + teeDef(tees[i]).label));
      });
    }

    L.push("");
    L.push("SCORECARD (gross)");
    L.push("Hole  Par  " + [0,1,2,3].map((i)=>(names[i].split(" ")[0]||("P"+(i+1))).slice(0,5).padEnd(6)).join(""));
    course.holes.forEach((hole, hi) => {
      const row = scores[hi];
      if (row.every((v) => v === "")) return;
      const w = holeInfo[hi].winner;
      const tag = w === "A" ? " T1" : w === "B" ? " T2" : w === "H" ? " ½" : "";
      L.push(
        String(hole.h).padEnd(6) + String(hole.par).padEnd(5) +
        row.map((v) => (v === "" ? "-" : v).padEnd(6)).join("") + tag
      );
    });

    L.push("");
    L.push("TOTALS (gross)");
    [0, 1, 2, 3].forEach((i) => {
      if (holesEntered(i) === 0) return;
      L.push("  " + names[i] + ": " + grossTotal(i) + " thru " + holesEntered(i) +
        (autoJunk[i].birdie ? "  (" + autoJunk[i].birdie + " birdie" + (autoJunk[i].birdie===1?"":"s") +
          (autoJunk[i].eagle ? ", " + autoJunk[i].eagle + " eagle" : "") + ")" : ""));
    });

    L.push("");
    L.push("THE BETS");
    threads.forEach((t) => {
      const played = Math.max(0, t.lastPlayed - t.start + 1);
      if (played === 0) return;
      const res = t.diff === 0 ? "push"
        : teamName(t.diff > 0 ? "A" : "B") + " win $" + t.amount.toFixed(2);
      L.push("  " + t.label + (t.level > 0 ? " (holes " + t.start + "-" + t.end + ")" : "") +
        " — " + statusText(t) + " — " + res);
    });

    L.push("");
    L.push("SETTLEMENT");
    [0, 1, 2, 3].forEach((i) => {
      const v = totalPer[i];
      L.push("  " + names[i] + ": " + (v > 0 ? "+" : "") + money(v) +
        (junkOn && junkDetail[i].length ? "   [" + junkDetail[i].join(", ") + "]" : ""));
    });

    L.push("");
    L.push("——————————————");
    L.push("Scorecard by Ricky Estera · Luxury Realtor");
    L.push("Prime Properties · Delray Beach");
    L.push("561-212-0111 · Ricky@rickyestera.com");
    L.push("golf.rickyestera.com");
    return L.join("\n");
  };

  const subjectLine = () =>
    "Nassau at " + course.name + " — " + new Date().toLocaleDateString();

  const shareResults = async () => {
    const text = buildSummary();
    if (navigator.share) {
      try {
        await navigator.share({ title: subjectLine(), text });
        return;
      } catch (e) {
        if (e && e.name === "AbortError") return;
      }
    }
    window.location.href =
      "mailto:?subject=" + encodeURIComponent(subjectLine()) +
      "&body=" + encodeURIComponent(text);
  };

  const emailResults = () => {
    window.location.href =
      "mailto:?subject=" + encodeURIComponent(subjectLine()) +
      "&body=" + encodeURIComponent(buildSummary());
  };

  const copyResults = async () => {
    try {
      await navigator.clipboard.writeText(buildSummary());
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    } catch (e) {
      setCopied(false);
    }
  };

  const statusText = (t) => {
    if (t.lastPlayed < t.start) return "not started";
    if (t.diff === 0) return "all square";
    return `${teamName(t.diff > 0 ? "A" : "B")} ${Math.abs(t.diff)} up`;
  };

  // shared inline styles
  const field = {
    backgroundColor: "#FFFFFF",
    color: C.ink,
    borderWidth: 1,
    borderStyle: "solid",
    borderColor: "#CFD6DB",
    colorScheme: "light",
  };
  const card = { backgroundColor: C.paper, color: C.ink };
  const sectionTitle = { color: "#FFFFFF" };

  return (
    <div style={{ backgroundColor: C.ink, colorScheme: "dark" }} className="min-h-screen pb-10">
      {/* Brand header */}
      <div className="px-4 pt-6 pb-5" style={{ borderBottom: `1px solid ${C.line}` }}>
        <img src={LOGO} alt="Prime Properties" className="block mx-auto w-full max-w-xs h-auto" />
        <div className="text-center mt-5">
          <img
            src={HEADSHOT}
            alt="Ricky Estera"
            className="block mx-auto rounded-full"
            style={{
              width: 96,
              height: 96,
              objectFit: "cover",
              border: `3px solid ${C.blue}`,
            }}
          />
          <div className="text-lg mt-3" style={{ color: "#FFFFFF", letterSpacing: "0.18em" }}>
            RICKY ESTERA
          </div>
          <div className="text-sm mt-1" style={{ color: C.blueLt }}>
            Luxury Realtor
          </div>
          <a
            href="tel:5612120111"
            className="inline-block mt-3 rounded-full px-6 py-2 text-lg"
            style={{ backgroundColor: C.blue, color: "#FFFFFF", letterSpacing: "0.04em" }}
          >
            561-212-0111
          </a>
          <div className="mt-3 flex flex-wrap items-center justify-center gap-x-3 gap-y-1">
            <a
              href="mailto:Ricky@rickyestera.com"
              className="text-sm"
              style={{ color: C.blueLt, textDecoration: "underline" }}
            >
              Ricky@rickyestera.com
            </a>
            <span className="text-sm" style={{ color: C.mute }}>
              ·
            </span>
            <a
              href="https://rickyestera.com"
              target="_blank"
              rel="noopener noreferrer"
              className="text-sm"
              style={{ color: C.blueLt, textDecoration: "underline" }}
            >
              Rickyestera.com
            </a>
          </div>
        </div>
      </div>

      {/* App header */}
      <div className="text-center py-5 px-4" style={{ borderBottom: "1px solid rgba(255,255,255,0.12)" }}>
        <h1 className="text-3xl font-serif font-bold" style={{ color: "#FFFFFF" }}>
          Nassau
        </h1>
        <select
          value={courseKey}
          onChange={(e) => switchCourse(e.target.value)}
          className="mt-3 w-full max-w-sm rounded-lg px-3 py-3 text-sm font-semibold"
          style={{ ...field, borderColor: C.blue }}
        >
          {Object.entries(COURSES).map(([k, c]) => (
            <option key={k} value={k} style={{ color: C.ink, backgroundColor: "#FFFFFF" }}>
              {c.name} · {c.where}
            </option>
          ))}
        </select>
        <p className="text-xs mt-2" style={{ color: C.mute }}>
          Par {course.par} · four-ball · best net ball · automatic press at 2 down
        </p>
      </div>

      <div className="max-w-2xl mx-auto px-4">
        {/* Setup */}
        <div className="flex items-center justify-between mt-5 mb-2">
          <h2 className="font-serif text-lg" style={sectionTitle}>
            Setup
          </h2>
          <button
            onClick={() => setSetupOpen(!setupOpen)}
            className="text-xs rounded-full px-3 py-1"
            style={{ border: `1px solid ${C.blue}`, color: "#FFFFFF" }}
          >
            {setupOpen ? "Hide" : "Show"}
          </button>
        </div>

        {setupOpen && (
          <div className="rounded-lg p-3" style={card}>
            {[
              [0, 1, "Team 1"],
              [2, 3, "Team 2"],
            ].map(([a, b, label]) => (
              <div key={label} className="mb-3">
                <div className="text-xs font-bold mb-1" style={{ color: a === 0 ? C.blue : C.copper }}>
                  {label}
                </div>
                {[a, b].map((i) => (
                  <div key={i} className="grid grid-cols-12 gap-2 mb-2 items-center">
                    <input
                      value={names[i]}
                      onChange={(e) => setNames(setAt(names, i, e.target.value))}
                      className="col-span-6 px-2 py-2 rounded text-sm"
                      style={{
                        ...field,
                        borderColor: i < 2 ? C.blue : C.copper,
                        backgroundColor: i < 2 ? C.blueSoft : C.copperSoft,
                      }}
                    />
                    <select
                      value={tees[i]}
                      onChange={(e) => setTees(setAt(tees, i, e.target.value))}
                      className="col-span-3 px-1 py-2 rounded text-sm"
                      style={field}
                    >
                      {course.tees.map((t) => (
                        <option key={t.key} value={t.key} style={{ color: C.ink }}>
                          {t.label}
                        </option>
                      ))}
                    </select>
                    <input
                      value={hcps[i]}
                      onChange={(e) => setHcps(setAt(hcps, i, e.target.value))}
                      className="col-span-3 px-2 py-2 rounded text-sm text-center"
                      style={field}
                      placeholder="Hcp"
                    />
                  </div>
                ))}
              </div>
            ))}

            <div className="text-xs pt-2" style={{ color: C.mute, borderTop: "1px solid #E3E6E8" }}>
              {course.tees.map((t) => (
                <span key={t.key} className="mr-3">
                  {t.label} {t.total}
                  {t.rs ? ` · ${t.rs}` : ""}
                </span>
              ))}
            </div>

            <label className="flex items-center gap-2 text-sm mt-3" style={{ color: C.ink }}>
              <input
                type="checkbox"
                checked={useStrokes}
                onChange={(e) => setUseStrokes(e.target.checked)}
              />
              Give strokes — low handicap plays scratch
            </label>
            {useStrokes && (
              <div className="text-xs mt-2" style={{ color: C.blue }}>
                {[0, 1, 2, 3].map((i) => (
                  <div key={i}>
                    {names[i]}:{" "}
                    {strokesGiven[i] === 0
                      ? "no strokes"
                      : `${strokesGiven[i]} stroke${strokesGiven[i] === 1 ? "" : "s"} off the ${
                          teeDef(tees[i]).label
                        } card`}
                  </div>
                ))}
              </div>
            )}

            <div
              className="grid grid-cols-3 gap-2 mt-4 pt-3"
              style={{ borderTop: "1px solid #E3E6E8" }}
            >
              {[
                ["front", course.nines[0]],
                ["back", course.nines[1]],
                ["overall", "Overall"],
              ].map(([key, label]) => (
                <div key={key}>
                  <div className="text-xs font-semibold mb-1" style={{ color: C.ink }}>
                    {label} $
                  </div>
                  <input
                    type="number"
                    value={bets[key]}
                    onChange={(e) => setBets({ ...bets, [key]: e.target.value })}
                    className="w-full px-2 py-2 rounded text-sm"
                    style={field}
                  />
                </div>
              ))}
            </div>
          </div>
        )}

        {/* Scoring */}
        <h2 className="font-serif text-lg mt-6 mb-3" style={sectionTitle}>
          Scoring
        </h2>
        <div className="space-y-2">
          {holeInfo.map(({ hole, nets, netA, netB, winner, complete }, hi) => {
            const open = openHole === hole.h;
            const nineHeader =
              hole.h === 1 ? course.nines[0] : hole.h === 10 ? course.nines[1] : null;
            return (
              <div key={hole.h}>
                {nineHeader && (
                  <div className="font-serif text-sm mb-2 mt-1" style={{ color: C.blueLt }}>
                    {nineHeader}
                  </div>
                )}
                <div className="rounded-lg overflow-hidden" style={card}>
                  <button
                    onClick={() => setOpenHole(open ? 0 : hole.h)}
                    className="w-full flex items-center justify-between px-3 py-3 text-left"
                  >
                    <span className="flex items-baseline gap-2">
                      <span className="font-serif font-bold text-lg" style={{ color: C.ink }}>
                        {hole.h}
                      </span>
                      <span className="text-xs" style={{ color: C.mute }}>
                        par {hole.par} · {ydsFor(hole, tees[0])} yds
                      </span>
                    </span>
                    <span className="flex items-center gap-2 text-xs">
                      {complete && (
                        <span style={{ color: C.mute }}>{scores[hi].join(" · ")}</span>
                      )}
                      <span
                        className="px-2 py-1 rounded font-semibold"
                        style={
                          winner === "A"
                            ? { backgroundColor: C.blue, color: "#FFFFFF" }
                            : winner === "B"
                            ? { backgroundColor: C.copper, color: "#FFFFFF" }
                            : winner === "H"
                            ? { backgroundColor: "#DDE1E4", color: C.ink }
                            : { backgroundColor: "#EFF1F2", color: C.mute }
                        }
                      >
                        {winner === "A"
                          ? "Team 1"
                          : winner === "B"
                          ? "Team 2"
                          : winner === "H"
                          ? "halved"
                          : "open"}
                      </span>
                    </span>
                  </button>

                  {open && (
                    <div className="px-3 pb-3">
                      {[0, 1, 2, 3].map((pi) => {
                        const st = strokesOnHole(pi, hole);
                        const g = scores[hi][pi];
                        const net = nets[pi];
                        return (
                          <div
                            key={pi}
                            className="flex items-center gap-2 py-2"
                            style={{ borderTop: `1px solid ${pi < 2 ? "#DEE8EF" : "#F0E2D7"}` }}
                          >
                            <div className="flex-1 min-w-0">
                              <div
                                className="text-sm font-semibold truncate"
                                style={{ color: pi < 2 ? C.blue : C.copper }}
                              >
                                {names[pi]}
                              </div>
                              <div className="text-xs" style={{ color: C.mute }}>
                                SI {siFor(hole, tees[pi])}
                                {st > 0 ? (
                                  <span style={{ color: C.copper, fontWeight: 700 }}>
                                    {" "}
                                    · gets {st} stroke{st > 1 ? "s" : ""}
                                  </span>
                                ) : (
                                  " · no stroke"
                                )}
                              </div>
                            </div>

                            <button
                              onClick={() =>
                                setScore(hi, pi, Math.max(1, (num(g) || hole.par + 1) - 1))
                              }
                              className="w-8 h-9 rounded text-lg leading-none"
                              style={field}
                            >
                              −
                            </button>
                            <input
                              inputMode="numeric"
                              value={g}
                              onChange={(e) => setScore(hi, pi, e.target.value)}
                              placeholder="–"
                              className="w-12 h-9 rounded text-center text-base font-semibold"
                              style={field}
                            />
                            <button
                              onClick={() => setScore(hi, pi, (num(g) || hole.par) + 1)}
                              className="w-8 h-9 rounded text-lg leading-none"
                              style={field}
                            >
                              +
                            </button>

                            <div className="w-10 text-right">
                              <div className="text-xs leading-none" style={{ color: C.mute }}>
                                net
                              </div>
                              <div
                                className="text-base font-bold leading-tight"
                                style={{
                                  color:
                                    net === null ? "#C9CDD1" : st > 0 ? C.copper : C.ink,
                                }}
                              >
                                {net === null ? "–" : net}
                              </div>
                            </div>
                          </div>
                        );
                      })}

                      <div
                        className="mt-2 pt-2 text-xs"
                        style={{ borderTop: "1px solid #E3E6E8", color: C.ink }}
                      >
                        {netA === null || netB === null ? (
                          "Enter at least one score from each team."
                        ) : (
                          <>
                            Best net — {teamName("A")}: <b>{netA}</b> · {teamName("B")}:{" "}
                            <b>{netB}</b>
                            {winner !== "H" && (
                              <>
                                {" → "}
                                <b style={{ color: winner === "A" ? C.blue : C.copper }}>
                                  {teamName(winner)} win the hole
                                </b>
                              </>
                            )}
                          </>
                        )}
                      </div>

                      {hole.h < 18 && (
                        <button
                          onClick={() => setOpenHole(hole.h + 1)}
                          className="mt-3 w-full rounded py-2 text-sm font-semibold"
                          style={{ backgroundColor: C.blue, color: "#FFFFFF" }}
                        >
                          Next hole
                        </button>
                      )}
                    </div>
                  )}
                </div>
              </div>
            );
          })}
        </div>

        {/* Cards */}
        <h2 className="font-serif text-lg mt-6 mb-3" style={sectionTitle}>
          Cards
        </h2>
        <div className="rounded-lg p-3" style={card}>
          <table className="w-full text-sm">
            <thead>
              <tr className="text-left text-xs" style={{ color: C.mute }}>
                <th className="pb-1">Player</th>
                <th className="pb-1 text-right">Holes</th>
                <th className="pb-1 text-right">Gross</th>
                <th className="pb-1 text-right">Birdies</th>
              </tr>
            </thead>
            <tbody>
              {[0, 1, 2, 3].map((i) => (
                <tr key={i} style={{ borderTop: "1px solid #E3E6E8" }}>
                  <td className="py-2" style={{ color: i < 2 ? C.blue : C.copper }}>
                    {names[i]}
                  </td>
                  <td className="py-2 text-right">{holesEntered(i)}</td>
                  <td className="py-2 text-right font-semibold">{grossTotal(i) || "–"}</td>
                  <td className="py-2 text-right">
                    {autoJunk[i].birdie}
                    {autoJunk[i].eagle > 0 && ` + ${autoJunk[i].eagle} eagle`}
                  </td>
                </tr>
              ))}
            </tbody>
          </table>
        </div>

        {/* Junk */}
        <div className="flex items-center justify-between mt-6 mb-3">
          <h2 className="font-serif text-lg" style={sectionTitle}>
            Junk
          </h2>
          <button
            onClick={() => setJunkOn(!junkOn)}
            className="rounded-full px-4 py-1.5 text-sm font-semibold"
            style={
              junkOn
                ? { backgroundColor: C.blue, color: "#FFFFFF" }
                : { border: `1px solid ${C.blue}`, color: "#FFFFFF" }
            }
          >
            {junkOn ? "Playing junk" : "Turn on junk"}
          </button>
        </div>

        {junkOn && (
          <div className="rounded-lg p-3" style={card}>
            <div className="grid grid-cols-2 gap-3">
              <div>
                <div className="text-xs font-semibold mb-1" style={{ color: C.ink }}>
                  Value ($)
                </div>
                <input
                  type="number"
                  value={junkValue}
                  onChange={(e) => setJunkValue(e.target.value)}
                  className="w-full px-2 py-2 rounded text-sm"
                  style={field}
                />
              </div>
              <div>
                <div className="text-xs font-semibold mb-1" style={{ color: C.ink }}>
                  Who pays
                </div>
                <select
                  value={junkMode}
                  onChange={(e) => setJunkMode(e.target.value)}
                  className="w-full px-2 py-2 rounded text-sm"
                  style={field}
                >
                  <option value="all" style={{ color: C.ink }}>
                    All three others
                  </option>
                  <option value="opponents" style={{ color: C.ink }}>
                    Opposing team only
                  </option>
                </select>
              </div>
            </div>
            <label className="flex items-center gap-2 mt-3 text-sm" style={{ color: C.ink }}>
              <input
                type="checkbox"
                checked={eagleDouble}
                onChange={(e) => setEagleDouble(e.target.checked)}
              />
              Eagles count double
            </label>
            <p className="text-xs mt-2" style={{ color: C.mute }}>
              Birdies and eagles counted off the card. Par 3s here: {parThrees.join(", ")}.
            </p>

            <div className="mt-3 space-y-3">
              {[0, 1, 2, 3].map((pi) => (
                <div key={pi} className="pt-2" style={{ borderTop: "1px solid #E3E6E8" }}>
                  <div
                    className="font-semibold mb-2 text-sm"
                    style={{ color: pi < 2 ? C.blue : C.copper }}
                  >
                    {names[pi]}
                    <span className="ml-2 text-xs font-normal" style={{ color: C.mute }}>
                      {autoJunk[pi].birdie} birdie{autoJunk[pi].birdie === 1 ? "" : "s"}
                      {autoJunk[pi].eagle > 0 && `, ${autoJunk[pi].eagle} eagle`}
                    </span>
                  </div>
                  <div className="grid grid-cols-2 gap-2">
                    {MANUAL_JUNK.map((j) => (
                      <div
                        key={j.key}
                        className="flex items-center justify-between rounded px-2 py-1.5"
                        style={{ backgroundColor: "#EFF1F2" }}
                      >
                        <span className="text-xs" style={{ color: C.ink }}>
                          {j.label}
                        </span>
                        <span className="flex items-center gap-1">
                          <button
                            onClick={() => bump(pi, j.key, -1)}
                            className="w-6 h-6 rounded text-sm leading-none"
                            style={field}
                          >
                            −
                          </button>
                          <span className="w-4 text-center text-sm font-semibold">
                            {counts[pi][j.key]}
                          </span>
                          <button
                            onClick={() => bump(pi, j.key, 1)}
                            className="w-6 h-6 rounded text-sm leading-none"
                            style={field}
                          >
                            +
                          </button>
                        </span>
                      </div>
                    ))}
                  </div>
                </div>
              ))}
            </div>
          </div>
        )}

        {/* Match status */}
        <h2 className="font-serif text-lg mt-6 mb-3" style={sectionTitle}>
          Match status
        </h2>
        <div className="rounded-lg p-3" style={card}>
          <table className="w-full text-sm">
            <thead>
              <tr className="text-left text-xs" style={{ color: C.mute }}>
                <th className="pb-2">Bet</th>
                <th className="pb-2">Thru</th>
                <th className="pb-2">Status</th>
                <th className="pb-2 text-right">Worth</th>
              </tr>
            </thead>
            <tbody>
              {threads.map((t, i) => (
                <tr key={i} style={{ borderTop: "1px solid #E3E6E8" }}>
                  <td className="py-2">
                    {t.label}
                    {t.level > 0 && (
                      <span
                        className="ml-1 text-xs px-1 rounded"
                        style={{ backgroundColor: C.blueSoft, color: C.blue }}
                      >
                        {t.start}-{t.end}
                      </span>
                    )}
                  </td>
                  <td className="py-2">{Math.max(0, t.lastPlayed - t.start + 1)}</td>
                  <td className="py-2 text-xs">{statusText(t)}</td>
                  <td className="py-2 text-right">
                    {t.diff === 0 ? (
                      <span style={{ color: C.mute }}>push</span>
                    ) : (
                      <span
                        className="font-bold"
                        style={{ color: t.diff > 0 ? C.blue : C.copper }}
                      >
                        ${t.amount.toFixed(2)}
                      </span>
                    )}
                  </td>
                </tr>
              ))}
            </tbody>
          </table>
        </div>

        {/* Settlement */}
        <h2 className="font-serif text-lg mt-6 mb-3" style={sectionTitle}>
          Where everyone stands
        </h2>
        <div className="rounded-lg p-4" style={{ backgroundColor: C.inkDeep }}>
          <table className="w-full text-sm">
            <thead>
              <tr className="text-left text-xs" style={{ color: C.blueLt }}>
                <th className="pb-2">Player</th>
                <th className="pb-2 text-right">Nassau</th>
                {junkOn && <th className="pb-2 text-right">Junk</th>}
                <th className="pb-2 text-right">Net</th>
              </tr>
            </thead>
            <tbody>
              {[0, 1, 2, 3].map((i) => (
                <tr key={i} style={{ borderTop: "1px solid rgba(255,255,255,0.12)" }}>
                  <td className="py-2" style={{ color: "#FFFFFF" }}>
                    {names[i]}
                    {junkOn && junkDetail[i].length > 0 && (
                      <div className="text-xs" style={{ color: C.mute }}>
                        {junkDetail[i].join(", ")}
                      </div>
                    )}
                  </td>
                  <td className="py-2 text-right" style={{ color: "#E6E8EA" }}>
                    {money(nassauPer[i])}
                  </td>
                  {junkOn && (
                    <td className="py-2 text-right" style={{ color: "#E6E8EA" }}>
                      {money(junkPer[i])}
                    </td>
                  )}
                  <td
                    className="py-2 text-right font-bold"
                    style={{
                      color: totalPer[i] > 0 ? C.up : totalPer[i] < 0 ? C.down : C.mute,
                    }}
                  >
                    {money(totalPer[i])}
                  </td>
                </tr>
              ))}
            </tbody>
          </table>
        </div>

        {/* Send the card */}
        <div className="mt-6">
          <button
            onClick={shareResults}
            className="w-full rounded-lg py-3 text-base font-semibold"
            style={{ backgroundColor: C.blue, color: "#FFFFFF" }}
          >
            Send the card
          </button>
          <div className="flex gap-2 mt-2">
            <button
              onClick={emailResults}
              className="flex-1 rounded-lg py-2 text-sm"
              style={{ border: `1px solid ${C.blue}`, color: "#FFFFFF" }}
            >
              Email it
            </button>
            <button
              onClick={copyResults}
              className="flex-1 rounded-lg py-2 text-sm"
              style={{ border: `1px solid ${C.blue}`, color: "#FFFFFF" }}
            >
              {copied ? "Copied" : "Copy text"}
            </button>
          </div>
          <p className="text-xs mt-2 text-center" style={{ color: C.mute }}>
            Full scorecard, every bet and the settlement.
          </p>
        </div>

        <button
          onClick={() => {
            if (
              scores.some((r) => r.some((v) => v !== "")) &&
              !window.confirm("Clear all scores and start over?")
            )
              return;
            setScores(blankScores());
            setCounts(blankCounts());
            setOpenHole(1);
          }}
          className="mx-auto mt-8 block rounded-full px-5 py-2 text-sm"
          style={{ border: `1px solid ${C.blue}`, color: "#FFFFFF" }}
        >
          Start a new round
        </button>

        {/* Brand footer */}
        <div className="mt-12 pt-6 text-center" style={{ borderTop: `1px solid ${C.line}` }}>
          <img
            src={LOGO}
            alt="Prime Properties"
            className="block mx-auto w-full max-w-xs h-auto"
          />
          <div className="flex items-center justify-center gap-3 mt-4">
            <img
              src={HEADSHOT}
              alt="Ricky Estera"
              className="rounded-full"
              style={{
                width: 52,
                height: 52,
                objectFit: "cover",
                border: `2px solid ${C.blue}`,
              }}
            />
            <div className="text-left">
              <div className="text-sm" style={{ color: "#FFFFFF" }}>
                Ricky Estera
              </div>
              <div className="text-xs" style={{ color: C.blueLt }}>
                Luxury Realtor
              </div>
            </div>
          </div>
          <a
            href="tel:5612120111"
            className="inline-block mt-3 rounded-full px-5 py-2 text-base"
            style={{ backgroundColor: C.blue, color: "#FFFFFF" }}
          >
            561-212-0111
          </a>
          <div className="mt-3 flex flex-wrap items-center justify-center gap-x-3 gap-y-1">
            <a
              href="mailto:Ricky@rickyestera.com"
              className="text-sm"
              style={{ color: C.blueLt, textDecoration: "underline" }}
            >
              Ricky@rickyestera.com
            </a>
            <span className="text-sm" style={{ color: C.mute }}>
              ·
            </span>
            <a
              href="https://rickyestera.com"
              target="_blank"
              rel="noopener noreferrer"
              className="text-sm"
              style={{ color: C.blueLt, textDecoration: "underline" }}
            >
              Rickyestera.com
            </a>
          </div>
          <div className="text-xs mt-4" style={{ color: C.mute }}>
            Compliments of Ricky Estera. Call me for anything real estate.
          </div>
        </div>
      </div>
    </div>
  );
}


ReactDOM.createRoot(document.getElementById("root")).render(<NassauTracker />);
