esedre 0.1.11 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,11 @@ All notable changes to Esedre are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.1.12] - 2026-09-26
9
+
10
+ ### Fixed
11
+ - **UTF-8 En-Dash Mojibake Normalization**: Added `normalizeDashesAndMojibake` and `normalizeTicketFields` to transparently sanitize Windows-1252 mojibake (`–`), double-encoded UTF-8, and non-ASCII Unicode dashes (`\u2013`, `\u2014`, `\u2015`, `\u2012`, `\u2212`) into clean standard ASCII hyphens (`-`) across CLI tables, JSON projections, storage reads, and ticket mutations.
12
+
8
13
  ## [0.1.11] - 2026-09-26
9
14
 
10
15
  ### Fixed
package/dist/esedre.mjs CHANGED
@@ -9,7 +9,7 @@ import fs3 from "node:fs";
9
9
  import path3 from "node:path";
10
10
 
11
11
  // src/types.ts
12
- var CURRENT_ESEDRE_VERSION = "0.1.11";
12
+ var CURRENT_ESEDRE_VERSION = "0.1.12";
13
13
  var EsedreConflictError = class extends Error {
14
14
  constructor(ticketId, currentHash, lastHash) {
15
15
  super(
@@ -538,6 +538,162 @@ async function generateProjectSnapshot(storage, projectCode, outputDir) {
538
538
  return snapshot;
539
539
  }
540
540
 
541
+ // src/utils/formatter.ts
542
+ var isColorSupported = !process.env.NO_COLOR && (process.stdout.isTTY || process.env.FORCE_COLOR);
543
+ var colors = {
544
+ reset: isColorSupported ? "\x1B[0m" : "",
545
+ bold: isColorSupported ? "\x1B[1m" : "",
546
+ dim: isColorSupported ? "\x1B[2m" : "",
547
+ cyan: isColorSupported ? "\x1B[36m" : "",
548
+ green: isColorSupported ? "\x1B[32m" : "",
549
+ yellow: isColorSupported ? "\x1B[33m" : "",
550
+ magenta: isColorSupported ? "\x1B[35m" : "",
551
+ red: isColorSupported ? "\x1B[31m" : "",
552
+ blue: isColorSupported ? "\x1B[34m" : ""
553
+ };
554
+ function normalizeDashesAndMojibake(val) {
555
+ if (typeof val !== "string") return val;
556
+ return val.replace(/–|‗/g, "-").replace(/â€[˜™]/g, "'").replace(/â€[œ]/g, '"').replace(/\u00e2\u20ac\u201c|\u00e2\u0080\u0093|–/g, "-").replace(/\u00e2\u20ac\u201d|\u00e2\u0080\u0094|—/g, "-").replace(/\u00e2\u20ac\u02dc|\u00e2\u20ac\u2122|‘|’/g, "'").replace(/\u00e2\u20ac\u0153|\u00e2\u0080\u009d|“|”/g, '"').replace(/\u00e2\u20ac\u00a6|…/g, "...").replace(/[\u2012\u2013\u2014\u2015\u2212]/g, "-");
557
+ }
558
+ function normalizeTicketFields(ticket) {
559
+ if (!ticket) return ticket;
560
+ if (ticket.meta) {
561
+ if (ticket.meta.title) ticket.meta.title = normalizeDashesAndMojibake(ticket.meta.title);
562
+ if (ticket.meta.estimatedEffort) ticket.meta.estimatedEffort = normalizeDashesAndMojibake(ticket.meta.estimatedEffort);
563
+ if (ticket.meta.complexity) ticket.meta.complexity = normalizeDashesAndMojibake(ticket.meta.complexity);
564
+ }
565
+ if (ticket.detail) {
566
+ if (ticket.detail.title) ticket.detail.title = normalizeDashesAndMojibake(ticket.detail.title);
567
+ if (ticket.detail.estimatedEffort) ticket.detail.estimatedEffort = normalizeDashesAndMojibake(ticket.detail.estimatedEffort);
568
+ if (ticket.detail.summary) ticket.detail.summary = normalizeDashesAndMojibake(ticket.detail.summary);
569
+ if (ticket.detail.breakdown) ticket.detail.breakdown = ticket.detail.breakdown.map((b) => normalizeDashesAndMojibake(b));
570
+ if (ticket.detail.technicalDetails) ticket.detail.technicalDetails = ticket.detail.technicalDetails.map((t) => normalizeDashesAndMojibake(t));
571
+ if (ticket.detail.openQuestions) ticket.detail.openQuestions = ticket.detail.openQuestions.map((q) => normalizeDashesAndMojibake(q));
572
+ if (ticket.detail.raw) ticket.detail.raw = normalizeDashesAndMojibake(ticket.detail.raw);
573
+ }
574
+ if (ticket.planMarkdown) {
575
+ ticket.planMarkdown = normalizeDashesAndMojibake(ticket.planMarkdown);
576
+ }
577
+ if (ticket.comments) {
578
+ for (const c of ticket.comments) {
579
+ if (c.text) c.text = normalizeDashesAndMojibake(c.text);
580
+ if (c.author) c.author = normalizeDashesAndMojibake(c.author);
581
+ }
582
+ }
583
+ return ticket;
584
+ }
585
+ function formatTicketListTable(tickets) {
586
+ if (tickets.length === 0) {
587
+ return `${colors.dim}No tickets found matching criteria.${colors.reset}`;
588
+ }
589
+ const rows = tickets.map((t) => {
590
+ const id = t.projectDescriptor?.code ? `${t.projectDescriptor.code}-${t.meta.id}` : `#${t.meta.id}`;
591
+ const project = t.projectDescriptor?.code || "CORE";
592
+ const type = t.meta.type || t.meta.category || "Feature";
593
+ const status = t.meta.status;
594
+ const title = normalizeDashesAndMojibake(t.meta.title);
595
+ return { id, project, type, status, title };
596
+ });
597
+ const idWidth = Math.max(4, ...rows.map((r) => r.id.length));
598
+ const projWidth = Math.max(7, ...rows.map((r) => r.project.length));
599
+ const typeWidth = Math.max(8, ...rows.map((r) => r.type.length));
600
+ const statusWidth = Math.max(14, ...rows.map((r) => r.status.length));
601
+ const header = `${colors.bold}${pad("ID", idWidth)} ${pad("Project", projWidth)} ${pad("Type", typeWidth)} ${pad("Status", statusWidth)} Title${colors.reset}`;
602
+ const divider = `${colors.dim}${"-".repeat(idWidth)} ${"-".repeat(projWidth)} ${"-".repeat(typeWidth)} ${"-".repeat(statusWidth)} ${"-".repeat(40)}${colors.reset}`;
603
+ const formattedRows = rows.map((r) => {
604
+ const statusColored = colorStatus(r.status);
605
+ const typeColored = colorType(r.type);
606
+ const projColored = `${colors.magenta}${r.project}${colors.reset}`;
607
+ return `${colors.bold}${pad(r.id, idWidth)}${colors.reset} ${pad(projColored, projWidth + (isColorSupported ? colors.magenta.length + colors.reset.length : 0))} ${pad(typeColored, typeWidth + (isColorSupported ? 9 : 0))} ${pad(statusColored, statusWidth + (isColorSupported ? 9 : 0))} ${r.title}`;
608
+ });
609
+ return [header, divider, ...formattedRows].join("\n");
610
+ }
611
+ function formatTicketDetail(ticket) {
612
+ const { meta, detail, comments, planMarkdown, projectDescriptor } = ticket;
613
+ const lines = [];
614
+ lines.push(`${colors.bold}${colors.cyan}Ticket #${meta.project ? `${meta.project}-${meta.id}` : meta.id}: ${normalizeDashesAndMojibake(meta.title)}${colors.reset}`);
615
+ lines.push(`${colors.dim}${"=".repeat(60)}${colors.reset}`);
616
+ lines.push(`${colors.bold}Project:${colors.reset} ${projectDescriptor ? `${projectDescriptor.code} - ${projectDescriptor.name}` : "Default"}`);
617
+ lines.push(`${colors.bold}Type:${colors.reset} ${colorType(meta.type || meta.category || "Feature")}`);
618
+ lines.push(`${colors.bold}Status:${colors.reset} ${colorStatus(meta.status)}`);
619
+ lines.push(`${colors.bold}Complexity:${colors.reset} ${normalizeDashesAndMojibake(meta.complexity || "Medium")}`);
620
+ lines.push(`${colors.bold}Effort:${colors.reset} ${normalizeDashesAndMojibake(meta.estimatedEffort || "N/A")}`);
621
+ lines.push(`${colors.bold}Submitted By:${colors.reset} ${meta.submittedBy || "Unknown"}`);
622
+ if (meta.featureFlag) {
623
+ lines.push(`${colors.bold}Feature Flag:${colors.reset} ${colors.yellow}${meta.featureFlag}${colors.reset}`);
624
+ }
625
+ if (detail?.summary) {
626
+ lines.push("");
627
+ lines.push(`${colors.bold}Summary:${colors.reset}`);
628
+ lines.push(normalizeDashesAndMojibake(detail.summary));
629
+ }
630
+ if (detail?.breakdown && detail.breakdown.length > 0) {
631
+ lines.push("");
632
+ lines.push(`${colors.bold}Feature Breakdown:${colors.reset}`);
633
+ for (const b of detail.breakdown) {
634
+ lines.push(` \u2022 ${normalizeDashesAndMojibake(b)}`);
635
+ }
636
+ }
637
+ if (detail?.technicalDetails && detail.technicalDetails.length > 0) {
638
+ lines.push("");
639
+ lines.push(`${colors.bold}Technical Details:${colors.reset}`);
640
+ for (const t of detail.technicalDetails) {
641
+ lines.push(` \u2022 ${normalizeDashesAndMojibake(t)}`);
642
+ }
643
+ }
644
+ if (detail?.openQuestions && detail.openQuestions.length > 0) {
645
+ lines.push("");
646
+ lines.push(`${colors.bold}Open Decisions & Questions:${colors.reset}`);
647
+ for (const q of detail.openQuestions) {
648
+ lines.push(` \u2022 ${normalizeDashesAndMojibake(q)}`);
649
+ }
650
+ }
651
+ if (planMarkdown) {
652
+ lines.push("");
653
+ lines.push(`${colors.bold}Implementation Plan:${colors.reset}`);
654
+ lines.push(normalizeDashesAndMojibake(planMarkdown.trim()));
655
+ }
656
+ if (comments && comments.length > 0) {
657
+ lines.push("");
658
+ lines.push(`${colors.bold}Comments (${comments.length}):${colors.reset}`);
659
+ for (const c of comments) {
660
+ lines.push(` ${colors.dim}[${c.timestamp.slice(0, 10)}]${colors.reset} ${colors.bold}${normalizeDashesAndMojibake(c.author)}:${colors.reset} ${normalizeDashesAndMojibake(c.text)}`);
661
+ }
662
+ }
663
+ return lines.join("\n");
664
+ }
665
+ function pad(str, width) {
666
+ return str.padEnd(width, " ");
667
+ }
668
+ function colorStatus(status) {
669
+ switch (status) {
670
+ case "Completed":
671
+ return `${colors.green}${status}${colors.reset}`;
672
+ case "In Development":
673
+ return `${colors.green}${status}${colors.reset}`;
674
+ case "Rejected":
675
+ return `${colors.red}${status}${colors.reset}`;
676
+ default:
677
+ return `${colors.cyan}${status}${colors.reset}`;
678
+ }
679
+ }
680
+ function colorType(type) {
681
+ switch (type) {
682
+ case "Feature":
683
+ return `${colors.blue}${type}${colors.reset}`;
684
+ case "Platform":
685
+ return `${colors.magenta}${type}${colors.reset}`;
686
+ case "Tools":
687
+ return `${colors.yellow}${type}${colors.reset}`;
688
+ case "Bug":
689
+ return `${colors.red}${type}${colors.reset}`;
690
+ case "Idea":
691
+ return `${colors.green}${type}${colors.reset}`;
692
+ default:
693
+ return type;
694
+ }
695
+ }
696
+
541
697
  // src/storage/filesystem.ts
542
698
  function isProjectMatch(code, filter) {
543
699
  if (!code || !filter) return false;
@@ -1268,6 +1424,7 @@ ${formattedList}`
1268
1424
  comments,
1269
1425
  projectDescriptor: effectiveLoc.project
1270
1426
  };
1427
+ normalizeTicketFields(ticketObj);
1271
1428
  ticketObj.sha1 = computeTicketHash(ticketObj);
1272
1429
  ticketObj.lastHash = ticketObj.sha1;
1273
1430
  tickets.push(ticketObj);
@@ -1319,6 +1476,7 @@ ${formattedList}`
1319
1476
  comments,
1320
1477
  projectDescriptor: locInfo.loc.project
1321
1478
  };
1479
+ normalizeTicketFields(ticket);
1322
1480
  ticket.sha1 = computeTicketHash(ticket);
1323
1481
  ticket.lastHash = ticket.sha1;
1324
1482
  return ticket;
@@ -1411,13 +1569,18 @@ ${formattedList}`
1411
1569
  fs3.mkdirSync(ticketDir, { recursive: true });
1412
1570
  const now = (/* @__PURE__ */ new Date()).toISOString();
1413
1571
  const effectiveType = input.type || input.category || "Feature";
1572
+ const cleanTitle = normalizeDashesAndMojibake(input.title).slice(0, 48).trim();
1573
+ const cleanEffort = normalizeDashesAndMojibake(input.estimatedEffort || input.effort || "2.0 - 4.0 hours");
1574
+ const cleanComplexity = normalizeDashesAndMojibake(input.complexity || "Medium");
1575
+ const cleanSummary = input.summary ? normalizeDashesAndMojibake(input.summary) : void 0;
1576
+ const cleanDetailRaw = input.detailMarkdown || input.detail ? normalizeDashesAndMojibake(input.detailMarkdown || input.detail) : void 0;
1414
1577
  const meta = {
1415
1578
  id: nextId,
1416
- title: input.title.slice(0, 48).trim(),
1579
+ title: cleanTitle,
1417
1580
  type: effectiveType,
1418
1581
  category: effectiveType,
1419
- complexity: input.complexity || "Medium",
1420
- estimatedEffort: input.estimatedEffort || input.effort || "2.0 - 4.0 hours",
1582
+ complexity: cleanComplexity,
1583
+ estimatedEffort: cleanEffort,
1421
1584
  submittedBy: input.submittedBy || "Developer",
1422
1585
  timestamp: now,
1423
1586
  createdAt: now,
@@ -1428,7 +1591,7 @@ ${formattedList}`
1428
1591
  projectId: targetLoc.project.id,
1429
1592
  project: targetLoc.project.code
1430
1593
  };
1431
- const rawDetail = (input.detailMarkdown || input.detail)?.trim();
1594
+ const rawDetail = cleanDetailRaw?.trim();
1432
1595
  let detailMd;
1433
1596
  if (rawDetail) {
1434
1597
  if (/^#\s+[^\n]+/m.test(rawDetail)) {
@@ -1527,9 +1690,13 @@ ${input.summary || "Summary to be defined."}
1527
1690
  const isNowCompleted = updates.status === "Completed";
1528
1691
  const completedAt = isNowCompleted ? existing.meta.completedAt || now : updates.status && updates.status !== "Completed" ? void 0 : existing.meta.completedAt;
1529
1692
  const revision = (existing.meta.revision || 1) + 1;
1693
+ const sanitizedUpdates = { ...updates };
1694
+ if (sanitizedUpdates.title) sanitizedUpdates.title = normalizeDashesAndMojibake(sanitizedUpdates.title);
1695
+ if (sanitizedUpdates.estimatedEffort) sanitizedUpdates.estimatedEffort = normalizeDashesAndMojibake(sanitizedUpdates.estimatedEffort);
1696
+ if (sanitizedUpdates.complexity) sanitizedUpdates.complexity = normalizeDashesAndMojibake(sanitizedUpdates.complexity);
1530
1697
  const updatedMeta = {
1531
1698
  ...existing.meta,
1532
- ...updates,
1699
+ ...sanitizedUpdates,
1533
1700
  id: locInfo.id,
1534
1701
  project: locInfo.loc.project.code,
1535
1702
  updatedAt: now,
@@ -1565,7 +1732,7 @@ ${input.summary || "Summary to be defined."}
1565
1732
  if (!locInfo) return null;
1566
1733
  const planPath = path3.join(locInfo.ticketDir, "implementation_plan.md");
1567
1734
  if (!fs3.existsSync(planPath)) return null;
1568
- return fs3.readFileSync(planPath, "utf-8");
1735
+ return normalizeDashesAndMojibake(fs3.readFileSync(planPath, "utf-8"));
1569
1736
  }
1570
1737
  async savePlan(id, planMarkdown, lastHash) {
1571
1738
  const ticket = await this.getTicket(id);
@@ -1583,7 +1750,7 @@ ${input.summary || "Summary to be defined."}
1583
1750
  throw new Error(`Ticket #${id} could not be located on disk`);
1584
1751
  }
1585
1752
  const planPath = path3.join(locInfo.ticketDir, "implementation_plan.md");
1586
- writeSafeFile(planPath, planMarkdown);
1753
+ writeSafeFile(planPath, normalizeDashesAndMojibake(planMarkdown));
1587
1754
  const metaPath = path3.join(locInfo.ticketDir, "meta.json");
1588
1755
  if (fs3.existsSync(metaPath)) {
1589
1756
  try {
@@ -1615,8 +1782,8 @@ ${input.summary || "Summary to be defined."}
1615
1782
  const newComment = {
1616
1783
  id: `${locInfo.id}-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`,
1617
1784
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
1618
- author: comment.author || "User",
1619
- text: comment.text.trim()
1785
+ author: normalizeDashesAndMojibake(comment.author || "User"),
1786
+ text: normalizeDashesAndMojibake(comment.text.trim())
1620
1787
  };
1621
1788
  comments.push(newComment);
1622
1789
  writeSafeFile(commentsPath, JSON.stringify(comments, null, 2) + "\n");
@@ -1727,131 +1894,6 @@ var SecurityFilter = class {
1727
1894
  }
1728
1895
  };
1729
1896
 
1730
- // src/utils/formatter.ts
1731
- var isColorSupported = !process.env.NO_COLOR && (process.stdout.isTTY || process.env.FORCE_COLOR);
1732
- var colors = {
1733
- reset: isColorSupported ? "\x1B[0m" : "",
1734
- bold: isColorSupported ? "\x1B[1m" : "",
1735
- dim: isColorSupported ? "\x1B[2m" : "",
1736
- cyan: isColorSupported ? "\x1B[36m" : "",
1737
- green: isColorSupported ? "\x1B[32m" : "",
1738
- yellow: isColorSupported ? "\x1B[33m" : "",
1739
- magenta: isColorSupported ? "\x1B[35m" : "",
1740
- red: isColorSupported ? "\x1B[31m" : "",
1741
- blue: isColorSupported ? "\x1B[34m" : ""
1742
- };
1743
- function formatTicketListTable(tickets) {
1744
- if (tickets.length === 0) {
1745
- return `${colors.dim}No tickets found matching criteria.${colors.reset}`;
1746
- }
1747
- const rows = tickets.map((t) => {
1748
- const id = t.projectDescriptor?.code ? `${t.projectDescriptor.code}-${t.meta.id}` : `#${t.meta.id}`;
1749
- const project = t.projectDescriptor?.code || "CORE";
1750
- const type = t.meta.type || t.meta.category || "Feature";
1751
- const status = t.meta.status;
1752
- const title = t.meta.title;
1753
- return { id, project, type, status, title };
1754
- });
1755
- const idWidth = Math.max(4, ...rows.map((r) => r.id.length));
1756
- const projWidth = Math.max(7, ...rows.map((r) => r.project.length));
1757
- const typeWidth = Math.max(8, ...rows.map((r) => r.type.length));
1758
- const statusWidth = Math.max(14, ...rows.map((r) => r.status.length));
1759
- const header = `${colors.bold}${pad("ID", idWidth)} ${pad("Project", projWidth)} ${pad("Type", typeWidth)} ${pad("Status", statusWidth)} Title${colors.reset}`;
1760
- const divider = `${colors.dim}${"-".repeat(idWidth)} ${"-".repeat(projWidth)} ${"-".repeat(typeWidth)} ${"-".repeat(statusWidth)} ${"-".repeat(40)}${colors.reset}`;
1761
- const formattedRows = rows.map((r) => {
1762
- const statusColored = colorStatus(r.status);
1763
- const typeColored = colorType(r.type);
1764
- const projColored = `${colors.magenta}${r.project}${colors.reset}`;
1765
- return `${colors.bold}${pad(r.id, idWidth)}${colors.reset} ${pad(projColored, projWidth + (isColorSupported ? colors.magenta.length + colors.reset.length : 0))} ${pad(typeColored, typeWidth + (isColorSupported ? 9 : 0))} ${pad(statusColored, statusWidth + (isColorSupported ? 9 : 0))} ${r.title}`;
1766
- });
1767
- return [header, divider, ...formattedRows].join("\n");
1768
- }
1769
- function formatTicketDetail(ticket) {
1770
- const { meta, detail, comments, planMarkdown, projectDescriptor } = ticket;
1771
- const lines = [];
1772
- lines.push(`${colors.bold}${colors.cyan}Ticket #${meta.project ? `${meta.project}-${meta.id}` : meta.id}: ${meta.title}${colors.reset}`);
1773
- lines.push(`${colors.dim}${"=".repeat(60)}${colors.reset}`);
1774
- lines.push(`${colors.bold}Project:${colors.reset} ${projectDescriptor ? `${projectDescriptor.code} - ${projectDescriptor.name}` : "Default"}`);
1775
- lines.push(`${colors.bold}Type:${colors.reset} ${colorType(meta.type || meta.category || "Feature")}`);
1776
- lines.push(`${colors.bold}Status:${colors.reset} ${colorStatus(meta.status)}`);
1777
- lines.push(`${colors.bold}Complexity:${colors.reset} ${meta.complexity || "Medium"}`);
1778
- lines.push(`${colors.bold}Effort:${colors.reset} ${meta.estimatedEffort || "N/A"}`);
1779
- lines.push(`${colors.bold}Submitted By:${colors.reset} ${meta.submittedBy || "Unknown"}`);
1780
- if (meta.featureFlag) {
1781
- lines.push(`${colors.bold}Feature Flag:${colors.reset} ${colors.yellow}${meta.featureFlag}${colors.reset}`);
1782
- }
1783
- if (detail?.summary) {
1784
- lines.push("");
1785
- lines.push(`${colors.bold}Summary:${colors.reset}`);
1786
- lines.push(detail.summary);
1787
- }
1788
- if (detail?.breakdown && detail.breakdown.length > 0) {
1789
- lines.push("");
1790
- lines.push(`${colors.bold}Feature Breakdown:${colors.reset}`);
1791
- for (const b of detail.breakdown) {
1792
- lines.push(` \u2022 ${b}`);
1793
- }
1794
- }
1795
- if (detail?.technicalDetails && detail.technicalDetails.length > 0) {
1796
- lines.push("");
1797
- lines.push(`${colors.bold}Technical Details:${colors.reset}`);
1798
- for (const t of detail.technicalDetails) {
1799
- lines.push(` \u2022 ${t}`);
1800
- }
1801
- }
1802
- if (detail?.openQuestions && detail.openQuestions.length > 0) {
1803
- lines.push("");
1804
- lines.push(`${colors.bold}Open Decisions & Questions:${colors.reset}`);
1805
- for (const q of detail.openQuestions) {
1806
- lines.push(` \u2022 ${q}`);
1807
- }
1808
- }
1809
- if (planMarkdown) {
1810
- lines.push("");
1811
- lines.push(`${colors.bold}Implementation Plan:${colors.reset}`);
1812
- lines.push(planMarkdown.trim());
1813
- }
1814
- if (comments && comments.length > 0) {
1815
- lines.push("");
1816
- lines.push(`${colors.bold}Comments (${comments.length}):${colors.reset}`);
1817
- for (const c of comments) {
1818
- lines.push(` ${colors.dim}[${c.timestamp.slice(0, 10)}]${colors.reset} ${colors.bold}${c.author}:${colors.reset} ${c.text}`);
1819
- }
1820
- }
1821
- return lines.join("\n");
1822
- }
1823
- function pad(str, width) {
1824
- return str.padEnd(width, " ");
1825
- }
1826
- function colorStatus(status) {
1827
- switch (status) {
1828
- case "Completed":
1829
- return `${colors.green}${status}${colors.reset}`;
1830
- case "In Development":
1831
- return `${colors.green}${status}${colors.reset}`;
1832
- case "Rejected":
1833
- return `${colors.red}${status}${colors.reset}`;
1834
- default:
1835
- return `${colors.cyan}${status}${colors.reset}`;
1836
- }
1837
- }
1838
- function colorType(type) {
1839
- switch (type) {
1840
- case "Feature":
1841
- return `${colors.blue}${type}${colors.reset}`;
1842
- case "Platform":
1843
- return `${colors.magenta}${type}${colors.reset}`;
1844
- case "Tools":
1845
- return `${colors.yellow}${type}${colors.reset}`;
1846
- case "Bug":
1847
- return `${colors.red}${type}${colors.reset}`;
1848
- case "Idea":
1849
- return `${colors.green}${type}${colors.reset}`;
1850
- default:
1851
- return type;
1852
- }
1853
- }
1854
-
1855
1897
  // src/mcp/server.ts
1856
1898
  import readline from "node:readline";
1857
1899
  var EsedreMcpServer = class {
@@ -4129,6 +4171,18 @@ function printDuplicateProjectWarnings(storage, isJson) {
4129
4171
  }
4130
4172
  }
4131
4173
  async function main() {
4174
+ if (process.stdout && typeof process.stdout.setDefaultEncoding === "function") {
4175
+ try {
4176
+ process.stdout.setDefaultEncoding("utf-8");
4177
+ } catch {
4178
+ }
4179
+ }
4180
+ if (process.stderr && typeof process.stderr.setDefaultEncoding === "function") {
4181
+ try {
4182
+ process.stderr.setDefaultEncoding("utf-8");
4183
+ } catch {
4184
+ }
4185
+ }
4132
4186
  const rawArgs = process.argv.slice(2);
4133
4187
  const { command, positionals, flags } = parseArgs(rawArgs);
4134
4188
  try {
@@ -4704,12 +4758,12 @@ ${colors.yellow}\u26A0\uFE0F Warning: Daemon is running v${status.version}, but
4704
4758
  if (isJson) {
4705
4759
  console.log(JSON.stringify(tickets.map((t) => ({
4706
4760
  id: t.meta.id,
4707
- title: t.meta.title,
4761
+ title: normalizeDashesAndMojibake(t.meta.title),
4708
4762
  type: t.meta.type || t.meta.category,
4709
4763
  category: t.meta.type || t.meta.category,
4710
4764
  status: t.meta.status,
4711
- complexity: t.meta.complexity,
4712
- effort: t.meta.estimatedEffort,
4765
+ complexity: normalizeDashesAndMojibake(t.meta.complexity),
4766
+ effort: normalizeDashesAndMojibake(t.meta.estimatedEffort),
4713
4767
  project: t.projectDescriptor?.code || t.meta.project || "UNASSIGNED",
4714
4768
  sha1: t.sha1 || t.meta.sha1
4715
4769
  })), null, 2));
@@ -4806,11 +4860,12 @@ ${colors.dim}Total: ${tickets.length} tickets${colors.reset}`);
4806
4860
  return;
4807
4861
  }
4808
4862
  case "create": {
4809
- const title = flags["title"];
4810
- if (!title) {
4863
+ const rawTitle = flags["title"];
4864
+ if (!rawTitle) {
4811
4865
  console.error(`${colors.red}Error: --title is required${colors.reset}`);
4812
4866
  process.exit(1);
4813
4867
  }
4868
+ const title = normalizeDashesAndMojibake(rawTitle);
4814
4869
  const type = flags["type"] || flags["category"] || "Feature";
4815
4870
  const category = type;
4816
4871
  const projectCode = flags["project"] || discovered.config?.projectCode;
@@ -4819,9 +4874,9 @@ ${colors.dim}Total: ${tickets.length} tickets${colors.reset}`);
4819
4874
  console.error(`${colors.dim}Tip: Run 'ese init' to initialize this repository.${colors.reset}`);
4820
4875
  process.exit(1);
4821
4876
  }
4822
- const complexity = flags["complexity"] || "Medium";
4823
- const estimatedEffort = flags["effort"] || "2.0 - 4.0 hours";
4824
- const summary = flags["summary"] || void 0;
4877
+ const complexity = normalizeDashesAndMojibake(flags["complexity"] || "Medium");
4878
+ const estimatedEffort = normalizeDashesAndMojibake(flags["effort"] || "2.0 - 4.0 hours");
4879
+ const summary = flags["summary"] ? normalizeDashesAndMojibake(flags["summary"]) : void 0;
4825
4880
  const submittedBy = flags["author"] || "Developer";
4826
4881
  const val = validateProjectCode(projectCode);
4827
4882
  if (!val.valid) {
@@ -4871,9 +4926,9 @@ ${colors.dim}Total: ${tickets.length} tickets${colors.reset}`);
4871
4926
  const projectFlag = flags["project"];
4872
4927
  const lookupKey = projectFlag && /^\d+$/.test(idStr) ? `${projectFlag}-${idStr}` : idStr;
4873
4928
  const status = flags["status"];
4874
- const title = flags["title"];
4875
- const complexity = flags["complexity"];
4876
- const effort = flags["effort"];
4929
+ const title = flags["title"] ? normalizeDashesAndMojibake(flags["title"]) : void 0;
4930
+ const complexity = flags["complexity"] ? normalizeDashesAndMojibake(flags["complexity"]) : void 0;
4931
+ const effort = flags["effort"] ? normalizeDashesAndMojibake(flags["effort"]) : void 0;
4877
4932
  const inDev = flags["in-dev"] !== void 0 ? Boolean(flags["in-dev"]) : void 0;
4878
4933
  const flag = flags["flag"];
4879
4934
  const isForce = Boolean(flags["force"]);
@@ -13,12 +13,12 @@ Error generating stack: `+e.message+`
13
13
  `);for(let t of e){let e=t.trim();e.startsWith(`- **Technical Detail**:`)?p.push(e.replace(/^- \*\*Technical Detail\*\*:\s*/,``)):e.startsWith(`- **Open Questions**:`)?m.push(e.replace(/^- \*\*Open Questions\*\*:\s*/,``)):e.startsWith(`- `)&&p.push(e.replace(/^- /,``))}}let g=o.match(/\*\*(?:Type|Category)\*\*:\s*([^\n]+)/i),_=g?g[1].trim():``,v=`Feature`;_.toLowerCase().includes(`bug`)?v=`Bug`:_.toLowerCase().includes(`idea`)?v=`Idea`:_.toLowerCase().includes(`tool`)?v=`Tools`:(_.toLowerCase().includes(`platform`)||_.toLowerCase().includes(`technical`))&&(v=`Platform`);let y=a.toLowerCase().includes(`(completed)`)||o.toLowerCase().includes(`status: completed`),b=t.replace(/\s*\([^)]*completed[^)]*\)/i,``).trim();i.push({id:`feature-${e}`,number:e,ticketId:String(e),title:b,type:v,category:v,complexity:n?n[1].trim():`Medium`,rationale:l,breakdown:d,technicalDetails:p.length>0?p:void 0,openQuestions:m.length>0?m:void 0,isCompleted:y?!0:void 0,featureFlag:c,projectId:void 0,project:void 0})}}}if(t){let e=r||{},t=n||{};for(let n in e){let r=e[n];if(!r)continue;let a=r.id;if(a===void 0){let e=parseInt(n.replace(/^[a-zA-Z0-9]+[-_:]/,``),10);a=isNaN(e)?parseInt(n,10):e}if(isNaN(a))continue;let o=t[n]||``,s=o.match(/(?:##|###)\s*(?:Summary|Rationale)\s*\n([\s\S]*?)(?=\n##|\n###|\n#|$)/i),c=[],l=o.match(/(?:##|###)\s*Feature Breakdown\s*\n([\s\S]*?)(?=\n##|\n###|\n#|$)/i);if(l){let e=l[1].split(`
14
14
  `),t=``;for(let n of e){let e=n.match(/^\d+\.\s*(.*)$/);e?(t&&c.push(t),t=e[1].trim()):n.trim().startsWith(`-`)||n.trim().startsWith(`*`)||n.trim().startsWith(`•`)?t?t+=`
15
15
  `+n.trim():c.push(n.trim().replace(/^[-*•]\s*/,``)):t&&n.trim()&&(t+=` `+n.trim())}t&&c.push(t)}let u=[],d=[],f=o.match(/(?:##|###)\s*Technical Detail & Open Questions\s*\n([\s\S]*?)(?=\n##|\n###|\n#|$)/i);if(f){let e=f[1].split(`
16
- `);for(let t of e){let e=t.trim();e.startsWith(`- **Technical Detail**:`)?u.push(e.replace(/^[-*•]\s*\*\*Technical Detail\*\*:\s*/,``)):e.startsWith(`- **Open Question**:`)||e.startsWith(`* **Open Question**:`)||e.startsWith(`- **Open Questions**:`)||e.startsWith(`* **Open Questions**:`)?d.push(e.replace(/^[-*•]\s*\*\*Open Questions?\*\*:\s*/,``)):(e.startsWith(`- `)||e.startsWith(`* `)||e.startsWith(`• `))&&u.push(e.replace(/^[-*•]\s*/,``))}}let p=s?s[1].trim():!l&&!f&&o?o.trim():void 0,m=j(r.projectId??r.project)||j(1),h=m?.code||r.project||`Prof`,g=i.findIndex(e=>e.ticketId===n||e.number===a&&e.projectId===m?.id),_=g>=0?i[g]:void 0,v=o.match(/^#\s*(?:Ticket\s*#?\d+\s*:\s*|\d+\s*:\s*)?([^\n]+)/im),y=(r.title&&r.title.trim()||(v?v[1].trim():``)||_?.title||``).slice(0,48),b=o.match(/\*\*(?:Type|Category)\*\*:\s*([^\n]+)/i),x=r.type||r.category||(b?b[1].trim():void 0)||_?.type||_?.category||`Feature`,ee=o.match(/\*\*Complexity\*\*:\s*([^\n]+)/i),S=r.complexity||(ee?ee[1].trim():void 0)||_?.complexity||`Medium`,C=o.match(/\*\*Estimated Effort\*\*:\s*([^\n]+)/i),w=r.estimatedEffort||(C?C[1].trim():void 0)||_?.estimatedEffort||`N/A`,te=r.featureFlag||_?.featureFlag,ne=r.status===`Completed`||r.status===void 0&&_?.isCompleted,T=r.status===`Rejected`||r.status===void 0&&_?.isRejected,E={id:`feature-${h}-${a}`,number:a,ticketId:n,title:y,type:x,category:x,complexity:S,estimatedEffort:w,rationale:p||_?.rationale,breakdown:c.length>0?c:_?.breakdown||[],technicalDetails:u.length>0?u:_?.technicalDetails,openQuestions:d.length>0?d:_?.openQuestions,featureFlag:te,projectId:m?.id,project:m?.name,isCompleted:ne,isRejected:T,rawDetail:o||_?.rawDetail||void 0};g>=0?i[g]=E:i.push(E)}}return{plannedFeatures:i.sort((e,t)=>e.number-t.number),featureFlags:a,majorIdeas:o,rawMarkdown:e}}var rt=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),N=o(((e,t)=>{t.exports=rt()}))(),it=({isOpen:e,onClose:t,onConfirm:n,title:r,subtitle:i,message:a,confirmLabel:o=`Confirm`,cancelLabel:s=`Cancel`,variant:c=`warning`,icon:l,hideCancel:u=!1})=>{if((0,S.useEffect)(()=>{let n=e=>{e.key===`Escape`&&t()};return e&&window.addEventListener(`keydown`,n),()=>{window.removeEventListener(`keydown`,n)}},[e,t]),!e)return null;let d=(()=>{switch(c){case`danger`:return{iconBg:`bg-rose-500/10 border-rose-500/30 text-rose-400`,defaultIcon:(0,N.jsx)(oe,{size:20}),confirmBtn:`bg-rose-600 hover:bg-rose-500 text-white shadow-rose-600/20`};case`success`:return{iconBg:`bg-emerald-500/10 border-emerald-500/30 text-emerald-400`,defaultIcon:(0,N.jsx)(se,{size:20}),confirmBtn:`bg-emerald-600 hover:bg-emerald-500 text-white shadow-emerald-600/20`};case`info`:return{iconBg:`bg-[var(--accent-bg-subtle)] border-[var(--accent-border-subtle)] text-[var(--accent-primary)]`,defaultIcon:(0,N.jsx)(be,{size:20}),confirmBtn:`bg-[var(--accent-primary)] hover:brightness-110 text-white shadow-lg shadow-[var(--accent-primary)]/20`};default:return{iconBg:`bg-amber-500/10 border-amber-500/30 text-amber-400`,defaultIcon:(0,N.jsx)(He,{size:20}),confirmBtn:`bg-[var(--accent-primary)] hover:brightness-110 text-white shadow-lg shadow-[var(--accent-primary)]/20`}}})();return(0,N.jsx)(`div`,{className:`fixed inset-0 bg-black/85 backdrop-blur-md z-[120] flex items-center justify-center p-4 animate-fade-in`,onClick:t,children:(0,N.jsxs)(`div`,{className:`bg-[var(--bg-surface)] border border-[var(--border-strong)] w-full max-w-md rounded-3xl p-6 shadow-2xl animate-in fade-in zoom-in-95 duration-200 text-[var(--text-primary)] space-y-5`,onClick:e=>e.stopPropagation(),children:[(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,N.jsx)(`div`,{className:`w-10 h-10 rounded-full border flex items-center justify-center shrink-0 ${d.iconBg}`,children:l||d.defaultIcon}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h3`,{className:`text-sm font-bold text-[var(--text-primary)]`,children:r}),i&&(0,N.jsx)(`p`,{className:`text-[10px] text-[var(--accent-primary)] font-mono`,children:i})]})]}),(0,N.jsx)(`button`,{type:`button`,onClick:t,className:`text-[var(--text-muted)] hover:text-[var(--text-primary)] p-1 rounded-lg hover:bg-[var(--bg-surface-elevated)] transition-colors cursor-pointer`,"aria-label":`Close dialog`,children:(0,N.jsx)(Ge,{size:18})})]}),(0,N.jsx)(`div`,{className:`text-xs text-[var(--text-secondary)] leading-relaxed whitespace-pre-wrap`,children:typeof a==`string`?(0,N.jsx)(`p`,{children:a}):a}),(0,N.jsxs)(`div`,{className:`flex flex-col-reverse sm:flex-row sm:justify-end gap-2.5 pt-2`,children:[!u&&(0,N.jsx)(`button`,{type:`button`,onClick:t,className:`w-full sm:w-auto px-4 py-2.5 rounded-xl bg-[var(--bg-input)] hover:bg-[var(--bg-surface-elevated)] border border-[var(--border-subtle)] text-[var(--text-secondary)] hover:text-[var(--text-primary)] text-xs font-semibold uppercase tracking-wider transition-all cursor-pointer min-h-[44px] flex items-center justify-center`,children:s}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>{n&&n(),t()},className:`w-full sm:w-auto px-5 py-2.5 rounded-xl font-bold text-xs uppercase tracking-wider flex items-center justify-center gap-2 transition-all cursor-pointer shadow-lg min-h-[44px] ${d.confirmBtn}`,children:o})]})]})})},at=[{name:`Cyan`,badge:`border-cyan-500/30 bg-cyan-500/10 text-cyan-300`,dot:`bg-cyan-400`,border:`border-cyan-500/40`},{name:`Indigo`,badge:`border-indigo-500/30 bg-indigo-500/10 text-indigo-300`,dot:`bg-indigo-400`,border:`border-indigo-500/40`},{name:`Emerald`,badge:`border-emerald-500/30 bg-emerald-500/10 text-emerald-300`,dot:`bg-emerald-400`,border:`border-emerald-500/40`},{name:`Fuchsia`,badge:`border-fuchsia-500/30 bg-fuchsia-500/10 text-fuchsia-300`,dot:`bg-fuchsia-400`,border:`border-fuchsia-500/40`},{name:`Amber`,badge:`border-amber-500/30 bg-amber-500/10 text-amber-300`,dot:`bg-amber-400`,border:`border-amber-500/40`},{name:`Rose`,badge:`border-rose-500/30 bg-rose-500/10 text-rose-300`,dot:`bg-rose-400`,border:`border-rose-500/40`}],ot=({isOpen:e,onClose:t,onCreated:n})=>{let[r,i]=(0,S.useState)(``),[a,o]=(0,S.useState)(``),[s,c]=(0,S.useState)(``),[l,u]=(0,S.useState)(0),[d,f]=(0,S.useState)(!1),[p,m]=(0,S.useState)(null),[h,g]=(0,S.useState)(!1),_=(0,S.useMemo)(()=>!!(r.trim()||a.trim()||s.trim()),[r,a,s]),v=(0,S.useCallback)(()=>{_?g(!0):t()},[_,t]);return(0,S.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(h?g(!1):v())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[h,v]),e?(0,N.jsxs)(`div`,{className:`fixed inset-0 z-[90] flex items-center justify-center p-4 bg-slate-950/80 backdrop-blur-md animate-fade-in`,onClick:v,children:[(0,N.jsxs)(`div`,{className:`w-full max-w-md bg-[var(--bg-surface-elevated)] border border-[var(--border-subtle)] rounded-2xl shadow-2xl overflow-hidden flex flex-col animate-scale-up`,onClick:e=>e.stopPropagation(),children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-[var(--border-subtle)] bg-[var(--bg-surface)]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`div`,{className:`p-1.5 rounded-xl bg-[var(--accent-primary)]/10 text-[var(--accent-primary)]`,children:(0,N.jsx)(he,{size:18})}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h2`,{className:`text-sm font-bold text-[var(--text-primary)]`,children:`Add New Project`}),(0,N.jsxs)(`p`,{className:`text-[11px] text-[var(--text-muted)]`,children:[`Register a project with a 1-`,8,` char code`]})]})]}),(0,N.jsx)(`button`,{type:`button`,onClick:v,className:`p-1 text-[var(--text-muted)] hover:text-[var(--text-primary)] rounded-lg transition-colors cursor-pointer`,children:(0,N.jsx)(Ge,{size:18})})]}),(0,N.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault();let i=r.trim();if(!i){m(`Project code is required.`);return}if(!RegExp(`^[a-zA-Z0-9]{1,8}$`).test(i)){m(`Project code must be 1 to 8 alphanumeric characters (e.g. CORE, ALCE, WEB).`);return}if(Ze.some(e=>e.toLowerCase()===i.toLowerCase())){m(`Project code '${i}' collides with an existing project (case-insensitive).`);return}let o=a.trim();if(!o){m(`Project name is required.`);return}if(o.length>48){m(`Project name cannot exceed 48 characters.`);return}m(null),f(!0);let c=at[l];try{let e=await fetch(`/api/planning/create-project`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:i,name:o,description:s.trim()||`${o} Project`,colors:c})});if(!e.ok){let t=await e.json();throw Error(t.error||`Failed to create project`)}let{project:r}=await e.json();Je.push(r),Ze.push(r.code),f(!1),n(r),t()}catch{let e={id:Je.length>0?Math.max(...Je.map(e=>e.id))+1:1,code:i,name:o,description:s.trim()||`${o} Project`,colors:c};Je.push(e),Ze.push(e.code),f(!1),n(e),t()}},className:`p-4 space-y-3.5`,children:[p&&(0,N.jsx)(`div`,{className:`p-2.5 bg-rose-500/10 border border-rose-500/30 rounded-xl text-xs text-rose-300`,children:p}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(he,{size:13,className:`text-[var(--accent-primary)]`}),` Project Code *`]}),(0,N.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--text-muted)]`,children:[r.length,`/`,8]})]}),(0,N.jsx)(`input`,{type:`text`,value:r,maxLength:8,onChange:e=>i(e.target.value.replace(/[^a-zA-Z0-9]/g,``)),placeholder:`e.g. CORE, ALCE, WEB`,className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs font-mono font-bold text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none`,required:!0,autoFocus:!0}),(0,N.jsxs)(`p`,{className:`text-[10px] text-[var(--text-muted)]`,children:[`Strictly 1 to `,8,` alphanumeric characters.`]})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(k,{size:13,className:`text-[var(--accent-primary)]`}),` Project Name *`]}),(0,N.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--text-muted)]`,children:[a.length,`/`,48]})]}),(0,N.jsx)(`input`,{type:`text`,value:a,maxLength:48,onChange:e=>o(e.target.value),placeholder:`e.g. Hablaster Video Game`,className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none`,required:!0})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsx)(`label`,{className:`text-xs font-bold text-[var(--text-primary)]`,children:`Description`}),(0,N.jsx)(`input`,{type:`text`,value:s,maxLength:120,onChange:e=>c(e.target.value),placeholder:`Brief summary of repository or app`,className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none`})]}),(0,N.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(Ee,{size:13,className:`text-[var(--accent-primary)]`}),` Badge Color Palette`]}),(0,N.jsx)(`div`,{className:`grid grid-cols-3 gap-2`,children:at.map((e,t)=>(0,N.jsxs)(`button`,{type:`button`,onClick:()=>u(t),className:`p-2 rounded-xl border text-xs font-mono font-semibold flex items-center gap-1.5 transition-all cursor-pointer ${e.badge} ${l===t?`ring-2 ring-[var(--accent-primary)] shadow-md`:`opacity-70 hover:opacity-100`}`,children:[(0,N.jsx)(`span`,{className:`w-2 h-2 rounded-full ${e.dot} shrink-0`}),(0,N.jsx)(`span`,{children:e.name})]},e.name))})]}),(0,N.jsxs)(`div`,{className:`flex items-center justify-end gap-2 pt-2 border-t border-[var(--border-subtle)]`,children:[(0,N.jsx)(`button`,{type:`button`,onClick:v,className:`px-3 py-1.5 bg-slate-800 hover:bg-slate-700 text-slate-300 rounded-xl text-xs font-semibold transition-colors cursor-pointer`,children:`Cancel`}),(0,N.jsxs)(`button`,{type:`submit`,disabled:d||!r.trim()||!a.trim(),className:`px-3.5 py-1.5 bg-[var(--accent-primary)] hover:brightness-110 text-white rounded-xl text-xs font-semibold flex items-center gap-1.5 shadow-md transition-all disabled:opacity-50 cursor-pointer`,children:[(0,N.jsx)(ke,{size:14}),(0,N.jsx)(`span`,{children:d?`Creating...`:`Create Project`})]})]})]})]}),(0,N.jsx)(it,{isOpen:h,title:`Discard Unsaved Project?`,message:`You have entered project details. Are you sure you want to discard your changes?`,confirmLabel:`Discard`,cancelLabel:`Keep Editing`,variant:`danger`,onClose:()=>g(!1),onConfirm:()=>{g(!1),t()}})]}):null},st=[{name:`Feature`,badgeClass:`border-indigo-500/30 bg-indigo-500/10 text-indigo-700 dark:text-indigo-300`,icon:(0,N.jsx)(Le,{size:14,className:`text-indigo-600 dark:text-indigo-400`}),summary:`User-facing gameplay features, UI screens, calculators, and research tools.`,scope:`Enhancements that players interact with directly during day-to-day gameplay.`},{name:`Platform`,badgeClass:`border-cyan-500/30 bg-cyan-500/10 text-cyan-700 dark:text-cyan-300`,icon:(0,N.jsx)(ue,{size:14,className:`text-cyan-600 dark:text-cyan-400`}),summary:`Core architecture, database/storage layers, schema migrations, CI/CD, and security.`,scope:`Foundational infrastructure that powers reliability, speed, and cross-project modularity.`},{name:`Tools`,badgeClass:`border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300`,icon:(0,N.jsx)(We,{size:14,className:`text-amber-600 dark:text-amber-400`}),summary:`Build tools, developer options, inspection utilities, benchmarks, test suites, and LLM agent skills.`,scope:`Internal tooling that accelerates developer workflows and pairs with LLM coding partners.`},{name:`Idea`,badgeClass:`border-purple-500/30 bg-purple-500/10 text-purple-700 dark:text-purple-300`,icon:(0,N.jsx)(Se,{size:14,className:`text-purple-600 dark:text-purple-400`}),summary:`Exploratory concepts, RFCs, and brainstorming proposals.`,scope:`Early-stage proposals requiring architectural definition or review before scheduling.`},{name:`Bug`,badgeClass:`border-rose-500/30 bg-rose-500/10 text-rose-700 dark:text-rose-300`,icon:(0,N.jsx)(E,{size:14,className:`text-rose-600 dark:text-rose-400`}),summary:`Defect fixes, visual regression repairs, and calculation corrections.`,scope:`Resolving broken functionality, layout clipping, or unexpected application crashes.`}],ct=[{name:`Planned`,color:`border-[var(--border-subtle)] bg-[var(--bg-surface)] text-[var(--text-secondary)]`,description:`Backlog ticket queued for future active planning and development.`},{name:`In Development`,color:`border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-300 font-semibold`,description:`Actively being designed, developed, or verified by a developer or LLM agent.`},{name:`Completed`,color:`border-emerald-500/40 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300 font-semibold`,description:`Shipped to production and verified against all automated test suites.`},{name:`Rejected`,color:`border-rose-500/40 bg-rose-500/10 text-rose-700 dark:text-rose-300 font-semibold`,description:`Dismissed or superseded proposal (preserved for historical traceability).`}],lt=[{level:`Low / Small`,hours:`0.5 – 2.0 hrs`,desc:`Single-component tweaks, localized CSS fixes, configuration updates.`},{level:`Medium`,hours:`2.0 – 5.0 hrs`,desc:`New modal dialogs, service integrations, multi-file refactoring.`},{level:`High / Large`,hours:`5.0 – 12.0+ hrs`,desc:`Architectural decoupling, dual-storage engines, major data migrations.`}],ut=({isOpen:e,onClose:t})=>((0,S.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),e?(0,N.jsx)(`div`,{id:`ticket-help-modal-overlay`,className:`fixed inset-0 z-50 bg-black/80 backdrop-blur-md flex items-center justify-center p-3 sm:p-4 animate-fade-in`,onClick:t,children:(0,N.jsxs)(`div`,{id:`ticket-help-modal-container`,className:`w-full max-w-2xl max-h-[90vh] bg-[var(--bg-surface)] border border-[var(--border-subtle)] rounded-2xl sm:rounded-3xl overflow-hidden shadow-2xl flex flex-col text-[var(--text-primary)] animate-scale-in`,onClick:e=>e.stopPropagation(),children:[(0,N.jsxs)(`div`,{className:`bg-[var(--bg-surface-elevated)] p-4 sm:p-5 border-b border-[var(--border-subtle)] flex items-center justify-between shrink-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,N.jsx)(`div`,{className:`w-10 h-10 rounded-2xl bg-[var(--accent-bg-subtle)] border border-[var(--accent-border-subtle)] flex items-center justify-center text-[var(--accent-primary)] shadow-inner shrink-0`,children:(0,N.jsx)(ce,{size:20})}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h3`,{className:`text-base font-bold text-[var(--text-primary)]`,children:`Help & About`}),(0,N.jsx)(`p`,{className:`text-[11px] text-[var(--text-muted)]`,children:`Standard taxonomy, lifecycle workflows, sizing guidelines, and license disclosures`})]})]}),(0,N.jsx)(`button`,{type:`button`,onClick:t,className:`p-1.5 hover:bg-[var(--accent-bg-subtle)] text-[var(--text-muted)] hover:text-[var(--text-primary)] rounded-xl transition-colors cursor-pointer`,"aria-label":`Close Help Modal`,children:(0,N.jsx)(Ge,{size:18})})]}),(0,N.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 sm:p-5 space-y-6 text-xs leading-relaxed`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,N.jsx)(xe,{size:15,className:`text-[var(--accent-primary)]`}),(0,N.jsx)(`h4`,{className:`font-bold text-sm text-[var(--text-primary)]`,children:`Ticket Types (Types)`})]}),(0,N.jsx)(`div`,{className:`space-y-2.5`,children:st.map(e=>(0,N.jsxs)(`div`,{className:`p-3 rounded-xl border border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)] space-y-1.5`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,N.jsx)(`div`,{className:`flex items-center gap-1.5`,children:(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-md text-[11px] font-bold border ${e.badgeClass}`,children:[e.icon,e.name]})}),(0,N.jsx)(`span`,{className:`text-[10px] font-mono text-[var(--text-muted)] truncate`,children:e.scope})]}),(0,N.jsx)(`p`,{className:`text-[var(--text-secondary)] text-[11px]`,children:e.summary})]},e.name))})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,N.jsx)(O,{size:15,className:`text-[var(--accent-primary)]`}),(0,N.jsx)(`h4`,{className:`font-bold text-sm text-[var(--text-primary)]`,children:`Lifecycle Statuses`})]}),(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2.5`,children:ct.map(e=>(0,N.jsxs)(`div`,{className:`p-2.5 rounded-xl border border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)] space-y-1`,children:[(0,N.jsx)(`span`,{className:`inline-block px-2 py-0.5 rounded text-[10px] font-bold border ${e.color}`,children:e.name}),(0,N.jsx)(`p`,{className:`text-[11px] text-[var(--text-secondary)]`,children:e.description})]},e.name))})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,N.jsx)(se,{size:15,className:`text-[var(--accent-primary)]`}),(0,N.jsx)(`h4`,{className:`font-bold text-sm text-[var(--text-primary)]`,children:`Complexity & Effort Guidelines`})]}),(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-2.5`,children:lt.map(e=>(0,N.jsxs)(`div`,{className:`p-2.5 rounded-xl border border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)] space-y-1`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsx)(`span`,{className:`font-bold text-[var(--text-primary)] text-xs`,children:e.level}),(0,N.jsx)(`span`,{className:`text-[10px] font-mono font-bold text-[var(--accent-primary)]`,children:e.hours})]}),(0,N.jsx)(`p`,{className:`text-[11px] text-[var(--text-muted)]`,children:e.desc})]},e.level))})]}),(0,N.jsxs)(`div`,{className:`p-3 bg-[var(--accent-bg-subtle)] border border-[var(--accent-border-subtle)] rounded-xl space-y-1 text-[11px] text-[var(--text-secondary)]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[var(--accent-primary)] font-bold`,children:[(0,N.jsx)(Fe,{size:14}),(0,N.jsx)(`span`,{children:`Invariants & Agent Pairing Best Practices`})]}),(0,N.jsxs)(`ul`,{className:`list-disc list-inside space-y-0.5 text-[var(--text-secondary)] text-[10px] sm:text-[11px]`,children:[(0,N.jsxs)(`li`,{children:[(0,N.jsx)(`strong`,{children:`Title Limit`}),": Keep ticket titles strictly $\\le 48$ characters (`MAX_TICKET_TITLE_LENGTH = 48`)."]}),(0,N.jsxs)(`li`,{children:[(0,N.jsx)(`strong`,{children:`Summary`}),`: Write a clean 1–2 sentence elevator pitch explaining user benefit and motivation.`]}),(0,N.jsxs)(`li`,{children:[(0,N.jsx)(`strong`,{children:`Breakdown`}),`: Use clear numbered bullet points for feature requirements to guide implementation plans.`]})]})]}),(0,N.jsxs)(`div`,{className:`pt-2 border-t border-[var(--border-subtle)] space-y-3`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(be,{size:15,className:`text-[var(--accent-primary)]`}),(0,N.jsx)(`h4`,{className:`font-bold text-sm text-[var(--text-primary)]`,children:`About & License Declarations`})]}),(0,N.jsxs)(`div`,{className:`p-3.5 rounded-xl border border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)] space-y-3 text-[11px] text-[var(--text-secondary)]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`span`,{className:`font-bold text-[var(--text-primary)] text-xs`,children:`Developer Planning & Ticketing Platform`}),(0,N.jsx)(`span`,{className:`text-[10px] text-[var(--text-muted)] font-mono ml-2`,children:`v0.1.0`})]}),(0,N.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-[10px] font-mono font-bold bg-emerald-500/10 border border-emerald-500/30 text-emerald-600 dark:text-emerald-400`,children:`MIT License`})]}),(0,N.jsx)(`p`,{className:`text-[var(--text-secondary)] text-[11px] leading-relaxed`,children:`Autonomous developer roadmap, ticketing engine, and Model Context Protocol (MCP) server for developers and LLM coding partners.`}),(0,N.jsxs)(`div`,{className:`pt-2.5 border-t border-[var(--border-subtle)] space-y-2`,children:[(0,N.jsx)(`span`,{className:`text-[10px] font-semibold text-[var(--text-muted)] uppercase tracking-wider block`,children:`Third-Party Component & Library Disclosures`}),(0,N.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2 text-[10px] font-mono`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-2 rounded-lg bg-[var(--bg-input)] border border-[var(--border-subtle)] shadow-xs`,children:[(0,N.jsx)(`span`,{className:`text-[var(--text-primary)] font-medium`,children:`React & ReactDOM`}),(0,N.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400 font-bold`,children:`MIT`})]}),(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-2 rounded-lg bg-[var(--bg-input)] border border-[var(--border-subtle)] shadow-xs`,children:[(0,N.jsx)(`span`,{className:`text-[var(--text-primary)] font-medium`,children:`Lucide React`}),(0,N.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400 font-bold`,children:`ISC`})]}),(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-2 rounded-lg bg-[var(--bg-input)] border border-[var(--border-subtle)] shadow-xs`,children:[(0,N.jsx)(`span`,{className:`text-[var(--text-primary)] font-medium`,children:`Node.js Standard Lib`}),(0,N.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400 font-bold`,children:`MIT / BSD`})]}),(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-2 rounded-lg bg-[var(--bg-input)] border border-[var(--border-subtle)] shadow-xs`,children:[(0,N.jsx)(`span`,{className:`text-[var(--text-primary)] font-medium`,children:`TypeScript & Vite`}),(0,N.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400 font-bold`,children:`Apache-2.0 / MIT`})]})]})]})]})]})]}),(0,N.jsx)(`div`,{className:`bg-[var(--bg-surface-elevated)] px-5 py-3 border-t border-[var(--border-subtle)] flex items-center justify-end`,children:(0,N.jsx)(`button`,{type:`button`,onClick:t,className:`px-4 py-1.5 bg-[var(--accent-primary)] hover:brightness-110 text-white text-xs font-semibold rounded-xl transition-all cursor-pointer shadow-sm`,children:`Got It`})})]})}):null),dt={1:[`chat_enhanced`,`evolutions`,`multiple_teams`],2:[`frontend`,`components`,`styles`],3:[`guides`,`api_reference`,`tutorials`]},ft=({isOpen:e,onClose:t,onCreated:n,defaultAuthor:r=`Developer`,defaultProject:i,availableProjects:a,isEmbedded:o=!1})=>{let[s,c]=(0,S.useState)(``),[l,u]=(0,S.useState)(()=>i===void 0?void 0:j(i)?.id),[d,f]=(0,S.useState)(`Feature`),[p,m]=(0,S.useState)(`Medium`),[h,g]=(0,S.useState)(``),[_,v]=(0,S.useState)(``),[y,b]=(0,S.useState)(``),[x,ee]=(0,S.useState)(``),[C,w]=(0,S.useState)(r),[te,ne]=(0,S.useState)(!1),[T,E]=(0,S.useState)(!1),[re,ie]=(0,S.useState)(!1),[ae,oe]=(0,S.useState)(!1),D=(0,S.useMemo)(()=>!!(s.trim()||_.trim()||y.trim()||x.trim()),[s,_,y,x]),O=(0,S.useCallback)(()=>{D?oe(!0):t()},[D,t]);(0,S.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(ae?oe(!1):re?ie(!1):T?E(!1):O())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ae,re,T,O]);let[le,ue]=(0,S.useState)(null);return S.useEffect(()=>{e&&u(i===void 0?void 0:j(i)?.id)},[e,i]),S.useEffect(()=>{let e=l===void 0?[]:dt[l]||[];h&&!e.includes(h)&&g(``)},[l]),e?(0,N.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 bg-slate-950/80 backdrop-blur-md animate-fade-in`,onClick:O,children:[(0,N.jsxs)(`div`,{className:`relative w-full max-w-2xl bg-[var(--bg-surface)] border border-[var(--border-subtle)] rounded-2xl shadow-2xl overflow-hidden flex flex-col max-h-[90vh] text-[var(--text-primary)]`,onClick:e=>e.stopPropagation(),children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`div`,{className:`p-2 bg-[var(--accent-bg-subtle)] text-[var(--accent-primary)] rounded-xl border border-[var(--accent-border-subtle)]`,children:(0,N.jsx)(ke,{size:18})}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h3`,{className:`font-bold text-[var(--text-primary)] text-sm`,children:`Create New Developer Ticket`}),(0,N.jsx)(`p`,{className:`text-[11px] text-[var(--text-muted)]`,children:`Initialize a new ticket folder with metadata and specification`})]})]}),(0,N.jsx)(`button`,{type:`button`,onClick:O,className:`p-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--accent-bg-subtle)] rounded-lg transition-colors cursor-pointer`,children:(0,N.jsx)(Ge,{size:18})})]}),(0,N.jsxs)(`form`,{onSubmit:async e=>{if(e.preventDefault(),!s.trim()){ue(`Ticket title is required.`);return}if(l===void 0){ue(`Project is required. Please select a project for this ticket.`);return}let i=$e(l);if(!i){ue(`Selected project is invalid or not registered.`);return}ue(null),ne(!0);try{let e=x.split(`
16
+ `);for(let t of e){let e=t.trim();e.startsWith(`- **Technical Detail**:`)?u.push(e.replace(/^[-*•]\s*\*\*Technical Detail\*\*:\s*/,``)):e.startsWith(`- **Open Question**:`)||e.startsWith(`* **Open Question**:`)||e.startsWith(`- **Open Questions**:`)||e.startsWith(`* **Open Questions**:`)?d.push(e.replace(/^[-*•]\s*\*\*Open Questions?\*\*:\s*/,``)):(e.startsWith(`- `)||e.startsWith(`* `)||e.startsWith(`• `))&&u.push(e.replace(/^[-*•]\s*/,``))}}let p=s?s[1].trim():!l&&!f&&o?o.trim():void 0,m=j(r.projectId??r.project)||j(1),h=m?.code||r.project||`Prof`,g=i.findIndex(e=>e.ticketId===n||e.number===a&&e.projectId===m?.id),_=g>=0?i[g]:void 0,v=o.match(/^#\s*(?:Ticket\s*#?\d+\s*:\s*|\d+\s*:\s*)?([^\n]+)/im),y=(r.title&&r.title.trim()||(v?v[1].trim():``)||_?.title||``).slice(0,48),b=o.match(/\*\*(?:Type|Category)\*\*:\s*([^\n]+)/i),x=r.type||r.category||(b?b[1].trim():void 0)||_?.type||_?.category||`Feature`,ee=o.match(/\*\*Complexity\*\*:\s*([^\n]+)/i),S=r.complexity||(ee?ee[1].trim():void 0)||_?.complexity||`Medium`,C=o.match(/\*\*Estimated Effort\*\*:\s*([^\n]+)/i),w=r.estimatedEffort||(C?C[1].trim():void 0)||_?.estimatedEffort||`N/A`,te=r.featureFlag||_?.featureFlag,ne=r.status===`Completed`||r.status===void 0&&_?.isCompleted,T=r.status===`Rejected`||r.status===void 0&&_?.isRejected,E={id:`feature-${h}-${a}`,number:a,ticketId:n,title:y,type:x,category:x,complexity:S,estimatedEffort:w,rationale:p||_?.rationale,breakdown:c.length>0?c:_?.breakdown||[],technicalDetails:u.length>0?u:_?.technicalDetails,openQuestions:d.length>0?d:_?.openQuestions,featureFlag:te,projectId:m?.id,project:m?.name,isCompleted:ne,isRejected:T,rawDetail:o||_?.rawDetail||void 0};g>=0?i[g]=E:i.push(E)}}return{plannedFeatures:i.sort((e,t)=>e.number-t.number),featureFlags:a,majorIdeas:o,rawMarkdown:e}}var rt=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),N=o(((e,t)=>{t.exports=rt()}))(),it=({isOpen:e,onClose:t,onConfirm:n,title:r,subtitle:i,message:a,confirmLabel:o=`Confirm`,cancelLabel:s=`Cancel`,variant:c=`warning`,icon:l,hideCancel:u=!1})=>{if((0,S.useEffect)(()=>{let n=e=>{e.key===`Escape`&&t()};return e&&window.addEventListener(`keydown`,n),()=>{window.removeEventListener(`keydown`,n)}},[e,t]),!e)return null;let d=(()=>{switch(c){case`danger`:return{iconBg:`bg-rose-500/10 border-rose-500/30 text-rose-400`,defaultIcon:(0,N.jsx)(oe,{size:20}),confirmBtn:`bg-rose-600 hover:bg-rose-500 text-white shadow-rose-600/20`};case`success`:return{iconBg:`bg-emerald-500/10 border-emerald-500/30 text-emerald-400`,defaultIcon:(0,N.jsx)(se,{size:20}),confirmBtn:`bg-emerald-600 hover:bg-emerald-500 text-white shadow-emerald-600/20`};case`info`:return{iconBg:`bg-[var(--accent-bg-subtle)] border-[var(--accent-border-subtle)] text-[var(--accent-primary)]`,defaultIcon:(0,N.jsx)(be,{size:20}),confirmBtn:`bg-[var(--accent-primary)] hover:brightness-110 text-white shadow-lg shadow-[var(--accent-primary)]/20`};default:return{iconBg:`bg-amber-500/10 border-amber-500/30 text-amber-400`,defaultIcon:(0,N.jsx)(He,{size:20}),confirmBtn:`bg-[var(--accent-primary)] hover:brightness-110 text-white shadow-lg shadow-[var(--accent-primary)]/20`}}})();return(0,N.jsx)(`div`,{className:`fixed inset-0 bg-black/85 backdrop-blur-md z-[120] flex items-center justify-center p-4 animate-fade-in`,onClick:t,children:(0,N.jsxs)(`div`,{className:`bg-[var(--bg-surface)] border border-[var(--border-strong)] w-full max-w-md rounded-3xl p-6 shadow-2xl animate-in fade-in zoom-in-95 duration-200 text-[var(--text-primary)] space-y-5`,onClick:e=>e.stopPropagation(),children:[(0,N.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,N.jsx)(`div`,{className:`w-10 h-10 rounded-full border flex items-center justify-center shrink-0 ${d.iconBg}`,children:l||d.defaultIcon}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h3`,{className:`text-sm font-bold text-[var(--text-primary)]`,children:r}),i&&(0,N.jsx)(`p`,{className:`text-[10px] text-[var(--accent-primary)] font-mono`,children:i})]})]}),(0,N.jsx)(`button`,{type:`button`,onClick:t,className:`text-[var(--text-muted)] hover:text-[var(--text-primary)] p-1 rounded-lg hover:bg-[var(--bg-surface-elevated)] transition-colors cursor-pointer`,"aria-label":`Close dialog`,children:(0,N.jsx)(Ge,{size:18})})]}),(0,N.jsx)(`div`,{className:`text-xs text-[var(--text-secondary)] leading-relaxed whitespace-pre-wrap`,children:typeof a==`string`?(0,N.jsx)(`p`,{children:a}):a}),(0,N.jsxs)(`div`,{className:`flex flex-col-reverse sm:flex-row sm:justify-end gap-2.5 pt-2`,children:[!u&&(0,N.jsx)(`button`,{type:`button`,onClick:t,className:`w-full sm:w-auto px-4 py-2.5 rounded-xl bg-[var(--bg-input)] hover:bg-[var(--bg-surface-elevated)] border border-[var(--border-subtle)] text-[var(--text-secondary)] hover:text-[var(--text-primary)] text-xs font-semibold uppercase tracking-wider transition-all cursor-pointer min-h-[44px] flex items-center justify-center`,children:s}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>{n&&n(),t()},className:`w-full sm:w-auto px-5 py-2.5 rounded-xl font-bold text-xs uppercase tracking-wider flex items-center justify-center gap-2 transition-all cursor-pointer shadow-lg min-h-[44px] ${d.confirmBtn}`,children:o})]})]})})},at=[{name:`Cyan`,badge:`border-cyan-500/30 bg-cyan-500/10 text-cyan-300`,dot:`bg-cyan-400`,border:`border-cyan-500/40`},{name:`Indigo`,badge:`border-indigo-500/30 bg-indigo-500/10 text-indigo-300`,dot:`bg-indigo-400`,border:`border-indigo-500/40`},{name:`Emerald`,badge:`border-emerald-500/30 bg-emerald-500/10 text-emerald-300`,dot:`bg-emerald-400`,border:`border-emerald-500/40`},{name:`Fuchsia`,badge:`border-fuchsia-500/30 bg-fuchsia-500/10 text-fuchsia-300`,dot:`bg-fuchsia-400`,border:`border-fuchsia-500/40`},{name:`Amber`,badge:`border-amber-500/30 bg-amber-500/10 text-amber-300`,dot:`bg-amber-400`,border:`border-amber-500/40`},{name:`Rose`,badge:`border-rose-500/30 bg-rose-500/10 text-rose-300`,dot:`bg-rose-400`,border:`border-rose-500/40`}],ot=({isOpen:e,onClose:t,onCreated:n})=>{let[r,i]=(0,S.useState)(``),[a,o]=(0,S.useState)(``),[s,c]=(0,S.useState)(``),[l,u]=(0,S.useState)(0),[d,f]=(0,S.useState)(!1),[p,m]=(0,S.useState)(null),[h,g]=(0,S.useState)(!1),_=(0,S.useMemo)(()=>!!(r.trim()||a.trim()||s.trim()),[r,a,s]),v=(0,S.useCallback)(()=>{_?g(!0):t()},[_,t]);return(0,S.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(h?g(!1):v())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[h,v]),e?(0,N.jsxs)(`div`,{className:`fixed inset-0 z-[90] flex items-center justify-center p-4 bg-slate-950/80 backdrop-blur-md animate-fade-in`,onClick:v,children:[(0,N.jsxs)(`div`,{className:`w-full max-w-md bg-[var(--bg-surface-elevated)] border border-[var(--border-subtle)] rounded-2xl shadow-2xl overflow-hidden flex flex-col animate-scale-up`,onClick:e=>e.stopPropagation(),children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-[var(--border-subtle)] bg-[var(--bg-surface)]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`div`,{className:`p-1.5 rounded-xl bg-[var(--accent-primary)]/10 text-[var(--accent-primary)]`,children:(0,N.jsx)(he,{size:18})}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h2`,{className:`text-sm font-bold text-[var(--text-primary)]`,children:`Add New Project`}),(0,N.jsxs)(`p`,{className:`text-[11px] text-[var(--text-muted)]`,children:[`Register a project with a 1-`,8,` char code`]})]})]}),(0,N.jsx)(`button`,{type:`button`,onClick:v,className:`p-1 text-[var(--text-muted)] hover:text-[var(--text-primary)] rounded-lg transition-colors cursor-pointer`,children:(0,N.jsx)(Ge,{size:18})})]}),(0,N.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault();let i=r.trim();if(!i){m(`Project code is required.`);return}if(!RegExp(`^[a-zA-Z0-9]{1,8}$`).test(i)){m(`Project code must be 1 to 8 alphanumeric characters (e.g. CORE, ALCE, WEB).`);return}if(Ze.some(e=>e.toLowerCase()===i.toLowerCase())){m(`Project code '${i}' collides with an existing project (case-insensitive).`);return}let o=a.trim();if(!o){m(`Project name is required.`);return}if(o.length>48){m(`Project name cannot exceed 48 characters.`);return}m(null),f(!0);let c=at[l];try{let e=await fetch(`/api/planning/create-project`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({code:i,name:o,description:s.trim()||`${o} Project`,colors:c})});if(!e.ok){let t=await e.json();throw Error(t.error||`Failed to create project`)}let{project:r}=await e.json();Je.push(r),Ze.push(r.code),f(!1),n(r),t()}catch{let e={id:Je.length>0?Math.max(...Je.map(e=>e.id))+1:1,code:i,name:o,description:s.trim()||`${o} Project`,colors:c};Je.push(e),Ze.push(e.code),f(!1),n(e),t()}},className:`p-4 space-y-3.5`,children:[p&&(0,N.jsx)(`div`,{className:`p-2.5 bg-rose-500/10 border border-rose-500/30 rounded-xl text-xs text-rose-300`,children:p}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(he,{size:13,className:`text-[var(--accent-primary)]`}),` Project Code *`]}),(0,N.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--text-muted)]`,children:[r.length,`/`,8]})]}),(0,N.jsx)(`input`,{type:`text`,value:r,maxLength:8,onChange:e=>i(e.target.value.replace(/[^a-zA-Z0-9]/g,``)),placeholder:`e.g. CORE, ALCE, WEB`,className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs font-mono font-bold text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none`,required:!0,autoFocus:!0}),(0,N.jsxs)(`p`,{className:`text-[10px] text-[var(--text-muted)]`,children:[`Strictly 1 to `,8,` alphanumeric characters.`]})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(k,{size:13,className:`text-[var(--accent-primary)]`}),` Project Name *`]}),(0,N.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--text-muted)]`,children:[a.length,`/`,48]})]}),(0,N.jsx)(`input`,{type:`text`,value:a,maxLength:48,onChange:e=>o(e.target.value),placeholder:`e.g. Hablaster Video Game`,className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none`,required:!0})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsx)(`label`,{className:`text-xs font-bold text-[var(--text-primary)]`,children:`Description`}),(0,N.jsx)(`input`,{type:`text`,value:s,maxLength:120,onChange:e=>c(e.target.value),placeholder:`Brief summary of repository or app`,className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none`})]}),(0,N.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(Ee,{size:13,className:`text-[var(--accent-primary)]`}),` Badge Color Palette`]}),(0,N.jsx)(`div`,{className:`grid grid-cols-3 gap-2`,children:at.map((e,t)=>(0,N.jsxs)(`button`,{type:`button`,onClick:()=>u(t),className:`p-2 rounded-xl border text-xs font-mono font-semibold flex items-center gap-1.5 transition-all cursor-pointer ${e.badge} ${l===t?`ring-2 ring-[var(--accent-primary)] shadow-md`:`opacity-70 hover:opacity-100`}`,children:[(0,N.jsx)(`span`,{className:`w-2 h-2 rounded-full ${e.dot} shrink-0`}),(0,N.jsx)(`span`,{children:e.name})]},e.name))})]}),(0,N.jsxs)(`div`,{className:`flex items-center justify-end gap-2 pt-2 border-t border-[var(--border-subtle)]`,children:[(0,N.jsx)(`button`,{type:`button`,onClick:v,className:`px-3 py-1.5 bg-slate-800 hover:bg-slate-700 text-slate-300 rounded-xl text-xs font-semibold transition-colors cursor-pointer`,children:`Cancel`}),(0,N.jsxs)(`button`,{type:`submit`,disabled:d||!r.trim()||!a.trim(),className:`px-3.5 py-1.5 bg-[var(--accent-primary)] hover:brightness-110 text-white rounded-xl text-xs font-semibold flex items-center gap-1.5 shadow-md transition-all disabled:opacity-50 cursor-pointer`,children:[(0,N.jsx)(ke,{size:14}),(0,N.jsx)(`span`,{children:d?`Creating...`:`Create Project`})]})]})]})]}),(0,N.jsx)(it,{isOpen:h,title:`Discard Unsaved Project?`,message:`You have entered project details. Are you sure you want to discard your changes?`,confirmLabel:`Discard`,cancelLabel:`Keep Editing`,variant:`danger`,onClose:()=>g(!1),onConfirm:()=>{g(!1),t()}})]}):null},st=[{name:`Feature`,badgeClass:`border-indigo-500/30 bg-indigo-500/10 text-indigo-700 dark:text-indigo-300`,icon:(0,N.jsx)(Le,{size:14,className:`text-indigo-600 dark:text-indigo-400`}),summary:`User-facing gameplay features, UI screens, calculators, and research tools.`,scope:`Enhancements that players interact with directly during day-to-day gameplay.`},{name:`Platform`,badgeClass:`border-cyan-500/30 bg-cyan-500/10 text-cyan-700 dark:text-cyan-300`,icon:(0,N.jsx)(ue,{size:14,className:`text-cyan-600 dark:text-cyan-400`}),summary:`Core architecture, database/storage layers, schema migrations, CI/CD, and security.`,scope:`Foundational infrastructure that powers reliability, speed, and cross-project modularity.`},{name:`Tools`,badgeClass:`border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300`,icon:(0,N.jsx)(We,{size:14,className:`text-amber-600 dark:text-amber-400`}),summary:`Build tools, developer options, inspection utilities, benchmarks, test suites, and LLM agent skills.`,scope:`Internal tooling that accelerates developer workflows and pairs with LLM coding partners.`},{name:`Idea`,badgeClass:`border-purple-500/30 bg-purple-500/10 text-purple-700 dark:text-purple-300`,icon:(0,N.jsx)(Se,{size:14,className:`text-purple-600 dark:text-purple-400`}),summary:`Exploratory concepts, RFCs, and brainstorming proposals.`,scope:`Early-stage proposals requiring architectural definition or review before scheduling.`},{name:`Bug`,badgeClass:`border-rose-500/30 bg-rose-500/10 text-rose-700 dark:text-rose-300`,icon:(0,N.jsx)(E,{size:14,className:`text-rose-600 dark:text-rose-400`}),summary:`Defect fixes, visual regression repairs, and calculation corrections.`,scope:`Resolving broken functionality, layout clipping, or unexpected application crashes.`}],ct=[{name:`Planned`,color:`border-[var(--border-subtle)] bg-[var(--bg-surface)] text-[var(--text-secondary)]`,description:`Backlog ticket queued for future active planning and development.`},{name:`In Development`,color:`border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-300 font-semibold`,description:`Actively being designed, developed, or verified by a developer or LLM agent.`},{name:`Completed`,color:`border-emerald-500/40 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300 font-semibold`,description:`Shipped to production and verified against all automated test suites.`},{name:`Rejected`,color:`border-rose-500/40 bg-rose-500/10 text-rose-700 dark:text-rose-300 font-semibold`,description:`Dismissed or superseded proposal (preserved for historical traceability).`}],lt=[{level:`Low / Small`,hours:`0.5 - 2.0 hrs`,desc:`Single-component tweaks, localized CSS fixes, configuration updates.`},{level:`Medium`,hours:`2.0 - 5.0 hrs`,desc:`New modal dialogs, service integrations, multi-file refactoring.`},{level:`High / Large`,hours:`5.0 - 12.0+ hrs`,desc:`Architectural decoupling, dual-storage engines, major data migrations.`}],ut=({isOpen:e,onClose:t})=>((0,S.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),e?(0,N.jsx)(`div`,{id:`ticket-help-modal-overlay`,className:`fixed inset-0 z-50 bg-black/80 backdrop-blur-md flex items-center justify-center p-3 sm:p-4 animate-fade-in`,onClick:t,children:(0,N.jsxs)(`div`,{id:`ticket-help-modal-container`,className:`w-full max-w-2xl max-h-[90vh] bg-[var(--bg-surface)] border border-[var(--border-subtle)] rounded-2xl sm:rounded-3xl overflow-hidden shadow-2xl flex flex-col text-[var(--text-primary)] animate-scale-in`,onClick:e=>e.stopPropagation(),children:[(0,N.jsxs)(`div`,{className:`bg-[var(--bg-surface-elevated)] p-4 sm:p-5 border-b border-[var(--border-subtle)] flex items-center justify-between shrink-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,N.jsx)(`div`,{className:`w-10 h-10 rounded-2xl bg-[var(--accent-bg-subtle)] border border-[var(--accent-border-subtle)] flex items-center justify-center text-[var(--accent-primary)] shadow-inner shrink-0`,children:(0,N.jsx)(ce,{size:20})}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h3`,{className:`text-base font-bold text-[var(--text-primary)]`,children:`Help & About`}),(0,N.jsx)(`p`,{className:`text-[11px] text-[var(--text-muted)]`,children:`Standard taxonomy, lifecycle workflows, sizing guidelines, and license disclosures`})]})]}),(0,N.jsx)(`button`,{type:`button`,onClick:t,className:`p-1.5 hover:bg-[var(--accent-bg-subtle)] text-[var(--text-muted)] hover:text-[var(--text-primary)] rounded-xl transition-colors cursor-pointer`,"aria-label":`Close Help Modal`,children:(0,N.jsx)(Ge,{size:18})})]}),(0,N.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 sm:p-5 space-y-6 text-xs leading-relaxed`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,N.jsx)(xe,{size:15,className:`text-[var(--accent-primary)]`}),(0,N.jsx)(`h4`,{className:`font-bold text-sm text-[var(--text-primary)]`,children:`Ticket Types (Types)`})]}),(0,N.jsx)(`div`,{className:`space-y-2.5`,children:st.map(e=>(0,N.jsxs)(`div`,{className:`p-3 rounded-xl border border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)] space-y-1.5`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,N.jsx)(`div`,{className:`flex items-center gap-1.5`,children:(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded-md text-[11px] font-bold border ${e.badgeClass}`,children:[e.icon,e.name]})}),(0,N.jsx)(`span`,{className:`text-[10px] font-mono text-[var(--text-muted)] truncate`,children:e.scope})]}),(0,N.jsx)(`p`,{className:`text-[var(--text-secondary)] text-[11px]`,children:e.summary})]},e.name))})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,N.jsx)(O,{size:15,className:`text-[var(--accent-primary)]`}),(0,N.jsx)(`h4`,{className:`font-bold text-sm text-[var(--text-primary)]`,children:`Lifecycle Statuses`})]}),(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2.5`,children:ct.map(e=>(0,N.jsxs)(`div`,{className:`p-2.5 rounded-xl border border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)] space-y-1`,children:[(0,N.jsx)(`span`,{className:`inline-block px-2 py-0.5 rounded text-[10px] font-bold border ${e.color}`,children:e.name}),(0,N.jsx)(`p`,{className:`text-[11px] text-[var(--text-secondary)]`,children:e.description})]},e.name))})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,N.jsx)(se,{size:15,className:`text-[var(--accent-primary)]`}),(0,N.jsx)(`h4`,{className:`font-bold text-sm text-[var(--text-primary)]`,children:`Complexity & Effort Guidelines`})]}),(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-2.5`,children:lt.map(e=>(0,N.jsxs)(`div`,{className:`p-2.5 rounded-xl border border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)] space-y-1`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsx)(`span`,{className:`font-bold text-[var(--text-primary)] text-xs`,children:e.level}),(0,N.jsx)(`span`,{className:`text-[10px] font-mono font-bold text-[var(--accent-primary)]`,children:e.hours})]}),(0,N.jsx)(`p`,{className:`text-[11px] text-[var(--text-muted)]`,children:e.desc})]},e.level))})]}),(0,N.jsxs)(`div`,{className:`p-3 bg-[var(--accent-bg-subtle)] border border-[var(--accent-border-subtle)] rounded-xl space-y-1 text-[11px] text-[var(--text-secondary)]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[var(--accent-primary)] font-bold`,children:[(0,N.jsx)(Fe,{size:14}),(0,N.jsx)(`span`,{children:`Invariants & Agent Pairing Best Practices`})]}),(0,N.jsxs)(`ul`,{className:`list-disc list-inside space-y-0.5 text-[var(--text-secondary)] text-[10px] sm:text-[11px]`,children:[(0,N.jsxs)(`li`,{children:[(0,N.jsx)(`strong`,{children:`Title Limit`}),": Keep ticket titles strictly $\\le 48$ characters (`MAX_TICKET_TITLE_LENGTH = 48`)."]}),(0,N.jsxs)(`li`,{children:[(0,N.jsx)(`strong`,{children:`Summary`}),`: Write a clean 1-2 sentence elevator pitch explaining user benefit and motivation.`]}),(0,N.jsxs)(`li`,{children:[(0,N.jsx)(`strong`,{children:`Breakdown`}),`: Use clear numbered bullet points for feature requirements to guide implementation plans.`]})]})]}),(0,N.jsxs)(`div`,{className:`pt-2 border-t border-[var(--border-subtle)] space-y-3`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(be,{size:15,className:`text-[var(--accent-primary)]`}),(0,N.jsx)(`h4`,{className:`font-bold text-sm text-[var(--text-primary)]`,children:`About & License Declarations`})]}),(0,N.jsxs)(`div`,{className:`p-3.5 rounded-xl border border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)] space-y-3 text-[11px] text-[var(--text-secondary)]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`span`,{className:`font-bold text-[var(--text-primary)] text-xs`,children:`Developer Planning & Ticketing Platform`}),(0,N.jsx)(`span`,{className:`text-[10px] text-[var(--text-muted)] font-mono ml-2`,children:`v0.1.0`})]}),(0,N.jsx)(`span`,{className:`px-2 py-0.5 rounded-full text-[10px] font-mono font-bold bg-emerald-500/10 border border-emerald-500/30 text-emerald-600 dark:text-emerald-400`,children:`MIT License`})]}),(0,N.jsx)(`p`,{className:`text-[var(--text-secondary)] text-[11px] leading-relaxed`,children:`Autonomous developer roadmap, ticketing engine, and Model Context Protocol (MCP) server for developers and LLM coding partners.`}),(0,N.jsxs)(`div`,{className:`pt-2.5 border-t border-[var(--border-subtle)] space-y-2`,children:[(0,N.jsx)(`span`,{className:`text-[10px] font-semibold text-[var(--text-muted)] uppercase tracking-wider block`,children:`Third-Party Component & Library Disclosures`}),(0,N.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2 text-[10px] font-mono`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-2 rounded-lg bg-[var(--bg-input)] border border-[var(--border-subtle)] shadow-xs`,children:[(0,N.jsx)(`span`,{className:`text-[var(--text-primary)] font-medium`,children:`React & ReactDOM`}),(0,N.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400 font-bold`,children:`MIT`})]}),(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-2 rounded-lg bg-[var(--bg-input)] border border-[var(--border-subtle)] shadow-xs`,children:[(0,N.jsx)(`span`,{className:`text-[var(--text-primary)] font-medium`,children:`Lucide React`}),(0,N.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400 font-bold`,children:`ISC`})]}),(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-2 rounded-lg bg-[var(--bg-input)] border border-[var(--border-subtle)] shadow-xs`,children:[(0,N.jsx)(`span`,{className:`text-[var(--text-primary)] font-medium`,children:`Node.js Standard Lib`}),(0,N.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400 font-bold`,children:`MIT / BSD`})]}),(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-2 rounded-lg bg-[var(--bg-input)] border border-[var(--border-subtle)] shadow-xs`,children:[(0,N.jsx)(`span`,{className:`text-[var(--text-primary)] font-medium`,children:`TypeScript & Vite`}),(0,N.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400 font-bold`,children:`Apache-2.0 / MIT`})]})]})]})]})]})]}),(0,N.jsx)(`div`,{className:`bg-[var(--bg-surface-elevated)] px-5 py-3 border-t border-[var(--border-subtle)] flex items-center justify-end`,children:(0,N.jsx)(`button`,{type:`button`,onClick:t,className:`px-4 py-1.5 bg-[var(--accent-primary)] hover:brightness-110 text-white text-xs font-semibold rounded-xl transition-all cursor-pointer shadow-sm`,children:`Got It`})})]})}):null),dt={1:[`chat_enhanced`,`evolutions`,`multiple_teams`],2:[`frontend`,`components`,`styles`],3:[`guides`,`api_reference`,`tutorials`]},ft=({isOpen:e,onClose:t,onCreated:n,defaultAuthor:r=`Developer`,defaultProject:i,availableProjects:a,isEmbedded:o=!1})=>{let[s,c]=(0,S.useState)(``),[l,u]=(0,S.useState)(()=>i===void 0?void 0:j(i)?.id),[d,f]=(0,S.useState)(`Feature`),[p,m]=(0,S.useState)(`Medium`),[h,g]=(0,S.useState)(``),[_,v]=(0,S.useState)(``),[y,b]=(0,S.useState)(``),[x,ee]=(0,S.useState)(``),[C,w]=(0,S.useState)(r),[te,ne]=(0,S.useState)(!1),[T,E]=(0,S.useState)(!1),[re,ie]=(0,S.useState)(!1),[ae,oe]=(0,S.useState)(!1),D=(0,S.useMemo)(()=>!!(s.trim()||_.trim()||y.trim()||x.trim()),[s,_,y,x]),O=(0,S.useCallback)(()=>{D?oe(!0):t()},[D,t]);(0,S.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(ae?oe(!1):re?ie(!1):T?E(!1):O())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ae,re,T,O]);let[le,ue]=(0,S.useState)(null);return S.useEffect(()=>{e&&u(i===void 0?void 0:j(i)?.id)},[e,i]),S.useEffect(()=>{let e=l===void 0?[]:dt[l]||[];h&&!e.includes(h)&&g(``)},[l]),e?(0,N.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 bg-slate-950/80 backdrop-blur-md animate-fade-in`,onClick:O,children:[(0,N.jsxs)(`div`,{className:`relative w-full max-w-2xl bg-[var(--bg-surface)] border border-[var(--border-subtle)] rounded-2xl shadow-2xl overflow-hidden flex flex-col max-h-[90vh] text-[var(--text-primary)]`,onClick:e=>e.stopPropagation(),children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between p-4 border-b border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)]`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`div`,{className:`p-2 bg-[var(--accent-bg-subtle)] text-[var(--accent-primary)] rounded-xl border border-[var(--accent-border-subtle)]`,children:(0,N.jsx)(ke,{size:18})}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h3`,{className:`font-bold text-[var(--text-primary)] text-sm`,children:`Create New Developer Ticket`}),(0,N.jsx)(`p`,{className:`text-[11px] text-[var(--text-muted)]`,children:`Initialize a new ticket folder with metadata and specification`})]})]}),(0,N.jsx)(`button`,{type:`button`,onClick:O,className:`p-1.5 text-[var(--text-muted)] hover:text-[var(--text-primary)] hover:bg-[var(--accent-bg-subtle)] rounded-lg transition-colors cursor-pointer`,children:(0,N.jsx)(Ge,{size:18})})]}),(0,N.jsxs)(`form`,{onSubmit:async e=>{if(e.preventDefault(),!s.trim()){ue(`Ticket title is required.`);return}if(l===void 0){ue(`Project is required. Please select a project for this ticket.`);return}let i=$e(l);if(!i){ue(`Selected project is invalid or not registered.`);return}ue(null),ne(!0);try{let e=x.split(`
17
17
  `).map(e=>e.trim()).filter(Boolean),a=await M.createTicket({title:s.trim(),projectId:i.id,project:i.name,type:d,category:d,complexity:p,featureFlag:h||void 0,rationale:_.trim(),breakdown:y.trim(),openQuestions:e,submittedBy:C.trim()||r||`Developer`});ne(!1),n(a.ticketId,a.meta),t()}catch(e){console.error(`Failed to create ticket:`,e),ue(e.message||`Failed to create ticket`),ne(!1)}},className:`p-4 overflow-y-auto space-y-4 flex-1 font-sans bg-[var(--bg-app)]`,children:[le&&(0,N.jsx)(`div`,{className:`p-3 bg-rose-500/15 border border-rose-500/30 rounded-xl text-xs text-rose-800 dark:text-rose-300`,children:le}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(k,{size:13,className:`text-[var(--accent-primary)]`}),` Ticket Title *`]}),(0,N.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--text-muted)]`,children:[s.length,`/48`]})]}),(0,N.jsx)(`input`,{type:`text`,value:s,maxLength:48,onChange:e=>c(e.target.value),placeholder:`e.g. Export User Settings & Cloud Backup Sync`,className:`w-full p-2.5 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none`,required:!0})]}),(0,N.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-5 gap-2.5`,children:[(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(he,{size:13,className:`text-[var(--accent-primary)]`}),` Project`]}),(0,N.jsxs)(`select`,{value:l===void 0?``:l,onChange:e=>{if(e.target.value===`__new__`){E(!0);return}if(!e.target.value){u(void 0);return}u(Number(e.target.value))},className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] focus:outline-none`,children:[l===void 0&&(0,N.jsx)(`option`,{value:``,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`Select a Project...`}),(a||Je).map(e=>(0,N.jsx)(`option`,{value:e.id,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:e.name},e.id)),!o&&(0,N.jsx)(`option`,{value:`__new__`,className:`bg-[var(--bg-surface)] text-cyan-600 dark:text-cyan-400 font-semibold`,children:`+ New Project...`})]})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(Be,{size:13,className:`text-[var(--accent-primary)]`}),` Type`]}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>ie(!0),className:`text-[var(--text-muted)] hover:text-[var(--accent-primary)] transition-colors p-0.5 cursor-pointer`,title:`View Ticket Types Reference`,"aria-label":`View Ticket Types Reference`,children:(0,N.jsx)(ce,{size:12})})]}),(0,N.jsxs)(`select`,{value:d,onChange:e=>f(e.target.value),className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] focus:outline-none`,children:[(0,N.jsx)(`option`,{value:`Feature`,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`Feature`}),(0,N.jsx)(`option`,{value:`Platform`,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`Platform`}),(0,N.jsx)(`option`,{value:`Tools`,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`Tools`}),(0,N.jsx)(`option`,{value:`Idea`,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`Idea`}),(0,N.jsx)(`option`,{value:`Bug`,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`Bug`})]})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(Ke,{size:13,className:`text-[var(--accent-primary)]`}),` Complexity`]}),(0,N.jsxs)(`select`,{value:p,onChange:e=>m(e.target.value),className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] focus:outline-none`,children:[(0,N.jsx)(`option`,{value:`Low`,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`Low`}),(0,N.jsx)(`option`,{value:`Low-Medium`,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`Low-Medium`}),(0,N.jsx)(`option`,{value:`Medium`,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`Medium`}),(0,N.jsx)(`option`,{value:`High`,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`High`})]})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(me,{size:13,className:`text-purple-400`}),` Feature Flag`]}),(0,N.jsxs)(`select`,{value:h,onChange:e=>g(e.target.value),className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-purple-500/50 rounded-xl text-xs text-purple-700 dark:text-purple-300 focus:outline-none`,children:[(0,N.jsx)(`option`,{value:``,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:`None (Unflagged)`}),(l===void 0?[]:dt[l]||[]).map(e=>(0,N.jsx)(`option`,{value:e,className:`bg-[var(--bg-surface)] text-[var(--text-primary)]`,children:e},e))]})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(Ue,{size:13,className:`text-[var(--accent-primary)]`}),` Submitted By`]}),(0,N.jsx)(`input`,{type:`text`,value:C,onChange:e=>w(e.target.value),placeholder:`Developer name`,className:`w-full p-2 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] focus:outline-none`})]})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsx)(`label`,{className:`text-xs font-bold text-[var(--text-primary)]`,children:`Summary / Rationale`}),(0,N.jsx)(`textarea`,{value:_,onChange:e=>v(e.target.value),placeholder:`Explain why this feature is valuable and what problem it solves...`,rows:3,className:`w-full p-2.5 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none resize-y`})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsx)(`label`,{className:`text-xs font-bold text-[var(--text-primary)]`,children:`Feature Breakdown (One item per line or bullet)`}),(0,N.jsx)(`textarea`,{value:y,onChange:e=>b(e.target.value),placeholder:`1. Design database storage schema
18
18
  2. Implement REST API endpoints
19
19
  3. Add UI components and state management`,rows:3,className:`w-full p-2.5 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-[var(--border-accent)] rounded-xl text-xs text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none resize-y font-mono`})]}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsxs)(`label`,{className:`text-xs font-bold text-[var(--text-primary)] flex items-center gap-1.5`,children:[(0,N.jsx)(ce,{size:13,className:`text-amber-500 dark:text-amber-400`}),` Initial Open Questions (One question per line)`]}),(0,N.jsx)(`textarea`,{value:x,onChange:e=>ee(e.target.value),placeholder:`Should credentials be stored locally or synced remotely?
20
20
  What fallback strategy should be used when offline?`,rows:2,className:`w-full p-2.5 bg-[var(--bg-input)] border border-[var(--border-subtle)] focus:border-amber-500/50 rounded-xl text-xs text-[var(--text-primary)] placeholder-[var(--text-muted)] focus:outline-none resize-y`})]}),(0,N.jsxs)(`div`,{className:`pt-2 flex items-center justify-end gap-2 border-t border-[var(--border-subtle)]`,children:[(0,N.jsx)(`button`,{type:`button`,onClick:O,className:`px-3 py-1.5 bg-[var(--bg-surface-elevated)] hover:bg-[var(--accent-bg-subtle)] text-[var(--text-secondary)] hover:text-[var(--text-primary)] rounded-xl text-xs cursor-pointer transition-colors`,children:`Cancel`}),(0,N.jsxs)(`button`,{type:`submit`,disabled:te||!s.trim(),className:`px-4 py-1.5 bg-[var(--accent-primary)] hover:brightness-110 disabled:opacity-50 text-white rounded-xl text-xs font-semibold flex items-center gap-1.5 cursor-pointer shadow-md transition-all`,children:[(0,N.jsx)(se,{size:14}),` `,te?`Creating...`:`Create Ticket`]})]})]})]}),(0,N.jsx)(ot,{isOpen:T,onClose:()=>E(!1),onCreated:e=>u(e.id)}),(0,N.jsx)(ut,{isOpen:re,onClose:()=>ie(!1)}),(0,N.jsx)(it,{isOpen:ae,title:`Discard Unsaved Ticket?`,message:`You have entered text for this ticket. Are you sure you want to discard your changes? All entered details will be lost.`,confirmLabel:`Discard`,cancelLabel:`Keep Editing`,variant:`danger`,onClose:()=>oe(!1),onConfirm:()=>{oe(!1),t()}})]}):null},pt=({size:e=24,className:t=``,variant:n=`standard`,pillarColor:r,figureColor:i,...a})=>{let o=n===`inverted`,s=o?`#a855f7`:`#0284c7`,c=o?`#0284c7`:`#a855f7`,l=r||s,u=i||c;return(0,N.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 48 48`,width:e,height:e,fill:`none`,className:t,"aria-hidden":`true`,...a,children:[(0,N.jsx)(`path`,{d:`M 14.5 40 L 14.5 16 C 14.5 5.5 33.5 5.5 33.5 16 L 33.5 40`,stroke:l,strokeWidth:`4`,strokeLinecap:`round`,strokeLinejoin:`round`,fill:`none`}),(0,N.jsx)(`rect`,{x:`3.5`,y:`16`,width:`4`,height:`24`,rx:`1.2`,fill:l}),(0,N.jsx)(`rect`,{x:`40.5`,y:`16`,width:`4`,height:`24`,rx:`1.2`,fill:l}),(0,N.jsxs)(`g`,{fill:u,children:[(0,N.jsx)(`circle`,{cx:`24`,cy:`20`,r:`2.8`}),(0,N.jsx)(`path`,{d:`M 22.2 24.2 C 23 23.2 25 23.2 25.8 24.2 L 28.5 40 L 19.5 40 Z`})]}),(0,N.jsx)(`rect`,{x:`2`,y:`40`,width:`44`,height:`3.2`,rx:`1.2`,fill:l})]})};function mt(e){if(!e)return null;let t=e.split(`
21
- `);if(t.length===1&&!t[0].trim().startsWith(`|`))return ht(e);let n=[],r=[],i=()=>{if(r.length>0){let e=r.filter(e=>!e.every(e=>e.replace(/[:\-]/g,``).trim()===``));if(e.length>0){let t=e[0],r=e.slice(1);n.push({type:`table`,header:t,rows:r})}r=[]}},a=e=>{let t=e.trim();return t.startsWith(`|`)&&t.endsWith(`|`)&&t.length>=2};for(let e=0;e<t.length;e++){let o=t[e],s=o.trim();if(a(o)){let e=s.slice(1,-1).split(`|`).map(e=>e.trim());r.push(e);continue}if(i(),s){if(s.startsWith(`# `))n.push({type:`h1`,text:s.replace(/^#\s+/,``)});else if(s.startsWith(`## `))n.push({type:`h2`,text:s.replace(/^##\s+/,``)});else if(s.startsWith(`### `))n.push({type:`h3`,text:s.replace(/^###\s+/,``)});else if(s===`---`||s===`***`||s===`___`)n.push({type:`hr`});else if(s.startsWith(`>`)){let e=s.replace(/^>\s?/,``);n.push({type:`blockquote`,lines:[e]})}else if(/^[-\u2022*]\s+/.test(s)||/^\d+\.\s+/.test(s)){let e=o.startsWith(` `)||o.startsWith(` `),t=s.replace(/^[-\u2022*]\s+/,``).replace(/^\d+\.\s+/,``);n.push({type:`bullet`,text:t,isSub:e})}else n.push({type:`paragraph`,text:o})}}return i(),(0,N.jsx)(`div`,{className:`space-y-2`,children:n.map((e,t)=>e.type===`table`?(0,N.jsx)(`div`,{className:`overflow-x-auto my-3 w-full border border-[var(--border-subtle)] rounded-xl bg-[var(--bg-surface)] shadow-2xs`,children:(0,N.jsxs)(`table`,{className:`w-full text-left border-collapse text-xs`,children:[e.header.length>0&&(0,N.jsx)(`thead`,{children:(0,N.jsx)(`tr`,{className:`border-b border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)]`,children:e.header.map((e,t)=>(0,N.jsx)(`th`,{className:`px-3 py-2 font-bold text-[var(--accent-primary)] font-mono`,children:ht(e)},t))})}),(0,N.jsx)(`tbody`,{children:e.rows.map((e,t)=>(0,N.jsx)(`tr`,{className:`border-b border-[var(--border-subtle)] last:border-b-0 hover:bg-[var(--accent-bg-subtle)] transition-colors`,children:e.map((e,t)=>(0,N.jsx)(`td`,{className:`px-3 py-2 text-[var(--text-primary)] align-top`,children:ht(e)},t))},t))})]})},t):e.type===`h1`?(0,N.jsx)(`h3`,{className:`text-base font-bold text-[var(--text-primary)] mt-3 mb-1 font-display`,children:ht(e.text)},t):e.type===`h2`?(0,N.jsx)(`h4`,{className:`text-sm font-bold text-[var(--accent-primary)] mt-2.5 mb-1 flex items-center gap-1.5`,children:ht(e.text)},t):e.type===`h3`?(0,N.jsx)(`h5`,{className:`text-xs font-bold text-[var(--text-secondary)] mt-2 mb-0.5 font-mono`,children:ht(e.text)},t):e.type===`hr`?(0,N.jsx)(`hr`,{className:`my-3 border-t border-[var(--border-subtle)]`},t):e.type===`blockquote`?(0,N.jsx)(`div`,{className:`border-l-2 border-[var(--accent-primary)] pl-3 py-1.5 my-1.5 text-[var(--text-secondary)] italic bg-[var(--accent-bg-subtle)] rounded-r-lg`,children:e.lines.map((e,t)=>(0,N.jsx)(`p`,{children:ht(e)},t))},t):e.type===`bullet`?(0,N.jsx)(`div`,{className:`leading-relaxed flex items-start gap-1.5 ${e.isSub?`pl-4 text-[var(--text-muted)] before:content-["–"] before:text-[var(--accent-primary)] before:font-bold`:`text-[var(--text-secondary)] before:content-["•"] before:text-[var(--accent-primary)] before:font-bold`}`,children:(0,N.jsx)(`div`,{className:`flex-1 min-w-0`,children:ht(e.text)})},t):(0,N.jsx)(`p`,{className:`text-[var(--text-secondary)] leading-relaxed`,children:ht(e.text)},t))})}function ht(e){if(!e)return null;let t=e.split(/<br\s*\/?>/i);return t.length>1?t.map((e,t)=>(0,N.jsxs)(S.Fragment,{children:[t>0&&(0,N.jsx)(`br`,{}),ht(e)]},t)):e.split(/(`[^`]+`|\*\*[^*]+\*\*|\[[^\]]+\]\([^)]+\)|\*[^*]+\*)/g).map((e,t)=>{if(e.startsWith("`")&&e.endsWith("`")&&e.length>2)return(0,N.jsx)(`code`,{className:`px-1.5 py-0.5 mx-0.5 rounded-md bg-[var(--bg-input)] border border-[var(--border-subtle)] text-[var(--accent-primary)] font-mono text-[11px] font-semibold select-text`,children:e.slice(1,-1)},t);if(e.startsWith(`**`)&&e.endsWith(`**`)&&e.length>4){let n=e.slice(2,-2);return(0,N.jsx)(`strong`,{className:`font-bold text-[var(--text-primary)]`,children:ht(n)},t)}if(e.startsWith(`*`)&&e.endsWith(`*`)&&e.length>2&&!e.startsWith(`**`)){let n=e.slice(1,-1);return(0,N.jsx)(`em`,{className:`italic text-[var(--text-secondary)]`,children:ht(n)},t)}let n=e.match(/^\[([^\]]+)\]\(([^)]+)\)$/);return n?(0,N.jsx)(`a`,{href:n[2],target:`_blank`,rel:`noopener noreferrer`,className:`text-sky-700 dark:text-[var(--accent-primary)] hover:underline font-medium`,children:n[1]},t):e})}function gt(e,t){let n=e?e.split(`
21
+ `);if(t.length===1&&!t[0].trim().startsWith(`|`))return ht(e);let n=[],r=[],i=()=>{if(r.length>0){let e=r.filter(e=>!e.every(e=>e.replace(/[:\-]/g,``).trim()===``));if(e.length>0){let t=e[0],r=e.slice(1);n.push({type:`table`,header:t,rows:r})}r=[]}},a=e=>{let t=e.trim();return t.startsWith(`|`)&&t.endsWith(`|`)&&t.length>=2};for(let e=0;e<t.length;e++){let o=t[e],s=o.trim();if(a(o)){let e=s.slice(1,-1).split(`|`).map(e=>e.trim());r.push(e);continue}if(i(),s){if(s.startsWith(`# `))n.push({type:`h1`,text:s.replace(/^#\s+/,``)});else if(s.startsWith(`## `))n.push({type:`h2`,text:s.replace(/^##\s+/,``)});else if(s.startsWith(`### `))n.push({type:`h3`,text:s.replace(/^###\s+/,``)});else if(s===`---`||s===`***`||s===`___`)n.push({type:`hr`});else if(s.startsWith(`>`)){let e=s.replace(/^>\s?/,``);n.push({type:`blockquote`,lines:[e]})}else if(/^[-\u2022*]\s+/.test(s)||/^\d+\.\s+/.test(s)){let e=o.startsWith(` `)||o.startsWith(` `),t=s.replace(/^[-\u2022*]\s+/,``).replace(/^\d+\.\s+/,``);n.push({type:`bullet`,text:t,isSub:e})}else n.push({type:`paragraph`,text:o})}}return i(),(0,N.jsx)(`div`,{className:`space-y-2`,children:n.map((e,t)=>e.type===`table`?(0,N.jsx)(`div`,{className:`overflow-x-auto my-3 w-full border border-[var(--border-subtle)] rounded-xl bg-[var(--bg-surface)] shadow-2xs`,children:(0,N.jsxs)(`table`,{className:`w-full text-left border-collapse text-xs`,children:[e.header.length>0&&(0,N.jsx)(`thead`,{children:(0,N.jsx)(`tr`,{className:`border-b border-[var(--border-subtle)] bg-[var(--bg-surface-elevated)]`,children:e.header.map((e,t)=>(0,N.jsx)(`th`,{className:`px-3 py-2 font-bold text-[var(--accent-primary)] font-mono`,children:ht(e)},t))})}),(0,N.jsx)(`tbody`,{children:e.rows.map((e,t)=>(0,N.jsx)(`tr`,{className:`border-b border-[var(--border-subtle)] last:border-b-0 hover:bg-[var(--accent-bg-subtle)] transition-colors`,children:e.map((e,t)=>(0,N.jsx)(`td`,{className:`px-3 py-2 text-[var(--text-primary)] align-top`,children:ht(e)},t))},t))})]})},t):e.type===`h1`?(0,N.jsx)(`h3`,{className:`text-base font-bold text-[var(--text-primary)] mt-3 mb-1 font-display`,children:ht(e.text)},t):e.type===`h2`?(0,N.jsx)(`h4`,{className:`text-sm font-bold text-[var(--accent-primary)] mt-2.5 mb-1 flex items-center gap-1.5`,children:ht(e.text)},t):e.type===`h3`?(0,N.jsx)(`h5`,{className:`text-xs font-bold text-[var(--text-secondary)] mt-2 mb-0.5 font-mono`,children:ht(e.text)},t):e.type===`hr`?(0,N.jsx)(`hr`,{className:`my-3 border-t border-[var(--border-subtle)]`},t):e.type===`blockquote`?(0,N.jsx)(`div`,{className:`border-l-2 border-[var(--accent-primary)] pl-3 py-1.5 my-1.5 text-[var(--text-secondary)] italic bg-[var(--accent-bg-subtle)] rounded-r-lg`,children:e.lines.map((e,t)=>(0,N.jsx)(`p`,{children:ht(e)},t))},t):e.type===`bullet`?(0,N.jsx)(`div`,{className:`leading-relaxed flex items-start gap-1.5 ${e.isSub?`pl-4 text-[var(--text-muted)] before:content-["-"] before:text-[var(--accent-primary)] before:font-bold`:`text-[var(--text-secondary)] before:content-["•"] before:text-[var(--accent-primary)] before:font-bold`}`,children:(0,N.jsx)(`div`,{className:`flex-1 min-w-0`,children:ht(e.text)})},t):(0,N.jsx)(`p`,{className:`text-[var(--text-secondary)] leading-relaxed`,children:ht(e.text)},t))})}function ht(e){if(!e)return null;let t=e.split(/<br\s*\/?>/i);return t.length>1?t.map((e,t)=>(0,N.jsxs)(S.Fragment,{children:[t>0&&(0,N.jsx)(`br`,{}),ht(e)]},t)):e.split(/(`[^`]+`|\*\*[^*]+\*\*|\[[^\]]+\]\([^)]+\)|\*[^*]+\*)/g).map((e,t)=>{if(e.startsWith("`")&&e.endsWith("`")&&e.length>2)return(0,N.jsx)(`code`,{className:`px-1.5 py-0.5 mx-0.5 rounded-md bg-[var(--bg-input)] border border-[var(--border-subtle)] text-[var(--accent-primary)] font-mono text-[11px] font-semibold select-text`,children:e.slice(1,-1)},t);if(e.startsWith(`**`)&&e.endsWith(`**`)&&e.length>4){let n=e.slice(2,-2);return(0,N.jsx)(`strong`,{className:`font-bold text-[var(--text-primary)]`,children:ht(n)},t)}if(e.startsWith(`*`)&&e.endsWith(`*`)&&e.length>2&&!e.startsWith(`**`)){let n=e.slice(1,-1);return(0,N.jsx)(`em`,{className:`italic text-[var(--text-secondary)]`,children:ht(n)},t)}let n=e.match(/^\[([^\]]+)\]\(([^)]+)\)$/);return n?(0,N.jsx)(`a`,{href:n[2],target:`_blank`,rel:`noopener noreferrer`,className:`text-sky-700 dark:text-[var(--accent-primary)] hover:underline font-medium`,children:n[1]},t):e})}function gt(e,t){let n=e?e.split(`
22
22
  `):[],r=t?t.split(`
23
23
  `):[],i=Array(n.length+1).fill(0).map(()=>Array(r.length+1).fill(0));for(let e=0;e<n.length;e++)for(let t=0;t<r.length;t++)n[e]===r[t]?i[e+1][t+1]=i[e][t]+1:i[e+1][t+1]=Math.max(i[e+1][t],i[e][t+1]);let a=n.length,o=r.length,s=[];for(;a>0||o>0;)a>0&&o>0&&n[a-1]===r[o-1]?(s.push({type:`same`,text:n[a-1]}),a--,o--):o>0&&(a===0||i[a][o-1]>=i[a-1][o])?(s.push({type:`add`,text:r[o-1]}),o--):a>0&&(o===0||i[a][o-1]<i[a-1][o])&&(s.push({type:`remove`,text:n[a-1]}),a--);return s.reverse()}var _t=`
24
24
  .esedre-host-bridge {
@@ -105,7 +105,7 @@ What fallback strategy should be used when offline?`,rows:2,className:`w-full p-
105
105
  --esedre-default-text-muted: #64748b;
106
106
  }
107
107
  }
108
- `;function vt(e){if(typeof e.isEmbeddedProp==`boolean`)return e.isEmbeddedProp;if(typeof e.isIframe==`boolean`&&e.isIframe)return!0;if(e.search)try{if(new URLSearchParams(e.search).get(`embedded`)===`true`)return!0}catch{}return!!(e.showHeader===!1||e.allowedProjects&&e.allowedProjects.length>0&&!e.allowedProjects.includes(`*`))}function yt(e,t){if(!t&&!(typeof window>`u`||!window.location))try{let t=new URL(window.location.href);e===`all`?t.searchParams.delete(`project`):t.searchParams.set(`project`,e),window.history.replaceState({},``,t.toString())}catch{}}function bt({className:e=``,onClose:t,showHeader:n=!0,isEmbedded:r,initialProject:i,allowedProjects:a,readOnly:o=!1,standalonePort:s,standaloneUrl:c}){let l=typeof window<`u`?(localStorage.getItem(`esedre_username`)||localStorage.getItem(`developer_name`)||localStorage.getItem(`sleep_professor_username`)||``).trim():``,u=!o,[d,f]=(0,S.useState)(!1),p=(0,S.useMemo)(()=>vt({isEmbeddedProp:r,showHeader:n,allowedProjects:a,search:typeof window<`u`?window.location?.search:``,isIframe:typeof window<`u`&&window.parent!==window}),[r,n,a]),[m,h]=(0,S.useState)(()=>{if(typeof window>`u`)return`night`;let e=localStorage.getItem(`theme`)||localStorage.getItem(`themeVariant`);return e===`day`||e===`light`?`day`:`night`}),g=()=>{let e=m===`night`?`day`:`night`;if(h(e),typeof window<`u`)try{localStorage.setItem(`theme`,e),localStorage.setItem(`themeVariant`,e)}catch{}};(0,S.useEffect)(()=>{if(!n||typeof document>`u`)return;let e=document.documentElement,t=m===`day`;e.setAttribute(`data-theme`,m),e.setAttribute(`data-color-scheme`,t?`light`:`dark`),t?(e.classList.add(`theme-light`),e.classList.remove(`dark`)):(e.classList.remove(`theme-light`),e.classList.add(`dark`))},[n,m]);let[_,v]=(0,S.useState)(()=>{if(typeof window<`u`){let e=sessionStorage.getItem(`dev_plan_modal_tab`);if([`features`,`completed`,`rejected`,`flags`].includes(e))return e}return`features`}),[y,b]=(0,S.useState)(()=>typeof window<`u`&&sessionStorage.getItem(`dev_plan_search_query`)||``),[x,ee]=(0,S.useState)(()=>typeof window<`u`&&sessionStorage.getItem(`dev_plan_complexity_filter`)||`all`),[C,w]=(0,S.useState)(()=>typeof window<`u`&&(sessionStorage.getItem(`dev_plan_type_filter`)||sessionStorage.getItem(`dev_plan_category_filter`))||`all`),[E,oe]=(0,S.useState)(()=>{if(i)return i;if(typeof window<`u`){let e=sessionStorage.getItem(`dev_plan_project_filter`);if(e&&(!a||a.length===0||a.map(e=>e.toUpperCase()).includes(e.toUpperCase())||e===`all`))return e}return a&&a.length>0?a[0]:`Core`}),[ue,be]=(0,S.useState)(()=>{if(a&&a.length>0){let e=a.map(e=>e.trim().toUpperCase());return Je.filter(t=>e.includes(t.code.toUpperCase()))}return Je}),xe={ticketNumber:`asc`,lastUpdated:`desc`},[Se,Ee]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_plan_sort_directions_map`)||sessionStorage.getItem(`dev_plan_sort_directions_map`);if(e){let t=JSON.parse(e),n={};return(t.ticketNumber===`asc`||t.ticketNumber===`desc`)&&(n.ticketNumber=t.ticketNumber),(t.lastUpdated===`asc`||t.lastUpdated===`desc`)&&(n.lastUpdated=t.lastUpdated),n}}catch{}return{}}),[Fe,Le]=(0,S.useState)(()=>{if(typeof window<`u`){let e=localStorage.getItem(`dev_plan_sort_by`)||sessionStorage.getItem(`dev_plan_sort_by`);if(e===`ticketNumber`||e===`lastUpdated`)return e}return`ticketNumber`}),He=Se[Fe]||xe[Fe],We=(e=Fe)=>{Ee(t=>{let n=(t[e]||xe[e])===`asc`?`desc`:`asc`,r={...t,[e]:n};try{localStorage.setItem(`dev_plan_sort_directions_map`,JSON.stringify(r)),sessionStorage.setItem(`dev_plan_sort_directions_map`,JSON.stringify(r))}catch{}return r})},[qe,Ye]=(0,S.useState)(()=>typeof window<`u`&&sessionStorage.getItem(`dev_plan_in_dev_filter`)===`true`),[Ze,$e]=(0,S.useState)(`detail`),[A,tt]=(0,S.useState)(null),rt=(0,S.useRef)(null),[it,at]=(0,S.useState)(``),[st,ct]=(0,S.useState)(()=>typeof window<`u`&&sessionStorage.getItem(`dev_plan_modal_expanded_feat`)||`feature-1`),[lt,dt]=(0,S.useState)(!0),[ht,bt]=(0,S.useState)(()=>{if(typeof window<`u`){let e=localStorage.getItem(`dev_plan_toc_width`)||sessionStorage.getItem(`dev_plan_toc_width`);if(e)return parseInt(e,10)}return 320}),[xt,St]=(0,S.useState)(!1),Ct=e=>{let t=Math.max(220,Math.min(650,e));bt(t);try{localStorage.setItem(`dev_plan_toc_width`,t.toString()),sessionStorage.setItem(`dev_plan_toc_width`,t.toString())}catch{}},[wt,Tt]=(0,S.useState)(()=>{let e=M.getAnswers();return e instanceof Promise?{}:e}),[Et,Dt]=(0,S.useState)(()=>{let e=M.getPlans();return e instanceof Promise?{}:e}),[Ot,kt]=(0,S.useState)(()=>{let e=M.getComments();return e instanceof Promise?{}:e}),[P,At]=(0,S.useState)(()=>{let e=M.getMetas();return e instanceof Promise?{}:e}),[jt,Mt]=(0,S.useState)(()=>{let e=M.getInlineComments();return e instanceof Promise?{}:e}),[Nt,Pt]=(0,S.useState)(()=>{let e=M.getPlanHistory();return e instanceof Promise?{}:e}),[Ft,It]=(0,S.useState)(()=>{let e=M.getHistory();return e instanceof Promise?{}:e}),[Lt,Rt]=(0,S.useState)(()=>{let e=M.getTicketDetails();return e instanceof Promise?{}:e}),[zt,Bt]=(0,S.useState)({}),[Vt,Ht]=(0,S.useState)({}),[Ut,Wt]=(0,S.useState)(null),[Gt,Kt]=(0,S.useState)(`structured`),[qt,Jt]=(0,S.useState)(``),[Yt,Xt]=(0,S.useState)([]),[Zt,Qt]=(0,S.useState)([]),[$t,en]=(0,S.useState)([]),[tn,nn]=(0,S.useState)(``),[rn,an]=(0,S.useState)({}),[on,sn]=(0,S.useState)(!1),[cn,ln]=(0,S.useState)(!1),[un,dn]=(0,S.useState)(null),[fn,pn]=(0,S.useState)(``),[mn,hn]=(0,S.useState)(null),[gn,_n]=(0,S.useState)(``),[vn,yn]=(0,S.useState)(null),[bn,xn]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_planner_inline_comment_draft`);if(e)return JSON.parse(e)}catch{}return null}),[Sn,Cn]=(0,S.useState)(null),[wn,Tn]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_planner_comment_drafts`);if(e)return JSON.parse(e)}catch{}return{}}),[En,Dn]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_planner_plan_drafts`);if(e)return JSON.parse(e)}catch{}return{}}),[On,kn]=(0,S.useState)({}),[An,jn]=(0,S.useState)(null),[Mn,Nn]=(0,S.useState)(``),Pn=(e,t)=>{Tn(n=>{let r={...n};if(t?r[e]=t:delete r[e],typeof localStorage<`u`)try{Object.keys(r).length===0?localStorage.removeItem(`dev_planner_comment_drafts`):localStorage.setItem(`dev_planner_comment_drafts`,JSON.stringify(r))}catch{}return r})},Fn=(e,t)=>{Nn(t),Dn(n=>{let r={...n,[e]:t};if(typeof localStorage<`u`)try{localStorage.setItem(`dev_planner_plan_drafts`,JSON.stringify(r))}catch{}return r})},In=e=>{Dn(t=>{let n={...t};if(delete n[e],typeof localStorage<`u`)try{Object.keys(n).length===0?localStorage.removeItem(`dev_planner_plan_drafts`):localStorage.setItem(`dev_planner_plan_drafts`,JSON.stringify(n))}catch{}return n})},Ln=e=>{if(xn(e),typeof localStorage<`u`)try{!e||!e.comment?localStorage.removeItem(`dev_planner_inline_comment_draft`):localStorage.setItem(`dev_planner_inline_comment_draft`,JSON.stringify(e))}catch{}};(0,S.useEffect)(()=>{let e=async()=>{try{if(M.getAll){let e=await M.getAll();if(e&&e.success){if(e.answers&&Tt(e.answers),e.plans&&Dt(e.plans),e.comments&&kt(e.comments),e.metas&&At(e.metas),e.inlineComments&&Mt(e.inlineComments),e.planHistory&&Pt(e.planHistory),e.details&&Rt(e.details),e.ticketHistory&&It(e.ticketHistory),Array.isArray(e.projects)&&e.projects.length>0){Xe(e.projects);let t=a&&a.length>0?e.projects.filter(e=>a.map(e=>e.toUpperCase()).includes(e.code.toUpperCase())):e.projects;be(t)}else if(M.getProjects){let e=await M.getProjects();if(Array.isArray(e)&&e.length>0){Xe(e);let t=a&&a.length>0?e.filter(e=>a.map(e=>e.toUpperCase()).includes(e.code.toUpperCase())):e;be(t)}}return}}let[e,t,n,r,i,o,s,c]=await Promise.all([M.getAnswers(),M.getPlans(),M.getComments(),M.getMetas(),M.getInlineComments(),M.getPlanHistory(),M.getTicketDetails(),M.getHistory()]);if(Tt(e||{}),Dt(t||{}),kt(n||{}),At(r||{}),Mt(i||{}),Pt(o||{}),Rt(s||{}),It(c||{}),M.getProjects){let e=await M.getProjects();if(Array.isArray(e)&&e.length>0){Xe(e);let t=a&&a.length>0?e.filter(e=>a.map(e=>e.toUpperCase()).includes(e.code.toUpperCase())):e;be(t)}}}catch(e){console.error(`Failed to load async planning data:`,e)}};e();let t=setInterval(e,3e3);return window.addEventListener(`focus`,e),()=>{clearInterval(t),window.removeEventListener(`focus`,e)}},[]);let[Rn,zn]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_feature_flags_descriptions`);if(e)return JSON.parse(e)}catch(e){console.error(`Failed to load dev_feature_flags_descriptions`,e)}return{}}),[Bn,Vn]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_deleted_feature_flags`);if(e)return JSON.parse(e)}catch(e){console.error(`Failed to load dev_deleted_feature_flags`,e)}return[]}),[Hn,Un]=(0,S.useState)(null),[Wn,Gn]=(0,S.useState)(``),Kn=e=>{let t=[...Bn,e];Vn(t),localStorage.setItem(`dev_deleted_feature_flags`,JSON.stringify(t));let n={...Rn};delete n[e],zn(n),localStorage.setItem(`dev_feature_flags_descriptions`,JSON.stringify(n))},qn=async(e,t)=>{tt(null),at(``);try{if(await M.updateMeta(e,{featureFlag:t}),At(n=>({...n,[e]:{...n[e],featureFlag:t}})),Bn.includes(t)){let e=Bn.filter(e=>e!==t);Vn(e),localStorage.setItem(`dev_deleted_feature_flags`,JSON.stringify(e))}if(!Rn[t]){let n={...Rn,[t]:`Feature flag linked to Ticket #${e}`};zn(n),localStorage.setItem(`dev_feature_flags_descriptions`,JSON.stringify(n))}}catch(e){console.error(`Failed to set feature flag:`,e)}};(0,S.useEffect)(()=>{let e=()=>{let e=window.getSelection();(!e||e.isCollapsed||!e.toString().trim())&&yn(null)};return document.addEventListener(`selectionchange`,e),()=>{document.removeEventListener(`selectionchange`,e)}},[]),(0,S.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),A?tt(null):bn?xn(null):vn?yn(null):un?dn(null):d?f(!1):on?sn(!1):cn?ln(!1):Ut?Wt(null):t&&t())},n=e=>{if(A&&rt.current&&!rt.current.contains(e.target)){if(e.target.closest(`[data-popover-trigger="true"]`))return;tt(null),at(``)}};return window.addEventListener(`keydown`,e,{capture:!0}),window.addEventListener(`mousedown`,n,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),window.removeEventListener(`mousedown`,n,{capture:!0})}},[A,bn,vn,un,d,on,cn,Ut,t]);let Jn=async(e,t)=>{let n=t.trim()||l||`Developer`;dn(null),At(t=>({...t,[e]:{...t[e],submittedBy:n}}));try{await M.updateMeta(e,{submittedBy:n})}catch(e){console.error(`Failed to update author:`,e)}},Yn=async(e,t)=>{let n=t.slice(0,48).trim();if(hn(null),n){At(t=>({...t,[e]:{...t[e],title:n}}));try{await M.updateMeta(e,{title:n})}catch(e){console.error(`Failed to update ticket title:`,e)}}},Xn=(e,t)=>{if(!u)return;let n=window.getSelection();if(!n||n.isCollapsed||!n.toString().trim())return;let r=n.toString().trim();if(!(r.length<2))try{let t=n.getRangeAt(0).getBoundingClientRect();t.width>0&&t.height>0&&yn({x:t.left+t.width/2,y:t.top-10,text:r,ticketId:e})}catch{yn({x:t.clientX,y:t.clientY-20,text:r,ticketId:e})}},Zn=e=>{if(e.target.closest(`button`))return;e.preventDefault(),e.stopPropagation();let t=e.clientX,n=e.clientY,r=bn?.x??Math.min(window.innerWidth-384-12,Math.max(12,window.innerWidth/2-192)),i=bn?.y??Math.min(window.innerHeight-280,Math.max(60,window.innerHeight/2+12)),a=e=>{let a=e.clientX-t,o=e.clientY-n,s=Math.min(window.innerWidth-384-12,Math.max(12,r+a)),c=Math.min(window.innerHeight-250-12,Math.max(12,i+o));xn(e=>e?{...e,x:s,y:c}:null)},o=()=>{window.removeEventListener(`mousemove`,a),window.removeEventListener(`mouseup`,o)};window.addEventListener(`mousemove`,a),window.addEventListener(`mouseup`,o)},Qn=async(e,t,n)=>{if(n.trim())try{let r=await M.saveInlineComment(e,t,n);Mt(t=>({...t,[e]:r})),Ln(null),yn(null)}catch(e){console.error(`Failed to save inline comment:`,e)}},$n=async(e,t)=>{if(!t)return;let n=t.type.startsWith(`image/`),r=t.type.startsWith(`video/`);if(!n&&!r)return;let i=new FileReader;i.onload=async()=>{let n=i.result;try{let i=await fetch(`/api/planning/upload-attachment`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({ticketId:e,filename:t.name,base64Data:n})});if(i.ok){let t=await i.json();if(t.success&&t.url){let n=r?`\n<video src="${t.url}" controls class="max-h-60 rounded-xl border border-slate-800 my-2" />\n`:`\n![${t.filename}](${t.url})\n`;Pn(e,(wn[e]||``)+n)}}}catch(e){console.error(`Failed to upload media attachment:`,e)}},i.readAsDataURL(t)},er=(e,t)=>{if(t.clipboardData.files&&t.clipboardData.files.length>0){let n=t.clipboardData.files[0];(n.type.startsWith(`image/`)||n.type.startsWith(`video/`))&&(t.preventDefault(),$n(e,n))}},tr=e=>{if(!e)return null;let t=e.split(/(!\[.*?\]\(.*?\)|<video src=".*?" controls.*?\/>)/g);return(0,N.jsx)(`div`,{className:`space-y-1.5`,children:t.map((e,t)=>{let n=/^!\[(.*?)\]\((.*?)\)$/.exec(e);if(n)return(0,N.jsx)(`img`,{src:n[2],alt:n[1],className:`max-h-60 rounded-xl border border-[var(--border-subtle)] my-1 object-contain bg-[var(--bg-input)] shadow-md`},t);let r=/^<video src="(.*?)" controls.*?\/>$/.exec(e);return r?(0,N.jsx)(`video`,{src:r[1],controls:!0,className:`max-h-60 rounded-xl border border-[var(--border-subtle)] my-1 w-full bg-[var(--bg-input)] shadow-md`},t):e.trim()?(0,N.jsx)(`p`,{className:`text-xs text-[var(--text-secondary)] leading-relaxed font-sans whitespace-pre-wrap`,children:e},t):null})})},nr=async(e,t,n)=>{let r=`${e}_${t}`;kn(e=>({...e,[r]:`saving`}));try{let i=await M.saveAnswer(e,t,n);Tt(t=>({...t,[e]:i})),kn(e=>({...e,[r]:`saved`})),setTimeout(()=>{kn(e=>{let t={...e};return delete t[r],t})},3e3)}catch(e){console.error(`Failed to save answer:`,e),kn(e=>({...e,[r]:`error`}))}},rr=async(e,t)=>{if(!t.trim())return;let n=`comment_${e}`;kn(e=>({...e,[n]:`saving`}));try{let r=await M.saveComment(e,t);kt(t=>({...t,[e]:r})),Pn(e,``),kn(e=>({...e,[n]:`saved`})),setTimeout(()=>{kn(e=>{let t={...e};return delete t[n],t})},3e3)}catch(e){console.error(`Failed to save comment:`,e),kn(e=>({...e,[n]:`error`}))}},ir=async(e,t)=>{let n=`plan_${e}`;kn(e=>({...e,[n]:`saving`}));try{await M.savePlan(e,t),Dt(n=>({...n,[e]:t})),kn(e=>({...e,[n]:`saved`})),In(e),jn(null);let r=await M.getHistory();r&&!(r instanceof Promise)&&It(r),setTimeout(()=>{kn(e=>{let t={...e};return delete t[n],t})},3e3)}catch(e){console.error(`Failed to save plan:`,e),kn(e=>({...e,[n]:`error`}))}},ar=(e,t,n,r,i)=>{let a=P[e.ticketId]?.title||e.title,o=P[e.ticketId]?.category||e.category,s=P[e.ticketId]?.complexity||e.complexity,c=P[e.ticketId]?.estimatedEffort||e.estimatedEffort||`2.0 – 4.0 hours`,l=t===void 0?e.rationale||``:t,u=n===void 0?e.breakdown||[]:n,d=r===void 0?e.technicalDetails||[]:r,f=i===void 0?e.openQuestions||[]:i,p=`# Ticket #${e.ticketId}: ${a}\n**Category**: ${o} \n**Complexity**: ${s} \n**Estimated Effort**: ${c} \n\n`;return l.trim()&&(p+=`### Summary\n${l.trim()}\n\n`),u.length>0&&(p+=`### Feature Breakdown
108
+ `;function vt(e){if(typeof e.isEmbeddedProp==`boolean`)return e.isEmbeddedProp;if(typeof e.isIframe==`boolean`&&e.isIframe)return!0;if(e.search)try{if(new URLSearchParams(e.search).get(`embedded`)===`true`)return!0}catch{}return!!(e.showHeader===!1||e.allowedProjects&&e.allowedProjects.length>0&&!e.allowedProjects.includes(`*`))}function yt(e,t){if(!t&&!(typeof window>`u`||!window.location))try{let t=new URL(window.location.href);e===`all`?t.searchParams.delete(`project`):t.searchParams.set(`project`,e),window.history.replaceState({},``,t.toString())}catch{}}function bt({className:e=``,onClose:t,showHeader:n=!0,isEmbedded:r,initialProject:i,allowedProjects:a,readOnly:o=!1,standalonePort:s,standaloneUrl:c}){let l=typeof window<`u`?(localStorage.getItem(`esedre_username`)||localStorage.getItem(`developer_name`)||localStorage.getItem(`sleep_professor_username`)||``).trim():``,u=!o,[d,f]=(0,S.useState)(!1),p=(0,S.useMemo)(()=>vt({isEmbeddedProp:r,showHeader:n,allowedProjects:a,search:typeof window<`u`?window.location?.search:``,isIframe:typeof window<`u`&&window.parent!==window}),[r,n,a]),[m,h]=(0,S.useState)(()=>{if(typeof window>`u`)return`night`;let e=localStorage.getItem(`theme`)||localStorage.getItem(`themeVariant`);return e===`day`||e===`light`?`day`:`night`}),g=()=>{let e=m===`night`?`day`:`night`;if(h(e),typeof window<`u`)try{localStorage.setItem(`theme`,e),localStorage.setItem(`themeVariant`,e)}catch{}};(0,S.useEffect)(()=>{if(!n||typeof document>`u`)return;let e=document.documentElement,t=m===`day`;e.setAttribute(`data-theme`,m),e.setAttribute(`data-color-scheme`,t?`light`:`dark`),t?(e.classList.add(`theme-light`),e.classList.remove(`dark`)):(e.classList.remove(`theme-light`),e.classList.add(`dark`))},[n,m]);let[_,v]=(0,S.useState)(()=>{if(typeof window<`u`){let e=sessionStorage.getItem(`dev_plan_modal_tab`);if([`features`,`completed`,`rejected`,`flags`].includes(e))return e}return`features`}),[y,b]=(0,S.useState)(()=>typeof window<`u`&&sessionStorage.getItem(`dev_plan_search_query`)||``),[x,ee]=(0,S.useState)(()=>typeof window<`u`&&sessionStorage.getItem(`dev_plan_complexity_filter`)||`all`),[C,w]=(0,S.useState)(()=>typeof window<`u`&&(sessionStorage.getItem(`dev_plan_type_filter`)||sessionStorage.getItem(`dev_plan_category_filter`))||`all`),[E,oe]=(0,S.useState)(()=>{if(i)return i;if(typeof window<`u`){let e=sessionStorage.getItem(`dev_plan_project_filter`);if(e&&(!a||a.length===0||a.map(e=>e.toUpperCase()).includes(e.toUpperCase())||e===`all`))return e}return a&&a.length>0?a[0]:`Core`}),[ue,be]=(0,S.useState)(()=>{if(a&&a.length>0){let e=a.map(e=>e.trim().toUpperCase());return Je.filter(t=>e.includes(t.code.toUpperCase()))}return Je}),xe={ticketNumber:`asc`,lastUpdated:`desc`},[Se,Ee]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_plan_sort_directions_map`)||sessionStorage.getItem(`dev_plan_sort_directions_map`);if(e){let t=JSON.parse(e),n={};return(t.ticketNumber===`asc`||t.ticketNumber===`desc`)&&(n.ticketNumber=t.ticketNumber),(t.lastUpdated===`asc`||t.lastUpdated===`desc`)&&(n.lastUpdated=t.lastUpdated),n}}catch{}return{}}),[Fe,Le]=(0,S.useState)(()=>{if(typeof window<`u`){let e=localStorage.getItem(`dev_plan_sort_by`)||sessionStorage.getItem(`dev_plan_sort_by`);if(e===`ticketNumber`||e===`lastUpdated`)return e}return`ticketNumber`}),He=Se[Fe]||xe[Fe],We=(e=Fe)=>{Ee(t=>{let n=(t[e]||xe[e])===`asc`?`desc`:`asc`,r={...t,[e]:n};try{localStorage.setItem(`dev_plan_sort_directions_map`,JSON.stringify(r)),sessionStorage.setItem(`dev_plan_sort_directions_map`,JSON.stringify(r))}catch{}return r})},[qe,Ye]=(0,S.useState)(()=>typeof window<`u`&&sessionStorage.getItem(`dev_plan_in_dev_filter`)===`true`),[Ze,$e]=(0,S.useState)(`detail`),[A,tt]=(0,S.useState)(null),rt=(0,S.useRef)(null),[it,at]=(0,S.useState)(``),[st,ct]=(0,S.useState)(()=>typeof window<`u`&&sessionStorage.getItem(`dev_plan_modal_expanded_feat`)||`feature-1`),[lt,dt]=(0,S.useState)(!0),[ht,bt]=(0,S.useState)(()=>{if(typeof window<`u`){let e=localStorage.getItem(`dev_plan_toc_width`)||sessionStorage.getItem(`dev_plan_toc_width`);if(e)return parseInt(e,10)}return 320}),[xt,St]=(0,S.useState)(!1),Ct=e=>{let t=Math.max(220,Math.min(650,e));bt(t);try{localStorage.setItem(`dev_plan_toc_width`,t.toString()),sessionStorage.setItem(`dev_plan_toc_width`,t.toString())}catch{}},[wt,Tt]=(0,S.useState)(()=>{let e=M.getAnswers();return e instanceof Promise?{}:e}),[Et,Dt]=(0,S.useState)(()=>{let e=M.getPlans();return e instanceof Promise?{}:e}),[Ot,kt]=(0,S.useState)(()=>{let e=M.getComments();return e instanceof Promise?{}:e}),[P,At]=(0,S.useState)(()=>{let e=M.getMetas();return e instanceof Promise?{}:e}),[jt,Mt]=(0,S.useState)(()=>{let e=M.getInlineComments();return e instanceof Promise?{}:e}),[Nt,Pt]=(0,S.useState)(()=>{let e=M.getPlanHistory();return e instanceof Promise?{}:e}),[Ft,It]=(0,S.useState)(()=>{let e=M.getHistory();return e instanceof Promise?{}:e}),[Lt,Rt]=(0,S.useState)(()=>{let e=M.getTicketDetails();return e instanceof Promise?{}:e}),[zt,Bt]=(0,S.useState)({}),[Vt,Ht]=(0,S.useState)({}),[Ut,Wt]=(0,S.useState)(null),[Gt,Kt]=(0,S.useState)(`structured`),[qt,Jt]=(0,S.useState)(``),[Yt,Xt]=(0,S.useState)([]),[Zt,Qt]=(0,S.useState)([]),[$t,en]=(0,S.useState)([]),[tn,nn]=(0,S.useState)(``),[rn,an]=(0,S.useState)({}),[on,sn]=(0,S.useState)(!1),[cn,ln]=(0,S.useState)(!1),[un,dn]=(0,S.useState)(null),[fn,pn]=(0,S.useState)(``),[mn,hn]=(0,S.useState)(null),[gn,_n]=(0,S.useState)(``),[vn,yn]=(0,S.useState)(null),[bn,xn]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_planner_inline_comment_draft`);if(e)return JSON.parse(e)}catch{}return null}),[Sn,Cn]=(0,S.useState)(null),[wn,Tn]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_planner_comment_drafts`);if(e)return JSON.parse(e)}catch{}return{}}),[En,Dn]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_planner_plan_drafts`);if(e)return JSON.parse(e)}catch{}return{}}),[On,kn]=(0,S.useState)({}),[An,jn]=(0,S.useState)(null),[Mn,Nn]=(0,S.useState)(``),Pn=(e,t)=>{Tn(n=>{let r={...n};if(t?r[e]=t:delete r[e],typeof localStorage<`u`)try{Object.keys(r).length===0?localStorage.removeItem(`dev_planner_comment_drafts`):localStorage.setItem(`dev_planner_comment_drafts`,JSON.stringify(r))}catch{}return r})},Fn=(e,t)=>{Nn(t),Dn(n=>{let r={...n,[e]:t};if(typeof localStorage<`u`)try{localStorage.setItem(`dev_planner_plan_drafts`,JSON.stringify(r))}catch{}return r})},In=e=>{Dn(t=>{let n={...t};if(delete n[e],typeof localStorage<`u`)try{Object.keys(n).length===0?localStorage.removeItem(`dev_planner_plan_drafts`):localStorage.setItem(`dev_planner_plan_drafts`,JSON.stringify(n))}catch{}return n})},Ln=e=>{if(xn(e),typeof localStorage<`u`)try{!e||!e.comment?localStorage.removeItem(`dev_planner_inline_comment_draft`):localStorage.setItem(`dev_planner_inline_comment_draft`,JSON.stringify(e))}catch{}};(0,S.useEffect)(()=>{let e=async()=>{try{if(M.getAll){let e=await M.getAll();if(e&&e.success){if(e.answers&&Tt(e.answers),e.plans&&Dt(e.plans),e.comments&&kt(e.comments),e.metas&&At(e.metas),e.inlineComments&&Mt(e.inlineComments),e.planHistory&&Pt(e.planHistory),e.details&&Rt(e.details),e.ticketHistory&&It(e.ticketHistory),Array.isArray(e.projects)&&e.projects.length>0){Xe(e.projects);let t=a&&a.length>0?e.projects.filter(e=>a.map(e=>e.toUpperCase()).includes(e.code.toUpperCase())):e.projects;be(t)}else if(M.getProjects){let e=await M.getProjects();if(Array.isArray(e)&&e.length>0){Xe(e);let t=a&&a.length>0?e.filter(e=>a.map(e=>e.toUpperCase()).includes(e.code.toUpperCase())):e;be(t)}}return}}let[e,t,n,r,i,o,s,c]=await Promise.all([M.getAnswers(),M.getPlans(),M.getComments(),M.getMetas(),M.getInlineComments(),M.getPlanHistory(),M.getTicketDetails(),M.getHistory()]);if(Tt(e||{}),Dt(t||{}),kt(n||{}),At(r||{}),Mt(i||{}),Pt(o||{}),Rt(s||{}),It(c||{}),M.getProjects){let e=await M.getProjects();if(Array.isArray(e)&&e.length>0){Xe(e);let t=a&&a.length>0?e.filter(e=>a.map(e=>e.toUpperCase()).includes(e.code.toUpperCase())):e;be(t)}}}catch(e){console.error(`Failed to load async planning data:`,e)}};e();let t=setInterval(e,3e3);return window.addEventListener(`focus`,e),()=>{clearInterval(t),window.removeEventListener(`focus`,e)}},[]);let[Rn,zn]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_feature_flags_descriptions`);if(e)return JSON.parse(e)}catch(e){console.error(`Failed to load dev_feature_flags_descriptions`,e)}return{}}),[Bn,Vn]=(0,S.useState)(()=>{if(typeof window<`u`)try{let e=localStorage.getItem(`dev_deleted_feature_flags`);if(e)return JSON.parse(e)}catch(e){console.error(`Failed to load dev_deleted_feature_flags`,e)}return[]}),[Hn,Un]=(0,S.useState)(null),[Wn,Gn]=(0,S.useState)(``),Kn=e=>{let t=[...Bn,e];Vn(t),localStorage.setItem(`dev_deleted_feature_flags`,JSON.stringify(t));let n={...Rn};delete n[e],zn(n),localStorage.setItem(`dev_feature_flags_descriptions`,JSON.stringify(n))},qn=async(e,t)=>{tt(null),at(``);try{if(await M.updateMeta(e,{featureFlag:t}),At(n=>({...n,[e]:{...n[e],featureFlag:t}})),Bn.includes(t)){let e=Bn.filter(e=>e!==t);Vn(e),localStorage.setItem(`dev_deleted_feature_flags`,JSON.stringify(e))}if(!Rn[t]){let n={...Rn,[t]:`Feature flag linked to Ticket #${e}`};zn(n),localStorage.setItem(`dev_feature_flags_descriptions`,JSON.stringify(n))}}catch(e){console.error(`Failed to set feature flag:`,e)}};(0,S.useEffect)(()=>{let e=()=>{let e=window.getSelection();(!e||e.isCollapsed||!e.toString().trim())&&yn(null)};return document.addEventListener(`selectionchange`,e),()=>{document.removeEventListener(`selectionchange`,e)}},[]),(0,S.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),A?tt(null):bn?xn(null):vn?yn(null):un?dn(null):d?f(!1):on?sn(!1):cn?ln(!1):Ut?Wt(null):t&&t())},n=e=>{if(A&&rt.current&&!rt.current.contains(e.target)){if(e.target.closest(`[data-popover-trigger="true"]`))return;tt(null),at(``)}};return window.addEventListener(`keydown`,e,{capture:!0}),window.addEventListener(`mousedown`,n,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),window.removeEventListener(`mousedown`,n,{capture:!0})}},[A,bn,vn,un,d,on,cn,Ut,t]);let Jn=async(e,t)=>{let n=t.trim()||l||`Developer`;dn(null),At(t=>({...t,[e]:{...t[e],submittedBy:n}}));try{await M.updateMeta(e,{submittedBy:n})}catch(e){console.error(`Failed to update author:`,e)}},Yn=async(e,t)=>{let n=t.slice(0,48).trim();if(hn(null),n){At(t=>({...t,[e]:{...t[e],title:n}}));try{await M.updateMeta(e,{title:n})}catch(e){console.error(`Failed to update ticket title:`,e)}}},Xn=(e,t)=>{if(!u)return;let n=window.getSelection();if(!n||n.isCollapsed||!n.toString().trim())return;let r=n.toString().trim();if(!(r.length<2))try{let t=n.getRangeAt(0).getBoundingClientRect();t.width>0&&t.height>0&&yn({x:t.left+t.width/2,y:t.top-10,text:r,ticketId:e})}catch{yn({x:t.clientX,y:t.clientY-20,text:r,ticketId:e})}},Zn=e=>{if(e.target.closest(`button`))return;e.preventDefault(),e.stopPropagation();let t=e.clientX,n=e.clientY,r=bn?.x??Math.min(window.innerWidth-384-12,Math.max(12,window.innerWidth/2-192)),i=bn?.y??Math.min(window.innerHeight-280,Math.max(60,window.innerHeight/2+12)),a=e=>{let a=e.clientX-t,o=e.clientY-n,s=Math.min(window.innerWidth-384-12,Math.max(12,r+a)),c=Math.min(window.innerHeight-250-12,Math.max(12,i+o));xn(e=>e?{...e,x:s,y:c}:null)},o=()=>{window.removeEventListener(`mousemove`,a),window.removeEventListener(`mouseup`,o)};window.addEventListener(`mousemove`,a),window.addEventListener(`mouseup`,o)},Qn=async(e,t,n)=>{if(n.trim())try{let r=await M.saveInlineComment(e,t,n);Mt(t=>({...t,[e]:r})),Ln(null),yn(null)}catch(e){console.error(`Failed to save inline comment:`,e)}},$n=async(e,t)=>{if(!t)return;let n=t.type.startsWith(`image/`),r=t.type.startsWith(`video/`);if(!n&&!r)return;let i=new FileReader;i.onload=async()=>{let n=i.result;try{let i=await fetch(`/api/planning/upload-attachment`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({ticketId:e,filename:t.name,base64Data:n})});if(i.ok){let t=await i.json();if(t.success&&t.url){let n=r?`\n<video src="${t.url}" controls class="max-h-60 rounded-xl border border-slate-800 my-2" />\n`:`\n![${t.filename}](${t.url})\n`;Pn(e,(wn[e]||``)+n)}}}catch(e){console.error(`Failed to upload media attachment:`,e)}},i.readAsDataURL(t)},er=(e,t)=>{if(t.clipboardData.files&&t.clipboardData.files.length>0){let n=t.clipboardData.files[0];(n.type.startsWith(`image/`)||n.type.startsWith(`video/`))&&(t.preventDefault(),$n(e,n))}},tr=e=>{if(!e)return null;let t=e.split(/(!\[.*?\]\(.*?\)|<video src=".*?" controls.*?\/>)/g);return(0,N.jsx)(`div`,{className:`space-y-1.5`,children:t.map((e,t)=>{let n=/^!\[(.*?)\]\((.*?)\)$/.exec(e);if(n)return(0,N.jsx)(`img`,{src:n[2],alt:n[1],className:`max-h-60 rounded-xl border border-[var(--border-subtle)] my-1 object-contain bg-[var(--bg-input)] shadow-md`},t);let r=/^<video src="(.*?)" controls.*?\/>$/.exec(e);return r?(0,N.jsx)(`video`,{src:r[1],controls:!0,className:`max-h-60 rounded-xl border border-[var(--border-subtle)] my-1 w-full bg-[var(--bg-input)] shadow-md`},t):e.trim()?(0,N.jsx)(`p`,{className:`text-xs text-[var(--text-secondary)] leading-relaxed font-sans whitespace-pre-wrap`,children:e},t):null})})},nr=async(e,t,n)=>{let r=`${e}_${t}`;kn(e=>({...e,[r]:`saving`}));try{let i=await M.saveAnswer(e,t,n);Tt(t=>({...t,[e]:i})),kn(e=>({...e,[r]:`saved`})),setTimeout(()=>{kn(e=>{let t={...e};return delete t[r],t})},3e3)}catch(e){console.error(`Failed to save answer:`,e),kn(e=>({...e,[r]:`error`}))}},rr=async(e,t)=>{if(!t.trim())return;let n=`comment_${e}`;kn(e=>({...e,[n]:`saving`}));try{let r=await M.saveComment(e,t);kt(t=>({...t,[e]:r})),Pn(e,``),kn(e=>({...e,[n]:`saved`})),setTimeout(()=>{kn(e=>{let t={...e};return delete t[n],t})},3e3)}catch(e){console.error(`Failed to save comment:`,e),kn(e=>({...e,[n]:`error`}))}},ir=async(e,t)=>{let n=`plan_${e}`;kn(e=>({...e,[n]:`saving`}));try{await M.savePlan(e,t),Dt(n=>({...n,[e]:t})),kn(e=>({...e,[n]:`saved`})),In(e),jn(null);let r=await M.getHistory();r&&!(r instanceof Promise)&&It(r),setTimeout(()=>{kn(e=>{let t={...e};return delete t[n],t})},3e3)}catch(e){console.error(`Failed to save plan:`,e),kn(e=>({...e,[n]:`error`}))}},ar=(e,t,n,r,i)=>{let a=P[e.ticketId]?.title||e.title,o=P[e.ticketId]?.category||e.category,s=P[e.ticketId]?.complexity||e.complexity,c=P[e.ticketId]?.estimatedEffort||e.estimatedEffort||`2.0 - 4.0 hours`,l=t===void 0?e.rationale||``:t,u=n===void 0?e.breakdown||[]:n,d=r===void 0?e.technicalDetails||[]:r,f=i===void 0?e.openQuestions||[]:i,p=`# Ticket #${e.ticketId}: ${a}\n**Category**: ${o} \n**Complexity**: ${s} \n**Estimated Effort**: ${c} \n\n`;return l.trim()&&(p+=`### Summary\n${l.trim()}\n\n`),u.length>0&&(p+=`### Feature Breakdown
109
109
  `,u.forEach((e,t)=>{e.trim()&&(p+=`${t+1}. **${e.replace(/^\d+\.\s*/,``)}**\n`)}),p+=`
110
110
  `),(d.length>0||f.length>0)&&(p+=`### Technical Detail & Open Questions
111
111
  `,d.forEach(e=>{e.trim()&&(p+=`- **Technical Detail**: ${e.trim().replace(/^- \*\*Technical Detail\*\*:\s*/,``)}\n`)}),f.forEach(e=>{e.trim()&&(p+=`- **Open Question**: ${e.trim().replace(/^- \*\*Open Question\*\*:\s*/,``)}\n`)}),p+=`
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-teal-50:oklch(98.4% .014 180.72);--color-teal-100:oklch(95.3% .051 180.801);--color-teal-200:oklch(91% .096 180.426);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-800:oklch(43.7% .078 188.216);--color-teal-950:oklch(27.7% .046 192.524);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-950:oklch(30.2% .056 229.695);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-sky-800:oklch(44.3% .11 240.79);--color-sky-900:oklch(39.1% .09 240.876);--color-sky-950:oklch(29.3% .066 243.157);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-900:oklch(35.9% .144 278.697);--color-indigo-950:oklch(25.7% .09 281.288);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-purple-950:oklch(29.1% .149 302.717);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-950:oklch(29.3% .136 325.661);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-900:oklch(41% .159 10.272);--color-rose-950:oklch(27.1% .105 12.094);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-1\/2{top:50%}.top-2\.5{top:calc(var(--spacing) * 2.5)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.z-\[80\]{z-index:80}.z-\[90\]{z-index:90}.z-\[120\]{z-index:120}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.hidden\!{display:none!important}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-7{height:calc(var(--spacing) * 7)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-\[20px\]{height:20px}.h-\[92vh\]{height:92vh}.h-full{height:100%}.h-screen{height:100vh}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-\[44px\]{min-height:44px}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-10{width:calc(var(--spacing) * 10)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-80{width:calc(var(--spacing) * 80)}.w-\[20px\]{width:20px}.w-\[56px\]{width:56px}.w-\[60px\]{width:60px}.w-\[84px\]{width:84px}.w-\[95vw\]{width:95vw}.w-\[112px\]{width:112px}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\[140px\]{max-width:140px}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.scrollbar-none{scrollbar-width:none}.scrollbar-thin{scrollbar-width:thin}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--accent-border-subtle\)\]{border-color:var(--accent-border-subtle)}.border-\[var\(--accent-primary\)\]{border-color:var(--accent-primary)}.border-\[var\(--border-accent\)\]{border-color:var(--border-accent)}.border-\[var\(--border-strong\)\]{border-color:var(--border-strong)}.border-\[var\(--border-subtle\)\],.border-\[var\(--border-subtle\)\]\/80{border-color:var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--border-subtle\)\]\/80{border-color:color-mix(in oklab, var(--border-subtle) 80%, transparent)}}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/40{border-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.border-blue-300{border-color:var(--color-blue-300)}.border-cyan-300{border-color:var(--color-cyan-300)}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/30{border-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.border-cyan-500\/40{border-color:#00b7d766}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/40{border-color:color-mix(in oklab, var(--color-cyan-500) 40%, transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-300{border-color:var(--color-emerald-300)}.border-emerald-500{border-color:var(--color-emerald-500)}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.border-fuchsia-300{border-color:var(--color-fuchsia-300)}.border-fuchsia-500\/30{border-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.border-fuchsia-500\/30{border-color:color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent)}}.border-fuchsia-500\/40{border-color:#e12afb66}@supports (color:color-mix(in lab, red, red)){.border-fuchsia-500\/40{border-color:color-mix(in oklab, var(--color-fuchsia-500) 40%, transparent)}}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-300{border-color:var(--color-indigo-300)}.border-indigo-400{border-color:var(--color-indigo-400)}.border-indigo-500\/30{border-color:#625fff4d}@supports (color:color-mix(in lab, red, red)){.border-indigo-500\/30{border-color:color-mix(in oklab, var(--color-indigo-500) 30%, transparent)}}.border-indigo-500\/40{border-color:#625fff66}@supports (color:color-mix(in lab, red, red)){.border-indigo-500\/40{border-color:color-mix(in oklab, var(--color-indigo-500) 40%, transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-300{border-color:var(--color-purple-300)}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-purple-500\/40{border-color:#ac4bff66}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/40{border-color:color-mix(in oklab, var(--color-purple-500) 40%, transparent)}}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-rose-500{border-color:var(--color-rose-500)}.border-rose-500\/30{border-color:#ff23574d}@supports (color:color-mix(in lab, red, red)){.border-rose-500\/30{border-color:color-mix(in oklab, var(--color-rose-500) 30%, transparent)}}.border-rose-500\/40{border-color:#ff235766}@supports (color:color-mix(in lab, red, red)){.border-rose-500\/40{border-color:color-mix(in oklab, var(--color-rose-500) 40%, transparent)}}.border-sky-200{border-color:var(--color-sky-200)}.border-sky-600{border-color:var(--color-sky-600)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-800{border-color:var(--color-slate-800)}.border-slate-800\/80{border-color:#1d293dcc}@supports (color:color-mix(in lab, red, red)){.border-slate-800\/80{border-color:color-mix(in oklab, var(--color-slate-800) 80%, transparent)}}.border-teal-200{border-color:var(--color-teal-200)}.border-teal-300{border-color:var(--color-teal-300)}.border-transparent{border-color:#0000}.bg-\[\#f1f5f9\]{background-color:#f1f5f9}.bg-\[var\(--accent-bg-subtle\)\]{background-color:var(--accent-bg-subtle)}.bg-\[var\(--accent-primary\)\],.bg-\[var\(--accent-primary\)\]\/10{background-color:var(--accent-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--accent-primary\)\]\/10{background-color:color-mix(in oklab, var(--accent-primary) 10%, transparent)}}.bg-\[var\(--bg-app\)\]{background-color:var(--bg-app)}.bg-\[var\(--bg-input\)\]{background-color:var(--bg-input)}.bg-\[var\(--bg-main\)\]{background-color:var(--bg-main)}.bg-\[var\(--bg-surface\)\]{background-color:var(--bg-surface)}.bg-\[var\(--bg-surface-elevated\)\]{background-color:var(--bg-surface-elevated)}.bg-\[var\(--border-subtle\)\]{background-color:var(--border-subtle)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/20{background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-black\/85{background-color:#000000d9}@supports (color:color-mix(in lab, red, red)){.bg-black\/85{background-color:color-mix(in oklab, var(--color-black) 85%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-400{background-color:var(--color-cyan-400)}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/10{background-color:color-mix(in oklab, var(--color-cyan-500) 10%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-fuchsia-50{background-color:var(--color-fuchsia-50)}.bg-fuchsia-400{background-color:var(--color-fuchsia-400)}.bg-fuchsia-500\/10{background-color:#e12afb1a}@supports (color:color-mix(in lab, red, red)){.bg-fuchsia-500\/10{background-color:color-mix(in oklab, var(--color-fuchsia-500) 10%, transparent)}}.bg-fuchsia-600{background-color:var(--color-fuchsia-600)}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-indigo-50\/50{background-color:#eef2ff80}@supports (color:color-mix(in lab, red, red)){.bg-indigo-50\/50{background-color:color-mix(in oklab, var(--color-indigo-50) 50%, transparent)}}.bg-indigo-400{background-color:var(--color-indigo-400)}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab, red, red)){.bg-indigo-500\/10{background-color:color-mix(in oklab, var(--color-indigo-500) 10%, transparent)}}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/10{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.bg-purple-600{background-color:var(--color-purple-600)}.bg-purple-600\/30{background-color:#9810fa4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-600\/30{background-color:color-mix(in oklab, var(--color-purple-600) 30%, transparent)}}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-100{background-color:var(--color-rose-100)}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/10{background-color:color-mix(in oklab, var(--color-rose-500) 10%, transparent)}}.bg-rose-500\/15{background-color:#ff235726}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/15{background-color:color-mix(in oklab, var(--color-rose-500) 15%, transparent)}}.bg-rose-600{background-color:var(--color-rose-600)}.bg-sky-50{background-color:var(--color-sky-50)}.bg-sky-50\/50{background-color:#f0f9ff80}@supports (color:color-mix(in lab, red, red)){.bg-sky-50\/50{background-color:color-mix(in oklab, var(--color-sky-50) 50%, transparent)}}.bg-sky-100{background-color:var(--color-sky-100)}.bg-sky-600{background-color:var(--color-sky-600)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-400{background-color:var(--color-slate-400)}.bg-slate-800{background-color:var(--color-slate-800)}.bg-slate-950\/80{background-color:#020618cc}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/80{background-color:color-mix(in oklab, var(--color-slate-950) 80%, transparent)}}.bg-teal-50{background-color:var(--color-teal-50)}.bg-teal-100{background-color:var(--color-teal-100)}.bg-transparent{background-color:#0000}.object-contain{object-fit:contain}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--accent-primary\)\]{color:var(--accent-primary)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800\/80{color:#953d00cc}@supports (color:color-mix(in lab, red, red)){.text-amber-800\/80{color:color-mix(in oklab, var(--color-amber-800) 80%, transparent)}}.text-amber-900{color:var(--color-amber-900)}.text-amber-950{color:var(--color-amber-950)}.text-blue-950{color:var(--color-blue-950)}.text-cyan-300{color:var(--color-cyan-300)}.text-cyan-600{color:var(--color-cyan-600)}.text-cyan-700{color:var(--color-cyan-700)}.text-cyan-950{color:var(--color-cyan-950)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-emerald-900{color:var(--color-emerald-900)}.text-emerald-950{color:var(--color-emerald-950)}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-fuchsia-950{color:var(--color-fuchsia-950)}.text-indigo-300{color:var(--color-indigo-300)}.text-indigo-400{color:var(--color-indigo-400)}.text-indigo-600{color:var(--color-indigo-600)}.text-indigo-700{color:var(--color-indigo-700)}.text-indigo-900{color:var(--color-indigo-900)}.text-indigo-950{color:var(--color-indigo-950)}.text-purple-200{color:var(--color-purple-200)}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-purple-900{color:var(--color-purple-900)}.text-purple-950{color:var(--color-purple-950)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-rose-700{color:var(--color-rose-700)}.text-rose-800{color:var(--color-rose-800)}.text-rose-900{color:var(--color-rose-900)}.text-rose-950{color:var(--color-rose-950)}.text-sky-600{color:var(--color-sky-600)}.text-sky-700{color:var(--color-sky-700)}.text-sky-800{color:var(--color-sky-800)}.text-sky-800\/80{color:#005986cc}@supports (color:color-mix(in lab, red, red)){.text-sky-800\/80{color:color-mix(in oklab, var(--color-sky-800) 80%, transparent)}}.text-sky-900{color:var(--color-sky-900)}.text-sky-950{color:var(--color-sky-950)}.text-slate-300{color:var(--color-slate-300)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-teal-800{color:var(--color-teal-800)}.text-teal-950{color:var(--color-teal-950)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.placeholder-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}.placeholder-purple-400\/50::placeholder{color:#c07eff80}@supports (color:color-mix(in lab, red, red)){.placeholder-purple-400\/50::placeholder{color:color-mix(in oklab, var(--color-purple-400) 50%, transparent)}}.placeholder-slate-400::placeholder{color:var(--color-slate-400)}.accent-purple-500{accent-color:var(--color-purple-500)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-\[var\(--accent-primary\)\]\/20{--tw-shadow-alpha:20%;--tw-shadow:var(--accent-primary);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xs{--tw-shadow:0 1px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-emerald-600\/20{--tw-shadow-color:#00976733}@supports (color:color-mix(in lab, red, red)){.shadow-emerald-600\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-emerald-600) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-rose-600\/20{--tw-shadow-color:#e7004433}@supports (color:color-mix(in lab, red, red)){.shadow-rose-600\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-rose-600) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-\[var\(--accent-primary\)\]{--tw-ring-color:var(--accent-primary)}.ring-\[var\(--border-accent\)\]{--tw-ring-color:var(--border-accent)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}@media (hover:hover){.group-hover\:bg-\[var\(--accent-primary\)\]:is(:where(.group):hover *){background-color:var(--accent-primary)}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/author\:opacity-100:is(:where(.group\/author):hover *),.group-hover\/header\:opacity-100:is(:where(.group\/header):hover *){opacity:1}}.before\:font-bold:before{content:var(--tw-content);--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.before\:text-\[var\(--accent-primary\)\]:before{content:var(--tw-content);color:var(--accent-primary)}.before\:content-\[\"–\"\]:before{--tw-content:"–";content:var(--tw-content)}.before\:content-\[\"•\"\]:before{--tw-content:"•";content:var(--tw-content)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:w-3:hover{width:calc(var(--spacing) * 3)}.hover\:border-\[var\(--border-accent\)\]:hover{border-color:var(--border-accent)}.hover\:border-\[var\(--border-strong\)\]:hover{border-color:var(--border-strong)}.hover\:bg-\[var\(--accent-bg-subtle\)\]:hover,.hover\:bg-\[var\(--accent-bg-subtle\)\]\/50:hover{background-color:var(--accent-bg-subtle)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--accent-bg-subtle\)\]\/50:hover{background-color:color-mix(in oklab, var(--accent-bg-subtle) 50%, transparent)}}.hover\:bg-\[var\(--accent-bg-subtle\)\]\/80:hover{background-color:var(--accent-bg-subtle)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--accent-bg-subtle\)\]\/80:hover{background-color:color-mix(in oklab, var(--accent-bg-subtle) 80%, transparent)}}.hover\:bg-\[var\(--bg-surface-elevated\)\]:hover{background-color:var(--bg-surface-elevated)}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-amber-200\/70:hover{background-color:#fee685b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-200\/70:hover{background-color:color-mix(in oklab, var(--color-amber-200) 70%, transparent)}}.hover\:bg-amber-500\/30:hover{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/30:hover{background-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.hover\:bg-blue-200\/70:hover{background-color:#bedbffb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-200\/70:hover{background-color:color-mix(in oklab, var(--color-blue-200) 70%, transparent)}}.hover\:bg-cyan-200\/70:hover{background-color:#a2f4fdb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-cyan-200\/70:hover{background-color:color-mix(in oklab, var(--color-cyan-200) 70%, transparent)}}.hover\:bg-emerald-50:hover{background-color:var(--color-emerald-50)}.hover\:bg-emerald-100:hover{background-color:var(--color-emerald-100)}.hover\:bg-emerald-200\/70:hover{background-color:#a4f4cfb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-200\/70:hover{background-color:color-mix(in oklab, var(--color-emerald-200) 70%, transparent)}}.hover\:bg-emerald-500:hover{background-color:var(--color-emerald-500)}.hover\:bg-indigo-500:hover{background-color:var(--color-indigo-500)}.hover\:bg-purple-50:hover{background-color:var(--color-purple-50)}.hover\:bg-purple-100:hover{background-color:var(--color-purple-100)}.hover\:bg-purple-200\/70:hover{background-color:#e9d5ffb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-200\/70:hover{background-color:color-mix(in oklab, var(--color-purple-200) 70%, transparent)}}.hover\:bg-purple-500\/10:hover{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/10:hover{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.hover\:bg-purple-500\/20:hover{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/20:hover{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.hover\:bg-purple-600\/50:hover{background-color:#9810fa80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-600\/50:hover{background-color:color-mix(in oklab, var(--color-purple-600) 50%, transparent)}}.hover\:bg-rose-50:hover{background-color:var(--color-rose-50)}.hover\:bg-rose-200\/70:hover{background-color:#ffccd3b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-rose-200\/70:hover{background-color:color-mix(in oklab, var(--color-rose-200) 70%, transparent)}}.hover\:bg-rose-500:hover{background-color:var(--color-rose-500)}.hover\:bg-sky-100:hover{background-color:var(--color-sky-100)}.hover\:bg-sky-500:hover{background-color:var(--color-sky-500)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-700:hover{background-color:var(--color-slate-700)}.hover\:bg-teal-200\/70:hover{background-color:#96f7e4b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-teal-200\/70:hover{background-color:color-mix(in oklab, var(--color-teal-200) 70%, transparent)}}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:text-\[var\(--accent-primary\)\]:hover{color:var(--accent-primary)}.hover\:text-\[var\(--text-primary\)\]:hover{color:var(--text-primary)}.hover\:text-purple-300:hover{color:var(--color-purple-300)}.hover\:text-purple-400:hover{color:var(--color-purple-400)}.hover\:text-rose-600:hover{color:var(--color-rose-600)}.hover\:text-sky-700:hover{color:var(--color-sky-700)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:brightness-105:hover{--tw-brightness:brightness(105%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:brightness-125:hover{--tw-brightness:brightness(125%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:border-\[var\(--border-accent\)\]:focus{border-color:var(--border-accent)}.focus\:border-\[var\(--border-strong\)\]:focus{border-color:var(--border-strong)}.focus\:border-amber-500\/50:focus{border-color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.focus\:border-amber-500\/50:focus{border-color:color-mix(in oklab, var(--color-amber-500) 50%, transparent)}}.focus\:border-purple-500:focus{border-color:var(--color-purple-500)}.focus\:border-purple-500\/50:focus{border-color:#ac4bff80}@supports (color:color-mix(in lab, red, red)){.focus\:border-purple-500\/50:focus{border-color:color-mix(in oklab, var(--color-purple-500) 50%, transparent)}}.focus\:border-sky-500:focus{border-color:var(--color-sky-500)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:mt-0{margin-top:0}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:w-96{width:calc(var(--spacing) * 96)}.sm\:w-auto{width:auto}.sm\:flex-1{flex:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:justify-end{justify-content:flex-end}.sm\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:rounded-3xl{border-radius:var(--radius-3xl)}.sm\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.sm\:p-3{padding:calc(var(--spacing) * 3)}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:py-2{padding-block:calc(var(--spacing) * 2)}.sm\:pt-0{padding-top:0}.sm\:text-\[11px\]{font-size:11px}}@media (width>=48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-full{height:100%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-3{gap:calc(var(--spacing) * 3)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:py-3{padding-block:calc(var(--spacing) * 3)}}.dark\:border-amber-500\/30:where(.dark,.dark *){border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.dark\:border-amber-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.dark\:border-blue-500\/30:where(.dark,.dark *){border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-blue-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.dark\:border-cyan-500\/30:where(.dark,.dark *){border-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.dark\:border-cyan-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.dark\:border-emerald-500\/30:where(.dark,.dark *){border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-emerald-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.dark\:border-emerald-500\/40:where(.dark,.dark *){border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.dark\:border-emerald-500\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.dark\:border-fuchsia-500\/30:where(.dark,.dark *){border-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-fuchsia-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent)}}.dark\:border-fuchsia-500\/40:where(.dark,.dark *){border-color:#e12afb66}@supports (color:color-mix(in lab, red, red)){.dark\:border-fuchsia-500\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-fuchsia-500) 40%, transparent)}}.dark\:border-indigo-500\/20:where(.dark,.dark *){border-color:#625fff33}@supports (color:color-mix(in lab, red, red)){.dark\:border-indigo-500\/20:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-indigo-500) 20%, transparent)}}.dark\:border-indigo-500\/30:where(.dark,.dark *){border-color:#625fff4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-indigo-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-indigo-500) 30%, transparent)}}.dark\:border-indigo-500\/40:where(.dark,.dark *){border-color:#625fff66}@supports (color:color-mix(in lab, red, red)){.dark\:border-indigo-500\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-indigo-500) 40%, transparent)}}.dark\:border-purple-500\/20:where(.dark,.dark *){border-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.dark\:border-purple-500\/20:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.dark\:border-purple-500\/30:where(.dark,.dark *){border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-purple-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.dark\:border-purple-500\/40:where(.dark,.dark *){border-color:#ac4bff66}@supports (color:color-mix(in lab, red, red)){.dark\:border-purple-500\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-purple-500) 40%, transparent)}}.dark\:border-rose-500\/30:where(.dark,.dark *){border-color:#ff23574d}@supports (color:color-mix(in lab, red, red)){.dark\:border-rose-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-rose-500) 30%, transparent)}}.dark\:border-rose-500\/40:where(.dark,.dark *){border-color:#ff235766}@supports (color:color-mix(in lab, red, red)){.dark\:border-rose-500\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-rose-500) 40%, transparent)}}.dark\:border-slate-600\/30:where(.dark,.dark *){border-color:#45556c4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-slate-600\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-slate-600) 30%, transparent)}}.dark\:border-slate-700\/40:where(.dark,.dark *){border-color:#31415866}@supports (color:color-mix(in lab, red, red)){.dark\:border-slate-700\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-slate-700) 40%, transparent)}}.dark\:border-teal-500\/30:where(.dark,.dark *){border-color:#00baa74d}@supports (color:color-mix(in lab, red, red)){.dark\:border-teal-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-teal-500) 30%, transparent)}}.dark\:bg-amber-500\/20:where(.dark,.dark *){background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.dark\:bg-blue-500\/20:where(.dark,.dark *){background-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.dark\:bg-cyan-500\/20:where(.dark,.dark *){background-color:#00b7d733}@supports (color:color-mix(in lab, red, red)){.dark\:bg-cyan-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-cyan-500) 20%, transparent)}}.dark\:bg-emerald-400:where(.dark,.dark *){background-color:var(--color-emerald-400)}.dark\:bg-emerald-500\/10:where(.dark,.dark *){background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-emerald-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.dark\:bg-emerald-500\/20:where(.dark,.dark *){background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-emerald-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.dark\:bg-emerald-950\/40:where(.dark,.dark *){background-color:#002c2266}@supports (color:color-mix(in lab, red, red)){.dark\:bg-emerald-950\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-emerald-950) 40%, transparent)}}.dark\:bg-fuchsia-400:where(.dark,.dark *){background-color:var(--color-fuchsia-400)}.dark\:bg-fuchsia-500\/10:where(.dark,.dark *){background-color:#e12afb1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-fuchsia-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-fuchsia-500) 10%, transparent)}}.dark\:bg-indigo-400:where(.dark,.dark *){background-color:var(--color-indigo-400)}.dark\:bg-indigo-500\/10:where(.dark,.dark *){background-color:#625fff1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-indigo-500) 10%, transparent)}}.dark\:bg-indigo-500\/20:where(.dark,.dark *){background-color:#625fff33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-indigo-500) 20%, transparent)}}.dark\:bg-indigo-600:where(.dark,.dark *){background-color:var(--color-indigo-600)}.dark\:bg-indigo-600\/20:where(.dark,.dark *){background-color:#4f39f633}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-600\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-indigo-600) 20%, transparent)}}.dark\:bg-indigo-600\/30:where(.dark,.dark *){background-color:#4f39f64d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-600\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-indigo-600) 30%, transparent)}}.dark\:bg-indigo-700:where(.dark,.dark *){background-color:var(--color-indigo-700)}.dark\:bg-indigo-950\/20:where(.dark,.dark *){background-color:#1e1a4d33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-950\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-indigo-950) 20%, transparent)}}.dark\:bg-purple-500\/20:where(.dark,.dark *){background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-purple-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.dark\:bg-purple-600\/30:where(.dark,.dark *){background-color:#9810fa4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-purple-600\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-purple-600) 30%, transparent)}}.dark\:bg-purple-700:where(.dark,.dark *){background-color:var(--color-purple-700)}.dark\:bg-rose-500\/20:where(.dark,.dark *){background-color:#ff235733}@supports (color:color-mix(in lab, red, red)){.dark\:bg-rose-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-rose-500) 20%, transparent)}}.dark\:bg-rose-950\/40:where(.dark,.dark *){background-color:#4d021866}@supports (color:color-mix(in lab, red, red)){.dark\:bg-rose-950\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-rose-950) 40%, transparent)}}.dark\:bg-slate-800:where(.dark,.dark *){background-color:var(--color-slate-800)}.dark\:bg-slate-800\/40:where(.dark,.dark *){background-color:#1d293d66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-slate-800\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-slate-800) 40%, transparent)}}.dark\:bg-teal-500\/20:where(.dark,.dark *){background-color:#00baa733}@supports (color:color-mix(in lab, red, red)){.dark\:bg-teal-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-teal-500) 20%, transparent)}}.dark\:text-\[var\(--accent-primary\)\]:where(.dark,.dark *){color:var(--accent-primary)}.dark\:text-\[var\(--text-muted\)\]:where(.dark,.dark *){color:var(--text-muted)}.dark\:text-amber-300:where(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:where(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-amber-400\/80:where(.dark,.dark *){color:#fcbb00cc}@supports (color:color-mix(in lab, red, red)){.dark\:text-amber-400\/80:where(.dark,.dark *){color:color-mix(in oklab, var(--color-amber-400) 80%, transparent)}}.dark\:text-blue-300:where(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-cyan-300:where(.dark,.dark *){color:var(--color-cyan-300)}.dark\:text-cyan-400:where(.dark,.dark *){color:var(--color-cyan-400)}.dark\:text-emerald-300:where(.dark,.dark *){color:var(--color-emerald-300)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-fuchsia-300:where(.dark,.dark *){color:var(--color-fuchsia-300)}.dark\:text-indigo-100:where(.dark,.dark *){color:var(--color-indigo-100)}.dark\:text-indigo-200:where(.dark,.dark *){color:var(--color-indigo-200)}.dark\:text-indigo-300:where(.dark,.dark *){color:var(--color-indigo-300)}.dark\:text-indigo-400:where(.dark,.dark *){color:var(--color-indigo-400)}.dark\:text-indigo-400\/80:where(.dark,.dark *){color:#7d87ffcc}@supports (color:color-mix(in lab, red, red)){.dark\:text-indigo-400\/80:where(.dark,.dark *){color:color-mix(in oklab, var(--color-indigo-400) 80%, transparent)}}.dark\:text-purple-100:where(.dark,.dark *){color:var(--color-purple-100)}.dark\:text-purple-200:where(.dark,.dark *){color:var(--color-purple-200)}.dark\:text-purple-300:where(.dark,.dark *){color:var(--color-purple-300)}.dark\:text-purple-400:where(.dark,.dark *){color:var(--color-purple-400)}.dark\:text-rose-300:where(.dark,.dark *){color:var(--color-rose-300)}.dark\:text-rose-400:where(.dark,.dark *){color:var(--color-rose-400)}.dark\:text-slate-400:where(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-600:where(.dark,.dark *){color:var(--color-slate-600)}.dark\:text-teal-300:where(.dark,.dark *){color:var(--color-teal-300)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\:placeholder-slate-500:where(.dark,.dark *)::placeholder{color:var(--color-slate-500)}@media (hover:hover){.dark\:hover\:bg-amber-500\/30:where(.dark,.dark *):hover{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-amber-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.dark\:hover\:bg-blue-500\/30:where(.dark,.dark *):hover{background-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-blue-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.dark\:hover\:bg-cyan-500\/30:where(.dark,.dark *):hover{background-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-cyan-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.dark\:hover\:bg-emerald-500\/20:where(.dark,.dark *):hover{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-emerald-500\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.dark\:hover\:bg-emerald-500\/30:where(.dark,.dark *):hover{background-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-emerald-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.dark\:hover\:bg-indigo-500:where(.dark,.dark *):hover{background-color:var(--color-indigo-500)}.dark\:hover\:bg-indigo-600\/30:where(.dark,.dark *):hover{background-color:#4f39f64d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-indigo-600\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-indigo-600) 30%, transparent)}}.dark\:hover\:bg-indigo-600\/50:where(.dark,.dark *):hover{background-color:#4f39f680}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-indigo-600\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-indigo-600) 50%, transparent)}}.dark\:hover\:bg-purple-500\/20:where(.dark,.dark *):hover{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-purple-500\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.dark\:hover\:bg-purple-500\/30:where(.dark,.dark *):hover{background-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-purple-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.dark\:hover\:bg-purple-600\/50:where(.dark,.dark *):hover{background-color:#9810fa80}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-purple-600\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-purple-600) 50%, transparent)}}.dark\:hover\:bg-rose-500\/20:where(.dark,.dark *):hover{background-color:#ff235733}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-rose-500\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-rose-500) 20%, transparent)}}.dark\:hover\:bg-rose-500\/30:where(.dark,.dark *):hover{background-color:#ff23574d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-rose-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-rose-500) 30%, transparent)}}.dark\:hover\:bg-slate-900:where(.dark,.dark *):hover{background-color:var(--color-slate-900)}.dark\:hover\:bg-teal-500\/30:where(.dark,.dark *):hover{background-color:#00baa74d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-teal-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-teal-500) 30%, transparent)}}.dark\:hover\:text-indigo-300:where(.dark,.dark *):hover{color:var(--color-indigo-300)}.dark\:hover\:text-rose-400:where(.dark,.dark *):hover{color:var(--color-rose-400)}}.dark\:focus\:border-indigo-500\/50:where(.dark,.dark *):focus{border-color:#625fff80}@supports (color:color-mix(in lab, red, red)){.dark\:focus\:border-indigo-500\/50:where(.dark,.dark *):focus{border-color:color-mix(in oklab, var(--color-indigo-500) 50%, transparent)}}}:root{--bg-main:#f8fafc;--bg-app:#f8fafc;--bg-card:#fff;--bg-surface:#fff;--bg-surface-elevated:#f1f5f9;--bg-input:#fff;--border-subtle:#e2e8f0;--border-strong:#cbd5e1;--border-accent:#0e749066;--accent-primary:#0284c7;--accent-bg-subtle:#0284c714;--accent-border-subtle:#0284c740;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.dark{--bg-main:#060812;--bg-app:#060812;--bg-card:#0b0f19;--bg-surface:#0a0e1a;--bg-surface-elevated:#0f172a;--bg-input:#0b0f19;--border-subtle:#1e293b;--border-strong:#334155;--border-accent:#6366f180;--accent-primary:#818cf8;--accent-bg-subtle:#6366f11f;--accent-border-subtle:#6366f14d;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background-color:var(--bg-main);color:var(--text-primary);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#94a3b859}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-emerald-950:oklch(26.2% .051 172.552);--color-teal-50:oklch(98.4% .014 180.72);--color-teal-100:oklch(95.3% .051 180.801);--color-teal-200:oklch(91% .096 180.426);--color-teal-300:oklch(85.5% .138 181.071);--color-teal-500:oklch(70.4% .14 182.503);--color-teal-800:oklch(43.7% .078 188.216);--color-teal-950:oklch(27.7% .046 192.524);--color-cyan-100:oklch(95.6% .045 203.388);--color-cyan-200:oklch(91.7% .08 205.041);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-950:oklch(30.2% .056 229.695);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-100:oklch(95.1% .026 236.824);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-sky-700:oklch(50% .134 242.749);--color-sky-800:oklch(44.3% .11 240.79);--color-sky-900:oklch(39.1% .09 240.876);--color-sky-950:oklch(29.3% .066 243.157);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-950:oklch(28.2% .091 267.935);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-900:oklch(35.9% .144 278.697);--color-indigo-950:oklch(25.7% .09 281.288);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-purple-950:oklch(29.1% .149 302.717);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-300:oklch(83.3% .145 321.434);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-950:oklch(29.3% .136 325.661);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-rose-900:oklch(41% .159 10.272);--color-rose-950:oklch(27.1% .105 12.094);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.top-1\/2{top:50%}.top-2\.5{top:calc(var(--spacing) * 2.5)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.z-\[80\]{z-index:80}.z-\[90\]{z-index:90}.z-\[120\]{z-index:120}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.hidden\!{display:none!important}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-7{height:calc(var(--spacing) * 7)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-\[20px\]{height:20px}.h-\[92vh\]{height:92vh}.h-full{height:100%}.h-screen{height:100vh}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-\[44px\]{min-height:44px}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-10{width:calc(var(--spacing) * 10)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-80{width:calc(var(--spacing) * 80)}.w-\[20px\]{width:20px}.w-\[56px\]{width:56px}.w-\[60px\]{width:60px}.w-\[84px\]{width:84px}.w-\[95vw\]{width:95vw}.w-\[112px\]{width:112px}.w-full{width:100%}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\[140px\]{max-width:140px}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.scrollbar-none{scrollbar-width:none}.scrollbar-thin{scrollbar-width:thin}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--accent-border-subtle\)\]{border-color:var(--accent-border-subtle)}.border-\[var\(--accent-primary\)\]{border-color:var(--accent-primary)}.border-\[var\(--border-accent\)\]{border-color:var(--border-accent)}.border-\[var\(--border-strong\)\]{border-color:var(--border-strong)}.border-\[var\(--border-subtle\)\],.border-\[var\(--border-subtle\)\]\/80{border-color:var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--border-subtle\)\]\/80{border-color:color-mix(in oklab, var(--border-subtle) 80%, transparent)}}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/40{border-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.border-blue-300{border-color:var(--color-blue-300)}.border-cyan-300{border-color:var(--color-cyan-300)}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/30{border-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.border-cyan-500\/40{border-color:#00b7d766}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/40{border-color:color-mix(in oklab, var(--color-cyan-500) 40%, transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-300{border-color:var(--color-emerald-300)}.border-emerald-500{border-color:var(--color-emerald-500)}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.border-fuchsia-300{border-color:var(--color-fuchsia-300)}.border-fuchsia-500\/30{border-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.border-fuchsia-500\/30{border-color:color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent)}}.border-fuchsia-500\/40{border-color:#e12afb66}@supports (color:color-mix(in lab, red, red)){.border-fuchsia-500\/40{border-color:color-mix(in oklab, var(--color-fuchsia-500) 40%, transparent)}}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-300{border-color:var(--color-indigo-300)}.border-indigo-400{border-color:var(--color-indigo-400)}.border-indigo-500\/30{border-color:#625fff4d}@supports (color:color-mix(in lab, red, red)){.border-indigo-500\/30{border-color:color-mix(in oklab, var(--color-indigo-500) 30%, transparent)}}.border-indigo-500\/40{border-color:#625fff66}@supports (color:color-mix(in lab, red, red)){.border-indigo-500\/40{border-color:color-mix(in oklab, var(--color-indigo-500) 40%, transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-300{border-color:var(--color-purple-300)}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-purple-500\/40{border-color:#ac4bff66}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/40{border-color:color-mix(in oklab, var(--color-purple-500) 40%, transparent)}}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-rose-500{border-color:var(--color-rose-500)}.border-rose-500\/30{border-color:#ff23574d}@supports (color:color-mix(in lab, red, red)){.border-rose-500\/30{border-color:color-mix(in oklab, var(--color-rose-500) 30%, transparent)}}.border-rose-500\/40{border-color:#ff235766}@supports (color:color-mix(in lab, red, red)){.border-rose-500\/40{border-color:color-mix(in oklab, var(--color-rose-500) 40%, transparent)}}.border-sky-200{border-color:var(--color-sky-200)}.border-sky-600{border-color:var(--color-sky-600)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.border-slate-800{border-color:var(--color-slate-800)}.border-slate-800\/80{border-color:#1d293dcc}@supports (color:color-mix(in lab, red, red)){.border-slate-800\/80{border-color:color-mix(in oklab, var(--color-slate-800) 80%, transparent)}}.border-teal-200{border-color:var(--color-teal-200)}.border-teal-300{border-color:var(--color-teal-300)}.border-transparent{border-color:#0000}.bg-\[\#f1f5f9\]{background-color:#f1f5f9}.bg-\[var\(--accent-bg-subtle\)\]{background-color:var(--accent-bg-subtle)}.bg-\[var\(--accent-primary\)\],.bg-\[var\(--accent-primary\)\]\/10{background-color:var(--accent-primary)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--accent-primary\)\]\/10{background-color:color-mix(in oklab, var(--accent-primary) 10%, transparent)}}.bg-\[var\(--bg-app\)\]{background-color:var(--bg-app)}.bg-\[var\(--bg-input\)\]{background-color:var(--bg-input)}.bg-\[var\(--bg-main\)\]{background-color:var(--bg-main)}.bg-\[var\(--bg-surface\)\]{background-color:var(--bg-surface)}.bg-\[var\(--bg-surface-elevated\)\]{background-color:var(--bg-surface-elevated)}.bg-\[var\(--border-subtle\)\]{background-color:var(--border-subtle)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/20{background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-black\/85{background-color:#000000d9}@supports (color:color-mix(in lab, red, red)){.bg-black\/85{background-color:color-mix(in oklab, var(--color-black) 85%, transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-cyan-100{background-color:var(--color-cyan-100)}.bg-cyan-400{background-color:var(--color-cyan-400)}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/10{background-color:color-mix(in oklab, var(--color-cyan-500) 10%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-fuchsia-50{background-color:var(--color-fuchsia-50)}.bg-fuchsia-400{background-color:var(--color-fuchsia-400)}.bg-fuchsia-500\/10{background-color:#e12afb1a}@supports (color:color-mix(in lab, red, red)){.bg-fuchsia-500\/10{background-color:color-mix(in oklab, var(--color-fuchsia-500) 10%, transparent)}}.bg-fuchsia-600{background-color:var(--color-fuchsia-600)}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-indigo-50\/50{background-color:#eef2ff80}@supports (color:color-mix(in lab, red, red)){.bg-indigo-50\/50{background-color:color-mix(in oklab, var(--color-indigo-50) 50%, transparent)}}.bg-indigo-400{background-color:var(--color-indigo-400)}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab, red, red)){.bg-indigo-500\/10{background-color:color-mix(in oklab, var(--color-indigo-500) 10%, transparent)}}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/10{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.bg-purple-600{background-color:var(--color-purple-600)}.bg-purple-600\/30{background-color:#9810fa4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-600\/30{background-color:color-mix(in oklab, var(--color-purple-600) 30%, transparent)}}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-100{background-color:var(--color-rose-100)}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-rose-500\/10{background-color:#ff23571a}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/10{background-color:color-mix(in oklab, var(--color-rose-500) 10%, transparent)}}.bg-rose-500\/15{background-color:#ff235726}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/15{background-color:color-mix(in oklab, var(--color-rose-500) 15%, transparent)}}.bg-rose-600{background-color:var(--color-rose-600)}.bg-sky-50{background-color:var(--color-sky-50)}.bg-sky-50\/50{background-color:#f0f9ff80}@supports (color:color-mix(in lab, red, red)){.bg-sky-50\/50{background-color:color-mix(in oklab, var(--color-sky-50) 50%, transparent)}}.bg-sky-100{background-color:var(--color-sky-100)}.bg-sky-600{background-color:var(--color-sky-600)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-400{background-color:var(--color-slate-400)}.bg-slate-800{background-color:var(--color-slate-800)}.bg-slate-950\/80{background-color:#020618cc}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\/80{background-color:color-mix(in oklab, var(--color-slate-950) 80%, transparent)}}.bg-teal-50{background-color:var(--color-teal-50)}.bg-teal-100{background-color:var(--color-teal-100)}.bg-transparent{background-color:#0000}.object-contain{object-fit:contain}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pr-1{padding-right:var(--spacing)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--accent-primary\)\]{color:var(--accent-primary)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800\/80{color:#953d00cc}@supports (color:color-mix(in lab, red, red)){.text-amber-800\/80{color:color-mix(in oklab, var(--color-amber-800) 80%, transparent)}}.text-amber-900{color:var(--color-amber-900)}.text-amber-950{color:var(--color-amber-950)}.text-blue-950{color:var(--color-blue-950)}.text-cyan-300{color:var(--color-cyan-300)}.text-cyan-600{color:var(--color-cyan-600)}.text-cyan-700{color:var(--color-cyan-700)}.text-cyan-950{color:var(--color-cyan-950)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-800{color:var(--color-emerald-800)}.text-emerald-900{color:var(--color-emerald-900)}.text-emerald-950{color:var(--color-emerald-950)}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-fuchsia-950{color:var(--color-fuchsia-950)}.text-indigo-300{color:var(--color-indigo-300)}.text-indigo-400{color:var(--color-indigo-400)}.text-indigo-600{color:var(--color-indigo-600)}.text-indigo-700{color:var(--color-indigo-700)}.text-indigo-900{color:var(--color-indigo-900)}.text-indigo-950{color:var(--color-indigo-950)}.text-purple-200{color:var(--color-purple-200)}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-purple-900{color:var(--color-purple-900)}.text-purple-950{color:var(--color-purple-950)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-rose-500{color:var(--color-rose-500)}.text-rose-600{color:var(--color-rose-600)}.text-rose-700{color:var(--color-rose-700)}.text-rose-800{color:var(--color-rose-800)}.text-rose-900{color:var(--color-rose-900)}.text-rose-950{color:var(--color-rose-950)}.text-sky-600{color:var(--color-sky-600)}.text-sky-700{color:var(--color-sky-700)}.text-sky-800{color:var(--color-sky-800)}.text-sky-800\/80{color:#005986cc}@supports (color:color-mix(in lab, red, red)){.text-sky-800\/80{color:color-mix(in oklab, var(--color-sky-800) 80%, transparent)}}.text-sky-900{color:var(--color-sky-900)}.text-sky-950{color:var(--color-sky-950)}.text-slate-300{color:var(--color-slate-300)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-teal-800{color:var(--color-teal-800)}.text-teal-950{color:var(--color-teal-950)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.placeholder-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}.placeholder-purple-400\/50::placeholder{color:#c07eff80}@supports (color:color-mix(in lab, red, red)){.placeholder-purple-400\/50::placeholder{color:color-mix(in oklab, var(--color-purple-400) 50%, transparent)}}.placeholder-slate-400::placeholder{color:var(--color-slate-400)}.accent-purple-500{accent-color:var(--color-purple-500)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-\[var\(--accent-primary\)\]\/20{--tw-shadow-alpha:20%;--tw-shadow:var(--accent-primary);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xs{--tw-shadow:0 1px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-emerald-600\/20{--tw-shadow-color:#00976733}@supports (color:color-mix(in lab, red, red)){.shadow-emerald-600\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-emerald-600) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-rose-600\/20{--tw-shadow-color:#e7004433}@supports (color:color-mix(in lab, red, red)){.shadow-rose-600\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-rose-600) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-\[var\(--accent-primary\)\]{--tw-ring-color:var(--accent-primary)}.ring-\[var\(--border-accent\)\]{--tw-ring-color:var(--border-accent)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}@media (hover:hover){.group-hover\:bg-\[var\(--accent-primary\)\]:is(:where(.group):hover *){background-color:var(--accent-primary)}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/author\:opacity-100:is(:where(.group\/author):hover *),.group-hover\/header\:opacity-100:is(:where(.group\/header):hover *){opacity:1}}.before\:font-bold:before{content:var(--tw-content);--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.before\:text-\[var\(--accent-primary\)\]:before{content:var(--tw-content);color:var(--accent-primary)}.before\:content-\[\"-\"\]:before{--tw-content:"-";content:var(--tw-content)}.before\:content-\[\"•\"\]:before{--tw-content:"•";content:var(--tw-content)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:w-3:hover{width:calc(var(--spacing) * 3)}.hover\:border-\[var\(--border-accent\)\]:hover{border-color:var(--border-accent)}.hover\:border-\[var\(--border-strong\)\]:hover{border-color:var(--border-strong)}.hover\:bg-\[var\(--accent-bg-subtle\)\]:hover,.hover\:bg-\[var\(--accent-bg-subtle\)\]\/50:hover{background-color:var(--accent-bg-subtle)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--accent-bg-subtle\)\]\/50:hover{background-color:color-mix(in oklab, var(--accent-bg-subtle) 50%, transparent)}}.hover\:bg-\[var\(--accent-bg-subtle\)\]\/80:hover{background-color:var(--accent-bg-subtle)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--accent-bg-subtle\)\]\/80:hover{background-color:color-mix(in oklab, var(--accent-bg-subtle) 80%, transparent)}}.hover\:bg-\[var\(--bg-surface-elevated\)\]:hover{background-color:var(--bg-surface-elevated)}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-amber-200\/70:hover{background-color:#fee685b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-200\/70:hover{background-color:color-mix(in oklab, var(--color-amber-200) 70%, transparent)}}.hover\:bg-amber-500\/30:hover{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/30:hover{background-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.hover\:bg-blue-200\/70:hover{background-color:#bedbffb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-200\/70:hover{background-color:color-mix(in oklab, var(--color-blue-200) 70%, transparent)}}.hover\:bg-cyan-200\/70:hover{background-color:#a2f4fdb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-cyan-200\/70:hover{background-color:color-mix(in oklab, var(--color-cyan-200) 70%, transparent)}}.hover\:bg-emerald-50:hover{background-color:var(--color-emerald-50)}.hover\:bg-emerald-100:hover{background-color:var(--color-emerald-100)}.hover\:bg-emerald-200\/70:hover{background-color:#a4f4cfb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-200\/70:hover{background-color:color-mix(in oklab, var(--color-emerald-200) 70%, transparent)}}.hover\:bg-emerald-500:hover{background-color:var(--color-emerald-500)}.hover\:bg-indigo-500:hover{background-color:var(--color-indigo-500)}.hover\:bg-purple-50:hover{background-color:var(--color-purple-50)}.hover\:bg-purple-100:hover{background-color:var(--color-purple-100)}.hover\:bg-purple-200\/70:hover{background-color:#e9d5ffb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-200\/70:hover{background-color:color-mix(in oklab, var(--color-purple-200) 70%, transparent)}}.hover\:bg-purple-500\/10:hover{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/10:hover{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.hover\:bg-purple-500\/20:hover{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/20:hover{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.hover\:bg-purple-600\/50:hover{background-color:#9810fa80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-600\/50:hover{background-color:color-mix(in oklab, var(--color-purple-600) 50%, transparent)}}.hover\:bg-rose-50:hover{background-color:var(--color-rose-50)}.hover\:bg-rose-200\/70:hover{background-color:#ffccd3b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-rose-200\/70:hover{background-color:color-mix(in oklab, var(--color-rose-200) 70%, transparent)}}.hover\:bg-rose-500:hover{background-color:var(--color-rose-500)}.hover\:bg-sky-100:hover{background-color:var(--color-sky-100)}.hover\:bg-sky-500:hover{background-color:var(--color-sky-500)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-700:hover{background-color:var(--color-slate-700)}.hover\:bg-teal-200\/70:hover{background-color:#96f7e4b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-teal-200\/70:hover{background-color:color-mix(in oklab, var(--color-teal-200) 70%, transparent)}}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:text-\[var\(--accent-primary\)\]:hover{color:var(--accent-primary)}.hover\:text-\[var\(--text-primary\)\]:hover{color:var(--text-primary)}.hover\:text-purple-300:hover{color:var(--color-purple-300)}.hover\:text-purple-400:hover{color:var(--color-purple-400)}.hover\:text-rose-600:hover{color:var(--color-rose-600)}.hover\:text-sky-700:hover{color:var(--color-sky-700)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:brightness-105:hover{--tw-brightness:brightness(105%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.hover\:brightness-125:hover{--tw-brightness:brightness(125%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:border-\[var\(--border-accent\)\]:focus{border-color:var(--border-accent)}.focus\:border-\[var\(--border-strong\)\]:focus{border-color:var(--border-strong)}.focus\:border-amber-500\/50:focus{border-color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.focus\:border-amber-500\/50:focus{border-color:color-mix(in oklab, var(--color-amber-500) 50%, transparent)}}.focus\:border-purple-500:focus{border-color:var(--color-purple-500)}.focus\:border-purple-500\/50:focus{border-color:#ac4bff80}@supports (color:color-mix(in lab, red, red)){.focus\:border-purple-500\/50:focus{border-color:color-mix(in oklab, var(--color-purple-500) 50%, transparent)}}.focus\:border-sky-500:focus{border-color:var(--color-sky-500)}.focus\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:mt-0{margin-top:0}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:w-96{width:calc(var(--spacing) * 96)}.sm\:w-auto{width:auto}.sm\:flex-1{flex:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-col{flex-direction:column}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:justify-end{justify-content:flex-end}.sm\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:rounded-3xl{border-radius:var(--radius-3xl)}.sm\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.sm\:p-3{padding:calc(var(--spacing) * 3)}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-5{padding:calc(var(--spacing) * 5)}.sm\:px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:py-2{padding-block:calc(var(--spacing) * 2)}.sm\:pt-0{padding-top:0}.sm\:text-\[11px\]{font-size:11px}}@media (width>=48rem){.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-full{height:100%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-3{gap:calc(var(--spacing) * 3)}.md\:px-5{padding-inline:calc(var(--spacing) * 5)}.md\:py-3{padding-block:calc(var(--spacing) * 3)}}.dark\:border-amber-500\/30:where(.dark,.dark *){border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.dark\:border-amber-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.dark\:border-blue-500\/30:where(.dark,.dark *){border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-blue-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.dark\:border-cyan-500\/30:where(.dark,.dark *){border-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.dark\:border-cyan-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.dark\:border-emerald-500\/30:where(.dark,.dark *){border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-emerald-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.dark\:border-emerald-500\/40:where(.dark,.dark *){border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.dark\:border-emerald-500\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.dark\:border-fuchsia-500\/30:where(.dark,.dark *){border-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-fuchsia-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent)}}.dark\:border-fuchsia-500\/40:where(.dark,.dark *){border-color:#e12afb66}@supports (color:color-mix(in lab, red, red)){.dark\:border-fuchsia-500\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-fuchsia-500) 40%, transparent)}}.dark\:border-indigo-500\/20:where(.dark,.dark *){border-color:#625fff33}@supports (color:color-mix(in lab, red, red)){.dark\:border-indigo-500\/20:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-indigo-500) 20%, transparent)}}.dark\:border-indigo-500\/30:where(.dark,.dark *){border-color:#625fff4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-indigo-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-indigo-500) 30%, transparent)}}.dark\:border-indigo-500\/40:where(.dark,.dark *){border-color:#625fff66}@supports (color:color-mix(in lab, red, red)){.dark\:border-indigo-500\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-indigo-500) 40%, transparent)}}.dark\:border-purple-500\/20:where(.dark,.dark *){border-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.dark\:border-purple-500\/20:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.dark\:border-purple-500\/30:where(.dark,.dark *){border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-purple-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.dark\:border-purple-500\/40:where(.dark,.dark *){border-color:#ac4bff66}@supports (color:color-mix(in lab, red, red)){.dark\:border-purple-500\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-purple-500) 40%, transparent)}}.dark\:border-rose-500\/30:where(.dark,.dark *){border-color:#ff23574d}@supports (color:color-mix(in lab, red, red)){.dark\:border-rose-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-rose-500) 30%, transparent)}}.dark\:border-rose-500\/40:where(.dark,.dark *){border-color:#ff235766}@supports (color:color-mix(in lab, red, red)){.dark\:border-rose-500\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-rose-500) 40%, transparent)}}.dark\:border-slate-600\/30:where(.dark,.dark *){border-color:#45556c4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-slate-600\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-slate-600) 30%, transparent)}}.dark\:border-slate-700\/40:where(.dark,.dark *){border-color:#31415866}@supports (color:color-mix(in lab, red, red)){.dark\:border-slate-700\/40:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-slate-700) 40%, transparent)}}.dark\:border-teal-500\/30:where(.dark,.dark *){border-color:#00baa74d}@supports (color:color-mix(in lab, red, red)){.dark\:border-teal-500\/30:where(.dark,.dark *){border-color:color-mix(in oklab, var(--color-teal-500) 30%, transparent)}}.dark\:bg-amber-500\/20:where(.dark,.dark *){background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.dark\:bg-blue-500\/20:where(.dark,.dark *){background-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.dark\:bg-cyan-500\/20:where(.dark,.dark *){background-color:#00b7d733}@supports (color:color-mix(in lab, red, red)){.dark\:bg-cyan-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-cyan-500) 20%, transparent)}}.dark\:bg-emerald-400:where(.dark,.dark *){background-color:var(--color-emerald-400)}.dark\:bg-emerald-500\/10:where(.dark,.dark *){background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-emerald-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.dark\:bg-emerald-500\/20:where(.dark,.dark *){background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-emerald-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.dark\:bg-emerald-950\/40:where(.dark,.dark *){background-color:#002c2266}@supports (color:color-mix(in lab, red, red)){.dark\:bg-emerald-950\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-emerald-950) 40%, transparent)}}.dark\:bg-fuchsia-400:where(.dark,.dark *){background-color:var(--color-fuchsia-400)}.dark\:bg-fuchsia-500\/10:where(.dark,.dark *){background-color:#e12afb1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-fuchsia-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-fuchsia-500) 10%, transparent)}}.dark\:bg-indigo-400:where(.dark,.dark *){background-color:var(--color-indigo-400)}.dark\:bg-indigo-500\/10:where(.dark,.dark *){background-color:#625fff1a}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-500\/10:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-indigo-500) 10%, transparent)}}.dark\:bg-indigo-500\/20:where(.dark,.dark *){background-color:#625fff33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-indigo-500) 20%, transparent)}}.dark\:bg-indigo-600:where(.dark,.dark *){background-color:var(--color-indigo-600)}.dark\:bg-indigo-600\/20:where(.dark,.dark *){background-color:#4f39f633}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-600\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-indigo-600) 20%, transparent)}}.dark\:bg-indigo-600\/30:where(.dark,.dark *){background-color:#4f39f64d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-600\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-indigo-600) 30%, transparent)}}.dark\:bg-indigo-700:where(.dark,.dark *){background-color:var(--color-indigo-700)}.dark\:bg-indigo-950\/20:where(.dark,.dark *){background-color:#1e1a4d33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-indigo-950\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-indigo-950) 20%, transparent)}}.dark\:bg-purple-500\/20:where(.dark,.dark *){background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.dark\:bg-purple-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.dark\:bg-purple-600\/30:where(.dark,.dark *){background-color:#9810fa4d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-purple-600\/30:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-purple-600) 30%, transparent)}}.dark\:bg-purple-700:where(.dark,.dark *){background-color:var(--color-purple-700)}.dark\:bg-rose-500\/20:where(.dark,.dark *){background-color:#ff235733}@supports (color:color-mix(in lab, red, red)){.dark\:bg-rose-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-rose-500) 20%, transparent)}}.dark\:bg-rose-950\/40:where(.dark,.dark *){background-color:#4d021866}@supports (color:color-mix(in lab, red, red)){.dark\:bg-rose-950\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-rose-950) 40%, transparent)}}.dark\:bg-slate-800:where(.dark,.dark *){background-color:var(--color-slate-800)}.dark\:bg-slate-800\/40:where(.dark,.dark *){background-color:#1d293d66}@supports (color:color-mix(in lab, red, red)){.dark\:bg-slate-800\/40:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-slate-800) 40%, transparent)}}.dark\:bg-teal-500\/20:where(.dark,.dark *){background-color:#00baa733}@supports (color:color-mix(in lab, red, red)){.dark\:bg-teal-500\/20:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-teal-500) 20%, transparent)}}.dark\:text-\[var\(--accent-primary\)\]:where(.dark,.dark *){color:var(--accent-primary)}.dark\:text-\[var\(--text-muted\)\]:where(.dark,.dark *){color:var(--text-muted)}.dark\:text-amber-300:where(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-amber-400:where(.dark,.dark *){color:var(--color-amber-400)}.dark\:text-amber-400\/80:where(.dark,.dark *){color:#fcbb00cc}@supports (color:color-mix(in lab, red, red)){.dark\:text-amber-400\/80:where(.dark,.dark *){color:color-mix(in oklab, var(--color-amber-400) 80%, transparent)}}.dark\:text-blue-300:where(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-cyan-300:where(.dark,.dark *){color:var(--color-cyan-300)}.dark\:text-cyan-400:where(.dark,.dark *){color:var(--color-cyan-400)}.dark\:text-emerald-300:where(.dark,.dark *){color:var(--color-emerald-300)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-fuchsia-300:where(.dark,.dark *){color:var(--color-fuchsia-300)}.dark\:text-indigo-100:where(.dark,.dark *){color:var(--color-indigo-100)}.dark\:text-indigo-200:where(.dark,.dark *){color:var(--color-indigo-200)}.dark\:text-indigo-300:where(.dark,.dark *){color:var(--color-indigo-300)}.dark\:text-indigo-400:where(.dark,.dark *){color:var(--color-indigo-400)}.dark\:text-indigo-400\/80:where(.dark,.dark *){color:#7d87ffcc}@supports (color:color-mix(in lab, red, red)){.dark\:text-indigo-400\/80:where(.dark,.dark *){color:color-mix(in oklab, var(--color-indigo-400) 80%, transparent)}}.dark\:text-purple-100:where(.dark,.dark *){color:var(--color-purple-100)}.dark\:text-purple-200:where(.dark,.dark *){color:var(--color-purple-200)}.dark\:text-purple-300:where(.dark,.dark *){color:var(--color-purple-300)}.dark\:text-purple-400:where(.dark,.dark *){color:var(--color-purple-400)}.dark\:text-rose-300:where(.dark,.dark *){color:var(--color-rose-300)}.dark\:text-rose-400:where(.dark,.dark *){color:var(--color-rose-400)}.dark\:text-slate-400:where(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-slate-600:where(.dark,.dark *){color:var(--color-slate-600)}.dark\:text-teal-300:where(.dark,.dark *){color:var(--color-teal-300)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\:placeholder-slate-500:where(.dark,.dark *)::placeholder{color:var(--color-slate-500)}@media (hover:hover){.dark\:hover\:bg-amber-500\/30:where(.dark,.dark *):hover{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-amber-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.dark\:hover\:bg-blue-500\/30:where(.dark,.dark *):hover{background-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-blue-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.dark\:hover\:bg-cyan-500\/30:where(.dark,.dark *):hover{background-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-cyan-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.dark\:hover\:bg-emerald-500\/20:where(.dark,.dark *):hover{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-emerald-500\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.dark\:hover\:bg-emerald-500\/30:where(.dark,.dark *):hover{background-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-emerald-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.dark\:hover\:bg-indigo-500:where(.dark,.dark *):hover{background-color:var(--color-indigo-500)}.dark\:hover\:bg-indigo-600\/30:where(.dark,.dark *):hover{background-color:#4f39f64d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-indigo-600\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-indigo-600) 30%, transparent)}}.dark\:hover\:bg-indigo-600\/50:where(.dark,.dark *):hover{background-color:#4f39f680}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-indigo-600\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-indigo-600) 50%, transparent)}}.dark\:hover\:bg-purple-500\/20:where(.dark,.dark *):hover{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-purple-500\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.dark\:hover\:bg-purple-500\/30:where(.dark,.dark *):hover{background-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-purple-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.dark\:hover\:bg-purple-600\/50:where(.dark,.dark *):hover{background-color:#9810fa80}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-purple-600\/50:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-purple-600) 50%, transparent)}}.dark\:hover\:bg-rose-500\/20:where(.dark,.dark *):hover{background-color:#ff235733}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-rose-500\/20:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-rose-500) 20%, transparent)}}.dark\:hover\:bg-rose-500\/30:where(.dark,.dark *):hover{background-color:#ff23574d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-rose-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-rose-500) 30%, transparent)}}.dark\:hover\:bg-slate-900:where(.dark,.dark *):hover{background-color:var(--color-slate-900)}.dark\:hover\:bg-teal-500\/30:where(.dark,.dark *):hover{background-color:#00baa74d}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-teal-500\/30:where(.dark,.dark *):hover{background-color:color-mix(in oklab, var(--color-teal-500) 30%, transparent)}}.dark\:hover\:text-indigo-300:where(.dark,.dark *):hover{color:var(--color-indigo-300)}.dark\:hover\:text-rose-400:where(.dark,.dark *):hover{color:var(--color-rose-400)}}.dark\:focus\:border-indigo-500\/50:where(.dark,.dark *):focus{border-color:#625fff80}@supports (color:color-mix(in lab, red, red)){.dark\:focus\:border-indigo-500\/50:where(.dark,.dark *):focus{border-color:color-mix(in oklab, var(--color-indigo-500) 50%, transparent)}}}:root{--bg-main:#f8fafc;--bg-app:#f8fafc;--bg-card:#fff;--bg-surface:#fff;--bg-surface-elevated:#f1f5f9;--bg-input:#fff;--border-subtle:#e2e8f0;--border-strong:#cbd5e1;--border-accent:#0e749066;--accent-primary:#0284c7;--accent-bg-subtle:#0284c714;--accent-border-subtle:#0284c740;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.dark{--bg-main:#060812;--bg-app:#060812;--bg-card:#0b0f19;--bg-surface:#0a0e1a;--bg-surface-elevated:#0f172a;--bg-input:#0b0f19;--border-subtle:#1e293b;--border-strong:#334155;--border-accent:#6366f180;--accent-primary:#818cf8;--accent-bg-subtle:#6366f11f;--accent-border-subtle:#6366f14d;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background-color:var(--bg-main);color:var(--text-primary);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:#94a3b859}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}
@@ -9,8 +9,8 @@
9
9
  <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png" />
10
10
  <link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png" />
11
11
  <link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" />
12
- <script type="module" crossorigin src="./assets/index-xIsWBrsf.js"></script>
13
- <link rel="stylesheet" crossorigin href="./assets/index-CfQ8qeBs.css">
12
+ <script type="module" crossorigin src="./assets/index-CKb43WEo.js"></script>
13
+ <link rel="stylesheet" crossorigin href="./assets/index-Dhmj9uWs.css">
14
14
  </head>
15
15
  <body class="bg-[#f1f5f9] text-slate-900 font-sans">
16
16
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "esedre",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "Esedre: Developer roadmap, ticketing, and LLM coding partner coordination platform",
5
5
  "homepage": "https://arwam.com",
6
6
  "repository": {